From 9135ca401186fb14e5e5110bbb04d1ccc480360a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 15 Nov 2016 04:15:44 +0000
Subject: [PATCH] Fix build with clang

Fixes for following errors found by clang

src/racoon/eaytest.c:316:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true
      [-Werror,-Wtautological-pointer-compare]
        if (dnstr_w1 != NULL) {
            ^~~~~~~~    ~~~~
src/racoon/eaytest.c:326:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true
      [-Werror,-Wtautological-pointer-compare]
        if (dnstr_w1 != NULL) {
            ^~~~~~~~    ~~~~

src/racoon/isakmp.c:1134:11: error: promoted type 'int' of K&R function parameter is not compatible with the
                  parameter type 'u_int8_t' (aka 'unsigned char') declared in a previous prototype [-Werror,-Wknr-promoted-parameter]
                    u_int8_t etype;
                             ^
src/racoon/isakmp.c:184:48: note: previous declaration is here
        struct sockaddr *, struct sockaddr *, u_int8_t));
                                                     ^
            1 error generated.

src/racoon/racoonctl.c:1457:15: error: incompatible pointer types passing 'struct evt_async *' to parameter of type
        'caddr_t' (aka 'char *') [-Werror,-Wincompatible-pointer-types]
                            print_cfg(ec, len);
                                      ^~

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/racoon/eaytest.c   |  4 ++--
 src/racoon/isakmp.c    | 10 +++++-----
 src/racoon/racoonctl.c |  7 +++----
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c
index 1474bdc..d609e4f 100644
--- a/src/racoon/eaytest.c
+++ b/src/racoon/eaytest.c
@@ -313,7 +313,7 @@ certtest(ac, av)
 
 	printf("exact match: succeed.\n");
 
-	if (dnstr_w1 != NULL) {
+	if (dnstr_w1[0] != '\0') {
 		asn1dn = eay_str2asn1dn(dnstr_w1, strlen(dnstr_w1));
 		if (asn1dn == NULL || asn1dn->l == asn1dn0.l)
 			errx(1, "asn1dn length wrong for wildcard 1\n");
@@ -323,7 +323,7 @@ certtest(ac, av)
 		printf("wildcard 1 match: succeed.\n");
 	}
 
-	if (dnstr_w1 != NULL) {
+	if (dnstr_w1[0] != '\0') {
 		asn1dn = eay_str2asn1dn(dnstr_w2, strlen(dnstr_w2));
 		if (asn1dn == NULL || asn1dn->l == asn1dn0.l)
 			errx(1, "asn1dn length wrong for wildcard 2\n");
diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c
index 2672f7a..da7ebe8 100644
--- a/src/racoon/isakmp.c
+++ b/src/racoon/isakmp.c
@@ -567,7 +567,7 @@ isakmp_main(msg, remote, local)
 
 				/* it must be responder's 1st exchange. */
 				if (isakmp_ph1begin_r(msg, remote, local,
-					isakmp->etype) < 0)
+					(u_int8_t)isakmp->etype) < 0)
 					return -1;
 				break;
 
@@ -1128,10 +1128,10 @@ isakmp_ph1begin_i(rmconf, remote, local)
 
 /* new negotiation of phase 1 for responder */
 static int
-isakmp_ph1begin_r(msg, remote, local, etype)
-	vchar_t *msg;
-	struct sockaddr *remote, *local;
-	u_int8_t etype;
+isakmp_ph1begin_r(vchar_t *msg,
+	struct sockaddr *remote,
+	struct sockaddr *local,
+	u_int8_t etype)
 {
 	struct isakmp *isakmp = (struct isakmp *)msg->v;
 	struct ph1handle *iph1;
diff --git a/src/racoon/racoonctl.c b/src/racoon/racoonctl.c
index da28ecd..bbf068e 100644
--- a/src/racoon/racoonctl.c
+++ b/src/racoon/racoonctl.c
@@ -1299,9 +1299,8 @@ print_evt(evtdump)
  * Print ISAKMP mode config info (IP and banner)
  */
 void
-print_cfg(buf, len)
-	caddr_t buf;
-	int len;
+print_cfg(caddr_t buf,
+	int len)
 {
 	struct evt_async *evtdump = (struct evt_async *)buf;
 	struct isakmp_data *attr;
@@ -1454,7 +1453,7 @@ handle_recv(combuf)
 		else if (evt_quit_event == ec->ec_type) {
 			switch (ec->ec_type) {
 			case EVT_PHASE1_MODE_CFG:
-				print_cfg(ec, len);
+				print_cfg((caddr_t)ec, len);
 				break;
 			default:
 				print_evt(ec);
-- 
1.9.1

