| 173 | | |
|---|
| | 173 | iterator_t *iterator; |
|---|
| | 174 | payload_t *payload; |
|---|
| | 175 | |
|---|
| | 176 | /* handle NO_ADDITIONAL_SAS notify */ |
|---|
| | 177 | iterator = message->get_payload_iterator(message); |
|---|
| | 178 | while (iterator->iterate(iterator, (void**)&payload)) |
|---|
| | 179 | { |
|---|
| | 180 | if (payload->get_type(payload) == NOTIFY) |
|---|
| | 181 | { |
|---|
| | 182 | notify_payload_t *notify = (notify_payload_t*)payload; |
|---|
| | 183 | notify_type_t type = notify->get_notify_type(notify); |
|---|
| | 184 | |
|---|
| | 185 | if (type == NO_ADDITIONAL_SAS) |
|---|
| | 186 | { |
|---|
| | 187 | DBG1(DBG_IKE, "peer seems to not support IKE rekeying, " |
|---|
| | 188 | "starting reauthentication"); |
|---|
| | 189 | this->ike_sa->set_state(this->ike_sa, IKE_ESTABLISHED); |
|---|
| | 190 | charon->processor->queue_job(charon->processor, |
|---|
| | 191 | (job_t*)rekey_ike_sa_job_create( |
|---|
| | 192 | this->ike_sa->get_id(this->ike_sa), TRUE)); |
|---|
| | 193 | iterator->destroy(iterator); |
|---|
| | 194 | return SUCCESS; |
|---|
| | 195 | } |
|---|
| | 196 | } |
|---|
| | 197 | } |
|---|
| | 198 | iterator->destroy(iterator); |
|---|
| | 199 | |
|---|