From: Yang Tse <yangsita@gmail.com>
Date: Thu, 17 Jul 2008 03:07:54 +0000 (+0000)
Subject: RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
X-Git-Tag: cares-1_5_3~345
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=39f23aec6b3cd5e7e5dd9077d96f8eff37ff2b19;p=curl

RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
to the data type pointed by its respective argument and not the pointer type.
---

diff --git a/CHANGES b/CHANGES
index 29ba012a7..9ba412821 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Yang Tse (17 Jul 2008)
+- RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
+  to the data type pointed by its respective argument and not the pointer type.
+
 Yang Tse (16 Jul 2008)
 - Configure process now checks availability of recvfrom() socket function and
   finds out its return type and the types of its arguments. Added definitions
diff --git a/acinclude.m4 b/acinclude.m4
index 21399c7f6..e1c16bbfd 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1591,6 +1591,8 @@ dnl will be defined, defining the types of the arguments
 dnl in RECVFROM_TYPE_ARG1, RECVFROM_TYPE_ARG2, and so on
 dnl to RECVFROM_TYPE_ARG6, defining also the type of the
 dnl function return value in RECVFROM_TYPE_RETV.
+dnl Notice that the types returned for pointer arguments
+dnl will actually be the type pointed by the pointer.
 
 AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [
   AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
@@ -1703,21 +1705,48 @@ AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [
       IFS=$recvfrom_prev_IFS
       shift
       #
+      recvfrom_ptrt_arg2=$[2]
+      recvfrom_ptrt_arg5=$[5]
+      recvfrom_ptrt_arg6=$[6]
+      #
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG1, $[1],
         [Define to the type of arg 1 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $[2],
-        [Define to the type of arg 2 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG3, $[3],
         [Define to the type of arg 3 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG4, $[4],
         [Define to the type of arg 4 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $[5],
-        [Define to the type of arg 5 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $[6],
-        [Define to the type of arg 6 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_RETV, $[7],
         [Define to the function return type for recvfrom.])
       #
+      prev_sh_opts=$-
+      #
+      case $prev_sh_opts in
+        *f*)
+          ;;
+        *)
+          set -f
+          ;;
+      esac
+      #
+      recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'`
+      recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'`
+      recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'`
+      #
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $recvfrom_type_arg2,
+        [Define to the type pointed by arg 2 for recvfrom.])
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $recvfrom_type_arg5,
+        [Define to the type pointed by arg 5 for recvfrom.])
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $recvfrom_type_arg6,
+        [Define to the type pointed by arg 6 for recvfrom.])
+      #
+      case $prev_sh_opts in
+        *f*)
+          ;;
+        *)
+          set +f
+          ;;
+      esac
+      #
       AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1,
         [Define to 1 if you have the recvfrom function.])
       ac_cv_func_recvfrom="yes"
diff --git a/ares/CHANGES b/ares/CHANGES
index 00673574f..88662236a 100644
--- a/ares/CHANGES
+++ b/ares/CHANGES
@@ -1,5 +1,9 @@
   Changelog for the c-ares project
 
+* Jul 17 2008 (Yang Tse)
+- RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
+  to the data type pointed by its respective argument and not the pointer type.
+
 * Jul 16 2008 (Yang Tse)
 - Improved configure detection of number of arguments for getservbyport_r.
   Detection is now based on compilation checks instead of linker ones.
diff --git a/ares/Makefile.dj b/ares/Makefile.dj
index 0539e4b6e..51439284b 100644
--- a/ares/Makefile.dj
+++ b/ares/Makefile.dj
@@ -24,10 +24,10 @@ CFLAGS += -DWATT32 -DHAVE_AF_INET6 -DHAVE_PF_INET6 -DHAVE_IOCTLSOCKET \
           -DRECV_TYPE_ARG3='int'   -DRECV_TYPE_ARG4='int' \
           -DRECV_TYPE_RETV='int'   -DHAVE_STRUCT_TIMEVAL \
           -Dselect=select_s        -Dsocklen_t=int -UHAVE_CONFIG_H \
-          -DRECVFROM_TYPE_ARG1='int'  -DRECVFROM_TYPE_ARG2='void*' \
-          -DRECVFROM_TYPE_ARG3='int'  -DRECVFROM_TYPE_ARG4='int' \
-          -DRECVFROM_TYPE_ARG6='int*' -DRECVFROM_TYPE_RETV='int' \
-          -DRECVFROM_TYPE_ARG5='struct sockaddr*' -DHAVE_RECVFROM
+          -DRECVFROM_TYPE_ARG1='int' -DRECVFROM_TYPE_ARG2='void' \
+          -DRECVFROM_TYPE_ARG3='int' -DRECVFROM_TYPE_ARG4='int' \
+          -DRECVFROM_TYPE_ARG6='int' -DRECVFROM_TYPE_RETV='int' \
+          -DRECVFROM_TYPE_ARG5='struct sockaddr' -DHAVE_RECVFROM
 
 LDFLAGS = -s
 
diff --git a/ares/Makefile.netware b/ares/Makefile.netware
index 874e59d1c..e8a8a26c5 100644
--- a/ares/Makefile.netware
+++ b/ares/Makefile.netware
@@ -289,11 +289,11 @@ ifeq ($(LIBARCH),CLIB)
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 char *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 char$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
@@ -332,11 +332,11 @@ else
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 void *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 void$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 size_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
diff --git a/ares/acinclude.m4 b/ares/acinclude.m4
index 95ab7a3d8..cb6c51afe 100644
--- a/ares/acinclude.m4
+++ b/ares/acinclude.m4
@@ -1058,6 +1058,8 @@ dnl will be defined, defining the types of the arguments
 dnl in RECVFROM_TYPE_ARG1, RECVFROM_TYPE_ARG2, and so on
 dnl to RECVFROM_TYPE_ARG6, defining also the type of the
 dnl function return value in RECVFROM_TYPE_RETV.
+dnl Notice that the types returned for pointer arguments
+dnl will actually be the type pointed by the pointer.
 
 AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [
   AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
@@ -1170,21 +1172,48 @@ AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [
       IFS=$recvfrom_prev_IFS
       shift
       #
+      recvfrom_ptrt_arg2=$[2]
+      recvfrom_ptrt_arg5=$[5]
+      recvfrom_ptrt_arg6=$[6]
+      #
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG1, $[1],
         [Define to the type of arg 1 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $[2],
-        [Define to the type of arg 2 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG3, $[3],
         [Define to the type of arg 3 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG4, $[4],
         [Define to the type of arg 4 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $[5],
-        [Define to the type of arg 5 for recvfrom.])
-      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $[6],
-        [Define to the type of arg 6 for recvfrom.])
       AC_DEFINE_UNQUOTED(RECVFROM_TYPE_RETV, $[7],
         [Define to the function return type for recvfrom.])
       #
+      prev_sh_opts=$-
+      #
+      case $prev_sh_opts in
+        *f*)
+          ;;
+        *)
+          set -f
+          ;;
+      esac
+      #
+      recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'`
+      recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'`
+      recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'`
+      #
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $recvfrom_type_arg2,
+        [Define to the type pointed by arg 2 for recvfrom.])
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $recvfrom_type_arg5,
+        [Define to the type pointed by arg 5 for recvfrom.])
+      AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $recvfrom_type_arg6,
+        [Define to the type pointed by arg 6 for recvfrom.])
+      #
+      case $prev_sh_opts in
+        *f*)
+          ;;
+        *)
+          set +f
+          ;;
+      esac
+      #
       AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1,
         [Define to 1 if you have the recvfrom function.])
       ac_cv_func_recvfrom="yes"
diff --git a/ares/config-win32.h b/ares/config-win32.h
index 8e621a474..eb8fed72c 100644
--- a/ares/config-win32.h
+++ b/ares/config-win32.h
@@ -3,7 +3,7 @@
 
 /* $Id$ */
 
-/* Copyright (C) 2004 - 2006 by Daniel Stenberg et al
+/* Copyright (C) 2004 - 2008 by Daniel Stenberg et al
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted, provided
@@ -103,8 +103,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 SOCKET
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -112,11 +112,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/ares/setup_once.h b/ares/setup_once.h
index 85a291a81..d3159904f 100644
--- a/ares/setup_once.h
+++ b/ares/setup_once.h
@@ -206,12 +206,12 @@ struct timeval {
   Error Missing_definition_of_return_and_arguments_types_of_recvfrom
   /* */
 #else
-#define sreadfrom(s,b,bl,f,fl) (ssize_t)recvfrom((RECVFROM_TYPE_ARG1)(s),  \
-                                                 (RECVFROM_TYPE_ARG2)(b),  \
-                                                 (RECVFROM_TYPE_ARG3)(bl), \
-                                                 (RECVFROM_TYPE_ARG4)(0),  \
-                                                 (RECVFROM_TYPE_ARG5)(f),  \
-                                                 (RECVFROM_TYPE_ARG6)(fl))
+#define sreadfrom(s,b,bl,f,fl) (ssize_t)recvfrom((RECVFROM_TYPE_ARG1)  (s),  \
+                                                 (RECVFROM_TYPE_ARG2 *)(b),  \
+                                                 (RECVFROM_TYPE_ARG3)  (bl), \
+                                                 (RECVFROM_TYPE_ARG4)  (0),  \
+                                                 (RECVFROM_TYPE_ARG5 *)(f),  \
+                                                 (RECVFROM_TYPE_ARG6 *)(fl))
 #endif
 #else /* HAVE_RECVFROM */
 #ifndef sreadfrom
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index 9d71b6d8e..6e0aac995 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -383,11 +383,11 @@ ifeq ($(LIBARCH),CLIB)
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 char *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 char$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
@@ -422,11 +422,11 @@ else
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 void *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 void$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 size_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
diff --git a/lib/config-amigaos.h b/lib/config-amigaos.h
index 553a910aa..fe77a2dc4 100644
--- a/lib/config-amigaos.h
+++ b/lib/config-amigaos.h
@@ -133,11 +133,11 @@
 
 #define HAVE_RECVFROM 1
 #define RECVFROM_TYPE_ARG1 long
-#define RECVFROM_TYPE_ARG2 char *
+#define RECVFROM_TYPE_ARG2 char
 #define RECVFROM_TYPE_ARG3 long
 #define RECVFROM_TYPE_ARG4 long
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
-#define RECVFROM_TYPE_ARG6 long *
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+#define RECVFROM_TYPE_ARG6 long
 #define RECVFROM_TYPE_RETV long
 
 #define HAVE_SEND 1
diff --git a/lib/config-mac.h b/lib/config-mac.h
index 9769f9dfe..d5c143c4f 100644
--- a/lib/config-mac.h
+++ b/lib/config-mac.h
@@ -65,11 +65,11 @@
 
 #define HAVE_RECVFROM 1
 #define RECVFROM_TYPE_ARG1 int
-#define RECVFROM_TYPE_ARG2 void *
+#define RECVFROM_TYPE_ARG2 void
 #define RECVFROM_TYPE_ARG3 size_t
 #define RECVFROM_TYPE_ARG4 int
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
-#define RECVFROM_TYPE_ARG6 int *
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+#define RECVFROM_TYPE_ARG6 int
 #define RECVFROM_TYPE_RETV ssize_t
 
 #define HAVE_SEND 1
diff --git a/lib/config-os400.h b/lib/config-os400.h
index 20785665c..f5ca8a2d7 100644
--- a/lib/config-os400.h
+++ b/lib/config-os400.h
@@ -462,8 +462,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 int
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -471,11 +471,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/lib/config-riscos.h b/lib/config-riscos.h
index 722e8734f..7140e9c24 100644
--- a/lib/config-riscos.h
+++ b/lib/config-riscos.h
@@ -436,8 +436,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 int
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 void *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 void
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 size_t
@@ -445,11 +445,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV ssize_t
diff --git a/lib/config-symbian.h b/lib/config-symbian.h
index 2297b9f73..b7467dbd9 100644
--- a/lib/config-symbian.h
+++ b/lib/config-symbian.h
@@ -684,11 +684,11 @@
 #define RECV_TYPE_RETV ssize_t
 
 #define RECVFROM_TYPE_ARG1 int
-#define RECVFROM_TYPE_ARG2 void*
+#define RECVFROM_TYPE_ARG2 void
 #define RECVFROM_TYPE_ARG3 size_t
 #define RECVFROM_TYPE_ARG4 int
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
-#define RECVFROM_TYPE_ARG6 size_t *
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+#define RECVFROM_TYPE_ARG6 size_t
 #define RECVFROM_TYPE_RETV ssize_t
 
 #define SEND_TYPE_ARG1 int
diff --git a/lib/config-tpf.h b/lib/config-tpf.h
index 1d114b9ce..dbeabf6b1 100644
--- a/lib/config-tpf.h
+++ b/lib/config-tpf.h
@@ -708,8 +708,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 int
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -717,11 +717,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/lib/config-win32.h b/lib/config-win32.h
index d51047526..6526f5497 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -254,8 +254,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 SOCKET
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -263,11 +263,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/lib/config-win32ce.h b/lib/config-win32ce.h
index c9b9bea38..347b78cbe 100644
--- a/lib/config-win32ce.h
+++ b/lib/config-win32ce.h
@@ -240,8 +240,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 SOCKET
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -249,11 +249,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/lib/config.dos b/lib/config.dos
index 7d317b846..9669bdb21 100644
--- a/lib/config.dos
+++ b/lib/config.dos
@@ -80,11 +80,11 @@
 #define RECV_TYPE_RETV         int
 
 #define RECVFROM_TYPE_ARG1     int
-#define RECVFROM_TYPE_ARG2     void *
+#define RECVFROM_TYPE_ARG2     void
 #define RECVFROM_TYPE_ARG3     int
 #define RECVFROM_TYPE_ARG4     int
-#define RECVFROM_TYPE_ARG5     struct sockaddr *
-#define RECVFROM_TYPE_ARG6     int *
+#define RECVFROM_TYPE_ARG5     struct sockaddr
+#define RECVFROM_TYPE_ARG6     int
 #define RECVFROM_TYPE_RETV     int
 
 #define BSD
diff --git a/lib/setup_once.h b/lib/setup_once.h
index 77b253588..0e2d8bc12 100644
--- a/lib/setup_once.h
+++ b/lib/setup_once.h
@@ -213,12 +213,12 @@ struct timeval {
   Error Missing_definition_of_return_and_arguments_types_of_recvfrom
   /* */
 #else
-#define sreadfrom(s,b,bl,f,fl) (ssize_t)recvfrom((RECVFROM_TYPE_ARG1)(s),  \
-                                                 (RECVFROM_TYPE_ARG2)(b),  \
-                                                 (RECVFROM_TYPE_ARG3)(bl), \
-                                                 (RECVFROM_TYPE_ARG4)(0),  \
-                                                 (RECVFROM_TYPE_ARG5)(f),  \
-                                                 (RECVFROM_TYPE_ARG6)(fl))
+#define sreadfrom(s,b,bl,f,fl) (ssize_t)recvfrom((RECVFROM_TYPE_ARG1)  (s),  \
+                                                 (RECVFROM_TYPE_ARG2 *)(b),  \
+                                                 (RECVFROM_TYPE_ARG3)  (bl), \
+                                                 (RECVFROM_TYPE_ARG4)  (0),  \
+                                                 (RECVFROM_TYPE_ARG5 *)(f),  \
+                                                 (RECVFROM_TYPE_ARG6 *)(fl))
 #endif
 #else /* HAVE_RECVFROM */
 #ifndef sreadfrom
diff --git a/packages/vms/config-vms.h b/packages/vms/config-vms.h
index 19c72ac64..aacd3b0c3 100644
--- a/packages/vms/config-vms.h
+++ b/packages/vms/config-vms.h
@@ -321,8 +321,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 int
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 void *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 void
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -330,11 +330,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int
diff --git a/src/Makefile.netware b/src/Makefile.netware
index 11e596ef1..1cc08392a 100644
--- a/src/Makefile.netware
+++ b/src/Makefile.netware
@@ -370,11 +370,11 @@ ifeq ($(LIBARCH),CLIB)
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 char *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 char$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV int$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
@@ -405,11 +405,11 @@ else
 	@echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
 	@echo $(DL)#define RECV_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG2 void *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG2 void$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG3 size_t$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr *$(DL) >> $@
-	@echo $(DL)#define RECVFROM_TYPE_ARG6 int *$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+	@echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
 	@echo $(DL)#define RECVFROM_TYPE_RETV ssize_t$(DL) >> $@
 	@echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
 	@echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
diff --git a/src/config-win32.h b/src/config-win32.h
index 33f0d9cbf..306f42ee2 100644
--- a/src/config-win32.h
+++ b/src/config-win32.h
@@ -116,8 +116,8 @@
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 SOCKET
 
-/* Define to the type of arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char *
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
 
 /* Define to the type of arg 3 for recvfrom. */
 #define RECVFROM_TYPE_ARG3 int
@@ -125,11 +125,11 @@
 /* Define to the type of arg 4 for recvfrom. */
 #define RECVFROM_TYPE_ARG4 int
 
-/* Define to the type of arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr *
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
 
-/* Define to the type of arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int *
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
 
 /* Define to the function return type for recvfrom. */
 #define RECVFROM_TYPE_RETV int