This is an updated patch to make the current version of openswan compile
with gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/openswan-2.2.0/include/kernel_alg.h ./include/kernel_alg.h
--- ../tmp-orig/openswan-2.2.0/include/kernel_alg.h     2004-04-18 
05:02:51.000000000 +0200
+++ ./include/kernel_alg.h      2005-06-20 15:30:38.000000000 +0200
@@ -18,6 +18,8 @@
 #ifndef _KERNEL_ALG_H
 #define _KERNEL_ALG_H
 
+#include "../linux/include/pfkeyv2.h"
+
 /* Registration messages from pluto */
 extern void kernel_alg_register_pfkey(const struct sadb_msg *msg, int buflen);
 
diff -urN ../tmp-orig/openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c 
./linux/lib/libfreeswan/pfkey_v2_build.c
--- ../tmp-orig/openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c   
2004-04-12 04:59:06.000000000 +0200
+++ ./linux/lib/libfreeswan/pfkey_v2_build.c    2005-06-20 15:25:52.000000000 
+0200
@@ -173,9 +173,9 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_msg = (struct sadb_msg*)
-            MALLOC(sizeof(struct sadb_msg)))) {
+       pfkey_msg = (struct sadb_msg*) MALLOC(sizeof(struct sadb_msg));
+       *pfkey_ext = (struct sadb_ext*) pfkey_msg;
+       if(!*pfkey_ext) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_msg_hdr_build: "
                        "memory allocation failed\n");
@@ -297,9 +297,9 @@
                SENDERR(EINVAL);
        }
        
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_sa = (struct sadb_sa*)
-            MALLOC(sizeof(struct sadb_sa)))) {
+       pfkey_sa = (struct sadb_sa*) MALLOC(sizeof(struct sadb_sa));
+       *pfkey_ext = (struct sadb_ext*) pfkey_sa;
+       if(!*pfkey_ext) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_sa_build: "
                        "memory allocation failed\n");
@@ -374,9 +374,9 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_lifetime = (struct sadb_lifetime*)
-            MALLOC(sizeof(struct sadb_lifetime)))) {
+       pfkey_lifetime = (struct sadb_lifetime*) MALLOC(sizeof(struct 
sadb_lifetime));
+       *pfkey_ext = (struct sadb_ext*) pfkey_lifetime;
+       if(!*pfkey_ext) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_lifetime_build: "
                        "memory allocation failed\n");
@@ -563,10 +563,10 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_key = (struct sadb_key*)
+       pfkey_key = (struct sadb_key*)
             MALLOC(sizeof(struct sadb_key) +
-                                   DIVUP(key_bits, 64) * 
IPSEC_PFKEYv2_ALIGN))) {
+                                   DIVUP(key_bits, 64) * IPSEC_PFKEYv2_ALIGN);
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_key)) {
                ERROR("pfkey_key_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -644,9 +644,9 @@
        }
 #endif
            
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_ident = (struct sadb_ident*)
-            MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN))) {
+       pfkey_ident = (struct sadb_ident*)
+            MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN);
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_ident)) {
                ERROR("pfkey_ident_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -696,10 +696,10 @@
                (*pfkey_ext)->sadb_ext_type);
        SENDERR(EINVAL); /* don't process these yet */
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_sens = (struct sadb_sens*)
+       pfkey_sens = (struct sadb_sens*)
             MALLOC(sizeof(struct sadb_sens) +
-                   (sens_len + integ_len) * sizeof(uint64_t)))) {
+                   (sens_len + integ_len) * sizeof(uint64_t));
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_sens)) {
                ERROR("pfkey_sens_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -753,10 +753,10 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_prop = (struct sadb_prop*)
+       pfkey_prop = (struct sadb_prop*)
             MALLOC(sizeof(struct sadb_prop) +
-                   comb_num * sizeof(struct sadb_comb)))) {
+                   comb_num * sizeof(struct sadb_comb));
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_prop)) {
                ERROR("pfkey_prop_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -833,11 +833,11 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_supported = (struct sadb_supported*)
+       pfkey_supported = (struct sadb_supported*)
             MALLOC(sizeof(struct sadb_supported) +
                                               alg_num *
-                                              sizeof(struct sadb_alg)))) {
+                                              sizeof(struct sadb_alg));
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_supported)) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_supported_build: "
                        "memory allocation failed\n");
@@ -914,9 +914,9 @@
                SENDERR(EEXIST);
        }
        
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_spirange = (struct sadb_spirange*)
-            MALLOC(sizeof(struct sadb_spirange)))) {
+       pfkey_spirange = (struct sadb_spirange*)
+            MALLOC(sizeof(struct sadb_spirange));
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_spirange)) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_spirange_build: "
                        "memory allocation failed\n");
@@ -958,9 +958,9 @@
                (*pfkey_ext)->sadb_ext_type);
        SENDERR(EINVAL); /* don't process these yet */
 
-       if(!(*pfkey_ext = (struct sadb_ext*)
-            pfkey_x_kmprivate = (struct sadb_x_kmprivate*)
-            MALLOC(sizeof(struct sadb_x_kmprivate)))) {
+       pfkey_x_kmprivate = (struct sadb_x_kmprivate*)
+            MALLOC(sizeof(struct sadb_x_kmprivate));
+       if(!(*pfkey_ext = (struct sadb_ext*) pfkey_x_kmprivate)) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_x_kmprivate_build: "
                        "memory allocation failed\n");
@@ -1009,8 +1009,9 @@
                SENDERR(EINVAL);
        }
 
-       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_satype = (struct 
sadb_x_satype*)
-            MALLOC(sizeof(struct sadb_x_satype)))) {
+       pfkey_x_satype = (struct sadb_x_satype*)
+            MALLOC(sizeof(struct sadb_x_satype));
+       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_satype)) {
                ERROR("pfkey_x_satype_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -1064,8 +1065,9 @@
                "tunnel=%x netlink=%x xform=%x eroute=%x spi=%x radij=%x esp=%x 
ah=%x rcv=%x pfkey=%x ipcomp=%x verbose=%x?\n",
                tunnel, netlink, xform, eroute, spi, radij, esp, ah, rcv, 
pfkey, ipcomp, verbose);
 
-       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_debug = (struct 
sadb_x_debug*)
-            MALLOC(sizeof(struct sadb_x_debug)))) {
+       pfkey_x_debug = (struct sadb_x_debug*)
+            MALLOC(sizeof(struct sadb_x_debug));
+       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_debug)) {
                ERROR("pfkey_x_debug_build: "
                        "memory allocation failed\n");
                SENDERR(ENOMEM);
@@ -1122,8 +1124,9 @@
                "pfkey_x_nat_t_type_build: "
                "type=%d\n", type);
 
-       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type = (struct 
sadb_x_nat_t_type*)
-            MALLOC(sizeof(struct sadb_x_nat_t_type)))) {
+       pfkey_x_nat_t_type = (struct sadb_x_nat_t_type*)
+            MALLOC(sizeof(struct sadb_x_nat_t_type));
+       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type)) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_x_nat_t_type_build: "
                        "memory allocation failed\n");
@@ -1174,8 +1177,9 @@
                "pfkey_x_nat_t_port_build: "
                "ext=%d, port=%d\n", exttype, port);
 
-       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port = (struct 
sadb_x_nat_t_port*)
-            MALLOC(sizeof(struct sadb_x_nat_t_port)))) {
+       pfkey_x_nat_t_port = (struct sadb_x_nat_t_port*)
+            MALLOC(sizeof(struct sadb_x_nat_t_port));
+       if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port)) {
                DEBUGGING(PF_KEY_DEBUG_BUILD,
                        "pfkey_x_nat_t_port_build: "
                        "memory allocation failed\n");
@@ -1328,7 +1332,7 @@
                        memcpy(pfkey_ext,
                               extensions[ext],
                               (extensions[ext])->sadb_ext_len * 
IPSEC_PFKEYv2_ALIGN);
-                       ((char*)pfkey_ext) += (extensions[ext])->sadb_ext_len * 
IPSEC_PFKEYv2_ALIGN;
+                       pfkey_ext = ((char*)pfkey_ext) + 
(extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN;
                        /* Mark that we have seen this extension and remember 
the header location */
                        extensions_seen |= ( 1 << ext );
                }
diff -urN ../tmp-orig/openswan-2.2.0/programs/ikeping/ikeping.c 
./programs/ikeping/ikeping.c
--- ../tmp-orig/openswan-2.2.0/programs/ikeping/ikeping.c       2004-04-18 
05:05:10.000000000 +0200
+++ ./programs/ikeping/ikeping.c        2005-06-20 15:13:37.000000000 +0200
@@ -196,7 +196,8 @@
        ip_address sender;
        struct isakmp_hdr ih;
        char   buf[64];
-       int n, rport, sendlen;
+       int n, rport;
+       socklen_t sendlen;
        const char *xchg_name;
        int xchg;
 
diff -urN ../tmp-orig/openswan-2.2.0/programs/pluto/db_ops.c 
./programs/pluto/db_ops.c
--- ../tmp-orig/openswan-2.2.0/programs/pluto/db_ops.c  2004-06-04 
03:59:33.000000000 +0200
+++ ./programs/pluto/db_ops.c   2005-06-20 15:27:13.000000000 +0200
@@ -181,7 +181,7 @@
        ctx->trans0 = ctx->prop.trans = new_trans;
        /* update trans_cur (by offset) */
        offset = (char *)(new_trans) - (char *)(old_trans);
-       (char *)(ctx->trans_cur) += offset;
+       ctx->trans_cur = (char *)(ctx->trans_cur) + offset;
        /* update elem count */
        ctx->max_trans = max_trans;
        PFREE_ST(old_trans, db_trans_st);
@@ -213,11 +213,11 @@
        
        /* update attrs0 and attrs_cur (obviously) */
        offset = (char *)(new_attrs) - (char *)(old_attrs);
-       (char *)ctx->attrs0 += offset;
-       (char *)ctx->attrs_cur += offset;
+       ctx->attrs0 = (char *)ctx->attrs0 + offset;
+       ctx->attrs_cur = (char *)ctx->attrs_cur + offset;
        /* for each transform, rewrite attrs pointer by offsetting it */
        for (t=ctx->prop.trans, ti=0; ti < ctx->prop.trans_cnt; t++, ti++) {
-               (char *)(t->attrs) += offset;
+               t->attrs = (char *)(t->attrs) + offset;
        }
        /* update elem count */
        ctx->max_attrs = max_attrs;
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/cmp.c 
./programs/starter/cmp.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/cmp.c   2004-04-10 
19:15:23.000000000 +0200
+++ ./programs/starter/cmp.c    2005-06-20 15:13:37.000000000 +0200
@@ -23,7 +23,7 @@
 
 #define streqn(a,b) (a)?((b)?(strcmp(a,b)):(-1)):(b!=NULL)
 
-#define STRCMP(obj) if (streqn(c1->obj,c2->obj)) return -1
+#define STRCMP(obj) if (streqn((char*)c1->obj,(char*)c2->obj)) return -1
 #define VARCMP(obj) if (c1->obj!=c2->obj) return -1
 #define MEMCMP(obj) if (memcmp(&c1->obj,&c2->obj,sizeof(c1->obj))) return -1
 #define ADDCMP(obj) if (addrcmp(&c1->obj,&c2->obj)) return -1
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/confread.c 
./programs/starter/confread.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/confread.c      2004-04-11 
17:17:30.000000000 +0200
+++ ./programs/starter/confread.c       2005-06-20 15:13:37.000000000 +0200
@@ -347,14 +347,14 @@
        char *value = end->strings[KSCF_RSAKEY1];
 
        if (end->rsakey1) free(end->rsakey1);
-       end->rsakey1 = xstrdup(value);
+       end->rsakey1 = (unsigned char*)xstrdup(value);
     }
     if(end->strings[KSCF_RSAKEY2] != NULL)
     {
        char *value = end->strings[KSCF_RSAKEY2];
 
        if (end->rsakey2) free(end->rsakey2);
-       end->rsakey2 = xstrdup(value);
+       end->rsakey2 = (unsigned char*)xstrdup(value);
     }
 
     return err;
@@ -754,14 +754,15 @@
     memset(&conn->link, 0, sizeof(conn->link));
 
 #define CONN_STR(v) if (v) v=xstrdup(v)
+#define CONN_STRU(v) if (v) v=(unsigned char*)xstrdup((char*)v)
     CONN_STR(conn->left.iface);
     CONN_STR(conn->left.id);
-    CONN_STR(conn->left.rsakey1);
-    CONN_STR(conn->left.rsakey2);
+    CONN_STRU(conn->left.rsakey1);
+    CONN_STRU(conn->left.rsakey2);
     CONN_STR(conn->right.iface);
     CONN_STR(conn->right.id);
-    CONN_STR(conn->right.rsakey1);
-    CONN_STR(conn->right.rsakey2);
+    CONN_STRU(conn->right.rsakey1);
+    CONN_STRU(conn->right.rsakey2);
     
     for(i=0; i<KSCF_MAX; i++)
     {
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/interfaces.c 
./programs/starter/interfaces.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/interfaces.c    2004-04-10 
18:37:37.000000000 +0200
+++ ./programs/starter/interfaces.c     2005-06-20 15:13:37.000000000 +0200
@@ -322,7 +322,7 @@
 int starter_ifaces_load (char **ifaces, unsigned int omtu, int nat_t)
 {
        char *tmp_phys, *phys;
-       int n;
+       unsigned n;
        char **i;
        int sock;
        int j, found;
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/invokepluto.c 
./programs/starter/invokepluto.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/invokepluto.c   2004-04-10 
19:15:23.000000000 +0200
+++ ./programs/starter/invokepluto.c    2005-06-20 15:48:04.000000000 +0200
@@ -181,7 +181,9 @@
                                 * Child
                                 */
                                setsid();
-                               sigsetmask(0);
+                               sigset_t SET;
+                               sigemptyset(&SET);
+                               sigprocmask(SIG_SETMASK,&SET,0);
                                execv(arg[0], arg);
                                starter_log(LOG_LEVEL_ERR, "can't 
execv(%s,...): %s", arg[0],
                                        strerror(errno));
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/keywords.c 
./programs/starter/keywords.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/keywords.c      2004-04-18 
05:09:27.000000000 +0200
+++ ./programs/starter/keywords.c       2005-06-20 15:40:46.000000000 +0200
@@ -33,22 +33,22 @@
 #include "parserlast.h"
 
 struct keyword_enum_value kw_klipsdebug_values[]={
-    { "all",      LRANGE(KDF_XMIT, KDF_COMP) },
-    { "none",     0 },
-    { "verbose",  LELEM(KDF_VERBOSE) },
-    { "xmit",     LELEM(KDF_XMIT) },
-    { "tunnel-xmit", LELEM(KDF_XMIT) },
-    { "netlink",  LELEM(KDF_NETLINK) },
-    { "xform",    LELEM(KDF_XFORM) },
-    { "eroute",   LELEM(KDF_EROUTE) },
-    { "spi",      LELEM(KDF_SPI) },
-    { "radij",    LELEM(KDF_RADIJ) },
-    { "esp",      LELEM(KDF_ESP) },
-    { "ah",       LELEM(KDF_AH) },
-    { "rcv",      LELEM(KDF_RCV) },
-    { "tunnel",   LELEM(KDF_TUNNEL) },
-    { "pfkey",    LELEM(KDF_PFKEY) },
-    { "comp",     LELEM(KDF_COMP) },
+    { (unsigned char*)"all",      LRANGE(KDF_XMIT, KDF_COMP) },
+    { (unsigned char*)"none",     0 },
+    { (unsigned char*)"verbose",  LELEM(KDF_VERBOSE) },
+    { (unsigned char*)"xmit",     LELEM(KDF_XMIT) },
+    { (unsigned char*)"tunnel-xmit", LELEM(KDF_XMIT) },
+    { (unsigned char*)"netlink",  LELEM(KDF_NETLINK) },
+    { (unsigned char*)"xform",    LELEM(KDF_XFORM) },
+    { (unsigned char*)"eroute",   LELEM(KDF_EROUTE) },
+    { (unsigned char*)"spi",      LELEM(KDF_SPI) },
+    { (unsigned char*)"radij",    LELEM(KDF_RADIJ) },
+    { (unsigned char*)"esp",      LELEM(KDF_ESP) },
+    { (unsigned char*)"ah",       LELEM(KDF_AH) },
+    { (unsigned char*)"rcv",      LELEM(KDF_RCV) },
+    { (unsigned char*)"tunnel",   LELEM(KDF_TUNNEL) },
+    { (unsigned char*)"pfkey",    LELEM(KDF_PFKEY) },
+    { (unsigned char*)"comp",     LELEM(KDF_COMP) },
 };
 
 struct keyword_enum_values kw_klipsdebug_list=
@@ -56,24 +56,24 @@
     
 
 struct keyword_enum_value kw_plutodebug_values[]={
-    { "none",     DBG_NONE },
-    { "all",      DBG_ALL },
-    { "raw",      DBG_RAW },
-    { "crypt",    DBG_CRYPT },
-    { "parsing",  DBG_PARSING },
-    { "emitting", DBG_EMITTING },
-    { "control",  DBG_CONTROL },
-    { "lifecycle", DBG_LIFECYCLE },
-    { "klips",    DBG_KLIPS },
-    { "dns",      DBG_DNS },
-    { "oppo",     DBG_OPPO },
-    { "controlmore", DBG_CONTROLMORE },
-    { "private",  DBG_PRIVATE },
-
-    { "impair-delay-adns-key-answer", IMPAIR_DELAY_ADNS_KEY_ANSWER },
-    { "impair-delay-adns-txt-answer", IMPAIR_DELAY_ADNS_TXT_ANSWER },
-    { "impair-bust-mi2", IMPAIR_BUST_MI2 },
-    { "impair-bust-mr2", IMPAIR_BUST_MR2 },
+    { (unsigned char*)"none",     DBG_NONE },
+    { (unsigned char*)"all",      DBG_ALL },
+    { (unsigned char*)"raw",      DBG_RAW },
+    { (unsigned char*)"crypt",    DBG_CRYPT },
+    { (unsigned char*)"parsing",  DBG_PARSING },
+    { (unsigned char*)"emitting", DBG_EMITTING },
+    { (unsigned char*)"control",  DBG_CONTROL },
+    { (unsigned char*)"lifecycle", DBG_LIFECYCLE },
+    { (unsigned char*)"klips",    DBG_KLIPS },
+    { (unsigned char*)"dns",      DBG_DNS },
+    { (unsigned char*)"oppo",     DBG_OPPO },
+    { (unsigned char*)"controlmore", DBG_CONTROLMORE },
+    { (unsigned char*)"private",  DBG_PRIVATE },
+
+    { (unsigned char*)"impair-delay-adns-key-answer", 
IMPAIR_DELAY_ADNS_KEY_ANSWER },
+    { (unsigned char*)"impair-delay-adns-txt-answer", 
IMPAIR_DELAY_ADNS_TXT_ANSWER },
+    { (unsigned char*)"impair-bust-mi2", IMPAIR_BUST_MI2 },
+    { (unsigned char*)"impair-bust-mr2", IMPAIR_BUST_MR2 },
 };
 
 
@@ -89,7 +89,7 @@
  * Values for keyexchange=
  */
 struct keyword_enum_value kw_keyexchange_values[]={
-    { "ike",  KH_IKE },
+    { (unsigned char*)"ike",  KH_IKE },
 };
 
 struct keyword_enum_values kw_keyexchange_list=
@@ -99,10 +99,10 @@
  * Values for auth={add,start,route,ignore}
  */
 struct keyword_enum_value kw_auto_values[]={
-    { "ignore", STARTUP_NO },
-    { "add",    STARTUP_ADD },
-    { "route",  STARTUP_ROUTE },
-    { "start",  STARTUP_START },
+    { (unsigned char*)"ignore", STARTUP_NO },
+    { (unsigned char*)"add",    STARTUP_ADD },
+    { (unsigned char*)"route",  STARTUP_ROUTE },
+    { (unsigned char*)"start",  STARTUP_START },
 };
 
 struct keyword_enum_values kw_auto_list=
@@ -112,14 +112,14 @@
  * Values for type={tunnel,transport,udpencap}
  */
 struct keyword_enum_value kw_type_values[]={
-    { "tunnel",    KS_TUNNEL },
-    { "transport", KS_TRANSPORT },
-    { "udpencap",  KS_UDPENCAP },
-    { "passthrough", KS_PASSTHROUGH },
-    { "udp",       KS_UDPENCAP },
-    { "pass",      KS_PASSTHROUGH },
-    { "reject",    KS_REJECT },
-    { "drop",      KS_DROP },
+    { (unsigned char*)"tunnel",    KS_TUNNEL },
+    { (unsigned char*)"transport", KS_TRANSPORT },
+    { (unsigned char*)"udpencap",  KS_UDPENCAP },
+    { (unsigned char*)"passthrough", KS_PASSTHROUGH },
+    { (unsigned char*)"udp",       KS_UDPENCAP },
+    { (unsigned char*)"pass",      KS_PASSTHROUGH },
+    { (unsigned char*)"reject",    KS_REJECT },
+    { (unsigned char*)"drop",      KS_DROP },
 };
 
 struct keyword_enum_values kw_type_list=
@@ -129,8 +129,8 @@
  * Values for authby={rsasig, secret}
  */
 struct keyword_enum_value kw_authby_values[]={
-    { "rsasig",    POLICY_RSASIG},
-    { "secret",    POLICY_PSK},
+    { (unsigned char*)"rsasig",    POLICY_RSASIG},
+    { (unsigned char*)"secret",    POLICY_PSK},
 };
 
 struct keyword_enum_values kw_authby_list=
@@ -140,10 +140,10 @@
  * Values for failureshunt={passthrough, drop, reject, none}
  */
 struct keyword_enum_value kw_failureshunt_values[]={
-    { "none",        POLICY_FAIL_NONE },
-    { "passthrough", POLICY_FAIL_PASS },
-    { "drop",        POLICY_FAIL_DROP },
-    { "reject",      POLICY_FAIL_REJECT },
+    { (unsigned char*)"none",        POLICY_FAIL_NONE },
+    { (unsigned char*)"passthrough", POLICY_FAIL_PASS },
+    { (unsigned char*)"drop",        POLICY_FAIL_DROP },
+    { (unsigned char*)"reject",      POLICY_FAIL_REJECT },
 };
 
 struct keyword_enum_values kw_failureshunt_list=
@@ -153,9 +153,9 @@
  * Values for rsasigkey={%dnsondemand, %dns, literal }
  */
 struct keyword_enum_value kw_rsasigkey_values[]={
-    { "",             PUBKEY_PREEXCHANGED },
-    { "%dns",         PUBKEY_DNS },
-    { "%dnsondemand", PUBKEY_DNSONDEMAND },
+    { (unsigned char*)"",             PUBKEY_PREEXCHANGED },
+    { (unsigned char*)"%dns",         PUBKEY_DNS },
+    { (unsigned char*)"%dnsondemand", PUBKEY_DNSONDEMAND },
 };
 
 struct keyword_enum_values kw_rsasigkey_list=
@@ -327,7 +327,7 @@
 
        assert(kd->validenum != NULL);
        for(kevcount = kd->validenum->valuesize, kev = kd->validenum->values;
-           kevcount > 0 && strcasecmp(piece, kev->name)!=0;
+           kevcount > 0 && strcasecmp(piece, (const char*)kev->name)!=0;
            kev++, kevcount--);
 
        /* if we found something */
@@ -393,7 +393,7 @@
     assert(kd->validenum != NULL && kd->validenum->values != NULL);
 
     for(kevcount = kd->validenum->valuesize, kev = kd->validenum->values;
-       kevcount > 0 && strcasecmp(s, kev->name)!=0;
+       kevcount > 0 && strcasecmp(s, (const char*)kev->name)!=0;
        kev++, kevcount--);
 
     /* if we found something */
diff -urN ../tmp-orig/openswan-2.2.0/programs/starter/starterwhack.c 
./programs/starter/starterwhack.c
--- ../tmp-orig/openswan-2.2.0/programs/starter/starterwhack.c  2004-04-10 
19:15:23.000000000 +0200
+++ ./programs/starter/starterwhack.c   2005-06-20 15:13:37.000000000 +0200
@@ -152,7 +152,7 @@
        msg.pubkey_alg = PUBKEY_ALG_RSA;
        if (end->id && end->rsakey1) {
                msg.keyid = end->id;
-               err = atobytes(end->rsakey1, 0, keyspace, sizeof(keyspace),
+               err = atobytes((char*)end->rsakey1, 0, keyspace, 
sizeof(keyspace),
                        &msg.keyval.len);
                if (err) {
                        starter_log(LOG_LEVEL_ERR, "conn %s/%s: rsakey 
malformed [%s]",
@@ -160,13 +160,13 @@
                        return 1;
                }
                else {
-                       msg.keyval.ptr = keyspace;
+                       msg.keyval.ptr = (unsigned char*)keyspace;
                        return send_whack_msg(&msg);
                }
        }
        if (end->id && end->rsakey2) {
                msg.keyid = end->id;
-               err = atobytes(end->rsakey2, 0, keyspace, sizeof(keyspace),
+               err = atobytes((char*)end->rsakey2, 0, keyspace, 
sizeof(keyspace),
                        &msg.keyval.len);
                if (err) {
                        starter_log(LOG_LEVEL_ERR, "conn %s/%s: rsakey 
malformed [%s]",
@@ -174,7 +174,7 @@
                        return 1;
                }
                else {
-                       msg.keyval.ptr = keyspace;
+                       msg.keyval.ptr = (unsigned char*)keyspace;
                        return send_whack_msg(&msg);
                }
        }


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to