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(&param, 0, sizeof (param));
+
         switch (proto) {
         case IPSECDOI_PROTO_IPSEC_AH:
                 satype = RCT_SATYPE_AH;
                 break;
         case IPSECDOI_PROTO_IPSEC_ESP: