Mailing List Archive

svn commit: vpnc r532 - /branches/vpnc-nortel/vpnc-script /branches/vpnc-nortel/vpnc.c /trunk/vpnc-script /trunk/vpnc.c
Author: Antonio Borneo
Date: Sun Dec 1 11:20:15 2013
New Revision: 532

Log:
Fetch split DNS information from Cisco servers

Cisco servers can optionally include a list of domain names that are
configured using split DNS.

Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/vpnc/+bug/954747

Author: Evan Broder <evan@ebroder.net>
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>

Modified:
branches/vpnc-nortel/vpnc-script
branches/vpnc-nortel/vpnc.c
trunk/vpnc-script
trunk/vpnc.c

Modified: branches/vpnc-nortel/vpnc-script
==============================================================================
--- branches/vpnc-nortel/vpnc-script (original)
+++ branches/vpnc-nortel/vpnc-script Sun Dec 1 11:20:15 2013
@@ -36,6 +36,7 @@
#* INTERNAL_IP6_DNS -- IPv6 list of dns servers
#* CISCO_DEF_DOMAIN -- default domain name
#* CISCO_BANNER -- banner from server
+#* CISCO_SPLIT_DNS -- comma-separated list of domain names with split DNS
#* CISCO_SPLIT_INC -- number of networks in split-network-list
#* CISCO_SPLIT_INC_%d_ADDR -- network address
#* CISCO_SPLIT_INC_%d_MASK -- subnet mask (for example: 255.255.255.0)

Modified: branches/vpnc-nortel/vpnc.c
==============================================================================
--- branches/vpnc-nortel/vpnc.c (original)
+++ branches/vpnc-nortel/vpnc.c Sun Dec 1 11:20:15 2013
@@ -1124,6 +1124,18 @@
setenv(strbuf, strbuf2, 1);
free(strbuf); free(strbuf2);
}
+ break;
+
+ case ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_DNS:
+ if (a->af != isakmp_attr_lots) {
+ reject = ISAKMP_N_ATTRIBUTES_NOT_SUPPORTED;
+ break;
+ }
+ strbuf = xallocc(a->u.lots.length + 1);
+ memcpy(strbuf, a->u.lots.data, a->u.lots.length);
+ addenv("CISCO_SPLIT_DNS", strbuf);
+ free(strbuf);
+ DEBUG(2, printf("Split DNS: %s\n", a->u.lots.data));
break;

case ISAKMP_MODECFG_ATTRIB_CISCO_SAVE_PW:
@@ -2637,6 +2649,7 @@
a->u.lots.data = xallocc(a->u.lots.length);
memcpy(a->u.lots.data, uts.nodename, a->u.lots.length);

+ a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_DNS, a);
a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_INC, a);
a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SAVE_PW, a);


Modified: trunk/vpnc-script
==============================================================================
--- trunk/vpnc-script (original)
+++ trunk/vpnc-script Sun Dec 1 11:20:15 2013
@@ -36,6 +36,7 @@
#* INTERNAL_IP6_DNS -- IPv6 list of dns servers
#* CISCO_DEF_DOMAIN -- default domain name
#* CISCO_BANNER -- banner from server
+#* CISCO_SPLIT_DNS -- comma-separated list of domain names with split DNS
#* CISCO_SPLIT_INC -- number of networks in split-network-list
#* CISCO_SPLIT_INC_%d_ADDR -- network address
#* CISCO_SPLIT_INC_%d_MASK -- subnet mask (for example: 255.255.255.0)

Modified: trunk/vpnc.c
==============================================================================
--- trunk/vpnc.c (original)
+++ trunk/vpnc.c Sun Dec 1 11:20:15 2013
@@ -1095,6 +1095,18 @@
setenv(strbuf, strbuf2, 1);
free(strbuf); free(strbuf2);
}
+ break;
+
+ case ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_DNS:
+ if (a->af != isakmp_attr_lots) {
+ reject = ISAKMP_N_ATTRIBUTES_NOT_SUPPORTED;
+ break;
+ }
+ strbuf = xallocc(a->u.lots.length + 1);
+ memcpy(strbuf, a->u.lots.data, a->u.lots.length);
+ addenv("CISCO_SPLIT_DNS", strbuf);
+ free(strbuf);
+ DEBUG(2, printf("Split DNS: %s\n", a->u.lots.data));
break;

case ISAKMP_MODECFG_ATTRIB_CISCO_SAVE_PW:
@@ -2446,6 +2458,7 @@
a->u.lots.data = xallocc(a->u.lots.length);
memcpy(a->u.lots.data, uts.nodename, a->u.lots.length);

+ a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_DNS, a);
a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SPLIT_INC, a);
a = new_isakmp_attribute(ISAKMP_MODECFG_ATTRIB_CISCO_SAVE_PW, a);


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