Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: vpnc: devel

svn commit: vpnc r438 - /branches/vpnc-nortel/vpnc.c

 

 

vpnc devel RSS feed   Index | Next | Previous | View Threaded


vpnc at unix-ag

Sep 6, 2009, 9:18 AM

Post #1 of 1 (559 views)
Permalink
svn commit: vpnc r438 - /branches/vpnc-nortel/vpnc.c

Author: Antonio Borneo
Date: Sun Sep 6 18:18:45 2009
New Revision: 438

Log:
Merge in Nortel branch the commit r388 by Maurice Massar.
Original comment:
reuse send_delete_isakmp() in phase2_fatal()

Modified:
branches/vpnc-nortel/vpnc.c

Modified: branches/vpnc-nortel/vpnc.c
==============================================================================
--- branches/vpnc-nortel/vpnc.c (original)
+++ branches/vpnc-nortel/vpnc.c Sun Sep 6 18:18:45 2009
@@ -805,6 +805,57 @@
}
}

+static void send_delete_ipsec(struct sa_block *s)
+{
+ /* 2007-08-31 JKU/ZID: Sonicwall doesn't like the chained
+ * request but wants them split. Cisco does fine with it. */
+ DEBUGTOP(2, printf("S7.10 send ipsec termination message\n"));
+ {
+ struct isakmp_payload *d_ipsec;
+ uint8_t del_msgid;
+
+ gcry_create_nonce((uint8_t *) & del_msgid, sizeof(del_msgid));
+ d_ipsec = new_isakmp_payload(ISAKMP_PAYLOAD_D);
+ d_ipsec->u.d.doi = ISAKMP_DOI_IPSEC;
+ d_ipsec->u.d.protocol = ISAKMP_IPSEC_PROTO_IPSEC_ESP;
+ d_ipsec->u.d.spi_length = 4;
+ d_ipsec->u.d.num_spi = 2;
+ d_ipsec->u.d.spi = xallocc(2 * sizeof(uint8_t *));
+ d_ipsec->u.d.spi[0] = xallocc(d_ipsec->u.d.spi_length);
+ memcpy(d_ipsec->u.d.spi[0], &s->ipsec.rx.spi, 4);
+ d_ipsec->u.d.spi[1] = xallocc(d_ipsec->u.d.spi_length);
+ memcpy(d_ipsec->u.d.spi[1], &s->ipsec.tx.spi, 4);
+ sendrecv_phase2(s, d_ipsec, ISAKMP_EXCHANGE_INFORMATIONAL,
+ del_msgid, 1, NULL, NULL,
+ NULL, 0, NULL, 0);
+ }
+}
+
+static void send_delete_isakmp(struct sa_block *s)
+{
+ DEBUGTOP(2, printf("S7.11 send isakmp termination message\n"));
+ {
+ struct isakmp_payload *d_isakmp;
+ uint8_t del_msgid;
+
+ gcry_create_nonce((uint8_t *) & del_msgid, sizeof(del_msgid));
+ d_isakmp = new_isakmp_payload(ISAKMP_PAYLOAD_D);
+ d_isakmp->u.d.doi = ISAKMP_DOI_IPSEC;
+ d_isakmp->u.d.protocol = ISAKMP_IPSEC_PROTO_ISAKMP;
+ d_isakmp->u.d.spi_length = 2 * ISAKMP_COOKIE_LENGTH;
+ d_isakmp->u.d.num_spi = 1;
+ d_isakmp->u.d.spi = xallocc(1 * sizeof(uint8_t *));
+ d_isakmp->u.d.spi[0] = xallocc(2 * ISAKMP_COOKIE_LENGTH);
+ memcpy(d_isakmp->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 0, s->ike.i_cookie,
+ ISAKMP_COOKIE_LENGTH);
+ memcpy(d_isakmp->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 1, s->ike.r_cookie,
+ ISAKMP_COOKIE_LENGTH);
+ sendrecv_phase2(s, d_isakmp, ISAKMP_EXCHANGE_INFORMATIONAL,
+ del_msgid, 1, NULL, NULL,
+ NULL, 0, NULL, 0);
+ }
+}
+
static void phase2_fatal(struct sa_block *s, const char *msg, int id)
{
struct isakmp_payload *pl;
@@ -818,17 +869,7 @@
pl->u.n.type = id;
sendrecv_phase2(s, pl, ISAKMP_EXCHANGE_INFORMATIONAL, msgid, 1, 0, 0, 0, 0, 0, 0);

- gcry_create_nonce((uint8_t *) & msgid, sizeof(msgid));
- pl = new_isakmp_payload(ISAKMP_PAYLOAD_D);
- pl->u.d.doi = ISAKMP_DOI_IPSEC;
- pl->u.d.protocol = ISAKMP_IPSEC_PROTO_ISAKMP;
- pl->u.d.spi_length = 2 * ISAKMP_COOKIE_LENGTH;
- pl->u.d.num_spi = 1;
- pl->u.d.spi = xallocc(1 * sizeof(uint8_t *));
- pl->u.d.spi[0] = xallocc(2 * ISAKMP_COOKIE_LENGTH);
- memcpy(pl->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 0, s->ike.i_cookie, ISAKMP_COOKIE_LENGTH);
- memcpy(pl->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 1, s->ike.r_cookie, ISAKMP_COOKIE_LENGTH);
- sendrecv_phase2(s, pl, ISAKMP_EXCHANGE_INFORMATIONAL, msgid, 1, 0, 0, 0, 0, 0, 0);
+ send_delete_isakmp(s);

error(1, 0, msg, val_to_string(id, isakmp_notify_enum_array), id);
}
@@ -3406,57 +3447,6 @@
free(dh_public);
}

-static void send_delete_ipsec(struct sa_block *s)
-{
- /* 2007-08-31 JKU/ZID: Sonicwall doesn't like the chained
- * request but wants them split. Cisco does fine with it. */
- DEBUGTOP(2, printf("S7.10 send ipsec termination message\n"));
- {
- struct isakmp_payload *d_ipsec;
- uint8_t del_msgid;
-
- gcry_create_nonce((uint8_t *) & del_msgid, sizeof(del_msgid));
- d_ipsec = new_isakmp_payload(ISAKMP_PAYLOAD_D);
- d_ipsec->u.d.doi = ISAKMP_DOI_IPSEC;
- d_ipsec->u.d.protocol = ISAKMP_IPSEC_PROTO_IPSEC_ESP;
- d_ipsec->u.d.spi_length = 4;
- d_ipsec->u.d.num_spi = 2;
- d_ipsec->u.d.spi = xallocc(2 * sizeof(uint8_t *));
- d_ipsec->u.d.spi[0] = xallocc(d_ipsec->u.d.spi_length);
- memcpy(d_ipsec->u.d.spi[0], &s->ipsec.rx.spi, 4);
- d_ipsec->u.d.spi[1] = xallocc(d_ipsec->u.d.spi_length);
- memcpy(d_ipsec->u.d.spi[1], &s->ipsec.tx.spi, 4);
- sendrecv_phase2(s, d_ipsec, ISAKMP_EXCHANGE_INFORMATIONAL,
- del_msgid, 1, NULL, NULL,
- NULL, 0, NULL, 0);
- }
-}
-
-static void send_delete_isakmp(struct sa_block *s)
-{
- DEBUGTOP(2, printf("S7.11 send isakmp termination message\n"));
- {
- struct isakmp_payload *d_isakmp;
- uint8_t del_msgid;
-
- gcry_create_nonce((uint8_t *) & del_msgid, sizeof(del_msgid));
- d_isakmp = new_isakmp_payload(ISAKMP_PAYLOAD_D);
- d_isakmp->u.d.doi = ISAKMP_DOI_IPSEC;
- d_isakmp->u.d.protocol = ISAKMP_IPSEC_PROTO_ISAKMP;
- d_isakmp->u.d.spi_length = 2 * ISAKMP_COOKIE_LENGTH;
- d_isakmp->u.d.num_spi = 1;
- d_isakmp->u.d.spi = xallocc(1 * sizeof(uint8_t *));
- d_isakmp->u.d.spi[0] = xallocc(2 * ISAKMP_COOKIE_LENGTH);
- memcpy(d_isakmp->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 0, s->ike.i_cookie,
- ISAKMP_COOKIE_LENGTH);
- memcpy(d_isakmp->u.d.spi[0] + ISAKMP_COOKIE_LENGTH * 1, s->ike.r_cookie,
- ISAKMP_COOKIE_LENGTH);
- sendrecv_phase2(s, d_isakmp, ISAKMP_EXCHANGE_INFORMATIONAL,
- del_msgid, 1, NULL, NULL,
- NULL, 0, NULL, 0);
- }
-}
-
static int do_rekey(struct sa_block *s, struct isakmp_packet *r)
{
struct isakmp_payload *rp, *ke = NULL, *nonce_i = NULL;

_______________________________________________
vpnc-devel mailing list
vpnc-devel [at] unix-ag
https://lists.unix-ag.uni-kl.de/mailman/listinfo/vpnc-devel
http://www.unix-ag.uni-kl.de/~massar/vpnc/

vpnc devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.