This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove trailing whitespace
[metaconfig.git] / U / protos / netdbtype.U
1 ?RCS: $Id: netdbtype.U,v $
2 ?RCS:
3 ?RCS: Copyright (c) 1998 Andy Dougherty
4 ?RCS:
5 ?RCS: You may distribute under the terms of either the GNU General Public
6 ?RCS: License or the Artistic License, as specified in the README file.
7 ?RCS:
8 ?RCS: Original Author: Andy Dougherty <doughera@lafcol.lafayette.edu>
9 ?RCS:
10 ?RCS: $Log: netdbtype.U,v $
11 ?RCS:
12 ?MAKE:netdb_host_type netdb_hlen_type netdb_name_type netdb_net_type: \
13         Protochk Oldconfig Myread cat \
14         d_gethbyaddr d_gethbyname d_getnbyaddr \
15         i_niin i_netdb i_unistd d_socket sizetype extern_C
16 ?MAKE:  -pick add $@ %<
17 ?S:netdb_host_type:
18 ?S:     This variable holds the type used for the 1st argument to
19 ?S:     gethostbyaddr().  Usually, this is char * or void *,  possibly
20 ?S:     with or without a const prefix.
21 ?S:     This is only useful if you have gethostbyaddr(), naturally.
22 ?S:.
23 ?S:netdb_hlen_type:
24 ?S:     This variable holds the type used for the 2nd argument to
25 ?S:     gethostbyaddr().  Usually, this is int or size_t or unsigned.
26 ?S:     This is only useful if you have gethostbyaddr(), naturally.
27 ?S:.
28 ?S:netdb_name_type:
29 ?S:     This variable holds the type used for the argument to
30 ?S:     gethostbyname().  Usually, this is char * or const char *.
31 ?S:     This is only useful if you have gethostbyname(), naturally.
32 ?S:.
33 ?S:netdb_net_type:
34 ?S:     This variable holds the type used for the 1st argument to
35 ?S:     getnetbyaddr().  Usually, this is int or long.
36 ?S:     This is only useful if you have getnetbyaddr(), naturally.
37 ?S:.
38 ?C:Netdb_host_t:
39 ?C:     This symbol holds the type used for the 1st argument
40 ?C:     to gethostbyaddr().
41 ?C:.
42 ?C:Netdb_hlen_t:
43 ?C:     This symbol holds the type used for the 2nd argument
44 ?C:     to gethostbyaddr().
45 ?C:.
46 ?C:Netdb_name_t:
47 ?C:     This symbol holds the type used for the argument to
48 ?C:     gethostbyname().
49 ?C:.
50 ?C:Netdb_net_t:
51 ?C:     This symbol holds the type used for the 1st argument to
52 ?C:     getnetbyaddr().
53 ?C:.
54 ?H:#define Netdb_host_t         $netdb_host_type /**/
55 ?H:#define Netdb_hlen_t         $netdb_hlen_type /**/
56 ?H:#define Netdb_name_t         $netdb_name_type /**/
57 ?H:#define Netdb_net_t          $netdb_net_type /**/
58 ?H:.
59 ?T:xxx yyy try hdrs
60 @if netdb_host_type || Netdb_host_t || netdb_hlen_type || Netdb_hlen_t
61 : check for type of arguments to gethostbyaddr.
62 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
63         case "$d_gethbyaddr" in
64         $define)
65                 $cat <<EOM
66
67 Checking to see what type of arguments are accepted by gethostbyaddr().
68 EOM
69                 hdrs="$define sys/types.h
70                         $d_socket sys/socket.h
71                         $i_niin netinet/in.h
72                         $i_netdb netdb.h
73                         $i_unistd unistd.h"
74                 : The first arg can 'char *' or 'void *'
75                 : The second arg is some of integral type
76                 for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
77                         for yyy in size_t long int; do
78                                 case "$netdb_host_type" in
79                                 '')     try="$extern_C struct hostent *gethostbyaddr($xxx, $yyy, int);"
80                                         if ./protochk "$try" $hdrs; then
81                                                 echo "Your system accepts $xxx for the first arg."
82                                                 echo "...and $yyy for the second arg."
83                                                 netdb_host_type="$xxx"
84                                                 netdb_hlen_type="$yyy"
85                                         fi
86                                         ;;
87                                 esac
88                         done
89                 done
90                 : In case none of those worked, prompt the user.
91                 case "$netdb_host_type" in
92                 '')     rp='What is the type for the 1st argument to gethostbyaddr?'
93                         dflt='char *'
94                         . ./myread
95                         netdb_host_type=$ans
96                         rp='What is the type for the 2nd argument to gethostbyaddr?'
97                         dflt="$sizetype"
98                         . ./myread
99                         netdb_hlen_type=$ans
100                         ;;
101                 esac
102                 ;;
103         *)      : no gethostbyaddr, so pick harmless defaults
104                 netdb_host_type='char *'
105                 netdb_hlen_type="$sizetype"
106                 ;;
107         esac
108         # Remove the "const" if needed. -- but then we'll have a
109         # prototype clash!
110         # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
111 fi
112 @end
113
114 @if netdb_name_type || Netdb_name_t
115 : check for type of argument to gethostbyname.
116 if test "X$netdb_name_type" = X ; then
117         case "$d_gethbyname" in
118         $define)
119                 $cat <<EOM
120
121 Checking to see what type of argument is accepted by gethostbyname().
122 EOM
123                 hdrs="$define sys/types.h
124                         $d_socket sys/socket.h
125                         $i_niin netinet/in.h
126                         $i_netdb netdb.h
127                         $i_unistd unistd.h"
128                 for xxx in "const char *" "char *"; do
129                         case "$netdb_name_type" in
130                         '')     try="$extern_C struct hostent *gethostbyname($xxx);"
131                                 if ./protochk "$try" $hdrs; then
132                                         echo "Your system accepts $xxx."
133                                         netdb_name_type="$xxx"
134                                 fi
135                                 ;;
136                         esac
137                 done
138                 : In case none of those worked, prompt the user.
139                 case "$netdb_name_type" in
140                 '')     rp='What is the type for the 1st argument to gethostbyname?'
141                         dflt='char *'
142                         . ./myread
143                         netdb_name_type=$ans
144                         ;;
145                 esac
146                 ;;
147         *)      : no gethostbyname, so pick harmless default
148                 netdb_name_type='char *'
149                 ;;
150         esac
151 fi
152 @end
153
154 @if netdb_net_type || Netdb_net_t
155 : check for type of 1st argument to getnetbyaddr.
156 if test "X$netdb_net_type" = X ; then
157         case "$d_getnbyaddr" in
158         $define)
159                 $cat <<EOM
160
161 Checking to see what type of 1st argument is accepted by getnetbyaddr().
162 EOM
163                 hdrs="$define sys/types.h
164                         $d_socket sys/socket.h
165                         $i_niin netinet/in.h
166                         $i_netdb netdb.h
167                         $i_unistd unistd.h"
168                 for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
169                         case "$netdb_net_type" in
170                         '')     try="$extern_C struct netent *getnetbyaddr($xxx, int);"
171                                 if ./protochk "$try" $hdrs; then
172                                         echo "Your system accepts $xxx."
173                                         netdb_net_type="$xxx"
174                                 fi
175                                 ;;
176                         esac
177                 done
178                 : In case none of those worked, prompt the user.
179                 case "$netdb_net_type" in
180                 '')     rp='What is the type for the 1st argument to getnetbyaddr?'
181                         dflt='long'
182                         . ./myread
183                         netdb_net_type=$ans
184                         ;;
185                 esac
186                 ;;
187         *)      : no getnetbyaddr, so pick harmless default
188                 netdb_net_type='long'
189                 ;;
190         esac
191 fi
192 @end