Some warning suppression. Read the <rant/>. Modified: trunk/reactos/lib/adns/Makefile Modified: trunk/reactos/lib/adns/adns_win32/adns_win32.h Modified: trunk/reactos/lib/adns/src/event.c _____
Modified: trunk/reactos/lib/adns/Makefile --- 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 _____
Modified: trunk/reactos/lib/adns/adns_win32/adns_win32.h --- 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 */
_____
Modified: trunk/reactos/lib/adns/src/event.c --- 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; }