280 break;
281 case IKEV2_CHILD_STATE_EXPIRED:
282 break;
283 case IKEV2_CHILD_STATE_REQUEST_PENDING:
284 case IKEV2_CHILD_STATE_REQUEST_SENT:
285 default:
286 ikev2_child_state_set(child_sa,
287 IKEV2_CHILD_STATE_EXPIRED);
288 break;
289 }
290 }
291 ikev2_set_state(ike_sa, IKEV2_STATE_DEAD);
292 ++isakmpstat.abort;
293 }
294
295 void
296 ikev2_child_abort(struct ikev2_child_sa *child_sa, int err)
297 {
298 struct rcpfk_msg param;
299
300 param.satype = RCT_SATYPE_ESP; /* XXX */
301 param.seq = child_sa->sadb_request.seqno;
302 param.eno = err;
303 child_sa->sadb_request.method->acquire_error(¶m);
304
305 ikev2_child_state_set(child_sa, IKEV2_CHILD_STATE_EXPIRED);
306 ++isakmpstat.child_abort;
307 }
308
309 /*
310 * find ike_sa by ike message spi
311 */
312 struct ikev2_sa *
313 ikev2_find_sa(rc_vchar_t *message)
314 {
315 struct ikev2_header *ikehdr;
316 isakmp_cookie_t *spi_i;
317 isakmp_cookie_t *spi_r;
318 int is_response;
319 int remote_is_initiator;
|
280 break;
281 case IKEV2_CHILD_STATE_EXPIRED:
282 break;
283 case IKEV2_CHILD_STATE_REQUEST_PENDING:
284 case IKEV2_CHILD_STATE_REQUEST_SENT:
285 default:
286 ikev2_child_state_set(child_sa,
287 IKEV2_CHILD_STATE_EXPIRED);
288 break;
289 }
290 }
291 ikev2_set_state(ike_sa, IKEV2_STATE_DEAD);
292 ++isakmpstat.abort;
293 }
294
295 void
296 ikev2_child_abort(struct ikev2_child_sa *child_sa, int err)
297 {
298 struct rcpfk_msg param;
299
300 (void) memset(¶m, 0, sizeof (param));
301 param.satype = RCT_SATYPE_ESP; /* XXX */
302 param.seq = child_sa->sadb_request.seqno;
303 param.eno = err;
304 child_sa->sadb_request.method->acquire_error(¶m);
305
306 ikev2_child_state_set(child_sa, IKEV2_CHILD_STATE_EXPIRED);
307 ++isakmpstat.child_abort;
308 }
309
310 /*
311 * find ike_sa by ike message spi
312 */
313 struct ikev2_sa *
314 ikev2_find_sa(rc_vchar_t *message)
315 {
316 struct ikev2_header *ikehdr;
317 isakmp_cookie_t *spi_i;
318 isakmp_cookie_t *spi_r;
319 int is_response;
320 int remote_is_initiator;
|