added Cisco Unity ModeCfg attributes
authorAndreas Steffen <andreas.steffen@strongswan.org>
Sun, 21 Jan 2007 08:45:10 +0000 (08:45 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Sun, 21 Jan 2007 08:45:10 +0000 (08:45 -0000)
src/pluto/constants.c
src/pluto/constants.h
src/pluto/modecfg.c

index ed8073b..1fc5ec4 100644 (file)
@@ -708,7 +708,7 @@ static const char *const xauth_type_name[] = {
 };
 
 enum_names xauth_type_names =
 };
 
 enum_names xauth_type_names =
-  { XAUTH_TYPE_GENERIC, XAUTH_TYPE_SKEY, xauth_type_name, NULL};
+    { XAUTH_TYPE_GENERIC, XAUTH_TYPE_SKEY, xauth_type_name, NULL};
 
 /* From draft-beaulieu-ike-xauth */
 static const char *const xauth_attr_tv_name[] = {
 
 /* From draft-beaulieu-ike-xauth */
 static const char *const xauth_attr_tv_name[] = {
@@ -726,6 +726,24 @@ enum_names xauth_attr_tv_names = {
     XAUTH_TYPE   + ISAKMP_ATTR_AF_TV,
     XAUTH_STATUS + ISAKMP_ATTR_AF_TV, xauth_attr_tv_name, NULL };
 
     XAUTH_TYPE   + ISAKMP_ATTR_AF_TV,
     XAUTH_STATUS + ISAKMP_ATTR_AF_TV, xauth_attr_tv_name, NULL };
 
+static const char *const unity_attr_name[] = {
+       "UNITY_BANNER",
+       "UNITY_SAVE_PASSWD",
+       "UNITY_DEF_DOMAIN",
+       "UNITY_SPLITDNS_NAME",
+       "UNITY_SPLIT_INCLUDE",
+       "UNITY_NATT_PORT",
+       "UNITY_LOCAL_LAN",
+       "UNITY_PFS",
+       "UNITY_FW_TYPE",
+       "UNITY_BACKUP_SERVERS",
+       "UNITY_DDNS_HOSTNAME",
+};
+
+enum_names unity_attr_names =
+    { UNITY_BANNER , UNITY_DDNS_HOSTNAME, unity_attr_name , &xauth_attr_tv_names };
+
+
 static const char *const xauth_attr_name[] = {
        "XAUTH_USER_NAME",
        "XAUTH_USER_PASSWORD",
 static const char *const xauth_attr_name[] = {
        "XAUTH_USER_NAME",
        "XAUTH_USER_PASSWORD",
@@ -739,7 +757,7 @@ static const char *const xauth_attr_name[] = {
     };
 
 enum_names xauth_attr_names =
     };
 
 enum_names xauth_attr_names =
-    { XAUTH_USER_NAME , XAUTH_ANSWER, xauth_attr_name , &xauth_attr_tv_names };
+    { XAUTH_USER_NAME , XAUTH_ANSWER, xauth_attr_name , &unity_attr_names };
 
 static const char *const modecfg_attr_name[] = {
        "INTERNAL_IP4_ADDRESS",
 
 static const char *const modecfg_attr_name[] = {
        "INTERNAL_IP4_ADDRESS",
@@ -757,7 +775,6 @@ static const char *const modecfg_attr_name[] = {
        "INTERNAL_IP4_SUBNET",
        "SUPPORTED_ATTRIBUTES",
        "INTERNAL_IP6_SUBNET",
        "INTERNAL_IP4_SUBNET",
        "SUPPORTED_ATTRIBUTES",
        "INTERNAL_IP6_SUBNET",
-       NULL
     };
 
 enum_names modecfg_attr_names =
     };
 
 enum_names modecfg_attr_names =
index 205203f..2f3587d 100644 (file)
@@ -1,3 +1,4 @@
+
 /* manifest constants
  * Copyright (C) 1997 Angelos D. Keromytis.
  * Copyright (C) 1998-2002  D. Hugh Redelmeier.
 /* manifest constants
  * Copyright (C) 1997 Angelos D. Keromytis.
  * Copyright (C) 1998-2002  D. Hugh Redelmeier.
@@ -666,6 +667,7 @@ extern enum_names attr_msg_type_names;
 #define    MODECFG_ROOF               16
 
 extern enum_names modecfg_attr_names;
 #define    MODECFG_ROOF               16
 
 extern enum_names modecfg_attr_names;
+
 /* XAUTH attribute values */
 #define    XAUTH_TYPE                16520
 #define    XAUTH_USER_NAME           16521
 /* XAUTH attribute values */
 #define    XAUTH_TYPE                16520
 #define    XAUTH_USER_NAME           16521
@@ -679,15 +681,37 @@ extern enum_names modecfg_attr_names;
 #define    XAUTH_ANSWER              16529
 
 #define    XAUTH_BASE                XAUTH_TYPE
 #define    XAUTH_ANSWER              16529
 
 #define    XAUTH_BASE                XAUTH_TYPE
+#define    XAUTH_ROOF                16530
 
 extern enum_names xauth_attr_names;
 
 
 extern enum_names xauth_attr_names;
 
+/* ISAKMP mode config attributes specific to the Unity vendor Id */
+#define   UNITY_BANNER             28672
+#define   UNITY_SAVE_PASSWD        28673
+#define   UNITY_DEF_DOMAIN         28674
+#define   UNITY_SPLITDNS_NAME      28675
+#define   UNITY_SPLIT_INCLUDE      28676
+#define   UNITY_NATT_PORT          28677
+#define   UNITY_LOCAL_LAN          28678
+#define   UNITY_PFS                28679
+#define   UNITY_FW_TYPE                    28680
+#define   UNITY_BACKUP_SERVERS     28681
+#define   UNITY_DDNS_HOSTNAME      28682
+
+#define   UNITY_BASE                UNITY_BANNER
+
+extern enum_names unity_attr_names;
+
 /* XAUTH authentication types */
 #define XAUTH_TYPE_GENERIC 0
 #define XAUTH_TYPE_CHAP    1
 #define XAUTH_TYPE_OTP     2
 #define XAUTH_TYPE_SKEY    3
 
 /* XAUTH authentication types */
 #define XAUTH_TYPE_GENERIC 0
 #define XAUTH_TYPE_CHAP    1
 #define XAUTH_TYPE_OTP     2
 #define XAUTH_TYPE_SKEY    3
 
+/* Values for XAUTH_STATUS */
+#define        XAUTH_STATUS_FAIL       0
+#define        XAUTH_STATUS_OK         1
+
 extern enum_names xauth_type_names;
 
 /* Exchange types
 extern enum_names xauth_type_names;
 
 /* Exchange types
index 2fcc27d..2fff7a3 100644 (file)
@@ -357,6 +357,10 @@ modecfg_build_msg(struct state *st, pb_stream *rbody
                {
                    attr_type = XAUTH_BASE;
                }
                {
                    attr_type = XAUTH_BASE;
                }
+               else if (attr_type == XAUTH_ROOF)
+               {
+                   attr_type = UNITY_BASE;
+               }
                attr_set >>= 1;
            }
        }
                attr_set >>= 1;
            }
        }