Print this page
Current snapshot of OpenSolaris port.
Checkpoint
Checkpoint
Merge from parent.
Merge with WIDE update.
Pull from WIDE.
Pull from WIDE.
Checkpoint
Re-update.
blah
WIDE update
Update from WIDE.
@@ -273,12 +273,14 @@
ikev1_script_hook(iph1, SCRIPT_PHASE1_DOWN);
EVT_PUSH(iph1->local, iph1->remote, EVTT_PHASE1_DOWN, NULL);
#ifdef ENABLE_NATT
+#ifndef sun /* XXX KEBE SAYS kernel does this in OpenSolaris */
if (iph1->natt_flags & NAT_KA_QUEUED)
natt_keepalive_remove (iph1->local, iph1->remote);
+#endif
if (iph1->natt_options) {
racoon_free(iph1->natt_options);
iph1->natt_options = NULL;
}
@@ -468,12 +470,18 @@
getph2byselector(struct sockaddr *src, struct sockaddr *dst, struct rcf_selector *selector)
{
struct ph2handle *p;
LIST_FOREACH(p, &ph2tree, chain) {
+#ifdef sun
+ if ((p->selector->sl_index == selector->sl_index ||
+ rc_vmemcmp(p->selector->sl_index,
+ selector->sl_index) == 0) &&
+#else
if (rc_vmemcmp(p->selector->sl_index, selector->sl_index)
== 0 &&
+#endif
CMPSADDR(src, p->src) == 0 &&
CMPSADDR(dst, p->dst) == 0)
return p;
}
@@ -627,10 +635,20 @@
}
if (iph2->dst_id) {
racoon_free(iph2->dst_id);
iph2->dst_id = NULL;
}
+#ifdef ENABLE_NATT
+ if (iph2->natoa_src) {
+ racoon_free(iph2->natoa_src);
+ iph2->natoa_src = NULL;
+ }
+ if (iph2->natoa_dst) {
+ racoon_free(iph2->natoa_dst);
+ iph2->natoa_dst = NULL;
+ }
+#endif
if (iph2->proposal) {
flushsaprop(iph2->proposal);
iph2->proposal = NULL;
}
@@ -1486,10 +1504,12 @@
{
struct rcpfk_msg param;
int satype;
int retval;
+ (void) memset(¶m, 0, sizeof (param));
+
switch (proto) {
case IPSECDOI_PROTO_IPSEC_AH:
satype = RCT_SATYPE_AH;
break;
case IPSECDOI_PROTO_IPSEC_ESP: