Fix various compiler warnings throughout the code

Mostly signed/unsigned and typecasting issues

Taken from http://sourceforge.net/tracker/index.php?func=detail&aid=1811517&group_id=68956&atid=522957
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 62a37f2..60a4f80 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -124,7 +124,7 @@
 
 int encaps_printf(void *p, void *packet, unsigned len)
 {
-  int i;
+  unsigned int i;
   if (debug) {
     printf("The packet looks like this:\n");
     for( i=0; i<len; i++) {
@@ -423,7 +423,7 @@
   }
   apn.l = strlen(args_info.apn_arg) + 1;
   apn.v[0] = (char) strlen(args_info.apn_arg);
-  strncpy(&apn.v[1], args_info.apn_arg, sizeof(apn.v)-1);
+  strncpy((char *) &apn.v[1], args_info.apn_arg, sizeof(apn.v)-1);
 
 
   /* foreground                                                   */
diff --git a/ggsn/ippool.c b/ggsn/ippool.c
index 35b14a3..fa3d8af 100644
--- a/ggsn/ippool.c
+++ b/ggsn/ippool.c
@@ -23,7 +23,7 @@
 
 
 int ippool_printaddr(struct ippool_t *this) {
-  int n;
+  unsigned int n;
   printf("ippool_printaddr\n");
   printf("Firstdyn %d\n", this->firstdyn - this->member);
   printf("Lastdyn %d\n",  this->lastdyn - this->member);
@@ -110,7 +110,7 @@
   unsigned int a1, a2, a3, a4;
   unsigned int m1, m2, m3, m4;
   int c;
-  unsigned int m;
+  int m;
   int masklog;
 
   c = sscanf(pool, "%u.%u.%u.%u/%u.%u.%u.%u",
@@ -167,8 +167,8 @@
   struct in_addr stataddr;
   struct in_addr statmask;
   unsigned int m;
-  unsigned int listsize;
-  unsigned int dynsize;
+  int listsize;
+  int dynsize;
   unsigned int statsize;
 
   if (!allowdyn) {
diff --git a/ggsn/ippool.h b/ggsn/ippool.h
index fe9f90c..02691a6 100644
--- a/ggsn/ippool.h
+++ b/ggsn/ippool.h
@@ -37,13 +37,13 @@
 struct ippoolm_t;                /* Forward declaration */
 
 struct ippool_t {
-  int listsize;                  /* Total number of addresses */
+  unsigned int listsize;                  /* Total number of addresses */
   int allowdyn;                  /* Allow dynamic IP address allocation */
   int allowstat;                 /* Allow static IP address allocation */
   struct in_addr stataddr;       /* Static address range network address */
   struct in_addr statmask;       /* Static address range network mask */
   struct ippoolm_t *member;      /* Listsize array of members */
-  int hashsize;                  /* Size of hash table */
+  unsigned int hashsize;                  /* Size of hash table */
   int hashlog;                   /* Log2 size of hash table */
   int hashmask;                  /* Bitmask for calculating hash */
   struct ippoolm_t **hash;       /* Hashsize array of pointer to member */
diff --git a/ggsn/syserr.c b/ggsn/syserr.c
index e0ebc3a..002d8c3 100644
--- a/ggsn/syserr.c
+++ b/ggsn/syserr.c
@@ -41,7 +41,7 @@
   va_list args;
   char buf[SYSERR_MSGSIZE];
   char buf2[SYSERR_MSGSIZE];
-  int n;
+  unsigned int n;
   int pos;
   
   va_start(args, fmt);
diff --git a/ggsn/tun.c b/ggsn/tun.c
index 365aec0..1cc706b 100644
--- a/ggsn/tun.c
+++ b/ggsn/tun.c
@@ -243,7 +243,7 @@
   } req;
   
   struct sockaddr_nl local;
-  int addr_len;
+  socklen_t addr_len;
   int fd;
   int status;
   
diff --git a/gtp/gtp.c b/gtp/gtp.c
index 9d4ea7b..d33a1ff 100644
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -72,7 +72,7 @@
   va_list args;
   char buf[ERRMSG_SIZE];
   char buf2[ERRMSG_SIZE];
-  int n;
+  unsigned int n;
   int pos;
   
   va_start(args, fmt);
@@ -177,7 +177,7 @@
  * to hold the packet header.
  * returns the length of the header. 0 on error.
  **/
-static int get_default_gtp(int version, uint8_t type, void *packet) {
+static unsigned int get_default_gtp(int version, uint8_t type, void *packet) {
   struct gtp0_header *gtp0_default = (struct gtp0_header*) packet;
   struct gtp1_header_long *gtp1_default = (struct gtp1_header_long*) packet;
   switch (version) {
@@ -286,7 +286,7 @@
 
 int print_packet(void *packet, unsigned len)
 {
-  int i;
+  unsigned int i;
   printf("The packet looks like this (%d bytes):\n", len);
   for( i=0; i<len; i++) {
     printf("%02x ", (unsigned char)*(char *)(packet+i));
@@ -298,7 +298,7 @@
 
 char* snprint_packet(struct gsn_t *gsn, struct sockaddr_in *peer,
 		     void *pack, unsigned len, char *buf, int size) {
-  int n;
+  unsigned int n;
   int pos;
   snprintf(buf, size, "Packet from %s:%u, length: %d, content:",
 	   inet_ntoa(peer->sin_addr),
@@ -867,7 +867,7 @@
 		 struct in_addr *inetaddr)
 {
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_ECHO_REQ, &packet);
+  unsigned int length = get_default_gtp(version, GTP_ECHO_REQ, &packet);
   return gtp_req(gsn, version, NULL, &packet, length, inetaddr, cbp);
 }
 
@@ -877,7 +877,7 @@
 		  void *pack, unsigned len)
 {
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_ECHO_RSP, &packet);
+  unsigned int length = get_default_gtp(version, GTP_ECHO_RSP, &packet);
   gtpie_tv1(&packet, &length, GTP_MAX, GTPIE_RECOVERY, gsn->restart_counter);
   return gtp_resp(version, gsn, NULL, &packet, length, peer, fd, 
 		  get_seq(pack), get_tid(pack));
@@ -948,7 +948,7 @@
   union gtp_packet packet;
 
   /* GTP 1 is the highest supported protocol */
-  int length = get_default_gtp(1, GTP_NOT_SUPPORTED, &packet);
+  unsigned int length = get_default_gtp(1, GTP_NOT_SUPPORTED, &packet);
   return gtp_notification(gsn, version, &packet, length, 
 			  peer, fd, 0);
 }
@@ -967,7 +967,7 @@
 		      int fd, void *pack, unsigned len)
 {
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_SUPP_EXT_HEADER, &packet);
+  unsigned int length = get_default_gtp(version, GTP_SUPP_EXT_HEADER, &packet);
 
   uint8_t pdcp_pdu = GTP_EXT_PDCP_PDU;
 
@@ -1008,7 +1008,7 @@
 extern int gtp_create_context_req(struct gsn_t *gsn, struct pdp_t *pdp, 
 				  void *cbp) {
   union gtp_packet packet;
-  int length = get_default_gtp(pdp->version, GTP_CREATE_PDP_REQ, &packet);
+  unsigned int length = get_default_gtp(pdp->version, GTP_CREATE_PDP_REQ, &packet);
   struct pdp_t *linked_pdp = NULL;
 
   /* TODO: Secondary PDP Context Activation Procedure */
@@ -1147,7 +1147,7 @@
 int gtp_create_pdp_resp(struct gsn_t *gsn, int version, struct pdp_t *pdp, 
 			uint8_t cause) {
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_CREATE_PDP_RSP, &packet);
+  unsigned int length = get_default_gtp(version, GTP_CREATE_PDP_RSP, &packet);
 
   gtpie_tv1(&packet, &length, GTP_MAX, GTPIE_CAUSE, cause);
 
@@ -1726,7 +1726,7 @@
 int gtp_update_context(struct gsn_t *gsn, struct pdp_t *pdp, void *cbp,
 		       struct in_addr* inetaddr) {
   union gtp_packet packet;
-  int length = get_default_gtp(pdp->version, GTP_UPDATE_PDP_REQ, &packet);
+  unsigned int length = get_default_gtp(pdp->version, GTP_UPDATE_PDP_REQ, &packet);
   
   if (pdp->version == 0)
     gtpie_tv0(&packet, &length, GTP_MAX, GTPIE_QOS_PROFILE0, 
@@ -1805,7 +1805,7 @@
 			struct pdp_t *pdp, uint8_t cause) {
   
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_CREATE_PDP_RSP, &packet);
+  unsigned int length = get_default_gtp(version, GTP_CREATE_PDP_RSP, &packet);
   
   gtpie_tv1(&packet, &length, GTP_MAX, GTPIE_CAUSE, cause);
   
@@ -2181,7 +2181,7 @@
 int gtp_delete_context_req(struct gsn_t *gsn, struct pdp_t *pdp, void *cbp,
 			   int teardown) {
   union gtp_packet packet;
-  int length = get_default_gtp(pdp->version, GTP_DELETE_PDP_REQ, &packet);
+  unsigned int length = get_default_gtp(pdp->version, GTP_DELETE_PDP_REQ, &packet);
   struct in_addr addr;
   struct pdp_t *linked_pdp;
   struct pdp_t *secondary_pdp;
@@ -2258,7 +2258,7 @@
 {
   union gtp_packet packet;
   struct pdp_t *secondary_pdp;
-  int length = get_default_gtp(version, GTP_DELETE_PDP_RSP, &packet);
+  unsigned int length = get_default_gtp(version, GTP_DELETE_PDP_RSP, &packet);
   int n;
 
   gtpie_tv1(&packet, &length, GTP_MAX, GTPIE_CAUSE, cause);
@@ -2432,7 +2432,7 @@
 		       void *pack, unsigned len)
 {
   union gtp_packet packet;
-  int length = get_default_gtp(version, GTP_ERROR, &packet);
+  unsigned int length = get_default_gtp(version, GTP_ERROR, &packet);
   
   return gtp_resp(version, gsn, NULL, &packet, length, peer, fd,
 		  get_seq(pack), get_tid(pack));
@@ -2524,7 +2524,7 @@
 {
   unsigned char buffer[PACKET_MAX];
   struct sockaddr_in peer;
-  int peerlen;
+  size_t peerlen;
   int status;
   struct gtp0_header *pheader;
   int version = 0; /* GTP version should be determined from header!*/
@@ -2656,7 +2656,7 @@
 {
   unsigned char buffer[PACKET_MAX];
   struct sockaddr_in peer;
-  int peerlen;
+  size_t peerlen;
   int status;
   struct gtp1_header_short *pheader;
   int version = 1; /* TODO GTP version should be determined from header!*/
@@ -2815,7 +2815,7 @@
 {
   unsigned char buffer[PACKET_MAX];
   struct sockaddr_in peer;
-  int peerlen;
+  size_t peerlen;
   int status;
   struct gtp1_header_short *pheader;
   int version = 1; /* GTP version should be determined from header!*/
diff --git a/gtp/gtpie.c b/gtp/gtpie.c
index a62d02c..2bf6b07 100644
--- a/gtp/gtpie.c
+++ b/gtp/gtpie.c
@@ -39,7 +39,7 @@
 
 #include "gtpie.h"
 
-int gtpie_tlv(void *p, int *length, int size, uint8_t t, int l, void *v) {
+int gtpie_tlv(void *p, unsigned int *length, unsigned int size, uint8_t t, int l, void *v) {
   if ((*length + 3 + l) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tlv.t = hton8(t);
   ((union gtpie_member*) (p + *length))->tlv.l = hton16(l);
@@ -48,7 +48,7 @@
   return 0;
 }
 
-int gtpie_tv0(void *p, int *length, int size, uint8_t t, int l, uint8_t *v) {
+int gtpie_tv0(void *p, unsigned int *length, unsigned int size, uint8_t t, int l, uint8_t *v) {
   if ((*length + 1 + l) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tv0.t = hton8(t);
   memcpy((void*) (p + *length +1), v, l);
@@ -56,7 +56,7 @@
   return 0;
 }
 
-int gtpie_tv1(void *p, int *length, int size, uint8_t t, uint8_t v) {
+int gtpie_tv1(void *p, unsigned int *length, unsigned int size, uint8_t t, uint8_t v) {
   if ((*length + 2) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tv1.t = hton8(t);
   ((union gtpie_member*) (p + *length))->tv1.v = hton8(v);
@@ -64,7 +64,7 @@
   return 0;
 }
 
-int gtpie_tv2(void *p, int *length, int size, uint8_t t, uint16_t v) {
+int gtpie_tv2(void *p, unsigned int *length, unsigned int size, uint8_t t, uint16_t v) {
   if ((*length + 3) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tv2.t = hton8(t);
   ((union gtpie_member*) (p + *length))->tv2.v = hton16(v);
@@ -72,7 +72,7 @@
   return 0;
 }
 
-int gtpie_tv4(void *p, int *length, int size, uint8_t t, uint32_t v) {
+int gtpie_tv4(void *p, unsigned int *length, unsigned int size, uint8_t t, uint32_t v) {
   if ((*length + 5) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tv4.t = hton8(t);
   ((union gtpie_member*) (p + *length))->tv4.v = hton32(v);
@@ -80,7 +80,7 @@
   return 0;
 }
 
-int gtpie_tv8(void *p, int *length, int size, uint8_t t, uint64_t v) {
+int gtpie_tv8(void *p, unsigned int *length, unsigned int size, uint8_t t, uint64_t v) {
   if ((*length + 9) >= size) return 1;
   ((union gtpie_member*) (p + *length))->tv8.t = hton8(t);
   ((union gtpie_member*) (p + *length))->tv8.v = hton64(v);
@@ -109,7 +109,7 @@
 }
 
 int gtpie_gettlv(union gtpie_member* ie[], int type, int instance,
-		 int *length, void *dst, int size){
+		 unsigned int *length, void *dst, unsigned int size){
   int ien;
   ien = gtpie_getie(ie, type, instance);
   if (ien>=0) {
@@ -123,7 +123,7 @@
 }
 
 int gtpie_gettv0(union gtpie_member* ie[], int type, int instance,
-		void *dst, int size){
+		void *dst, unsigned int size){
   int ien;
   ien = gtpie_getie(ie, type, instance);
   if (ien>=0)
@@ -453,9 +453,9 @@
   return 0;
 }
 
-int gtpie_encaps2(union gtpie_member ie[], int size,
+int gtpie_encaps2(union gtpie_member ie[], unsigned int size,
 		  void *pack, unsigned *len) {
-  int i, j;
+  unsigned int i, j;
   unsigned char *p;
   unsigned char *end;
   union gtpie_member *m;
diff --git a/gtp/gtpie.h b/gtp/gtpie.h
index 9c0e3ca..83886f5 100644
--- a/gtp/gtpie.h
+++ b/gtp/gtpie.h
@@ -219,20 +219,20 @@
   uint16_t length;
 }__attribute__((packed));
 
-extern int gtpie_tlv(void *p, int *length, int size,
+extern int gtpie_tlv(void *p, unsigned int *length, unsigned int size,
 		     uint8_t t, int l, void *v);
-extern int gtpie_tv0(void *p, int *length, int size, 
+extern int gtpie_tv0(void *p, unsigned int *length, unsigned int size, 
 		     uint8_t t, int l, uint8_t *v);
-extern int gtpie_tv1(void *p, int *length, int size, uint8_t t, uint8_t v);
-extern int gtpie_tv2(void *p, int *length, int size, uint8_t t, uint16_t v);
-extern int gtpie_tv4(void *p, int *length, int size, uint8_t t, uint32_t v);
-extern int gtpie_tv8(void *p, int *length, int size, uint8_t t, uint64_t v);
+extern int gtpie_tv1(void *p, unsigned int *length, unsigned int size, uint8_t t, uint8_t v);
+extern int gtpie_tv2(void *p, unsigned int *length, unsigned int size, uint8_t t, uint16_t v);
+extern int gtpie_tv4(void *p, unsigned int *length, unsigned int size, uint8_t t, uint32_t v);
+extern int gtpie_tv8(void *p, unsigned int *length, unsigned int size, uint8_t t, uint64_t v);
 extern int gtpie_getie(union gtpie_member* ie[], int type, int instance);
 extern int gtpie_exist(union gtpie_member* ie[], int type, int instance);
 extern int gtpie_gettlv(union gtpie_member* ie[], int type, int instance,
-			int *length, void *dst, int size);
+			unsigned int *length, void *dst, unsigned int size);
 extern int gtpie_gettv0(union gtpie_member* ie[], int type, int instance,
-			void *dst, int size);
+			void *dst, unsigned int size);
 extern int gtpie_gettv1(union gtpie_member* ie[], int type, int instance, 
 			uint8_t *dst);
 extern int gtpie_gettv2(union gtpie_member* ie[], int type, int instance, 
@@ -245,7 +245,7 @@
 extern int gtpie_decaps(union gtpie_member* ie[], int version,
 			void *pack, unsigned len);
 extern int gtpie_encaps(union gtpie_member* ie[], void *pack, unsigned *len);
-extern int gtpie_encaps2(union gtpie_member ie[], int size,
+extern int gtpie_encaps2(union gtpie_member ie[], unsigned int size,
 		  void *pack, unsigned *len);
 
 
diff --git a/gtp/pdp.h b/gtp/pdp.h
index 59541c6..13ae280 100644
--- a/gtp/pdp.h
+++ b/gtp/pdp.h
@@ -23,27 +23,27 @@
 
 
 struct sl_t {
-int l;
+unsigned int l;
 char *v;
 };
 
 struct ul_t {
-int l;
+unsigned int l;
 unsigned char *v;
 };
 
 struct ul16_t {
-int l;
+unsigned int l;
 unsigned char v[16];
 };
 
 struct ul66_t {
-int l;
+unsigned int l;
 unsigned char v[66];
 };
 
 struct ul255_t {
-int l;
+unsigned int l;
 unsigned char v[255];
 };
 
diff --git a/sgsnemu/cmdline.ggo b/sgsnemu/cmdline.ggo
index a000748..0c1b06c 100644
--- a/sgsnemu/cmdline.ggo
+++ b/sgsnemu/cmdline.ggo
@@ -40,8 +40,8 @@
 option  "ipdown"       - "Script to run after link-down"  string no
 
 option  "pinghost"     - "Ping remote host"               string no
-option  "pingrate"     - "Number of ping req per second"  int default="1" no
-option  "pingsize"     - "Number of ping data bytes"      int default="56" no
-option  "pingcount"    - "Number of ping req to send"     int default="0" no
+option  "pingrate"     - "Number of ping req per second"  unsigned int default="1" no
+option  "pingsize"     - "Number of ping data bytes"      unsigned int default="56" no
+option  "pingcount"    - "Number of ping req to send"     unsigned int default="0" no
 option  "pingquiet"    - "Do not print ping packet info"  flag off
 
diff --git a/sgsnemu/cmdline.h b/sgsnemu/cmdline.h
index c462ef0..834d73c 100644
--- a/sgsnemu/cmdline.h
+++ b/sgsnemu/cmdline.h
@@ -45,9 +45,9 @@
   char * ipup_arg;	/* Script to run after link-up.  */
   char * ipdown_arg;	/* Script to run after link-down.  */
   char * pinghost_arg;	/* Ping remote host.  */
-  int pingrate_arg;	/* Number of ping req per second (default='1').  */
-  int pingsize_arg;	/* Number of ping data bytes (default='56').  */
-  int pingcount_arg;	/* Number of ping req to send (default='0').  */
+  unsigned int pingrate_arg;	/* Number of ping req per second (default='1').  */
+  unsigned int pingsize_arg;	/* Number of ping data bytes (default='56').  */
+  unsigned int pingcount_arg;	/* Number of ping req to send (default='0').  */
   int pingquiet_flag;	/* Do not print ping packet info (default=off).  */
 
   int help_given ;	/* Whether help was given.  */
diff --git a/sgsnemu/ippool.c b/sgsnemu/ippool.c
index 35b14a3..fa3d8af 100644
--- a/sgsnemu/ippool.c
+++ b/sgsnemu/ippool.c
@@ -23,7 +23,7 @@
 
 
 int ippool_printaddr(struct ippool_t *this) {
-  int n;
+  unsigned int n;
   printf("ippool_printaddr\n");
   printf("Firstdyn %d\n", this->firstdyn - this->member);
   printf("Lastdyn %d\n",  this->lastdyn - this->member);
@@ -110,7 +110,7 @@
   unsigned int a1, a2, a3, a4;
   unsigned int m1, m2, m3, m4;
   int c;
-  unsigned int m;
+  int m;
   int masklog;
 
   c = sscanf(pool, "%u.%u.%u.%u/%u.%u.%u.%u",
@@ -167,8 +167,8 @@
   struct in_addr stataddr;
   struct in_addr statmask;
   unsigned int m;
-  unsigned int listsize;
-  unsigned int dynsize;
+  int listsize;
+  int dynsize;
   unsigned int statsize;
 
   if (!allowdyn) {
diff --git a/sgsnemu/ippool.h b/sgsnemu/ippool.h
index fe9f90c..02691a6 100644
--- a/sgsnemu/ippool.h
+++ b/sgsnemu/ippool.h
@@ -37,13 +37,13 @@
 struct ippoolm_t;                /* Forward declaration */
 
 struct ippool_t {
-  int listsize;                  /* Total number of addresses */
+  unsigned int listsize;                  /* Total number of addresses */
   int allowdyn;                  /* Allow dynamic IP address allocation */
   int allowstat;                 /* Allow static IP address allocation */
   struct in_addr stataddr;       /* Static address range network address */
   struct in_addr statmask;       /* Static address range network mask */
   struct ippoolm_t *member;      /* Listsize array of members */
-  int hashsize;                  /* Size of hash table */
+  unsigned int hashsize;                  /* Size of hash table */
   int hashlog;                   /* Log2 size of hash table */
   int hashmask;                  /* Bitmask for calculating hash */
   struct ippoolm_t **hash;       /* Hashsize array of pointer to member */
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index 2100c3a..7a3a700 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -210,7 +210,7 @@
   struct gengetopt_args_info args_info;
 
   struct hostent *host;
-  int n;
+  unsigned int n;
 
   if (cmdline_parser (argc, argv, &args_info) != 0)
     return -1;
@@ -560,7 +560,7 @@
 
 
 int encaps_printf(struct pdp_t *pdp, void *pack, unsigned len) {
-  int i;
+  unsigned int i;
   printf("The packet looks like this:\n");
   for( i=0; i<len; i++) {
     printf("%02x ", (unsigned char)*(char *)(pack+i));
@@ -606,10 +606,10 @@
 }
 
 int msisdn_add(struct ul16_t *src, struct ul16_t *dst, int add) {
-  int n;
+  unsigned int n;
   uint64_t i64 = 0;
   uint8_t msa[sizeof(i64) * 3]; /* Allocate 3 digits per octet (0..255) */
-  int msalen = 0;
+  unsigned int msalen = 0;
 
   /* Convert to uint64_t from ul16_t format (most significant digit first) */
   /* ul16_t format always starts with 0x91 to indicate international format */
@@ -805,13 +805,13 @@
 
 /* Create a new ping packet and send it off to peer. */
 int create_ping(void *gsn, struct pdp_t *pdp,
-		struct in_addr *dst, int seq, int datasize) {
+		struct in_addr *dst, int seq, unsigned int datasize) {
 
   struct ip_ping pack;
   uint16_t *p = (uint16_t *) &pack;
   uint8_t  *p8 = (uint8_t *) &pack;
   struct in_addr src;
-  int n;
+  unsigned int n;
   long int sum = 0;
   int count = 0;
 
diff --git a/sgsnemu/syserr.c b/sgsnemu/syserr.c
index e0ebc3a..002d8c3 100644
--- a/sgsnemu/syserr.c
+++ b/sgsnemu/syserr.c
@@ -41,7 +41,7 @@
   va_list args;
   char buf[SYSERR_MSGSIZE];
   char buf2[SYSERR_MSGSIZE];
-  int n;
+  unsigned int n;
   int pos;
   
   va_start(args, fmt);
diff --git a/sgsnemu/tun.c b/sgsnemu/tun.c
index 365aec0..1cc706b 100644
--- a/sgsnemu/tun.c
+++ b/sgsnemu/tun.c
@@ -243,7 +243,7 @@
   } req;
   
   struct sockaddr_nl local;
-  int addr_len;
+  socklen_t addr_len;
   int fd;
   int status;