slirp: Fix type casts and format strings in debug code

Casting pointers to long won't work on 64 bit Windows.
It is not needed with the right format strings.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Jason Wang <jasowang@redhat.com>
diff --git a/bootp.c b/bootp.c
index 8b057c1..3af5dc0 100644
--- a/bootp.c
+++ b/bootp.c
@@ -23,6 +23,12 @@
  */
 #include <slirp.h>
 
+#if defined(_WIN32)
+/* Windows ntohl() returns an u_long value.
+ * Add a type cast to match the format strings. */
+#define ntohl(n) ((uint32_t)ntohl(n))
+#endif
+
 /* XXX: only DHCP is supported */
 
 #define LEASE_TIME (24 * 3600)
@@ -161,7 +167,7 @@
     dhcp_decode(bp, &dhcp_msg_type, &preq_addr);
     DPRINTF("bootp packet op=%d msgtype=%d", bp->bp_op, dhcp_msg_type);
     if (preq_addr.s_addr != htonl(0L))
-        DPRINTF(" req_addr=%08x\n", ntohl(preq_addr.s_addr));
+        DPRINTF(" req_addr=%08" PRIx32 "\n", ntohl(preq_addr.s_addr));
     else
         DPRINTF("\n");
 
@@ -239,7 +245,7 @@
     q += 4;
 
     if (bc) {
-        DPRINTF("%s addr=%08x\n",
+        DPRINTF("%s addr=%08" PRIx32 "\n",
                 (dhcp_msg_type == DHCPDISCOVER) ? "offered" : "ack'ed",
                 ntohl(daddr.sin_addr.s_addr));
 
@@ -307,7 +313,7 @@
     } else {
         static const char nak_msg[] = "requested address not available";
 
-        DPRINTF("nak'ed addr=%08x\n", ntohl(preq_addr.s_addr));
+        DPRINTF("nak'ed addr=%08" PRIx32 "\n", ntohl(preq_addr.s_addr));
 
         *q++ = RFC2132_MSG_TYPE;
         *q++ = 1;
diff --git a/if.c b/if.c
index e87b58c..e127767 100644
--- a/if.c
+++ b/if.c
@@ -49,8 +49,8 @@
     int on_fastq = 1;
 
     DEBUG_CALL("if_output");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("ifm = %lx", (long)ifm);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("ifm = %p", ifm);
 
     /*
      * First remove the mbuf from m_usedlist,
diff --git a/ip_icmp.c b/ip_icmp.c
index 09a5afa..1f51edf 100644
--- a/ip_icmp.c
+++ b/ip_icmp.c
@@ -126,7 +126,7 @@
     Slirp *slirp = m->slirp;
 
     DEBUG_CALL("icmp_input");
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("m = %p", m);
     DEBUG_ARG("m_len = %d", m->m_len);
 
     /*
@@ -253,7 +253,7 @@
     register struct mbuf *m;
 
     DEBUG_CALL("icmp_error");
-    DEBUG_ARG("msrc = %lx", (long)msrc);
+    DEBUG_ARG("msrc = %p", msrc);
     DEBUG_ARG("msrc_len = %d", msrc->m_len);
 
     if (type != ICMP_UNREACH && type != ICMP_TIMXCEED)
diff --git a/ip_input.c b/ip_input.c
index acc18d1..bc1861b 100644
--- a/ip_input.c
+++ b/ip_input.c
@@ -77,7 +77,7 @@
     int hlen;
 
     DEBUG_CALL("ip_input");
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("m = %p", m);
     DEBUG_ARG("m_len = %d", m->m_len);
 
     if (m->m_len < sizeof(struct ip)) {
@@ -227,9 +227,9 @@
     int i, next;
 
     DEBUG_CALL("ip_reass");
-    DEBUG_ARG("ip = %lx", (long)ip);
-    DEBUG_ARG("fp = %lx", (long)fp);
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("ip = %p", ip);
+    DEBUG_ARG("fp = %p", fp);
+    DEBUG_ARG("m = %p", m);
 
     /*
      * Presence of header sizes in mbufs
@@ -394,7 +394,7 @@
 static void ip_enq(register struct ipasfrag *p, register struct ipasfrag *prev)
 {
     DEBUG_CALL("ip_enq");
-    DEBUG_ARG("prev = %lx", (long)prev);
+    DEBUG_ARG("prev = %p", prev);
     p->ipf_prev = prev;
     p->ipf_next = prev->ipf_next;
     ((struct ipasfrag *)(prev->ipf_next))->ipf_prev = p;
diff --git a/ip_output.c b/ip_output.c
index 10348b6..346e142 100644
--- a/ip_output.c
+++ b/ip_output.c
@@ -59,8 +59,8 @@
     int len, off, error = 0;
 
     DEBUG_CALL("ip_output");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("m0 = %lx", (long)m0);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("m0 = %p", m0);
 
     ip = mtod(m, struct ip *);
     /*
diff --git a/mbuf.c b/mbuf.c
index bbd5f0d..aa4e133 100644
--- a/mbuf.c
+++ b/mbuf.c
@@ -93,14 +93,14 @@
     m->arp_requested = false;
     m->expiration_date = (uint64_t)-1;
 end_error:
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("m = %p", m);
     return m;
 }
 
 void m_free(struct mbuf *m)
 {
     DEBUG_CALL("m_free");
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("m = %p", m);
 
     if (m) {
         /* Remove from m_usedlist */
@@ -212,7 +212,7 @@
     struct mbuf *m;
 
     DEBUG_CALL("dtom");
-    DEBUG_ARG("dat = %lx", (long)dat);
+    DEBUG_ARG("dat = %p", dat);
 
     /* bug corrected for M_EXT buffers */
     for (m = slirp->m_usedlist.m_next; m != &slirp->m_usedlist; m = m->m_next) {
diff --git a/misc.c b/misc.c
index 9445b73..8d4f5c7 100644
--- a/misc.c
+++ b/misc.c
@@ -116,9 +116,9 @@
     pid_t pid;
 
     DEBUG_CALL("fork_exec");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("ex = %lx", (long)ex);
-    DEBUG_ARG("do_pty = %lx", (long)do_pty);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("ex = %p", ex);
+    DEBUG_ARG("do_pty = %x", do_pty);
 
     if (do_pty == 2) {
         return 0;
diff --git a/sbuf.c b/sbuf.c
index 02028c4..51d7a13 100644
--- a/sbuf.c
+++ b/sbuf.c
@@ -69,8 +69,8 @@
     int ret = 0;
 
     DEBUG_CALL("sbappend");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("m = %p", m);
     DEBUG_ARG("m->m_len = %d", m->m_len);
 
     /* Shouldn't happen, but...  e.g. foreign host closes connection */
diff --git a/socket.c b/socket.c
index 6643d67..d6fb453 100644
--- a/socket.c
+++ b/socket.c
@@ -85,7 +85,7 @@
     int mss = so->so_tcpcb->t_maxseg;
 
     DEBUG_CALL("sopreprbuf");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     if (len <= 0)
         return 0;
@@ -149,7 +149,7 @@
     struct iovec iov[2];
 
     DEBUG_CALL("soread");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     /*
      * No need to check if there's enough room to read.
@@ -211,7 +211,7 @@
     struct iovec iov[2];
 
     DEBUG_CALL("soreadbuf");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     /*
      * No need to check if there's enough room to read.
@@ -258,7 +258,7 @@
     struct tcpcb *tp = sototcpcb(so);
 
     DEBUG_CALL("sorecvoob");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     /*
      * We take a guess at how much urgent data has arrived.
@@ -287,7 +287,7 @@
     int n, len;
 
     DEBUG_CALL("sosendoob");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
     DEBUG_ARG("sb->sb_cc = %d", sb->sb_cc);
 
     if (so->so_urgc > 2048)
@@ -351,7 +351,7 @@
     struct iovec iov[2];
 
     DEBUG_CALL("sowrite");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     if (so->so_urgc) {
         sosendoob(so);
@@ -444,7 +444,7 @@
     socklen_t addrlen = sizeof(struct sockaddr_in);
 
     DEBUG_CALL("sorecvfrom");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     if (so->so_type == IPPROTO_ICMP) { /* This is a "ping" reply */
         char buff[256];
@@ -548,8 +548,8 @@
     struct sockaddr_in addr;
 
     DEBUG_CALL("sosendto");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("m = %p", m);
 
     addr.sin_family = AF_INET;
     if ((so->so_faddr.s_addr & slirp->vnetwork_mask.s_addr) ==
diff --git a/tcp_input.c b/tcp_input.c
index af46e36..a21b17a 100644
--- a/tcp_input.c
+++ b/tcp_input.c
@@ -232,8 +232,7 @@
     Slirp *slirp;
 
     DEBUG_CALL("tcp_input");
-    DEBUG_ARGS((dfd, " m = %8lx  iphlen = %2d  inso = %lx\n", (long)m, iphlen,
-                (long)inso));
+    DEBUG_ARGS((dfd, " m = %p  iphlen = %2d  inso = %p\n", m, iphlen, inso));
 
     /*
      * If called with m == 0, then we're continuing the connect
@@ -920,8 +919,7 @@
 
         if (SEQ_LEQ(ti->ti_ack, tp->snd_una)) {
             if (ti->ti_len == 0 && tiwin == tp->snd_wnd) {
-                DEBUG_MISC(
-                    (dfd, " dup ack  m = %lx  so = %lx\n", (long)m, (long)so));
+                DEBUG_MISC((dfd, " dup ack  m = %p  so = %p\n", m, so));
                 /*
                  * If we have outstanding data (other than
                  * a window probe), this is a completely
@@ -1295,7 +1293,7 @@
     int opt, optlen;
 
     DEBUG_CALL("tcp_dooptions");
-    DEBUG_ARGS((dfd, " tp = %lx  cnt=%i\n", (long)tp, cnt));
+    DEBUG_ARGS((dfd, " tp = %p  cnt=%i\n", tp, cnt));
 
     for (; cnt > 0; cnt -= optlen, cp += optlen) {
         opt = cp[0];
@@ -1372,7 +1370,7 @@
     register short delta;
 
     DEBUG_CALL("tcp_xmit_timer");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
     DEBUG_ARG("rtt = %d", rtt);
 
     if (tp->t_srtt != 0) {
@@ -1459,7 +1457,7 @@
     int mss;
 
     DEBUG_CALL("tcp_mss");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
     DEBUG_ARG("offer = %d", offer);
 
     mss = min(IF_MTU, IF_MRU) - sizeof(struct tcpiphdr);
diff --git a/tcp_output.c b/tcp_output.c
index 1fe77da..35c00e3 100644
--- a/tcp_output.c
+++ b/tcp_output.c
@@ -65,7 +65,7 @@
     int idle, sendalot;
 
     DEBUG_CALL("tcp_output");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
 
     /*
      * Determine length of data that should be transmitted,
diff --git a/tcp_subr.c b/tcp_subr.c
index 4d2c3ab..e2eb8ea 100644
--- a/tcp_subr.c
+++ b/tcp_subr.c
@@ -226,7 +226,7 @@
 struct tcpcb *tcp_drop(struct tcpcb *tp, int err)
 {
     DEBUG_CALL("tcp_drop");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
     DEBUG_ARG("errno = %d", errno);
 
     if (TCPS_HAVERCVDSYN(tp->t_state)) {
@@ -250,7 +250,7 @@
     register struct mbuf *m;
 
     DEBUG_CALL("tcp_close");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
 
     /* free the reassembly queue, if any */
     t = tcpfrag_list_first(tp);
@@ -289,7 +289,7 @@
 void tcp_sockclosed(struct tcpcb *tp)
 {
     DEBUG_CALL("tcp_sockclosed");
-    DEBUG_ARG("tp = %lx", (long)tp);
+    DEBUG_ARG("tp = %p", tp);
 
     switch (tp->t_state) {
     case TCPS_CLOSED:
@@ -328,7 +328,7 @@
     int ret = 0;
 
     DEBUG_CALL("tcp_fconnect");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     if ((ret = so->s = qemu_socket(AF_INET, SOCK_STREAM, 0)) >= 0) {
         int opt, s = so->s;
@@ -392,7 +392,7 @@
     int s, opt;
 
     DEBUG_CALL("tcp_connect");
-    DEBUG_ARG("inso = %lx", (long)inso);
+    DEBUG_ARG("inso = %p", inso);
 
     /*
      * If it's an SS_ACCEPTONCE socket, no need to socreate()
@@ -560,8 +560,8 @@
     char *bptr;
 
     DEBUG_CALL("tcp_emu");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("m = %p", m);
 
     switch (so->so_emu) {
         int x, i;
@@ -892,7 +892,7 @@
     int do_pty;
 
     DEBUG_CALL("tcp_ctl");
-    DEBUG_ARG("so = %lx", (long)so);
+    DEBUG_ARG("so = %p", so);
 
     if (so->so_faddr.s_addr != slirp->vhost_addr.s_addr) {
         /* Check if it's pty_exec */
diff --git a/udp.c b/udp.c
index 5121099..e51af7e 100644
--- a/udp.c
+++ b/udp.c
@@ -70,7 +70,7 @@
     struct socket *so;
 
     DEBUG_CALL("udp_input");
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("m = %p", m);
     DEBUG_ARG("iphlen = %d", iphlen);
 
     /*
@@ -237,8 +237,8 @@
     int error = 0;
 
     DEBUG_CALL("udp_output");
-    DEBUG_ARG("so = %lx", (long)so);
-    DEBUG_ARG("m = %lx", (long)m);
+    DEBUG_ARG("so = %p", so);
+    DEBUG_ARG("m = %p", m);
     DEBUG_ARG("saddr = %lx", (long)saddr->sin_addr.s_addr);
     DEBUG_ARG("daddr = %lx", (long)daddr->sin_addr.s_addr);