Modified: trunk/reactos/lib/adns/Makefile
Modified: trunk/reactos/lib/adns/adns_win32/adns_win32.h
Modified: trunk/reactos/lib/adns/src/event.c
--- trunk/reactos/lib/adns/Makefile 2005-03-04 00:18:25 UTC (rev 13809)
+++ trunk/reactos/lib/adns/Makefile 2005-03-04 01:47:01 UTC (rev 13810)
@@ -8,7 +8,7 @@
TARGET_CFLAGS = \
-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes -Wall -DADNS_JGAA_WIN32
+ -Wstrict-prototypes -Wmissing-prototypes -Wall -DADNS_JGAA_WIN32 -D__USE_W32API -D__REACTOS__
# require os code to explicitly request A/W version of structs/functions
TARGET_CFLAGS += -Isrc -Iadns_win32
--- trunk/reactos/lib/adns/adns_win32/adns_win32.h 2005-03-04 00:18:25 UTC (rev 13809)
+++ trunk/reactos/lib/adns/adns_win32/adns_win32.h 2005-03-04 01:47:01 UTC (rev 13810)
@@ -157,5 +157,34 @@
#include "timercmp.h" /* arty added: mingw headers don't seem to have it */
+/*
+ * <rant>
+ * These fix the following warning in GCC:
+ * warning: passing arg 1 of `ntohs' with different width due to prototype
+ *
+ * Even if you declare an unsigned char or unsigned short variable and pass
+ * it to htons or ntohs, this warning will be generated. I believe this is
+ * a gcc bug. You can try to reproduce the bug like this:
+ *
+ * u_short foo(u_short bar) {
+ * return htons(bar);
+ * }
+ *
+ * Using the reactos compiler settings this generates the error. Unless I'm
+ * missing something, the active prototypes for htons and ntohs are:
+ *
+ * u_short PASCAL htons(u_short);
+ * u_short PASCAL ntohs(u_short);
+ *
+ * From winsock2.h. Since the function above has exactly the same signature
+ * as htons except for the required PASCAL (__stdcall) decoration, gcc is
+ * erroneously detecting a narrowed value.
+ * </rant>
+ */
+#ifdef __REACTOS__
+#define htons(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
+#define ntohs(x) htons(x)
+#endif
+
#endif /* ADNS_WIN32_H_INCLUDED */
--- trunk/reactos/lib/adns/src/event.c 2005-03-04 00:18:25 UTC (rev 13809)
+++ trunk/reactos/lib/adns/src/event.c 2005-03-04 01:47:01 UTC (rev 13810)
@@ -52,7 +52,7 @@
serv= ads->tcpserver;
adns_socket_close(ads->tcpsocket);
- ads->tcpsocket= -1;
+ ads->tcpsocket= INVALID_SOCKET;
ads->tcprecv.used= ads->tcprecv_skip= ads->tcpsend.used= 0;
}