Skip to content

Commit 9930889

Browse files
committed
Remove references to sa_family_t, except when SOCKADDR_STORAGE requires
it. Also handle __ss_family as a synonym for ss_family. Kurt Roeckx
1 parent 6403a67 commit 9930889

File tree

6 files changed

+156
-11
lines changed

6 files changed

+156
-11
lines changed

config/c-library.m4

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Macros that test various C library quirks
2-
# $Header: /cvsroot/pgsql/config/c-library.m4,v 1.21 2003/06/12 16:05:10 tgl Exp $
2+
# $Header: /cvsroot/pgsql/config/c-library.m4,v 1.22 2003/06/23 23:51:59 momjian Exp $
33

44

55
# PGAC_VAR_INT_TIMEZONE
@@ -110,6 +110,19 @@ AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE],
110110
#endif
111111
])])# PGAC_STRUCT_SOCKADDR_STORAGE
112112

113+
# PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
114+
# --------------------------------------
115+
# This checks if the struct sockaddr has a proper ss_family and not an
116+
# __ss_family as rfc2553 defined.
117+
AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY],
118+
[AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family,
119+
struct sockaddr_storage.__ss_family], [], [],
120+
[#include <sys/types.h>
121+
#ifdef HAVE_SYS_SOCKET_H
122+
#include <sys/socket.h>
123+
#endif
124+
])])# PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
125+
113126

114127
# PGAC_STRUCT_ADDRINFO
115128
# -----------------------

configure

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9869,6 +9869,127 @@ cat >>confdefs.h <<_ACEOF
98699869
_ACEOF
98709870
98719871
9872+
fi
9873+
9874+
echo "$as_me:$LINENO: checking for struct sockaddr_storage.ss_family" >&5
9875+
echo $ECHO_N "checking for struct sockaddr_storage.ss_family... $ECHO_C" >&6
9876+
if test "${ac_cv_member_struct_sockaddr_storage_ss_family+set}" = set; then
9877+
echo $ECHO_N "(cached) $ECHO_C" >&6
9878+
else
9879+
cat >conftest.$ac_ext <<_ACEOF
9880+
#line $LINENO "configure"
9881+
#include "confdefs.h"
9882+
#include <sys/types.h>
9883+
#ifdef HAVE_SYS_SOCKET_H
9884+
#include <sys/socket.h>
9885+
#endif
9886+
9887+
9888+
#ifdef F77_DUMMY_MAIN
9889+
# ifdef __cplusplus
9890+
extern "C"
9891+
# endif
9892+
int F77_DUMMY_MAIN() { return 1; }
9893+
#endif
9894+
int
9895+
main ()
9896+
{
9897+
static struct sockaddr_storage ac_aggr;
9898+
if (ac_aggr.ss_family)
9899+
return 0;
9900+
;
9901+
return 0;
9902+
}
9903+
_ACEOF
9904+
rm -f conftest.$ac_objext
9905+
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9906+
(eval $ac_compile) 2>&5
9907+
ac_status=$?
9908+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
9909+
(exit $ac_status); } &&
9910+
{ ac_try='test -s conftest.$ac_objext'
9911+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9912+
(eval $ac_try) 2>&5
9913+
ac_status=$?
9914+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
9915+
(exit $ac_status); }; }; then
9916+
ac_cv_member_struct_sockaddr_storage_ss_family=yes
9917+
else
9918+
echo "$as_me: failed program was:" >&5
9919+
cat conftest.$ac_ext >&5
9920+
ac_cv_member_struct_sockaddr_storage_ss_family=no
9921+
fi
9922+
rm -f conftest.$ac_objext conftest.$ac_ext
9923+
fi
9924+
echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_storage_ss_family" >&5
9925+
echo "${ECHO_T}$ac_cv_member_struct_sockaddr_storage_ss_family" >&6
9926+
if test $ac_cv_member_struct_sockaddr_storage_ss_family = yes; then
9927+
9928+
cat >>confdefs.h <<_ACEOF
9929+
#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
9930+
_ACEOF
9931+
9932+
9933+
fi
9934+
echo "$as_me:$LINENO: checking for struct sockaddr_storage.__ss_family" >&5
9935+
echo $ECHO_N "checking for struct sockaddr_storage.__ss_family... $ECHO_C" >&6
9936+
if test "${ac_cv_member_struct_sockaddr_storage___ss_family+set}" = set; then
9937+
echo $ECHO_N "(cached) $ECHO_C" >&6
9938+
else
9939+
cat >conftest.$ac_ext <<_ACEOF
9940+
#line $LINENO "configure"
9941+
#include "confdefs.h"
9942+
#include <sys/types.h>
9943+
#ifdef HAVE_SYS_SOCKET_H
9944+
#include <sys/socket.h>
9945+
#endif
9946+
9947+
9948+
#ifdef F77_DUMMY_MAIN
9949+
# ifdef __cplusplus
9950+
extern "C"
9951+
# endif
9952+
int F77_DUMMY_MAIN() { return 1; }
9953+
#endif
9954+
int
9955+
main ()
9956+
{
9957+
static struct sockaddr_storage ac_aggr;
9958+
if (ac_aggr.__ss_family)
9959+
return 0;
9960+
;
9961+
return 0;
9962+
}
9963+
_ACEOF
9964+
rm -f conftest.$ac_objext
9965+
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9966+
(eval $ac_compile) 2>&5
9967+
ac_status=$?
9968+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
9969+
(exit $ac_status); } &&
9970+
{ ac_try='test -s conftest.$ac_objext'
9971+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9972+
(eval $ac_try) 2>&5
9973+
ac_status=$?
9974+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
9975+
(exit $ac_status); }; }; then
9976+
ac_cv_member_struct_sockaddr_storage___ss_family=yes
9977+
else
9978+
echo "$as_me: failed program was:" >&5
9979+
cat conftest.$ac_ext >&5
9980+
ac_cv_member_struct_sockaddr_storage___ss_family=no
9981+
fi
9982+
rm -f conftest.$ac_objext conftest.$ac_ext
9983+
fi
9984+
echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_storage___ss_family" >&5
9985+
echo "${ECHO_T}$ac_cv_member_struct_sockaddr_storage___ss_family" >&6
9986+
if test $ac_cv_member_struct_sockaddr_storage___ss_family = yes; then
9987+
9988+
cat >>confdefs.h <<_ACEOF
9989+
#define HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY 1
9990+
_ACEOF
9991+
9992+
98729993
fi
98739994
98749995
echo "$as_me:$LINENO: checking for struct addrinfo" >&5

configure.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dnl Process this file with autoconf to produce a configure script.
2-
dnl $Header: /cvsroot/pgsql/configure.in,v 1.266 2003/06/18 16:04:15 momjian Exp $
2+
dnl $Header: /cvsroot/pgsql/configure.in,v 1.267 2003/06/23 23:51:59 momjian Exp $
33
dnl
44
dnl Developers, please strive to achieve this order:
55
dnl
@@ -778,6 +778,7 @@ PGAC_STRUCT_TIMEZONE
778778
PGAC_UNION_SEMUN
779779
PGAC_STRUCT_SOCKADDR_UN
780780
PGAC_STRUCT_SOCKADDR_STORAGE
781+
PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
781782
PGAC_STRUCT_ADDRINFO
782783

783784
AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],

src/include/libpq/pqcomm.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
1010
* Portions Copyright (c) 1994, Regents of the University of California
1111
*
12-
* $Id: pqcomm.h,v 1.86 2003/06/12 07:36:51 momjian Exp $
12+
* $Id: pqcomm.h,v 1.87 2003/06/23 23:51:59 momjian Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -65,6 +65,12 @@ struct sockaddr_storage {
6565
* _SS_MAXSIZE value minus size of ss_family
6666
* __ss_pad1, __ss_align fields is 112 */
6767
};
68+
#elif !defined(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)
69+
# ifdef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
70+
# define ss_family __ss_family
71+
# else
72+
# error struct sockaddr_storage does not provide an ss_family member
73+
# endif
6874
#endif
6975

7076
typedef struct {

src/include/pg_config.h.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,12 @@
423423
/* Define to 1 if the system has the type `struct sockaddr_storage'. */
424424
#undef HAVE_STRUCT_SOCKADDR_STORAGE
425425

426+
/* Define to 1 if `ss_family' is member of `struct sockaddr_storage'. */
427+
#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
428+
429+
/* Define to 1 if `__ss_family' is member of `struct sockaddr_storage'. */
430+
#undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
431+
426432
/* Define to 1 if the system has the type `struct sockaddr_un'. */
427433
#undef HAVE_STRUCT_SOCKADDR_UN
428434

src/port/getaddrinfo.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/port/getaddrinfo.c,v 1.8 2003/06/14 18:20:33 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/port/getaddrinfo.c,v 1.9 2003/06/23 23:52:00 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -220,7 +220,6 @@ getnameinfo(const struct sockaddr *sa, int salen,
220220
char *node, int nodelen,
221221
char *service, int servicelen, int flags)
222222
{
223-
sa_family_t family;
224223
int ret = -1;
225224

226225
/* Invalid arguments. */
@@ -236,23 +235,22 @@ getnameinfo(const struct sockaddr *sa, int salen,
236235
return EAI_FAIL;
237236
}
238237

239-
family = sa->sa_family;
240238
#ifdef HAVE_IPV6
241-
if (family == AF_INET6)
239+
if (sa->sa_family == AF_INET6)
242240
{
243241
return EAI_FAMILY;
244242
}
245243
#endif
246244

247245
if (service)
248246
{
249-
if (family == AF_INET)
247+
if (sa->sa_family == AF_INET)
250248
{
251249
ret = snprintf(service, servicelen, "%d",
252250
ntohs(((struct sockaddr_in *)sa)->sin_port));
253251
}
254252
#ifdef HAVE_UNIX_SOCKETS
255-
else if (family == AF_UNIX)
253+
else if (sa->sa_family == AF_UNIX)
256254
{
257255
ret = snprintf(service, servicelen, "%s",
258256
((struct sockaddr_un *)sa)->sun_path);
@@ -266,14 +264,14 @@ getnameinfo(const struct sockaddr *sa, int salen,
266264

267265
if (node)
268266
{
269-
if (family == AF_INET)
267+
if (sa->sa_family == AF_INET)
270268
{
271269
char *p;
272270
p = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr);
273271
ret = snprintf(node, nodelen, "%s", p);
274272
}
275273
#ifdef HAVE_UNIX_SOCKETS
276-
else if (family == AF_UNIX)
274+
else if (sa->sa_family == AF_UNIX)
277275
{
278276
ret = snprintf(node, nodelen, "%s", "localhost");
279277
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy