--- old/iked/ike_pfkey.h Fri Mar 27 12:09:51 2009 +++ new/iked/ike_pfkey.h Fri Mar 27 12:09:51 2009 @@ -82,6 +82,9 @@ int (*add_outbound) (); int (*delete_sa) (); int (*get) (); +#ifdef sun + int (*inverse_acquire)(); +#endif /* sun/OpenSolaris */ }; struct sadb_response_method { @@ -134,3 +137,35 @@ uint32_t, void *); extern void sadb_request_finish(struct sadb_request *); +#ifdef sun +#ifndef _INVACQ_T +#define _INVACQ_T /* Guard against double-include. */ +typedef struct invacq_s { + /* IKEv1 data */ + struct ph2handle *iph2; /* Referenced */ + + /* IKEv2 data */ + struct ikev2_sa *ikev2_sa; /* Referenced */ + struct sockaddr *local; /* Alloced/copied */ + struct sockaddr *remote; /* Alloced/copied */ + struct ikev2_payload_header *sa_payload;/* Alloced/copied */ + struct ikev2_payload_header *ts_i; /* Alloced/copied */ + struct ikev2_payload_header *ts_r; /* Alloced/copied */ + struct ikev2_payload_header *cfg; /* Alloced/copied */ + rc_vchar_t *g_i; /* Alloced/copied */ + rc_vchar_t *n_i; /* Alloced/copied */ + struct ikev2_child_param *child_param; /* Alloced/copied */ + struct ikev2_child_sa *old_child_sa; /* Referenced. */ + uint32_t message_id; /* Copied */ + boolean_t is_createchild; /* Copied */ + rc_vchar_t *packet; + + /* inverse-ACQUIRE data. */ + struct rcpfk_msg *answer; + int (*receiver)(struct invacq_s *); + struct sadb_request request; +} invacq_t; +#endif +extern int extract_extended_acquire(struct rcpfk_msg *, struct rcf_selector **, + struct rcf_remote **); +#endif