When IKEv1 DPD times out, raise missing SEND_RETRANSMIT_TIMOUT alert
authorMartin Willi <martin@revosec.ch>
Wed, 13 Mar 2013 15:06:54 +0000 (16:06 +0100)
committerMartin Willi <martin@revosec.ch>
Thu, 14 Mar 2013 13:20:54 +0000 (14:20 +0100)
src/libcharon/bus/bus.h
src/libcharon/processing/jobs/dpd_timeout_job.c

index 67673d9..18d57bc 100644 (file)
@@ -103,7 +103,7 @@ enum alert_t {
        ALERT_PARSE_ERROR_BODY,
        /** sending a retransmit for a message, argument is packet_t */
        ALERT_RETRANSMIT_SEND,
-       /** sending retransmits timed out, argument is packet_t */
+       /** sending retransmits timed out, argument is packet_t, if available */
        ALERT_RETRANSMIT_SEND_TIMEOUT,
        /** received a retransmit for a message, argument is message_t */
        ALERT_RETRANSMIT_RECEIVE,
index 0f82376..9cdce5c 100644 (file)
@@ -77,6 +77,7 @@ METHOD(job_t, execute, job_requeue_t,
                if (use_time < this->check)
                {
                        DBG1(DBG_JOB, "DPD check timed out, enforcing DPD action");
+                       charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND_TIMEOUT, NULL);
                        charon->bus->ike_updown(charon->bus, ike_sa, FALSE);
                        ike_sa->reestablish(ike_sa);
                        charon->ike_sa_manager->checkin_and_destroy(charon->ike_sa_manager,