summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cvsignore24
-rw-r--r--ChangeLog4332
-rw-r--r--Makefile.in6
-rw-r--r--PROTOCOL13
-rw-r--r--README4
-rw-r--r--RFC.nroff1780
-rw-r--r--acconfig.h458
-rw-r--r--addrmatch.c7
-rw-r--r--auth-krb4.c368
-rw-r--r--auth-options.c6
-rw-r--r--auth.c2
-rw-r--r--auth.h6
-rw-r--r--auth2-chall.c10
-rw-r--r--auth2-jpake.c557
-rw-r--r--auth2-pam.c165
-rw-r--r--auth2-pam.h8
-rw-r--r--auth2.c12
-rw-r--r--autom4te-2.53.cache/output.018359
-rw-r--r--autom4te-2.53.cache/requests96
-rw-r--r--autom4te-2.53.cache/traces.0941
-rw-r--r--autom4te.cache/output.019182
-rw-r--r--autom4te.cache/requests111
-rw-r--r--autom4te.cache/traces.0947
-rw-r--r--bufaux.h55
-rw-r--r--canohost.c4
-rw-r--r--canohost.h4
-rw-r--r--channels.c187
-rw-r--r--channels.h8
-rw-r--r--cipher.c49
-rw-r--r--cipher.h3
-rw-r--r--clientloop.c44
-rw-r--r--compat.c5
-rw-r--r--compat.h3
-rwxr-xr-xconfig.guess155
-rw-r--r--config.h.in9
-rwxr-xr-xconfig.sub191
-rwxr-xr-xconfigure426
-rw-r--r--configure.ac42
-rw-r--r--contrib/caldera/openssh.spec8
-rwxr-xr-xcontrib/caldera/ssh-host-keygen10
-rw-r--r--contrib/caldera/sshd.pam2
-rw-r--r--contrib/cygwin/Makefile4
-rw-r--r--contrib/cygwin/ssh-host-config241
-rw-r--r--contrib/gnome-ssh-askpass.c168
-rw-r--r--contrib/redhat/openssh.spec4
-rw-r--r--contrib/redhat/sshd.pam2
-rwxr-xr-xcontrib/solaris/buildpkg.sh386
-rwxr-xr-xcontrib/solaris/opensshd.in82
-rw-r--r--contrib/ssh-copy-id4
-rw-r--r--contrib/ssh-copy-id.14
-rw-r--r--contrib/sshd.pam.generic2
-rw-r--r--contrib/suse/openssh.spec4
-rw-r--r--contrib/suse/rc.sshd6
-rw-r--r--defines.h8
-rw-r--r--dispatch.c3
-rw-r--r--envpass.sh44
-rw-r--r--getput.h58
-rw-r--r--jpake.c604
-rw-r--r--jpake.h134
-rw-r--r--kex.c2
-rw-r--r--kexgexs.c27
-rw-r--r--key.c7
-rw-r--r--loginrec.c139
-rw-r--r--mdoc2man.pl592
-rw-r--r--misc.c27
-rw-r--r--moduli.02
-rw-r--r--moduli.h23
-rw-r--r--monitor.c231
-rw-r--r--monitor.h9
-rw-r--r--monitor_fdpass.c29
-rw-r--r--monitor_wrap.c167
-rw-r--r--monitor_wrap.h22
-rw-r--r--mpaux.c46
-rw-r--r--mpaux.h22
-rw-r--r--myproposal.h9
-rw-r--r--nchan.c12
-rw-r--r--openbsd-compat/.cvsignore1
-rw-r--r--openbsd-compat/basename.h12
-rw-r--r--openbsd-compat/bindresvport.h12
-rw-r--r--openbsd-compat/bsd-arc4random.h37
-rw-r--r--openbsd-compat/bsd-getpeereid.h14
-rw-r--r--openbsd-compat/bsd-poll.c5
-rw-r--r--openbsd-compat/bsd-snprintf.h19
-rw-r--r--openbsd-compat/daemon.h11
-rw-r--r--openbsd-compat/dirname.h5
-rw-r--r--openbsd-compat/fake-gai-errnos.h14
-rw-r--r--openbsd-compat/fake-getaddrinfo.c135
-rw-r--r--openbsd-compat/fake-getaddrinfo.h47
-rw-r--r--openbsd-compat/fake-getnameinfo.c55
-rw-r--r--openbsd-compat/fake-getnameinfo.h20
-rw-r--r--openbsd-compat/fake-queue.h584
-rw-r--r--openbsd-compat/fake-socket.h47
-rw-r--r--openbsd-compat/getcwd.h12
-rw-r--r--openbsd-compat/getgrouplist.h16
-rw-r--r--openbsd-compat/getopt.h14
-rw-r--r--openbsd-compat/inet_aton.h12
-rw-r--r--openbsd-compat/inet_ntoa.h12
-rw-r--r--openbsd-compat/inet_ntop.h13
-rw-r--r--openbsd-compat/mktemp.h13
-rw-r--r--openbsd-compat/port-uw.c4
-rw-r--r--openbsd-compat/realpath.h13
-rw-r--r--openbsd-compat/rresvport.h12
-rw-r--r--openbsd-compat/setenv.h14
-rw-r--r--openbsd-compat/setproctitle.h13
-rw-r--r--openbsd-compat/strlcat.h12
-rw-r--r--openbsd-compat/strlcpy.h12
-rw-r--r--openbsd-compat/strmode.h7
-rw-r--r--openbsd-compat/strsep.h12
-rw-r--r--openbsd-compat/tree.h667
-rw-r--r--openbsd-compat/xcrypt.c2
-rw-r--r--openbsd-compat/xmmap.c5
-rw-r--r--openbsd-compat/xmmap.h23
-rw-r--r--packet.c75
-rw-r--r--pathnames.h10
-rw-r--r--radix.c158
-rw-r--r--radix.h28
-rw-r--r--readconf.c130
-rw-r--r--readconf.h9
-rw-r--r--readpass.h19
-rw-r--r--regress/authorized_keys_root2
-rw-r--r--regress/conch-ciphers.sh3
-rwxr-xr-xregress/copy.1bin45948 -> 0 bytes
-rwxr-xr-xregress/copy.2bin45948 -> 0 bytes
-rw-r--r--regress/putty-ciphers.sh7
-rw-r--r--regress/putty-kex.sh3
-rw-r--r--regress/putty-transfer.sh3
-rw-r--r--scard/.cvsignore2
-rw-r--r--schnorr.c409
-rw-r--r--scp.02
-rw-r--r--scp.c4
-rw-r--r--servconf.c55
-rw-r--r--servconf.h10
-rw-r--r--serverloop.c18
-rw-r--r--session.c18
-rw-r--r--sftp-glob.h37
-rw-r--r--sftp-int.c1191
-rw-r--r--sftp-int.h27
-rw-r--r--sftp-server-main.c5
-rw-r--r--sftp-server.02
-rw-r--r--sftp.08
-rw-r--r--sftp.115
-rw-r--r--sftp.c81
-rw-r--r--ssh-add.02
-rw-r--r--ssh-agent.02
-rw-r--r--ssh-dss.h32
-rw-r--r--ssh-keygen.04
-rw-r--r--ssh-keygen.15
-rw-r--r--ssh-keygen.c18
-rw-r--r--ssh-keyscan.06
-rw-r--r--ssh-keyscan.18
-rw-r--r--ssh-keyscan.c9
-rw-r--r--ssh-keysign.02
-rw-r--r--ssh-rand-helper.02
-rw-r--r--ssh-rsa.h32
-rw-r--r--ssh.020
-rw-r--r--ssh.125
-rw-r--r--ssh.c58
-rw-r--r--ssh2.h9
-rw-r--r--ssh_config5
-rw-r--r--ssh_config.025
-rw-r--r--ssh_config.528
-rw-r--r--sshconnect.c10
-rw-r--r--sshconnect2.c322
-rw-r--r--sshd.05
-rw-r--r--sshd.86
-rw-r--r--sshd.c5
-rw-r--r--sshd_config.021
-rw-r--r--sshd_config.514
-rw-r--r--sshpty.c9
-rw-r--r--sshtty.h47
-rw-r--r--stamp-h.in0
-rw-r--r--tildexpand.c73
-rw-r--r--tildexpand.h15
-rw-r--r--ttymodes.c7
-rw-r--r--uidswap.c10
-rw-r--r--version.h4
176 files changed, 4670 insertions, 52130 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 12de9ef50..000000000
--- a/.cvsignore
+++ /dev/null
@@ -1,24 +0,0 @@
1ssh
2scp
3sshd
4ssh-add
5ssh-keygen
6ssh-keyscan
7ssh-keysign
8ssh-agent
9sftp-server
10sftp
11configure
12config.h.in
13config.h
14config.status
15config.cache
16config.log
17stamp-h.in
18Makefile
19ssh_prng_cmds
20*.out
21*.0
22buildit.sh
23autom4te.cache
24ssh-rand-helper
diff --git a/ChangeLog b/ChangeLog
index 3d08a80d3..f802c0d7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,497 @@
120090223
2 - (djm) OpenBSD CVS Sync
3 - djm@cvs.openbsd.org 2009/02/22 23:50:57
4 [ssh_config.5 sshd_config.5]
5 don't advertise experimental options
6 - djm@cvs.openbsd.org 2009/02/22 23:59:25
7 [sshd_config.5]
8 missing period
9 - djm@cvs.openbsd.org 2009/02/23 00:06:15
10 [version.h]
11 openssh-5.2
12 - (djm) [README] update for 5.2
13 - (djm) Release openssh-5.2p1
14
1520090222
16 - (djm) OpenBSD CVS Sync
17 - tobias@cvs.openbsd.org 2009/02/21 19:32:04
18 [misc.c sftp-server-main.c ssh-keygen.c]
19 Added missing newlines in error messages.
20 ok dtucker
21
2220090221
23 - (djm) OpenBSD CVS Sync
24 - djm@cvs.openbsd.org 2009/02/17 01:28:32
25 [ssh_config]
26 sync with revised default ciphers; pointed out by dkrause@
27 - djm@cvs.openbsd.org 2009/02/18 04:31:21
28 [schnorr.c]
29 signature should hash over the entire group, not just the generator
30 (this is still disabled code)
31 - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec]
32 [contrib/suse/openssh.spec] Prepare for 5.2p1
33
3420090216
35 - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh]
36 [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled
37 interop tests from FATAL error to a warning. Allows some interop
38 tests to proceed if others are missing necessary prerequisites.
39 - (djm) [configure.ac] support GNU/kFreeBSD and GNU/kOpensolaris
40 systems; patch from Aurelien Jarno via rmh AT aybabtu.com
41
4220090214
43 - (djm) OpenBSD CVS Sync
44 - dtucker@cvs.openbsd.org 2009/02/02 11:15:14
45 [sftp.c]
46 Initialize a few variables to prevent spurious "may be used
47 uninitialized" warnings from newer gcc's. ok djm@
48 - djm@cvs.openbsd.org 2009/02/12 03:00:56
49 [canohost.c canohost.h channels.c channels.h clientloop.c readconf.c]
50 [readconf.h serverloop.c ssh.c]
51 support remote port forwarding with a zero listen port (-R0:...) to
52 dyamically allocate a listen port at runtime (this is actually
53 specified in rfc4254); bz#1003 ok markus@
54 - djm@cvs.openbsd.org 2009/02/12 03:16:01
55 [serverloop.c]
56 tighten check for -R0:... forwarding: only allow dynamic allocation
57 if want_reply is set in the packet
58 - djm@cvs.openbsd.org 2009/02/12 03:26:22
59 [monitor.c]
60 some paranoia: check that the serialised key is really KEY_RSA before
61 diddling its internals
62 - djm@cvs.openbsd.org 2009/02/12 03:42:09
63 [ssh.1]
64 document -R0:... usage
65 - djm@cvs.openbsd.org 2009/02/12 03:44:25
66 [ssh.1]
67 consistency: Dq => Ql
68 - djm@cvs.openbsd.org 2009/02/12 03:46:17
69 [ssh_config.5]
70 document RemoteForward usage with 0 listen port
71 - jmc@cvs.openbsd.org 2009/02/12 07:34:20
72 [ssh_config.5]
73 kill trailing whitespace;
74 - markus@cvs.openbsd.org 2009/02/13 11:50:21
75 [packet.c]
76 check for enc !=NULL in packet_start_discard
77 - djm@cvs.openbsd.org 2009/02/14 06:35:49
78 [PROTOCOL]
79 mention that eow and no-more-sessions extensions are sent only to
80 OpenSSH peers
81
8220090212
83 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically
84 set ownership and modes, so avoid explicitly setting them
85 - (djm) [configure.ac loginrec.c] bz#1421: fix lastlog support for OSX.
86 OSX provides a getlastlogxbyname function that automates the reading of
87 a lastlog file. Also, the pututxline function will update lastlog so
88 there is no need for loginrec.c to do it explicitly. Collapse some
89 overly verbose code while I'm in there.
90
9120090201
92 - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in
93 channels.c too, so move the definition for non-IP6 platforms to defines.h
94 where it can be shared.
95
9620090129
97 - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen.
98 If the CYGWIN environment variable is empty, the installer script
99 should not install the service with an empty CYGWIN variable, but
100 rather without setting CYGWNI entirely.
101 - (tim) [contrib/cygwin/ssh-host-config] Whitespace cleanup. No code changes.
102
10320090128
104 - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen.
105 Changes to work on Cygwin 1.5.x as well as on the new Cygwin 1.7.x.
106 The information given for the setting of the CYGWIN environment variable
107 is wrong for both releases so I just removed it, together with the
108 unnecessary (Cygwin 1.5.x) or wrong (Cygwin 1.7.x) default setting.
109
11020081228
111 - (djm) OpenBSD CVS Sync
112 - stevesk@cvs.openbsd.org 2008/12/09 03:20:42
113 [channels.c servconf.c]
114 channel_print_adm_permitted_opens() should deal with all the printing
115 for that config option. suggested by markus@; ok markus@ djm@
116 dtucker@
117 - djm@cvs.openbsd.org 2008/12/09 04:32:22
118 [auth2-chall.c]
119 replace by-hand string building with xasprinf(); ok deraadt@
120 - sobrado@cvs.openbsd.org 2008/12/09 15:35:00
121 [sftp.1 sftp.c]
122 update for the synopses displayed by the 'help' command, there are a
123 few missing flags; add 'bye' to the output of 'help'; sorting and spacing.
124 jmc@ suggested replacing .Oo/.Oc with a single .Op macro.
125 ok jmc@
126 - stevesk@cvs.openbsd.org 2008/12/09 22:37:33
127 [clientloop.c]
128 fix typo in error message
129 - stevesk@cvs.openbsd.org 2008/12/10 03:55:20
130 [addrmatch.c]
131 o cannot be NULL here but use xfree() to be consistent; ok djm@
132 - stevesk@cvs.openbsd.org 2008/12/29 01:12:36
133 [ssh-keyscan.1]
134 fix example, default key type is rsa for 3+ years; from
135 frederic.perrin@resel.fr
136 - stevesk@cvs.openbsd.org 2008/12/29 02:23:26
137 [pathnames.h]
138 no need to escape single quotes in comments
139 - okan@cvs.openbsd.org 2008/12/30 00:46:56
140 [sshd_config.5]
141 add AllowAgentForwarding to available Match keywords list
142 ok djm
143 - djm@cvs.openbsd.org 2009/01/01 21:14:35
144 [channels.c]
145 call channel destroy callbacks on receipt of open failure messages.
146 fixes client hangs when connecting to a server that has MaxSessions=0
147 set spotted by imorgan AT nas.nasa.gov; ok markus@
148 - djm@cvs.openbsd.org 2009/01/01 21:17:36
149 [kexgexs.c]
150 fix hash calculation for KEXGEX: hash over the original client-supplied
151 values and not the sanity checked versions that we acutally use;
152 bz#1540 reported by john.smith AT arrows.demon.co.uk
153 ok markus@
154 - djm@cvs.openbsd.org 2009/01/14 01:38:06
155 [channels.c]
156 support SOCKS4A protocol, from dwmw2 AT infradead.org via bz#1482;
157 "looks ok" markus@
158 - stevesk@cvs.openbsd.org 2009/01/15 17:38:43
159 [readconf.c]
160 1) use obsolete instead of alias for consistency
161 2) oUserKnownHostsFile not obsolete but oGlobalKnownHostsFile2 is
162 so move the comment.
163 3) reorder so like options are together
164 ok djm@
165 - djm@cvs.openbsd.org 2009/01/22 09:46:01
166 [channels.c channels.h session.c]
167 make Channel->path an allocated string, saving a few bytes here and
168 there and fixing bz#1380 in the process; ok markus@
169 - djm@cvs.openbsd.org 2009/01/22 09:49:57
170 [channels.c]
171 oops! I committed the wrong version of the Channel->path diff,
172 it was missing some tweaks suggested by stevesk@
173 - djm@cvs.openbsd.org 2009/01/22 10:02:34
174 [clientloop.c misc.c readconf.c readconf.h servconf.c servconf.h]
175 [serverloop.c ssh-keyscan.c ssh.c sshd.c]
176 make a2port() return -1 when it encounters an invalid port number
177 rather than 0, which it will now treat as valid (needed for future work)
178 adjust current consumers of a2port() to check its return value is <= 0,
179 which in turn required some things to be converted from u_short => int
180 make use of int vs. u_short consistent in some other places too
181 feedback & ok markus@
182 - djm@cvs.openbsd.org 2009/01/22 10:09:16
183 [auth-options.c]
184 another chunk of a2port() diff that got away. wtfdjm??
185 - djm@cvs.openbsd.org 2009/01/23 07:58:11
186 [myproposal.h]
187 prefer CTR modes and revised arcfour (i.e w/ discard) modes to CBC
188 modes; ok markus@
189 - naddy@cvs.openbsd.org 2009/01/24 17:10:22
190 [ssh_config.5 sshd_config.5]
191 sync list of preferred ciphers; ok djm@
192 - markus@cvs.openbsd.org 2009/01/26 09:58:15
193 [cipher.c cipher.h packet.c]
194 Work around the CPNI-957037 Plaintext Recovery Attack by always
195 reading 256K of data on packet size or HMAC errors (in CBC mode only).
196 Help, feedback and ok djm@
197 Feedback from Martin Albrecht and Paterson Kenny
198
19920090107
200 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X.
201 Patch based on one from vgiffin AT apple.com; ok dtucker@
202 - (djm) [channels.c] bz#1419: support "on demand" X11 forwarding via
203 launchd on OS X; patch from vgiffin AT apple.com, slightly tweaked;
204 ok dtucker@
205 - (djm) [contrib/ssh-copy-id.1 contrib/ssh-copy-id] bz#1492: Make
206 ssh-copy-id copy id_rsa.pub by default (instead of the legacy "identity"
207 key). Patch from cjwatson AT debian.org
208
20920090107
210 - (tim) [configure.ac defines.h openbsd-compat/port-uw.c
211 openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI.
212 OK djm@ dtucker@
213 - (tim) [configure.ac] Move check_for_libcrypt_later=1 in *-*-sysv5*) section.
214 OpenServer 6 doesn't need libcrypt.
215
21620081209
217 - (djm) OpenBSD CVS Sync
218 - djm@cvs.openbsd.org 2008/12/09 02:38:18
219 [clientloop.c]
220 The ~C escape handler does not work correctly for multiplexed sessions -
221 it opens a commandline on the master session, instead of on the slave
222 that requested it. Disable it on slave sessions until such time as it
223 is fixed; bz#1543 report from Adrian Bridgett via Colin Watson
224 ok markus@
225 - djm@cvs.openbsd.org 2008/12/09 02:39:59
226 [sftp.c]
227 Deal correctly with failures in remote stat() operation in sftp,
228 correcting fail-on-error behaviour in batchmode. bz#1541 report and
229 fix from anedvedicky AT gmail.com; ok markus@
230 - djm@cvs.openbsd.org 2008/12/09 02:58:16
231 [readconf.c]
232 don't leave junk (free'd) pointers around in Forward *fwd argument on
233 failure; avoids double-free in ~C -L handler when given an invalid
234 forwarding specification; bz#1539 report from adejong AT debian.org
235 via Colin Watson; ok markus@ dtucker@
236 - djm@cvs.openbsd.org 2008/12/09 03:02:37
237 [sftp.1 sftp.c]
238 correct sftp(1) and corresponding usage syntax;
239 bz#1518 patch from imorgan AT nas.nasa.gov; ok deraadt@ improved diff jmc@
240
24120081208
242 - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually
243 use some stack in main().
244 Report and suggested fix from vapier AT gentoo.org
245 - (djm) OpenBSD CVS Sync
246 - markus@cvs.openbsd.org 2008/12/02 19:01:07
247 [clientloop.c]
248 we have to use the recipient's channel number (RFC 4254) for
249 SSH2_MSG_CHANNEL_SUCCESS/SSH2_MSG_CHANNEL_FAILURE messages,
250 otherwise we trigger 'Non-public channel' error messages on sshd
251 systems with clientkeepalive enabled; noticed by sturm; ok djm;
252 - markus@cvs.openbsd.org 2008/12/02 19:08:59
253 [serverloop.c]
254 backout 1.149, since it's not necessary and openssh clients send
255 broken CHANNEL_FAILURE/SUCCESS messages since about 2004; ok djm@
256 - markus@cvs.openbsd.org 2008/12/02 19:09:38
257 [channels.c]
258 s/remote_id/id/ to be more consistent with other code; ok djm@
259
26020081201
261 - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files
262 and tweak the is-sshd-running check in ssh-host-config. Patch from
263 vinschen at redhat com.
264 - (dtucker) OpenBSD CVS Sync
265 - markus@cvs.openbsd.org 2008/11/21 15:47:38
266 [packet.c]
267 packet_disconnect() on padding error, too. should reduce the success
268 probability for the CPNI-957037 Plaintext Recovery Attack to 2^-18
269 ok djm@
270 - dtucker@cvs.openbsd.org 2008/11/30 11:59:26
271 [monitor_fdpass.c]
272 Retry sendmsg/recvmsg on EAGAIN and EINTR; ok djm@
273
27420081123
275 - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some
276 declarations, removing an unnecessary union member and adding whitespace.
277 cmsgbuf.tmp thing spotted by des at des no, ok djm some time ago.
278
27920081118
280 - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id
281 member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and
282 feedback by djm@
283
28420081111
285 - (dtucker) OpenBSD CVS Sync
286 - jmc@cvs.openbsd.org 2008/11/05 11:22:54
287 [servconf.c]
288 passord -> password;
289 fixes user/5975 from Rene Maroufi
290 - stevesk@cvs.openbsd.org 2008/11/07 00:42:12
291 [ssh-keygen.c]
292 spelling/typo in comment
293 - stevesk@cvs.openbsd.org 2008/11/07 18:50:18
294 [nchan.c]
295 add space to some log/debug messages for readability; ok djm@ markus@
296 - dtucker@cvs.openbsd.org 2008/11/07 23:34:48
297 [auth2-jpake.c]
298 Move JPAKE define to make life easier for portable. ok djm@
299 - tobias@cvs.openbsd.org 2008/11/09 12:34:47
300 [session.c ssh.1]
301 typo fixed (overriden -> overridden)
302 ok espie, jmc
303 - stevesk@cvs.openbsd.org 2008/11/11 02:58:09
304 [servconf.c]
305 USE_AFS not referenced so remove #ifdef. fixes sshd -T not printing
306 kerberosgetafstoken. ok dtucker@
307 (Id sync only, we still want the ifdef in portable)
308 - stevesk@cvs.openbsd.org 2008/11/11 03:55:11
309 [channels.c]
310 for sshd -T print 'permitopen any' vs. 'permitopen' for case of no
311 permitopen's; ok and input dtucker@
312 - djm@cvs.openbsd.org 2008/11/10 02:06:35
313 [regress/putty-ciphers.sh]
314 PuTTY supports AES CTR modes, so interop test against them too
315
31620081105
317 - OpenBSD CVS Sync
318 - djm@cvs.openbsd.org 2008/11/03 08:59:41
319 [servconf.c]
320 include MaxSessions in sshd -T output; patch from imorgan AT nas.nasa.gov
321 - djm@cvs.openbsd.org 2008/11/04 07:58:09
322 [auth.c]
323 need unistd.h for close() prototype
324 (ID sync only)
325 - djm@cvs.openbsd.org 2008/11/04 08:22:13
326 [auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h]
327 [readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5]
328 [sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c]
329 [Makefile.in]
330 Add support for an experimental zero-knowledge password authentication
331 method using the J-PAKE protocol described in F. Hao, P. Ryan,
332 "Password Authenticated Key Exchange by Juggling", 16th Workshop on
333 Security Protocols, Cambridge, April 2008.
334
335 This method allows password-based authentication without exposing
336 the password to the server. Instead, the client and server exchange
337 cryptographic proofs to demonstrate of knowledge of the password while
338 revealing nothing useful to an attacker or compromised endpoint.
339
340 This is experimental, work-in-progress code and is presently
341 compiled-time disabled (turn on -DJPAKE in Makefile.inc).
342
343 "just commit it. It isn't too intrusive." deraadt@
344 - stevesk@cvs.openbsd.org 2008/11/04 19:18:00
345 [readconf.c]
346 because parse_forward() is now used to parse all forward types (DLR),
347 and it malloc's space for host variables, we don't need to malloc
348 here. fixes small memory leaks.
349
350 previously dynamic forwards were not parsed in parse_forward() and
351 space was not malloc'd in that case.
352
353 ok djm@
354 - stevesk@cvs.openbsd.org 2008/11/05 03:23:09
355 [clientloop.c ssh.1]
356 add dynamic forward escape command line; ok djm@
357
35820081103
359 - OpenBSD CVS Sync
360 - sthen@cvs.openbsd.org 2008/07/24 23:55:30
361 [ssh-keygen.1]
362 Add "ssh-keygen -F -l" to synopsis (displays fingerprint from
363 known_hosts). ok djm@
364 - grunk@cvs.openbsd.org 2008/07/25 06:56:35
365 [ssh_config]
366 Add VisualHostKey to example file, ok djm@
367 - grunk@cvs.openbsd.org 2008/07/25 07:05:16
368 [key.c]
369 In random art visualization, make sure to use the end marker only at the
370 end. Initial diff by Dirk Loss, tweaks and ok djm@
371 - markus@cvs.openbsd.org 2008/07/31 14:48:28
372 [sshconnect2.c]
373 don't allocate space for empty banners; report t8m at centrum.cz;
374 ok deraadt
375 - krw@cvs.openbsd.org 2008/08/02 04:29:51
376 [ssh_config.5]
377 whitepsace -> whitespace. From Matthew Clarke via bugs@.
378 - djm@cvs.openbsd.org 2008/08/21 04:09:57
379 [session.c]
380 allow ForceCommand internal-sftp with arguments. based on patch from
381 michael.barabanov AT gmail.com; ok markus@
382 - djm@cvs.openbsd.org 2008/09/06 12:24:13
383 [kex.c]
384 OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our
385 replacement anymore
386 (ID sync only for portable - we still need this)
387 - markus@cvs.openbsd.org 2008/09/11 14:22:37
388 [compat.c compat.h nchan.c ssh.c]
389 only send eow and no-more-sessions requests to openssh 5 and newer;
390 fixes interop problems with broken ssh v2 implementations; ok djm@
391 - millert@cvs.openbsd.org 2008/10/02 14:39:35
392 [session.c]
393 Convert an unchecked strdup to xstrdup. OK deraadt@
394 - jmc@cvs.openbsd.org 2008/10/03 13:08:12
395 [sshd.8]
396 do not give an example of how to chmod files: we can presume the user
397 knows that. removes an ambiguity in the permission of authorized_keys;
398 ok deraadt
399 - deraadt@cvs.openbsd.org 2008/10/03 23:56:28
400 [sshconnect2.c]
401 Repair strnvis() buffersize of 4*n+1, with termination gauranteed by the
402 function.
403 spotted by des@freebsd, who commited an incorrect fix to the freebsd tree
404 and (as is fairly typical) did not report the problem to us. But this fix
405 is correct.
406 ok djm
407 - djm@cvs.openbsd.org 2008/10/08 23:34:03
408 [ssh.1 ssh.c]
409 Add -y option to force logging via syslog rather than stderr.
410 Useful for daemonised ssh connection (ssh -f). Patch originally from
411 and ok'd by markus@
412 - djm@cvs.openbsd.org 2008/10/09 03:50:54
413 [servconf.c sshd_config.5]
414 support setting PermitEmptyPasswords in a Match block
415 requested in PR3891; ok dtucker@
416 - jmc@cvs.openbsd.org 2008/10/09 06:54:22
417 [ssh.c]
418 add -y to usage();
419 - stevesk@cvs.openbsd.org 2008/10/10 04:55:16
420 [scp.c]
421 spelling in comment; ok djm@
422 - stevesk@cvs.openbsd.org 2008/10/10 05:00:12
423 [key.c]
424 typo in error message; ok djm@
425 - stevesk@cvs.openbsd.org 2008/10/10 16:43:27
426 [ssh_config.5]
427 use 'Privileged ports can be forwarded only when logging in as root on
428 the remote machine.' for RemoteForward just like ssh.1 -R.
429 ok djm@ jmc@
430 - stevesk@cvs.openbsd.org 2008/10/14 18:11:33
431 [sshconnect.c]
432 use #define ROQUIET here; no binary change. ok dtucker@
433 - stevesk@cvs.openbsd.org 2008/10/17 18:36:24
434 [ssh_config.5]
435 correct and clarify VisualHostKey; ok jmc@
436 - stevesk@cvs.openbsd.org 2008/10/30 19:31:16
437 [clientloop.c sshd.c]
438 don't need to #include "monitor_fdpass.h"
439 - stevesk@cvs.openbsd.org 2008/10/31 15:05:34
440 [dispatch.c]
441 remove unused #define DISPATCH_MIN; ok markus@
442 - djm@cvs.openbsd.org 2008/11/01 04:50:08
443 [sshconnect2.c]
444 sprinkle ARGSUSED on dispatch handlers
445 nuke stale unusued prototype
446 - stevesk@cvs.openbsd.org 2008/11/01 06:43:33
447 [channels.c]
448 fix some typos in log messages; ok djm@
449 - sobrado@cvs.openbsd.org 2008/11/01 11:14:36
450 [ssh-keyscan.1 ssh-keyscan.c]
451 the ellipsis is not an optional argument; while here, improve spacing.
452 - stevesk@cvs.openbsd.org 2008/11/01 17:40:33
453 [clientloop.c readconf.c readconf.h ssh.c]
454 merge dynamic forward parsing into parse_forward();
455 'i think this is OK' djm@
456 - stevesk@cvs.openbsd.org 2008/11/02 00:16:16
457 [ttymodes.c]
458 protocol 2 tty modes support is now 7.5 years old so remove these
459 debug3()s; ok deraadt@
460 - stevesk@cvs.openbsd.org 2008/11/03 01:07:02
461 [readconf.c]
462 remove valueless comment
463 - stevesk@cvs.openbsd.org 2008/11/03 02:44:41
464 [readconf.c]
465 fix comment
466 - (djm) [contrib/caldera/ssh-host-keygen contrib/suse/rc.sshd]
467 Make example scripts generate keys with default sizes rather than fixed,
468 non-default 1024 bits; patch from imorgan AT nas.nasa.gov
469 - (djm) [contrib/sshd.pam.generic contrib/caldera/sshd.pam]
470 [contrib/redhat/sshd.pam] Move pam_nologin to account group from
471 incorrect auth group in example files;
472 patch from imorgan AT nas.nasa.gov
473
47420080906
475 - (dtucker) [config.guess config.sub] Update to latest versions from
476 http://git.savannah.gnu.org/gitweb/ (2008-04-14 and 2008-06-16
477 respectively).
478
47920080830
480 - (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs
481 larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch
482 from Nicholas Marriott.
483
48420080721
485 - (djm) OpenBSD CVS Sync
486 - djm@cvs.openbsd.org 2008/07/23 07:36:55
487 [servconf.c]
488 do not try to print options that have been compile-time disabled
489 in config test mode (sshd -T); report from nix-corp AT esperi.org.uk
490 ok dtucker@
491 - (djm) [servconf.c] Print UsePAM option in config test mode (when it
492 has been compiled in); report from nix-corp AT esperi.org.uk
493 ok dtucker@
494
120080721 49520080721
2 - (djm) OpenBSD CVS Sync 496 - (djm) OpenBSD CVS Sync
3 - jmc@cvs.openbsd.org 2008/07/18 22:51:01 497 - jmc@cvs.openbsd.org 2008/07/18 22:51:01
@@ -873,3841 +1367,3 @@
873 [contrib/suse/openssh.spec] Crank version numbers in RPM spec files 1367 [contrib/suse/openssh.spec] Crank version numbers in RPM spec files
874 - (djm) [README] Update link to release notes 1368 - (djm) [README] Update link to release notes
875 - (djm) Release 5.0p1 1369 - (djm) Release 5.0p1
876
87720080315
878 - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are
879 empty; report and patch from Peter Stuge
880 - (djm) [regress/test-exec.sh] Silence noise from detection of putty
881 commands; report from Peter Stuge
882 - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing
883 crashes when used with ChrootDirectory
884
885
88620080327
887 - (dtucker) Cache selinux status earlier so we know if it's enabled after a
888 chroot. Allows ChrootDirectory to work with selinux support compiled in
889 but not enabled. Using it with selinux enabled will require some selinux
890 support inside the chroot. "looks sane" djm@
891 - (djm) Fix RCS ident in sftp-server-main.c
892 - (djm) OpenBSD CVS sync:
893 - jmc@cvs.openbsd.org 2008/02/11 07:58:28
894 [ssh.1 sshd.8 sshd_config.5]
895 bump Mdocdate for pages committed in "febuary", necessary because
896 of a typo in rcs.c;
897 - deraadt@cvs.openbsd.org 2008/03/13 01:49:53
898 [monitor_fdpass.c]
899 Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
900 an extensive discussion with otto, kettenis, millert, and hshoexer
901 - deraadt@cvs.openbsd.org 2008/03/15 16:19:02
902 [monitor_fdpass.c]
903 Repair the simple cases for msg_controllen where it should just be
904 CMSG_SIZE(sizeof(int)), not sizeof(buffer) which may be larger because
905 of alignment; ok kettenis hshoexer
906 - djm@cvs.openbsd.org 2008/03/23 12:54:01
907 [sftp-client.c]
908 prefer POSIX-style file renaming over filexfer rename behaviour if the
909 server supports the posix-rename@openssh.com extension.
910 Note that the old (filexfer) behaviour would refuse to clobber an
911 existing file. Users who depended on this should adjust their sftp(1)
912 usage.
913 ok deraadt@ markus@
914 - deraadt@cvs.openbsd.org 2008/03/24 16:11:07
915 [monitor_fdpass.c]
916 msg_controllen has to be CMSG_SPACE so that the kernel can account for
917 each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
918 works now that kernel fd passing has been fixed to accept a bit of
919 sloppiness because of this ABI repair.
920 lots of discussion with kettenis
921 - djm@cvs.openbsd.org 2008/03/25 11:58:02
922 [session.c sshd_config.5]
923 ignore ~/.ssh/rc if a sshd_config ForceCommand is specified;
924 from dtucker@ ok deraadt@ djm@
925 - djm@cvs.openbsd.org 2008/03/25 23:01:41
926 [session.c]
927 last patch had backwards test; spotted by termim AT gmail.com
928 - djm@cvs.openbsd.org 2008/03/26 21:28:14
929 [auth-options.c auth-options.h session.c sshd.8]
930 add no-user-rc authorized_keys option to disable execution of ~/.ssh/rc
931 - djm@cvs.openbsd.org 2008/03/27 00:16:49
932 [version.h]
933 openssh-4.9
934 - djm@cvs.openbsd.org 2008/03/24 21:46:54
935 [regress/sftp-badcmds.sh]
936 disable no-replace rename test now that we prefer a POSIX rename; spotted
937 by dkrause@
938 - (djm) [configure.ac] fix alignment of --without-stackprotect description
939 - (djm) [configure.ac] --with-selinux too
940 - (djm) [regress/Makefile] cleanup PuTTY interop test droppings
941 - (djm) [README] Update link to release notes
942 - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec]
943 [contrib/suse/openssh.spec] Crank version numbers in RPM spec files
944 - (djm) Release 4.9p1
945
94620080315
947 - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are
948 empty; report and patch from Peter Stuge
949 - (djm) [regress/test-exec.sh] Silence noise from detection of putty
950 commands; report from Peter Stuge
951 - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing
952 crashes when used with ChrootDirectory
953
95420080314
955 - (tim) [regress/sftp-cmds.sh] s/cd/lcd/ in lls test. Reported by
956 vinschen at redhat.com. Add () to put echo commands in subshell for lls test
957 I mistakenly left out of last commit.
958 - (tim) [regress/localcommand.sh] Shell portability fix. Reported by imorgan at
959 nas.nasa.gov
960
96120080313
962 - (djm) [Makefile.in regress/Makefile] Fix interop-tests target (note to
963 self: make changes to Makefile.in next time, not the generated Makefile).
964 - (djm) [Makefile.in regress/test-exec.sh] Find installed plink(1) and
965 puttygen(1) by $PATH
966 - (tim) [scp.c] Use poll.h if available, fall back to sys/poll.h if not. Patch
967 by vinschen at redhat.com.
968 - (tim) [regress/sftp-cmds.sh regress/ssh2putty.sh] Shell portability fixes
969 from vinschen at redhat.com and imorgan at nas.nasa.gov
970
97120080312
972 - (djm) OpenBSD CVS Sync
973 - dtucker@cvs.openbsd.org 2007/10/29 06:57:13
974 [regress/Makefile regress/localcommand.sh]
975 Add simple regress test for LocalCommand; ok djm@
976 - jmc@cvs.openbsd.org 2007/11/25 15:35:09
977 [regress/agent-getpeereid.sh regress/agent.sh]
978 more existant -> existent, from Martynas Venckus;
979 pfctl changes: ok henning
980 ssh changes: ok deraadt
981 - djm@cvs.openbsd.org 2007/12/12 05:04:03
982 [regress/sftp-cmds.sh]
983 unbreak lls command and add a regress test that would have caught the
984 breakage; spotted by mouring@
985 NB. sftp code change already committed.
986 - djm@cvs.openbsd.org 2007/12/21 04:13:53
987 [regress/Makefile regress/test-exec.sh regress/putty-ciphers.sh]
988 [regress/putty-kex.sh regress/putty-transfer.sh regress/ssh2putty.sh]
989 basic (crypto, kex and transfer) interop regression tests against putty
990 To run these, install putty and run "make interop-tests" from the build
991 directory - the tests aren't run by default yet.
992
99320080311
994 - (dtucker) [auth-pam.c monitor.c session.c sshd.c] Bug #926: Move
995 pam_open_session and pam_close_session into the privsep monitor, which
996 will ensure that pam_session_close is called as root. Patch from Tomas
997 Mraz.
998
99920080309
1000 - (dtucker) [configure.ac] It turns out gcc's -fstack-protector-all doesn't
1001 always work for all platforms and versions, so test what we can and
1002 add a configure flag to turn it of if needed. ok djm@
1003 - (dtucker) [openbsd-compat/port-aix.{c,h}] Remove AIX specific initgroups
1004 implementation. It's not needed to fix bug #1081 and breaks the build
1005 on some AIX configurations.
1006 - (dtucker) [openbsd-compat/regress/strtonumtest.c] Bug #1347: Use platform's
1007 equivalent of LLONG_MAX for the compat regression tests, which makes them
1008 run on AIX and HP-UX. Patch from David Leonard.
1009 - (dtucker) [configure.ac] Run stack-protector tests with -Werror to catch
1010 platforms where gcc understands the option but it's not supported (and
1011 thus generates a warning).
1012
101320080307
1014 - (djm) OpenBSD CVS Sync
1015 - jmc@cvs.openbsd.org 2008/02/11 07:58:28
1016 [ssh.1 sshd.8 sshd_config.5]
1017 bump Mdocdate for pages committed in "febuary", necessary because
1018 of a typo in rcs.c;
1019 - djm@cvs.openbsd.org 2008/02/13 22:38:17
1020 [servconf.h session.c sshd.c]
1021 rekey arc4random and OpenSSL RNG in postauth child
1022 closefrom fds > 2 before shell/command execution
1023 ok markus@
1024 - mbalmer@cvs.openbsd.org 2008/02/14 13:10:31
1025 [sshd.c]
1026 When started in configuration test mode (-t) do not check that sshd is
1027 being started with an absolute path.
1028 ok djm
1029 - markus@cvs.openbsd.org 2008/02/20 15:25:26
1030 [session.c]
1031 correct boolean encoding for coredump; der Mouse via dugsong
1032 - djm@cvs.openbsd.org 2008/02/22 05:58:56
1033 [session.c]
1034 closefrom() call was too early, delay it until just before we execute
1035 the user's rc files (if any).
1036 - dtucker@cvs.openbsd.org 2008/02/22 20:44:02
1037 [clientloop.c packet.c packet.h serverloop.c]
1038 Allow all SSH2 packet types, including UNIMPLEMENTED to reset the
1039 keepalive timer (bz #1307). ok markus@
1040 - djm@cvs.openbsd.org 2008/02/27 20:21:15
1041 [sftp-server.c]
1042 add an extension method "posix-rename@openssh.com" to perform POSIX atomic
1043 rename() operations. based on patch from miklos AT szeredi.hu in bz#1400;
1044 ok dtucker@ markus@
1045 - deraadt@cvs.openbsd.org 2008/03/02 18:19:35
1046 [monitor_fdpass.c]
1047 use a union to ensure alignment of the cmsg (pay attention: various other
1048 parts of the tree need this treatment too); ok djm
1049 - deraadt@cvs.openbsd.org 2008/03/04 21:15:42
1050 [version.h]
1051 crank version; from djm
1052 - (tim) [regress/sftp-glob.sh] Shell portability fix.
1053
105420080302
1055 - (dtucker) [configure.ac] FreeBSD's glob() doesn't behave the way we expect
1056 either, so use our own.
1057
105820080229
1059 - (dtucker) [openbsd-compat/bsd-poll.c] We don't check for select(2) in
1060 configure (and there's not much point, as openssh won't work without it)
1061 so HAVE_SELECT is not defined and the poll(2) compat code doesn't get
1062 built in. Remove HAVE_SELECT so we can build on platforms without poll.
1063 - (dtucker) [scp.c] Include sys/poll.h inside HAVE_SYS_POLL_H.
1064 - (djm) [contrib/gnome-ssh-askpass2.h] Keep askpass windown on top. From
1065 Debian patch via bernd AT openbsd.org
1066
106720080228
1068 - (dtucker) [configure.ac] Add -fstack-protector to LDFLAGS too, fixes
1069 linking problems on AIX with gcc 4.1.x.
1070 - (dtucker) [includes.h ssh-add.c ssh-agent.c ssh-keygen.c ssh.c sshd.c
1071 openbsd-compat/openssl-compat.{c,h}] Bug #1437 Move the OpenSSL compat
1072 header to after OpenSSL headers, since some versions of OpenSSL have
1073 SSLeay_add_all_algorithms as a macro already.
1074 - (dtucker) [key.c defines.h openbsd-compat/openssl-compat.h] Move old OpenSSL
1075 compat glue into openssl-compat.h.
1076 - (dtucker) [configure.ac openbsd-compat/port-aix.{c,h}] Bug #1081: Implement
1077 getgrouplist via getgrset on AIX, rather than iterating over getgrent.
1078 This allows, eg, Match and AllowGroups directives to work with NIS and
1079 LDAP groups.
1080 - (dtucker) [sshd.c] Bug #1042: make log messages for tcpwrappers use the
1081 same SyslogFacility as the rest of sshd. Patch from William Knox,
1082 ok djm@.
1083
108420080225
1085 - (dtucker) [openbsd-compat/fake-rfc2553.h] rename ssh_gai_strerror hack
1086 since it now conflicts with the helper function in misc.c. From
1087 vinschen AT redhat.com.
1088 - (dtucker) [configure.ac audit-bsm.c] Bug #1420: Add a local implementation
1089 of aug_get_machine for systems that don't have their own (eg OS X, FreeBSD).
1090 Help and testing from csjp at FreeBSD org, vgiffin at apple com. ok djm@
1091 - (dtucker) [includes.h openbsd-compat/openssl-compat.c] Bug #1437: reshuffle
1092 headers so ./configure --with-ssl-engine actually works. Patch from
1093 Ian Lister.
1094
109520080224
1096 - (tim) [contrib/cygwin/ssh-host-config]
1097 Grammar changes on SYSCONFDIR LOCALSTATEDIR messages.
1098 Check more thoroughly that it's possible to create the /var/empty directory.
1099 Patch by vinschen AT redhat.com
1100
110120080210
1102 - OpenBSD CVS Sync
1103 - chl@cvs.openbsd.org 2008/01/11 07:22:28
1104 [sftp-client.c sftp-client.h]
1105 disable unused functions
1106 initially from tobias@, but disabled them by placing them in
1107 "#ifdef notyet" which was asked by djm@
1108 ok djm@ tobias@
1109 - djm@cvs.openbsd.org 2008/01/19 19:13:28
1110 [ssh.1]
1111 satisfy the pedants: -q does not suppress all diagnostic messages (e.g.
1112 some commandline parsing warnings go unconditionally to stdout).
1113 - djm@cvs.openbsd.org 2008/01/19 20:48:53
1114 [clientloop.c]
1115 fd leak on session multiplexing error path. Report and patch from
1116 gregory_shively AT fanniemae.com
1117 - djm@cvs.openbsd.org 2008/01/19 20:51:26
1118 [ssh.c]
1119 ignore SIGPIPE in multiplex client mode - we can receive this if the
1120 server runs out of fds on us midway. Report and patch from
1121 gregory_shively AT fanniemae.com
1122 - djm@cvs.openbsd.org 2008/01/19 22:04:57
1123 [sftp-client.c]
1124 fix remote handle leak in do_download() local file open error path;
1125 report and fix from sworley AT chkno.net
1126 - djm@cvs.openbsd.org 2008/01/19 22:22:58
1127 [ssh-keygen.c]
1128 when hashing individual hosts (ssh-keygen -Hf hostname), make sure we
1129 hash just the specified hostname and not the entire hostspec from the
1130 keyfile. It may be of the form "hostname,ipaddr", which would lead to
1131 a hash that never matches. report and fix from jp AT devnull.cz
1132 - djm@cvs.openbsd.org 2008/01/19 22:37:19
1133 [ssh-keygen.c]
1134 unbreak line numbering (broken in revision 1.164), fix error message
1135 - djm@cvs.openbsd.org 2008/01/19 23:02:40
1136 [channels.c]
1137 When we added support for specified bind addresses for port forwards, we
1138 added a quirk SSH_OLD_FORWARD_ADDR. There is a bug in our handling of
1139 this for -L port forwards that causes the client to listen on both v4
1140 and v6 addresses when connected to a server with this quirk, despite
1141 having set 0.0.0.0 as a bind_address.
1142 report and patch from Jan.Pechanec AT Sun.COM; ok dtucker@
1143 - djm@cvs.openbsd.org 2008/01/19 23:09:49
1144 [readconf.c readconf.h sshconnect2.c]
1145 promote rekeylimit to a int64 so it can hold the maximum useful limit
1146 of 2^32; report and patch from Jan.Pechanec AT Sun.COM, ok dtucker@
1147 - djm@cvs.openbsd.org 2008/01/20 00:38:30
1148 [sftp.c]
1149 When uploading, correctly handle the case of an unquoted filename with
1150 glob metacharacters that match a file exactly but not as a glob, e.g. a
1151 file called "[abcd]". report and test cases from duncan2nd AT gmx.de
1152 - djm@cvs.openbsd.org 2008/01/21 17:24:30
1153 [sftp-server.c]
1154 Remove the fixed 100 handle limit in sftp-server and allocate as many
1155 as we have available file descriptors. Patch from miklos AT szeredi.hu;
1156 ok dtucker@ markus@
1157 - djm@cvs.openbsd.org 2008/01/21 19:20:17
1158 [sftp-client.c]
1159 when a remote write error occurs during an upload, ensure that ACKs for
1160 all issued requests are properly drained. patch from t8m AT centrum.cz
1161 - dtucker@cvs.openbsd.org 2008/01/23 01:56:54
1162 [clientloop.c packet.c serverloop.c]
1163 Revert the change for bz #1307 as it causes connection aborts if an IGNORE
1164 packet arrives while we're waiting in packet_read_expect (and possibly
1165 elsewhere).
1166 - jmc@cvs.openbsd.org 2008/01/31 20:06:50
1167 [scp.1]
1168 explain how to handle local file names containing colons;
1169 requested by Tamas TEVESZ
1170 ok dtucker
1171 - markus@cvs.openbsd.org 2008/02/04 21:53:00
1172 [session.c sftp-server.c sftp.h]
1173 link sftp-server into sshd; feedback and ok djm@
1174 - mcbride@cvs.openbsd.org 2008/02/09 12:15:43
1175 [ssh.1 sshd.8]
1176 Document the correct permissions for the ~/.ssh/ directory.
1177 ok jmc
1178 - djm@cvs.openbsd.org 2008/02/10 09:55:37
1179 [sshd_config.5]
1180 mantion that "internal-sftp" is useful with ForceCommand too
1181 - djm@cvs.openbsd.org 2008/02/10 10:54:29
1182 [servconf.c session.c]
1183 delay ~ expansion for ChrootDirectory so it expands to the logged-in user's
1184 home, rather than the user who starts sshd (probably root)
1185
118620080119
1187 - (djm) Silence noice from expr in ssh-copy-id; patch from
1188 mikel AT mikelward.com
1189 - (djm) Only listen for IPv6 connections on AF_INET6 sockets; patch from
1190 tsr2600 AT gmail.com
1191
119220080102
1193 - (dtucker) [configure.ac] Fix message for -fstack-protector-all test.
1194
119520080101
1196 - (dtucker) OpenBSD CVS Sync
1197 - dtucker@cvs.openbsd.org 2007/12/31 10:41:31
1198 [readconf.c servconf.c]
1199 Prevent strict-aliasing warnings on newer gcc versions. bz #1355, patch
1200 from Dmitry V. Levin, ok djm@
1201 - dtucker@cvs.openbsd.org 2007/12/31 15:27:04
1202 [sshd.c]
1203 When in inetd mode, have sshd generate a Protocol 1 ephemeral server
1204 key only for connections where the client chooses Protocol 1 as opposed
1205 to when it's enabled in the server's config. Speeds up Protocol 2
1206 connections to inetd-mode servers that also allow Protocol 1. bz #440,
1207 based on a patch from bruno at wolff.to, ok markus@
1208 - dtucker@cvs.openbsd.org 2008/01/01 08:47:04
1209 [misc.c]
1210 spaces -> tabs from my previous commit
1211 - dtucker@cvs.openbsd.org 2008/01/01 09:06:39
1212 [scp.c]
1213 If scp -p encounters a pre-epoch timestamp, use the epoch which is
1214 as close as we can get given that it's used unsigned. Add a little
1215 debugging while there. bz #828, ok djm@
1216 - dtucker@cvs.openbsd.org 2008/01/01 09:27:33
1217 [sshd_config.5 servconf.c]
1218 Allow PermitRootLogin in a Match block. Allows for, eg, permitting root
1219 only from the local network. ok markus@, man page bit ok jmc@
1220 - dtucker@cvs.openbsd.org 2008/01/01 08:51:20
1221 [moduli]
1222 Updated moduli file; ok djm@
1223
122420071231
1225 - (dtucker) [configure.ac openbsd-compat/glob.{c,h}] Bug #1407: force use of
1226 builtin glob implementation on Mac OS X. Based on a patch from
1227 vgiffin at apple.
1228
122920071229
1230 - (dtucker) OpenBSD CVS Sync
1231 - djm@cvs.openbsd.org 2007/12/12 05:04:03
1232 [sftp.c]
1233 unbreak lls command and add a regress test that would have caught the
1234 breakage; spotted by mouring@
1235 - dtucker@cvs.openbsd.org 2007/12/27 14:22:08
1236 [servconf.c canohost.c misc.c channels.c sshconnect.c misc.h ssh-keyscan.c
1237 sshd.c]
1238 Add a small helper function to consistently handle the EAI_SYSTEM error
1239 code of getaddrinfo. Prompted by vgiffin at apple com via bz #1417.
1240 ok markus@ stevesk@
1241 - dtucker@cvs.openbsd.org 2007/12/28 15:32:24
1242 [clientloop.c serverloop.c packet.c]
1243 Make SSH2_MSG_UNIMPLEMENTED and SSH2_MSG_IGNORE messages reset the
1244 ServerAlive and ClientAlive timers. Prevents dropping a connection
1245 when these are enabled but the peer does not support our keepalives.
1246 bz #1307, ok djm@.
1247 - dtucker@cvs.openbsd.org 2007/12/28 22:34:47
1248 [clientloop.c]
1249 Use the correct packet maximum sizes for remote port and agent forwarding.
1250 Prevents the server from killing the connection if too much data is queued
1251 and an excessively large packet gets sent. bz #1360, ok djm@.
1252
125320071202
1254 - (dtucker) [configure.ac] Enable -fstack-protector-all on systems where
1255 gcc supports it. ok djm@
1256 - (dtucker) [scp.c] Update $OpenBSD tag missing from rev 1.175 and remove
1257 leftover debug code.
1258 - (dtucker) OpenBSD CVS Sync
1259 - dtucker@cvs.openbsd.org 2007/10/29 00:52:45
1260 [auth2-gss.c]
1261 Allow build without -DGSSAPI; ok deraadt@
1262 (Id sync only, Portable already has the ifdefs)
1263 - dtucker@cvs.openbsd.org 2007/10/29 01:55:04
1264 [ssh.c]
1265 Plug tiny mem leaks in ControlPath and ProxyCommand option processing;
1266 ok djm@
1267 - dtucker@cvs.openbsd.org 2007/10/29 04:08:08
1268 [monitor_wrap.c monitor.c]
1269 Send config block back to slave for invalid users too so options
1270 set by a Match block (eg Banner) behave the same for non-existent
1271 users. Found by and ok djm@
1272 - dtucker@cvs.openbsd.org 2007/10/29 06:51:59
1273 [ssh_config.5]
1274 ProxyCommand and LocalCommand use the user's shell, not /bin/sh; ok djm@
1275 - dtucker@cvs.openbsd.org 2007/10/29 06:54:50
1276 [ssh.c]
1277 Make LocalCommand work for Protocol 1 too; ok djm@
1278 - jmc@cvs.openbsd.org 2007/10/29 07:48:19
1279 [ssh_config.5]
1280 clean up after previous macro removal;
1281 - djm@cvs.openbsd.org 2007/11/03 00:36:14
1282 [clientloop.c]
1283 fix memory leak in process_cmdline(), patch from Jan.Pechanec AT Sun.COM;
1284 ok dtucker@
1285 - deraadt@cvs.openbsd.org 2007/11/03 01:24:06
1286 [ssh.c]
1287 bz #1377: getpwuid results were being clobbered by another getpw* call
1288 inside tilde_expand_filename(); save the data we need carefully
1289 ok djm
1290 - dtucker@cvs.openbsd.org 2007/11/03 02:00:32
1291 [ssh.c]
1292 Use xstrdup/xfree when saving pwname and pwdir; ok deraadt@
1293 - deraadt@cvs.openbsd.org 2007/11/03 02:03:49
1294 [ssh.c]
1295 avoid errno trashing in signal handler; ok dtucker
1296
129720071030
1298 - (djm) OpenBSD CVS Sync
1299 - djm@cvs.openbsd.org 2007/10/29 23:49:41
1300 [openbsd-compat/sys-tree.h]
1301 remove extra backslash at the end of RB_PROTOTYPE, report from
1302 Jan.Pechanec AT Sun.COM; ok deraadt@
1303
130420071026
1305 - (djm) OpenBSD CVS Sync
1306 - stevesk@cvs.openbsd.org 2007/09/11 23:49:09
1307 [sshpty.c]
1308 remove #if defined block not needed; ok markus@ dtucker@
1309 (NB. RCD ID sync only for portable)
1310 - djm@cvs.openbsd.org 2007/09/21 03:05:23
1311 [ssh_config.5]
1312 document KbdInteractiveAuthentication in ssh_config.5;
1313 patch from dkg AT fifthhorseman.net
1314 - djm@cvs.openbsd.org 2007/09/21 08:15:29
1315 [auth-bsdauth.c auth-passwd.c auth.c auth.h auth1.c auth2-chall.c]
1316 [monitor.c monitor_wrap.c]
1317 unifdef -DBSD_AUTH
1318 unifdef -USKEY
1319 These options have been in use for some years;
1320 ok markus@ "no objection" millert@
1321 (NB. RCD ID sync only for portable)
1322 - canacar@cvs.openbsd.org 2007/09/25 23:48:57
1323 [ssh-agent.c]
1324 When adding a key that already exists, update the properties
1325 (time, confirm, comment) instead of discarding them. ok djm@ markus@
1326 - ray@cvs.openbsd.org 2007/09/27 00:15:57
1327 [dh.c]
1328 Don't return -1 on error in dh_pub_is_valid(), since it evaluates
1329 to true.
1330 Also fix a typo.
1331 Initial diff from Matthew Dempsky, input from djm.
1332 OK djm, markus.
1333 - dtucker@cvs.openbsd.org 2007/09/29 00:25:51
1334 [auth2.c]
1335 Remove unused prototype. ok djm@
1336 - chl@cvs.openbsd.org 2007/10/02 17:49:58
1337 [ssh-keygen.c]
1338 handles zero-sized strings that fgets can return
1339 properly removes trailing newline
1340 removes an unused variable
1341 correctly counts line number
1342 "looks ok" ray@ markus@
1343 - markus@cvs.openbsd.org 2007/10/22 19:10:24
1344 [readconf.c]
1345 make sure that both the local and remote port are correct when
1346 parsing -L; Jan Pechanec (bz #1378)
1347 - djm@cvs.openbsd.org 2007/10/24 03:30:02
1348 [sftp.c]
1349 rework argument splitting and parsing to cope correctly with common
1350 shell escapes and make handling of escaped characters consistent
1351 with sh(1) and between sftp commands (especially between ones that
1352 glob their arguments and ones that don't).
1353 parse command flags using getopt(3) rather than hand-rolled parsers.
1354 ok dtucker@
1355 - djm@cvs.openbsd.org 2007/10/24 03:44:02
1356 [scp.c]
1357 factor out network read/write into an atomicio()-like function, and
1358 use it to handle short reads, apply bandwidth limits and update
1359 counters. make network IO non-blocking, so a small trickle of
1360 reads/writes has a chance of updating the progress meter; bz #799
1361 ok dtucker@
1362 - djm@cvs.openbsd.org 2006/08/29 09:44:00
1363 [regress/sftp-cmds.sh]
1364 clean up our mess
1365 - markus@cvs.openbsd.org 2006/11/06 09:27:43
1366 [regress/cfgmatch.sh]
1367 fix quoting for non-(c)sh login shells.
1368 - dtucker@cvs.openbsd.org 2006/12/13 08:36:36
1369 [regress/cfgmatch.sh]
1370 Additional test for multiple PermitOpen entries. ok djm@
1371 - pvalchev@cvs.openbsd.org 2007/06/07 19:41:46
1372 [regress/cipher-speed.sh regress/try-ciphers.sh]
1373 test umac-64@openssh.com
1374 ok djm@
1375 - djm@cvs.openbsd.org 2007/10/24 03:32:35
1376 [regress/sftp-cmds.sh regress/sftp-glob.sh regress/test-exec.sh]
1377 comprehensive tests for sftp escaping its interaction with globbing;
1378 ok dtucker@
1379 - djm@cvs.openbsd.org 2007/10/26 05:30:01
1380 [regress/sftp-glob.sh regress/test-exec.sh]
1381 remove "echo -E" crap that I added in last commit and use printf(1) for
1382 cases where we strictly require echo not to reprocess escape characters.
1383 - deraadt@cvs.openbsd.org 2005/11/28 17:50:12
1384 [openbsd-compat/glob.c]
1385 unused arg in internal static API
1386 - jakob@cvs.openbsd.org 2007/10/11 18:36:41
1387 [openbsd-compat/getrrsetbyname.c openbsd-compat/getrrsetbyname.h]
1388 use RRSIG instead of SIG for DNSSEC. ok djm@
1389 - otto@cvs.openbsd.org 2006/10/21 09:55:03
1390 [openbsd-compat/base64.c]
1391 remove calls to abort(3) that can't happen anyway; from
1392 <bret dot lambert at gmail.com>; ok millert@ deraadt@
1393 - frantzen@cvs.openbsd.org 2004/04/24 18:11:46
1394 [openbsd-compat/sys-tree.h]
1395 sync to Niels Provos' version. avoid unused variable warning in
1396 RB_NEXT()
1397 - tdeval@cvs.openbsd.org 2004/11/24 18:10:42
1398 [openbsd-compat/sys-tree.h]
1399 typo
1400 - grange@cvs.openbsd.org 2004/05/04 16:59:32
1401 [openbsd-compat/sys-queue.h]
1402 Remove useless ``elm'' argument from the SIMPLEQ_REMOVE_HEAD macro.
1403 This matches our SLIST behaviour and NetBSD's SIMPLEQ as well.
1404 ok millert krw deraadt
1405 - deraadt@cvs.openbsd.org 2005/02/25 13:29:30
1406 [openbsd-compat/sys-queue.h]
1407 minor white spacing
1408 - otto@cvs.openbsd.org 2005/10/17 20:19:42
1409 [openbsd-compat/sys-queue.h]
1410 Performing certain operations on queue.h data structurs produced
1411 funny results. An example is calling LIST_REMOVE on the same
1412 element twice. This will not fail, but result in a data structure
1413 referencing who knows what. Prevent these accidents by NULLing some
1414 fields on remove and replace. This way, either a panic or segfault
1415 will be produced on the faulty operation.
1416 - otto@cvs.openbsd.org 2005/10/24 20:25:14
1417 [openbsd-compat/sys-queue.h]
1418 Partly backout. NOLIST, used in LISTs is probably interfering.
1419 requested by deraadt@
1420 - otto@cvs.openbsd.org 2005/10/25 06:37:47
1421 [openbsd-compat/sys-queue.h]
1422 Some uvm problem is being exposed with the more strict macros.
1423 Revert until we've found out what's causing the panics.
1424 - otto@cvs.openbsd.org 2005/11/25 08:06:25
1425 [openbsd-compat/sys-queue.h]
1426 Introduce debugging aid for queue macros. Disabled by default; but
1427 developers are encouraged to run with this enabled.
1428 ok krw@ fgsch@ deraadt@
1429 - otto@cvs.openbsd.org 2007/04/30 18:42:34
1430 [openbsd-compat/sys-queue.h]
1431 Enable QUEUE_MACRO_DEBUG on DIAGNOSTIC kernels.
1432 Input and okays from krw@, millert@, otto@, deraadt@, miod@.
1433 - millert@cvs.openbsd.org 2004/10/07 16:56:11
1434 GLOB_NOESCAPE is POSIX so move it out of the #ifndef _POSIX_SOURCE
1435 block.
1436 (NB. mostly an RCS ID sync, as portable strips out the conditionals)
1437 - (djm) [regress/sftp-cmds.sh]
1438 Use more restrictive glob to pick up test files from /bin - some platforms
1439 ship broken symlinks there which could spoil the test.
1440 - (djm) [openbsd-compat/bindresvport.c]
1441 Sync RCS ID after irrelevant (for portable OpenSSH) header shuffling
1442
144320070927
1444 - (dtucker) [configure.ac atomicio.c] Fall back to including <sys/poll.h> if
1445 we don't have <poll.h> (eq QNX). From bacon at cs nyu edu.
1446 - (dtucker) [configure.ac defines.h] Shadow expiry does not work on QNX6
1447 so disable it for that platform. From bacon at cs nyu edu.
1448
144920070921
1450 - (djm) [atomicio.c] Fix spin avoidance for platforms that define
1451 EWOULDBLOCK; patch from ben AT psc.edu
1452
145320070917
1454 - (djm) OpenBSD CVS Sync
1455 - djm@cvs.openbsd.org 2007/08/23 02:49:43
1456 [auth-passwd.c auth.c session.c]
1457 unifdef HAVE_LOGIN_CAP; ok deraadt@ millert@
1458 NB. RCS ID sync only for portable
1459 - djm@cvs.openbsd.org 2007/08/23 02:55:51
1460 [auth-passwd.c auth.c session.c]
1461 missed include bits from last commit
1462 NB. RCS ID sync only for portable
1463 - djm@cvs.openbsd.org 2007/08/23 03:06:10
1464 [auth.h]
1465 login_cap.h doesn't belong here
1466 NB. RCS ID sync only for portable
1467 - djm@cvs.openbsd.org 2007/08/23 03:22:16
1468 [auth2-none.c sshd_config sshd_config.5]
1469 Support "Banner=none" to disable displaying of the pre-login banner;
1470 ok dtucker@ deraadt@
1471 - djm@cvs.openbsd.org 2007/08/23 03:23:26
1472 [sshconnect.c]
1473 Execute ProxyCommands with $SHELL rather than /bin/sh unconditionally
1474 - djm@cvs.openbsd.org 2007/09/04 03:21:03
1475 [clientloop.c monitor.c monitor_fdpass.c monitor_fdpass.h]
1476 [monitor_wrap.c ssh.c]
1477 make file descriptor passing code return an error rather than call fatal()
1478 when it encounters problems, and use this to make session multiplexing
1479 masters survive slaves failing to pass all stdio FDs; ok markus@
1480 - djm@cvs.openbsd.org 2007/09/04 11:15:56
1481 [ssh.c sshconnect.c sshconnect.h]
1482 make ssh(1)'s ConnectTimeout option apply to both the TCP connection and
1483 SSH banner exchange (previously it just covered the TCP connection).
1484 This allows callers of ssh(1) to better detect and deal with stuck servers
1485 that accept a TCP connection but don't progress the protocol, and also
1486 makes ConnectTimeout useful for connections via a ProxyCommand;
1487 feedback and "looks ok" markus@
1488 - sobrado@cvs.openbsd.org 2007/09/09 11:38:01
1489 [ssh-add.c ssh-agent.1 ssh-agent.c ssh-keygen.c]
1490 sort synopsis and options in ssh-agent(1); usage is lowercase
1491 ok jmc@
1492 - stevesk@cvs.openbsd.org 2007/09/11 04:36:29
1493 [sshpty.c]
1494 sort #include
1495 NB. RCS ID sync only
1496 - gilles@cvs.openbsd.org 2007/09/11 15:47:17
1497 [session.c ssh-keygen.c sshlogin.c]
1498 use strcspn to properly overwrite '\n' in fgets returned buffer
1499 ok pyr@, ray@, millert@, moritz@, chl@
1500 - stevesk@cvs.openbsd.org 2007/09/11 23:49:09
1501 [sshpty.c]
1502 remove #if defined block not needed; ok markus@ dtucker@
1503 NB. RCS ID sync only
1504 - stevesk@cvs.openbsd.org 2007/09/12 19:39:19
1505 [umac.c]
1506 use xmalloc() and xfree(); ok markus@ pvalchev@
1507 - djm@cvs.openbsd.org 2007/09/13 04:39:04
1508 [sftp-server.c]
1509 fix incorrect test when setting syslog facility; from Jan Pechanec
1510 - djm@cvs.openbsd.org 2007/09/16 00:55:52
1511 [sftp-client.c]
1512 use off_t instead of u_int64_t for file offsets, matching what the
1513 progressmeter code expects; bz #842
1514 - (tim) [defines.h] Fix regression in long password support on OpenServer 6.
1515 Problem report and additional testing rac AT tenzing.org.
1516
151720070914
1518 - (dtucker) [openbsd-compat/bsd-asprintf.c] Plug mem leak in error path.
1519 Patch from Jan.Pechanec at sun com.
1520
152120070910
1522 - (dtucker) [openbsd-compat/regress/closefromtest.c] Bug #1358: Always
1523 return 0 on successful test. From David.Leonard at quest com.
1524 - (tim) [configure.ac] Autoconf didn't define HAVE_LIBIAF because we
1525 did a AC_CHECK_FUNCS within the AC_CHECK_LIB test.
1526
152720070817
1528 - (dtucker) [sshd.8] Many Linux variants use a single "!" to denote locked
1529 accounts and that's what the code looks for, so make man page and code
1530 agree. Pointed out by Roumen Petrov.
1531 - (dtucker) [INSTALL] Group the parts describing random options and PAM
1532 implementations together which is hopefully more coherent.
1533 - (dtucker) [INSTALL] the pid file is sshd.pid not ssh.pid.
1534 - (dtucker) [INSTALL] Give PAM its own heading.
1535 - (dtucker) [INSTALL] Link to tcpwrappers.
1536
153720070816
1538 - (dtucker) [session.c] Call PAM cleanup functions for unauthenticated
1539 connections too. Based on a patch from Sandro Wefel, with & ok djm@
1540
154120070815
1542 - (dtucker) OpenBSD CVS Sync
1543 - markus@cvs.openbsd.org 2007/08/15 08:14:46
1544 [clientloop.c]
1545 do NOT fall back to the trused x11 cookie if generation of an untrusted
1546 cookie fails; from Jan Pechanec, via security-alert at sun.com;
1547 ok dtucker
1548 - markus@cvs.openbsd.org 2007/08/15 08:16:49
1549 [version.h]
1550 openssh 4.7
1551 - stevesk@cvs.openbsd.org 2007/08/15 12:13:41
1552 [ssh_config.5]
1553 tun device forwarding now honours ExitOnForwardFailure; ok markus@
1554 - (dtucker) [openbsd-compat/bsd-cray.c] Remove debug from signal handler.
1555 ok djm@
1556 - (dtucker) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec
1557 contrib/suse/openssh.spec] Crank version.
1558
155920070813
1560 - (dtucker) [session.c] Bug #1339: ensure that pam_setcred() is always
1561 called with PAM_ESTABLISH_CRED at least once, which resolves a problem
1562 with pam_dhkeys. Patch from David Leonard, ok djm@
1563
156420070810
1565 - (dtucker) [auth-pam.c] Use sigdie here too. ok djm@
1566 - (dtucker) [configure.ac] Bug #1343: Set DISABLE_FD_PASSING for QNX6. From
1567 Matt Kraai, ok djm@
1568
156920070809
1570 - (dtucker) [openbsd-compat/port-aix.c] Comment typo.
1571 - (dtucker) [README.platform] Document the interaction between PermitRootLogin
1572 and the AIX native login restrictions.
1573 - (dtucker) [defines.h] Remove _PATH_{CSHELL,SHELLS} which aren't
1574 used anywhere and are a potential source of warnings.
1575
157620070808
1577 - (djm) OpenBSD CVS Sync
1578 - ray@cvs.openbsd.org 2007/07/12 05:48:05
1579 [key.c]
1580 Delint: remove some unreachable statements, from Bret Lambert.
1581 OK markus@ and dtucker@.
1582 - sobrado@cvs.openbsd.org 2007/08/06 19:16:06
1583 [scp.1 scp.c]
1584 the ellipsis is not an optional argument; while here, sync the usage
1585 and synopsis of commands
1586 lots of good ideas by jmc@
1587 ok jmc@
1588 - djm@cvs.openbsd.org 2007/08/07 07:32:53
1589 [clientloop.c clientloop.h ssh.c]
1590 bz#1232: ensure that any specified LocalCommand is executed after the
1591 tunnel device is opened. Also, make failures to open a tunnel device
1592 fatal when ExitOnForwardFailure is active.
1593 Reported by h.goebel AT goebel-consult.de; ok dtucker markus reyk deraadt
1594
159520070724
1596 - (tim) [openssh.xml.in] make FMRI match what package scripts use.
1597 - (tim) [openbsd-compat/regress/closefromtest.c] Bug 1345: fix open() call.
1598 Report/patch by David.Leonard AT quest.com (and Bernhard Simon)
1599 - (tim) [buildpkg.sh.in openssh.xml.in] Allow more flexibility where smf(5)
1600 - (tim) [buildpkg.sh.in] s|$FAKE_ROOT/${sysconfdir}|$FAKE_ROOT${sysconfdir}|
1601
160220070628
1603 - (djm) bz#1325: Fix SELinux in permissive mode where it would
1604 incorrectly fatal() on errors. patch from cjwatson AT debian.org;
1605 ok dtucker
1606
160720070625
1608 - (dtucker) OpenBSD CVS Sync
1609 - djm@cvs.openbsd.org 2007/06/13 00:21:27
1610 [scp.c]
1611 don't ftruncate() non-regular files; bz#1236 reported by wood AT
1612 xmission.com; ok dtucker@
1613 - djm@cvs.openbsd.org 2007/06/14 21:43:25
1614 [ssh.c]
1615 handle EINTR when waiting for mux exit status properly
1616 - djm@cvs.openbsd.org 2007/06/14 22:48:05
1617 [ssh.c]
1618 when waiting for the multiplex exit status, read until the master end
1619 writes an entire int of data *and* closes the client_fd; fixes mux
1620 regression spotted by dtucker, ok dtucker@
1621 - djm@cvs.openbsd.org 2007/06/19 02:04:43
1622 [atomicio.c]
1623 if the fd passed to atomicio/atomiciov() is non blocking, then poll() to
1624 avoid a spin if it is not yet ready for reading/writing; ok dtucker@
1625 - dtucker@cvs.openbsd.org 2007/06/25 08:20:03
1626 [channels.c]
1627 Correct test for window updates every three packets; prevents sending
1628 window updates for every single packet. ok markus@
1629 - dtucker@cvs.openbsd.org 2007/06/25 12:02:27
1630 [atomicio.c]
1631 Include <poll.h> like the man page says rather than <sys/poll.h>. ok djm@
1632 - (dtucker) [atomicio.c] Test for EWOULDBLOCK in atomiciov to match
1633 atomicio.
1634 - (dtucker) [atomicio.c configure.ac openbsd-compat/Makefile.in
1635 openbsd-compat/bsd-poll.{c,h} openbsd-compat/openbsd-compat.h]
1636 Add an implementation of poll() built on top of select(2). Code from
1637 OpenNTPD with changes suggested by djm. ok djm@
1638
163920070614
1640 - (dtucker) [cipher-ctr.c umac.c openbsd-compat/openssl-compat.h] Move the
1641 USE_BUILTIN_RIJNDAEL compat goop to openssl-compat.h so it can be
1642 shared with umac.c. Allows building with OpenSSL 0.9.5 again including
1643 umac support. With tim@ djm@, ok djm.
1644 - (dtucker) [openbsd-compat/openssl-compat.h] Merge USE_BUILTIN_RIJNDAEL
1645 sections. Fixes builds with early OpenSSL 0.9.6 versions.
1646 - (dtucker) [openbsd-compat/openssl-compat.h] Remove redundant definition
1647 of USE_BUILTIN_RIJNDAEL since the <0.9.6 test is covered by the
1648 subsequent <0.9.7 test.
1649
165020070612
1651 - (dtucker) OpenBSD CVS Sync
1652 - markus@cvs.openbsd.org 2007/06/11 09:14:00
1653 [channels.h]
1654 increase default channel windows; ok djm
1655 - djm@cvs.openbsd.org 2007/06/12 07:41:00
1656 [ssh-add.1]
1657 better document ssh-add's -d option (delete identies from agent), bz#1224
1658 new text based on some provided by andrewmc-debian AT celt.dias.ie;
1659 ok dtucker@
1660 - djm@cvs.openbsd.org 2007/06/12 08:20:00
1661 [ssh-gss.h gss-serv.c gss-genr.c]
1662 relocate server-only GSSAPI code from libssh to server; bz #1225
1663 patch from simon AT sxw.org.uk; ok markus@ dtucker@
1664 - djm@cvs.openbsd.org 2007/06/12 08:24:20
1665 [scp.c]
1666 make scp try to skip FIFOs rather than blocking when nothing is listening.
1667 depends on the platform supporting sane O_NONBLOCK semantics for open
1668 on FIFOs (apparently POSIX does not mandate this), which OpenBSD does.
1669 bz #856; report by cjwatson AT debian.org; ok markus@
1670 - djm@cvs.openbsd.org 2007/06/12 11:11:08
1671 [ssh.c]
1672 fix slave exit value when a control master goes away without passing the
1673 full exit status by ensuring that the slave reads a full int. bz#1261
1674 reported by frekko AT gmail.com; ok markus@ dtucker@
1675 - djm@cvs.openbsd.org 2007/06/12 11:15:17
1676 [ssh.c ssh.1]
1677 Add "-K" flag for ssh to set GSSAPIAuthentication=yes and
1678 GSSAPIDelegateCredentials=yes. This is symmetric with -k (disable GSSAPI)
1679 and is useful for hosts with /home on Kerberised NFS; bz #1312
1680 patch from Markus.Kuhn AT cl.cam.ac.uk; ok dtucker@ markus@
1681 - djm@cvs.openbsd.org 2007/06/12 11:45:27
1682 [ssh.c]
1683 improved exit message from multiplex slave sessions; bz #1262
1684 reported by alexandre.nunes AT gmail.com; ok dtucker@
1685 - dtucker@cvs.openbsd.org 2007/06/12 11:56:15
1686 [gss-genr.c]
1687 Pass GSS OID to gss_display_status to provide better information in
1688 error messages. Patch from Simon Wilkinson via bz 1220. ok djm@
1689 - jmc@cvs.openbsd.org 2007/06/12 13:41:03
1690 [ssh-add.1]
1691 identies -> identities;
1692 - jmc@cvs.openbsd.org 2007/06/12 13:43:55
1693 [ssh.1]
1694 add -K to SYNOPSIS;
1695 - dtucker@cvs.openbsd.org 2007/06/12 13:54:28
1696 [scp.c]
1697 Encode filename with strnvis if the name contains a newline (which can't
1698 be represented in the scp protocol), from bz #891. ok markus@
1699
170020070611
1701 - (djm) Bugzilla #1306: silence spurious error messages from hang-on-exit
1702 fix; tested by dtucker@ and jochen.kirn AT gmail.com
1703 - pvalchev@cvs.openbsd.org 2007/06/07 19:37:34
1704 [kex.h mac.c mac.h monitor_wrap.c myproposal.h packet.c ssh.1]
1705 [ssh_config.5 sshd.8 sshd_config.5]
1706 Add a new MAC algorithm for data integrity, UMAC-64 (not default yet,
1707 must specify umac-64@openssh.com). Provides about 20% end-to-end speedup
1708 compared to hmac-md5. Represents a different approach to message
1709 authentication to that of HMAC that may be beneficial if HMAC based on
1710 one of its underlying hash algorithms is found to be vulnerable to a
1711 new attack. http://www.ietf.org/rfc/rfc4418.txt
1712 in conjunction with and OK djm@
1713 - pvalchev@cvs.openbsd.org 2007/06/08 04:40:40
1714 [ssh_config]
1715 Add a "MACs" line after "Ciphers" with the default MAC algorithms,
1716 to ease people who want to tweak both (eg. for performance reasons).
1717 ok deraadt@ djm@ dtucker@
1718 - jmc@cvs.openbsd.org 2007/06/08 07:43:46
1719 [ssh_config.5]
1720 put the MAC list into a display, like we do for ciphers,
1721 since groff has trouble handling wide lines;
1722 - jmc@cvs.openbsd.org 2007/06/08 07:48:09
1723 [sshd_config.5]
1724 oops, here too: put the MAC list into a display, like we do for
1725 ciphers, since groff has trouble with wide lines;
1726 - markus@cvs.openbsd.org 2007/06/11 08:04:44
1727 [channels.c]
1728 send 'window adjust' messages every tree packets and do not wait
1729 until 50% of the window is consumed. ok djm dtucker
1730 - (djm) [configure.ac umac.c] If platform doesn't provide swap32(3), then
1731 fallback to provided bit-swizzing functions
1732 - (dtucker) [openbsd-compat/bsd-misc.c] According to the spec the "remainder"
1733 argument to nanosleep may be NULL. Currently this never happens in OpenSSH,
1734 but check anyway in case this changes or the code gets used elsewhere.
1735 - (dtucker) [includes.h] Bug #1243: HAVE_PATHS -> HAVE_PATHS_H. Should
1736 prevent warnings about redefinitions of various things in paths.h.
1737 Spotted by cartmanltd at hotmail.com.
1738
173920070605
1740 - (dtucker) OpenBSD CVS Sync
1741 - djm@cvs.openbsd.org 2007/05/22 10:18:52
1742 [sshd.c]
1743 zap double include; from p_nowaczyk AT o2.pl
1744 (not required in -portable, Id sync only)
1745 - djm@cvs.openbsd.org 2007/05/30 05:58:13
1746 [kex.c]
1747 tidy: KNF, ARGSUSED and u_int
1748 - jmc@cvs.openbsd.org 2007/05/31 19:20:16
1749 [scp.1 ssh_config.5 sftp-server.8 ssh-agent.1 sshd_config.5 sftp.1
1750 ssh-keygen.1 ssh-keyscan.1 ssh-add.1 sshd.8 ssh.1 ssh-keysign.8]
1751 convert to new .Dd format;
1752 (We will need to teach mdoc2man.awk to understand this too.)
1753 - djm@cvs.openbsd.org 2007/05/31 23:34:29
1754 [packet.c]
1755 gc unreachable code; spotted by Tavis Ormandy
1756 - djm@cvs.openbsd.org 2007/06/02 09:04:58
1757 [bufbn.c]
1758 memory leak on error path; from arnaud.lacombe.1 AT ulaval.ca
1759 - djm@cvs.openbsd.org 2007/06/05 06:52:37
1760 [kex.c monitor_wrap.c packet.c mac.h kex.h mac.c]
1761 Preserve MAC ctx between packets, saving 2xhash calls per-packet.
1762 Yields around a 12-16% end-to-end speedup for arcfour256/hmac-md5
1763 patch from markus@ tested dtucker@ and myself, ok markus@ and me (I'm
1764 committing at his request)
1765 - (dtucker) [mdoc2man.awk] Teach it to deal with $Mdocdate tags that
1766 OpenBSD's cvs now adds.
1767 - (dtucker) [mdoc2man.awk] Remove trailing "$" from Mdocdate regex so
1768 mindrot's cvs doesn't expand it on us.
1769 - (dtucker) [mdoc2man.awk] Add support for %R references, used for RFCs.
1770
177120070520
1772 - (dtucker) OpenBSD CVS Sync
1773 - stevesk@cvs.openbsd.org 2007/04/14 22:01:58
1774 [auth2.c]
1775 remove unused macro; from Dmitry V. Levin <ldv@altlinux.org>
1776 - stevesk@cvs.openbsd.org 2007/04/18 01:12:43
1777 [sftp-server.c]
1778 cast "%llu" format spec to (unsigned long long); do not assume a
1779 u_int64_t arg is the same as 'unsigned long long'.
1780 from Dmitry V. Levin <ldv@altlinux.org>
1781 ok markus@ 'Yes, that looks correct' millert@
1782 - dtucker@cvs.openbsd.org 2007/04/23 10:15:39
1783 [servconf.c]
1784 Remove debug() left over from development. ok deraadt@
1785 - djm@cvs.openbsd.org 2007/05/17 07:50:31
1786 [log.c]
1787 save and restore errno when logging; ok deraadt@
1788 - djm@cvs.openbsd.org 2007/05/17 07:55:29
1789 [sftp-server.c]
1790 bz#1286 stop reading and processing commands when input or output buffer
1791 is nearly full, otherwise sftp-server would happily try to grow the
1792 input/output buffers past the maximum supported by the buffer API and
1793 promptly fatal()
1794 based on patch from Thue Janus Kristensen; feedback & ok dtucker@
1795 - djm@cvs.openbsd.org 2007/05/17 20:48:13
1796 [sshconnect2.c]
1797 fall back to gethostname() when the outgoing connection is not
1798 on a socket, such as is the case when ProxyCommand is used.
1799 Gives hostbased auth an opportunity to work; bz#616, report
1800 and feedback stuart AT kaloram.com; ok markus@
1801 - djm@cvs.openbsd.org 2007/05/17 20:52:13
1802 [monitor.c]
1803 pass received SIGINT from monitor to postauth child so it can clean
1804 up properly. bz#1196, patch from senthilkumar_sen AT hotpop.com;
1805 ok markus@
1806 - jolan@cvs.openbsd.org 2007/05/17 23:53:41
1807 [sshconnect2.c]
1808 djm owes me a vb and a tism cd for breaking ssh compilation
1809 - (dtucker) [auth-pam.c] malloc+memset -> calloc. Patch from
1810 ldv at altlinux.org.
1811 - (dtucker) [auth-pam.c] Return empty string if fgets fails in
1812 sshpam_tty_conv. Patch from ldv at altlinux.org.
1813
181420070509
1815 - (tim) [configure.ac] Bug #1287: Add missing test for ucred.h.
1816
181720070429
1818 - (dtucker) [openbsd-compat/bsd-misc.c] Include unistd.h and sys/types.h
1819 for select(2) prototype.
1820 - (dtucker) [auth-shadow.c loginrec.c] Include time.h for time(2) prototype.
1821 - (dtucker) [configure.ac openbsd-compat/getrrsetbyname.c] Bug #1299: Use the
1822 platform's _res if it has one. Should fix problem of DNSSEC record lookups
1823 on NetBSD as reported by Curt Sampson.
1824 - (dtucker) [openbsd-compat/xmmap.c] Include stdlib.h for mkstemp prototype.
1825 - (dtucker) [configure.ac defines.h] Have configure check for MAXSYMLINKS
1826 so we don't get redefinition warnings.
1827 - (dtucker) [openbsd-compat/xmmap.c] Include stdlib.h for mkstemp prototype.
1828 - (dtucker) [configure.ac defines.h] Prevent warnings about __attribute__
1829 __nonnull__ for versions of GCC that don't support it.
1830 - (dtucker) [configure.ac defines.h] Have configure check for offsetof
1831 to prevent redefinition warnings.
1832
183320070406
1834 - (dtucker) [INSTALL] Update the systems that have PAM as standard. Link
1835 to OpenPAM too.
1836 - (dtucker) [INSTALL] prngd lives at sourceforge these days.
1837
183820070326
1839 - (tim) [auth.c configure.ac defines.h session.c openbsd-compat/port-uw.c
1840 openbsd-compat/port-uw.h openbsd-compat/xcrypt.c] Rework libiaf test/defines
1841 to account for IRIX having libiaf but not set_id(). Patch with & ok dtucker@
1842
184320070325
1844 - (dtucker) [Makefile.in configure.ac] Replace single-purpose LIBSELINUX,
1845 LIBWRAP and LIBPAM variables in Makefile with the general-purpose
1846 SSHDLIBS. "I like" djm@
1847
184820070321
1849 - (dtucker) OpenBSD CVS Sync
1850 - dtucker@cvs.openbsd.org 2007/03/09 05:20:06
1851 [servconf.c sshd.c]
1852 Move C/R -> kbdint special case to after the defaults have been
1853 loaded, which makes ChallengeResponse default to yes again. This
1854 was broken by the Match changes and not fixed properly subsequently.
1855 Found by okan at demirmen.com, ok djm@ "please do it" deraadt@
1856 - djm@cvs.openbsd.org 2007/03/19 01:01:29
1857 [sshd_config]
1858 Disable the legacy SSH protocol 1 for new installations via
1859 a configuration override. In the future, we will change the
1860 server's default itself so users who need the legacy protocol
1861 will need to turn it on explicitly
1862 - dtucker@cvs.openbsd.org 2007/03/19 12:16:42
1863 [ssh-agent.c]
1864 Remove the signal handler that checks if the agent's parent process
1865 has gone away, instead check when the select loop returns. Record when
1866 the next key will expire when scanning for expired keys. Set the select
1867 timeout to whichever of these two things happens next. With djm@, with &
1868 ok deraadt@ markus@
1869 - tedu@cvs.openbsd.org 2007/03/20 03:56:12
1870 [readconf.c clientloop.c]
1871 remove some bogus *p tests from charles longeau
1872 ok deraadt millert
1873 - jmc@cvs.openbsd.org 2007/03/20 15:57:15
1874 [sshd.8]
1875 - let synopsis and description agree for -f
1876 - sort FILES
1877 - +.Xr ssh-keyscan 1 ,
1878 from Igor Sobrado
1879 - (dtucker) [configure.ac openbsd-compat/bsd-getpeereid.c] Bug #1287: Use
1880 getpeerucred to implement getpeereid (currently only Solaris 10 and up).
1881 Patch by Jan.Pechanec at Sun.
1882 - (dtucker) [regress/agent-getpeereid.sh] Do peereid test if we have
1883 HAVE_GETPEERUCRED too. Also from Jan Pechanec.
1884
188520070313
1886 - (dtucker) [entropy.c scard-opensc.c ssh-rand-helper.c] Bug #1294: include
1887 string.h to prevent warnings, from vapier at gentoo.org.
1888 - (dtucker) [LICENCE] Add Daniel Walsh as a copyright holder for the
1889 selinux bits in -portable.
1890 - (dtucker) [cipher-3des1.c cipher-bf1.c] The OpenSSL 0.9.8e problem in
1891 bug #1291 also affects Protocol 1 3des. While at it, use compat-openssl.h
1892 in cipher-bf1.c. Patch from Juan Gallego.
1893 - (dtucker) [README.platform] Info about blibpath on AIX.
1894
189520070306
1896 - (djm) OpenBSD CVS Sync
1897 - jmc@cvs.openbsd.org 2007/03/01 16:19:33
1898 [sshd_config.5]
1899 sort the `match' keywords;
1900 - djm@cvs.openbsd.org 2007/03/06 10:13:14
1901 [version.h]
1902 openssh-4.6; "please" deraadt@
1903 - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec]
1904 [contrib/suse/openssh.spec] crank spec files for release
1905 - (djm) [README] correct link to release notes
1906 - (djm) Release 4.6p1
1907
190820070304
1909 - (djm) [configure.ac] add a --without-openssl-header-check option to
1910 configure, as some platforms (OS X) ship OpenSSL headers whose version
1911 does not match that of the shipping library. ok dtucker@
1912 - (dtucker) [openbsd-compat/openssl-compat.h] Bug #1291: Work around a
1913 bug in OpenSSL 0.9.8e that prevents aes256-ctr, aes192-ctr and arcfour256
1914 ciphers from working correctly (disconnects with "Bad packet length"
1915 errors) as found by Ben Harris. ok djm@
1916
191720070303
1918 - (dtucker) [regress/agent-ptrace.sh] Make ttrace gdb error a little more
1919 general to cover newer gdb versions on HP-UX.
1920
192120070302
1922 - (dtucker) [configure.ac] For Cygwin, read files in textmode (which allows
1923 CRLF as well as LF lineendings) and write in binary mode. Patch from
1924 vinschen at redhat.com.
1925 - (dtucker) [INSTALL] Update to autoconf-2.61.
1926
192720070301
1928 - (dtucker) OpenBSD CVS Sync
1929 - dtucker@cvs.openbsd.org 2007/03/01 10:28:02
1930 [auth2.c sshd_config.5 servconf.c]
1931 Remove ChallengeResponseAuthentication support inside a Match
1932 block as its interaction with KbdInteractive makes it difficult to
1933 support. Also, relocate the CR/kbdint option special-case code into
1934 servconf. "please commit" djm@, ok markus@ for the relocation.
1935 - (tim) [buildpkg.sh.in openssh.xml.in] Clean up Solaris 10 smf(5) bits.
1936 "Looks sane" dtucker@
1937
193820070228
1939 - (dtucker) OpenBSD CVS Sync
1940 - dtucker@cvs.openbsd.org 2007/02/28 00:55:30
1941 [ssh-agent.c]
1942 Remove expired keys periodically so they don't remain in memory when
1943 the agent is entirely idle, as noted by David R. Piegdon. This is the
1944 simple fix, a more efficient one will be done later. With markus,
1945 deraadt, with & ok djm.
1946
194720070225
1948 - (dtucker) OpenBSD CVS Sync
1949 - djm@cvs.openbsd.org 2007/02/20 10:25:14
1950 [clientloop.c]
1951 set maximum packet and window sizes the same for multiplexed clients
1952 as normal connections; ok markus@
1953 - dtucker@cvs.openbsd.org 2007/02/21 11:00:05
1954 [sshd.c]
1955 Clear alarm() before restarting sshd on SIGHUP. Without this, if there's
1956 a SIGALRM pending (for SSH1 key regeneration) when sshd is SIGHUP'ed, the
1957 newly exec'ed sshd will get the SIGALRM and not have a handler for it,
1958 and the default action will terminate the listening sshd. Analysis and
1959 patch from andrew at gaul.org.
1960 - dtucker@cvs.openbsd.org 2007/02/22 12:58:40
1961 [servconf.c]
1962 Check activep so Match and GatewayPorts work together; ok markus@
1963 - ray@cvs.openbsd.org 2007/02/24 03:30:11
1964 [moduli.c]
1965 - strlen returns size_t, not int.
1966 - Pass full buffer size to fgets.
1967 OK djm@, millert@, and moritz@.
1968
196920070219
1970 - (dtucker) OpenBSD CVS Sync
1971 - jmc@cvs.openbsd.org 2007/01/10 13:23:22
1972 [ssh_config.5]
1973 do not use a list for SYNOPSIS;
1974 this is actually part of a larger report sent by eric s. raymond
1975 and forwarded by brad, but i only read half of it. spotted by brad.
1976 - jmc@cvs.openbsd.org 2007/01/12 20:20:41
1977 [ssh-keygen.1 ssh-keygen.c]
1978 more secsh -> rfc 4716 updates;
1979 spotted by wiz@netbsd
1980 ok markus
1981 - dtucker@cvs.openbsd.org 2007/01/17 23:22:52
1982 [readconf.c]
1983 Honour activep for times (eg ServerAliveInterval) while parsing
1984 ssh_config and ~/.ssh/config so they work properly with Host directives.
1985 From mario.lorenz@wincor-nixdorf.com via bz #1275. ok markus@
1986 - stevesk@cvs.openbsd.org 2007/01/21 01:41:54
1987 [auth-skey.c kex.c ssh-keygen.c session.c clientloop.c]
1988 spaces
1989 - stevesk@cvs.openbsd.org 2007/01/21 01:45:35
1990 [readconf.c]
1991 spaces
1992 - djm@cvs.openbsd.org 2007/01/22 11:32:50
1993 [sftp-client.c]
1994 return error from do_upload() when a write fails. fixes bz#1252: zero
1995 exit status from sftp when uploading to a full device. report from
1996 jirkat AT atlas.cz; ok dtucker@
1997 - djm@cvs.openbsd.org 2007/01/22 13:06:21
1998 [scp.c]
1999 fix detection of whether we should show progress meter or not: scp
2000 tested isatty(stderr) but wrote the progress meter to stdout. This patch
2001 makes it test stdout. bz#1265 reported by junkmail AT bitsculpture.com;
2002 of dtucker@
2003 - stevesk@cvs.openbsd.org 2007/02/14 14:32:00
2004 [bufbn.c]
2005 typos in comments; ok jmc@
2006 - dtucker@cvs.openbsd.org 2007/02/19 10:45:58
2007 [monitor_wrap.c servconf.c servconf.h monitor.c sshd_config.5]
2008 Teach Match how handle config directives that are used before
2009 authentication. This allows configurations such as permitting password
2010 authentication from the local net only while requiring pubkey from
2011 offsite. ok djm@, man page bits ok jmc@
2012 - (dtucker) [contrib/findssl.sh] Add "which" as a shell function since some
2013 platforms don't have it. Patch from dleonard at vintela.com.
2014 - (dtucker) [openbsd-compat/getrrsetbyname.c] Don't attempt to calloc
2015 an array for signatures when there are none since "calloc(0, n) returns
2016 NULL on some platforms (eg Tru64), which is explicitly permitted by
2017 POSIX. Diagnosis and patch by svallet genoscope.cns.fr.
2018
201920070128
2020 - (djm) [channels.c serverloop.c] Fix so-called "hang on exit" (bz #52)
2021 when closing a tty session when a background process still holds tty
2022 fds open. Great detective work and patch by Marc Aurele La France,
2023 slightly tweaked by me; ok dtucker@
2024
202520070123
2026 - (dtucker) [openbsd-compat/bsd-snprintf.c] Static declarations for public
2027 library interfaces aren't very helpful. Fix up the DOPR_OUTCH macro
2028 so it works properly and modify its callers so that they don't pre or
2029 post decrement arguments that are conditionally evaluated. While there,
2030 put SNPRINTF_CONST back as it prevents build failures in some
2031 configurations. ok djm@ (for most of it)
2032
203320070122
2034 - (djm) [ssh-rand-helper.8] manpage nits;
2035 from dleonard AT vintela.com (bz#1529)
2036
203720070117
2038 - (dtucker) [packet.c] Re-remove in_systm.h since it's already in includes.h
2039 and multiple including it causes problems on old IRIXes. (It snuck back
2040 in during a sync.) Found (again) by Georg Schwarz.
2041
204220070114
2043 - (dtucker) [ssh-keygen.c] av -> argv to match earlier sync.
2044 - (djm) [openbsd-compat/bsd-snprintf.c] Fix integer overflow in return
2045 value of snprintf replacement, similar to bugs in various libc
2046 implementations. This overflow is not exploitable in OpenSSH.
2047 While I'm fiddling with it, make it a fair bit faster by inlining the
2048 append-char routine; ok dtucker@
2049
205020070105
2051 - (djm) OpenBSD CVS Sync
2052 - deraadt@cvs.openbsd.org 2006/11/14 19:41:04
2053 [ssh-keygen.c]
2054 use argc and argv not some made up short form
2055 - ray@cvs.openbsd.org 2006/11/23 01:35:11
2056 [misc.c sftp.c]
2057 Don't access buf[strlen(buf) - 1] for zero-length strings.
2058 ``ok by me'' djm@.
2059 - markus@cvs.openbsd.org 2006/12/11 21:25:46
2060 [ssh-keygen.1 ssh.1]
2061 add rfc 4716 (public key format); ok jmc
2062 - djm@cvs.openbsd.org 2006/12/12 03:58:42
2063 [channels.c compat.c compat.h]
2064 bz #1019: some ssh.com versions apparently can't cope with the
2065 remote port forwarding bind_address being a hostname, so send
2066 them an address for cases where they are not explicitly
2067 specified (wildcard or localhost bind). reported by daveroth AT
2068 acm.org; ok dtucker@ deraadt@
2069 - dtucker@cvs.openbsd.org 2006/12/13 08:34:39
2070 [servconf.c]
2071 Make PermitOpen work with multiple values like the man pages says.
2072 bz #1267 with details from peter at dmtz.com, with & ok djm@
2073 - dtucker@cvs.openbsd.org 2006/12/14 10:01:14
2074 [servconf.c]
2075 Make "PermitOpen all" first-match within a block to match the way other
2076 options work. ok markus@ djm@
2077 - jmc@cvs.openbsd.org 2007/01/02 09:57:25
2078 [sshd_config.5]
2079 do not use lists for SYNOPSIS;
2080 from eric s. raymond via brad
2081 - stevesk@cvs.openbsd.org 2007/01/03 00:53:38
2082 [ssh-keygen.c]
2083 remove small dead code; arnaud.lacombe.1@ulaval.ca via Coverity scan
2084 - stevesk@cvs.openbsd.org 2007/01/03 03:01:40
2085 [auth2-chall.c channels.c dns.c sftp.c ssh-keygen.c ssh.c]
2086 spaces
2087 - stevesk@cvs.openbsd.org 2007/01/03 04:09:15
2088 [sftp.c]
2089 ARGSUSED for lint
2090 - stevesk@cvs.openbsd.org 2007/01/03 07:22:36
2091 [sftp-server.c]
2092 spaces
2093
209420061205
2095 - (djm) [auth.c] Fix NULL pointer dereference in fakepw(). Crash would
2096 occur if the server did not have the privsep user and an invalid user
2097 tried to login and both privsep and krb5 auth are disabled; ok dtucker@
2098 - (djm) [bsd-asprintf.c] Better test for bad vsnprintf lengths; ok dtucker@
2099
210020061108
2101 - (dtucker) OpenBSD CVS Sync
2102 - markus@cvs.openbsd.org 2006/11/07 13:02:07
2103 [dh.c]
2104 BN_hex2bn returns int; from dtucker@
2105
210620061107
2107 - (dtucker) [sshd.c] Use privsep_pw if we have it, but only require it
2108 if we absolutely need it. Pointed out by Corinna, ok djm@
2109 - (dtucker) OpenBSD CVS Sync
2110 - markus@cvs.openbsd.org 2006/11/06 21:25:28
2111 [auth-rsa.c kexgexc.c kexdhs.c key.c ssh-dss.c sshd.c kexgexs.c
2112 ssh-keygen.c bufbn.c moduli.c scard.c kexdhc.c sshconnect1.c dh.c rsa.c]
2113 add missing checks for openssl return codes; with & ok djm@
2114 - markus@cvs.openbsd.org 2006/11/07 10:31:31
2115 [monitor.c version.h]
2116 correctly check for bad signatures in the monitor, otherwise the monitor
2117 and the unpriv process can get out of sync. with dtucker@, ok djm@,
2118 dtucker@
2119 - (dtucker) [README contrib/{caldera,redhat,contrib}/openssh.spec] Bump
2120 versions.
2121 - (dtucker) Release 4.5p1.
2122
212320061105
2124 - (djm) OpenBSD CVS Sync
2125 - otto@cvs.openbsd.org 2006/10/28 18:08:10
2126 [ssh.1]
2127 correct/expand example of usage of -w; ok jmc@ stevesk@
2128 - markus@cvs.openbsd.org 2006/10/31 16:33:12
2129 [kexdhc.c kexdhs.c kexgexc.c kexgexs.c]
2130 check DH_compute_key() for -1 even if it should not happen because of
2131 earlier calls to dh_pub_is_valid(); report krahmer at suse.de; ok djm
2132
213320061101
2134 - (dtucker) [openbsd-compat/port-solaris.c] Bug #1255: Make only hwerr
2135 events fatal in Solaris process contract support and tell it to signal
2136 only processes in the same process group when something happens.
2137 Based on information from andrew.benham at thus.net and similar to
2138 a patch from Chad Mynhier. ok djm@
2139
214020061027
2141- (djm) [auth.c] gc some dead code
2142
214320061023
2144 - (djm) OpenBSD CVS Sync
2145 - ray@cvs.openbsd.org 2006/09/30 17:48:22
2146 [sftp.c]
2147 Clear errno before calling the strtol functions.
2148 From Paul Stoeber <x0001 at x dot de1 dot cc>.
2149 OK deraadt@.
2150 - djm@cvs.openbsd.org 2006/10/06 02:29:19
2151 [ssh-agent.c ssh-keyscan.c ssh.c]
2152 sys/resource.h needs sys/time.h; prompted by brad@
2153 (NB. Id sync only for portable)
2154 - djm@cvs.openbsd.org 2006/10/09 23:36:11
2155 [session.c]
2156 xmalloc -> xcalloc that was missed previously, from portable
2157 (NB. Id sync only for portable, obviously)
2158 - markus@cvs.openbsd.org 2006/10/10 10:12:45
2159 [sshconnect.c]
2160 sleep before retrying (not after) since sleep changes errno; fixes
2161 pr 5250; rad@twig.com; ok dtucker djm
2162 - markus@cvs.openbsd.org 2006/10/11 12:38:03
2163 [clientloop.c serverloop.c]
2164 exit instead of doing a blocking tcp send if we detect a client/server
2165 timeout, since the tcp sendqueue might be already full (of alive
2166 requests); ok dtucker, report mpf
2167 - djm@cvs.openbsd.org 2006/10/22 02:25:50
2168 [sftp-client.c]
2169 cancel progress meter when upload write fails; ok deraadt@
2170 - (tim) [Makefile.in scard/Makefile.in] Add datarootdir= lines to keep
2171 autoconf 2.60 from complaining.
2172
217320061018
2174 - (dtucker) OpenBSD CVS Sync
2175 - ray@cvs.openbsd.org 2006/09/25 04:55:38
2176 [ssh-keyscan.1 ssh.1]
2177 Change "a SSH" to "an SSH". Hurray, I'm not the only one who
2178 pronounces "SSH" as "ess-ess-aich".
2179 OK jmc@ and stevesk@.
2180 - (dtucker) [sshd.c] Reshuffle storing of pw struct; prevents warnings
2181 on older versions of OS X. ok djm@
2182
218320061016
2184 - (dtucker) [monitor_fdpass.c] Include sys/in.h, required for cmsg macros
2185 on older (2.0) Linuxes. Based on patch from thmo-13 at gmx de.
2186
218720061006
2188 - (tim) [buildpkg.sh.in] Use uname -r instead of -v in OS_VER for Solaris.
2189 Differentiate between OpenServer 5 and OpenServer 6
2190 - (dtucker) [configure.ac] Set put -lselinux into $LIBS while testing for
2191 SELinux functions so they're detected correctly. Patch from pebenito at
2192 gentoo.org.
2193 - (tim) [buildpkg.sh.in] Some systems have really limited nawk (OpenServer).
2194 Allow setting alternate awk in openssh-config.local.
2195
219620061003
2197 - (tim) [configure.ac] Move CHECK_HEADERS test before platform specific
2198 section so additional platform specific CHECK_HEADER tests will work
2199 correctly. Fixes "<net/if_tap.h> on FreeBSD" problem report by des AT des.no
2200 Feedback and "seems like a good idea" dtucker@
2201
220220061001
2203 - (dtucker) [audit-bsm.c] Include errno.h. Pointed out by des at des.no.
2204
220520060929
2206 - (dtucker) [configure.ac] Bug #1239: Fix configure test for OpenSSH engine
2207 support. Patch from andrew.benham at thus net.
2208
220920060928
2210 - (dtucker) [entropy.c] Bug #1238: include signal.h to fix compilation error
2211 on Solaris 8 w/out /dev/random or prngd. Patch from rl at
2212 math.technion.ac.il.
2213
221420060926
2215 - (dtucker) [bufaux.h] nuke bufaux.h; it's already gone from OpenBSD and not
2216 referenced any more. ok djm@
2217 - (dtucker) [sftp-server.8] Resync; spotted by djm@
2218 - (dtucker) Release 4.4p1.
2219
222020060924
2221 - (tim) [configure.ac] Remove CFLAGS hack for UnixWare 1.x/2.x (added
2222 to rev 1.308) to work around broken gcc 2.x header file.
2223
222420060923
2225 - (dtucker) [configure.ac] Bug #1234: Put opensc libs into $LIBS rather than
2226 $LDFLAGS. Patch from vapier at gentoo org.
2227
222820060922
2229 - (dtucker) [packet.c canohost.c] Include arpa/inet.h for htonl macros on
2230 some platforms (eg HP-UX 11.00). From santhi.amirta at gmail com.
2231
223220060921
2233 - (dtucker) OpenBSD CVS Sync
2234 - otto@cvs.openbsd.org 2006/09/19 05:52:23
2235 [sftp.c]
2236 Use S_IS* macros insted of masking with S_IF* flags. The latter may
2237 have multiple bits set, which lead to surprising results. Spotted by
2238 Paul Stoeber, more to come. ok millert@ pedro@ jaredy@ djm@
2239 - markus@cvs.openbsd.org 2006/09/19 21:14:08
2240 [packet.c]
2241 client NULL deref on protocol error; Tavis Ormandy, Google Security Team
2242 - (dtucker) [defines.h] Include unistd.h before defining getpgrp; fixes
2243 build error on Ultrix. From Bernhard Simon.
2244
224520060918
2246 - (dtucker) [configure.ac] On AIX, check to see if the compiler will allow
2247 macro redefinitions, and if not, remove "-qlanglvl=ansi" from the flags.
2248 Allows build out of the box with older VAC and XLC compilers. Found by
2249 David Bronder and Bernhard Simon.
2250 - (dtucker) [openbsd-compat/port-aix.{c,h}] Reduce scope of includes.
2251 Prevents macro redefinition warnings of "RDONLY".
2252
225320060916
2254 - OpenBSD CVS Sync
2255 - djm@cvs.openbsd.org 2006/09/16 19:53:37
2256 [deattack.c deattack.h packet.c]
2257 limit maximum work performed by the CRC compensation attack detector,
2258 problem reported by Tavis Ormandy, Google Security Team;
2259 ok markus@ deraadt@
2260 - (djm) Add openssh.xml to .cvsignore and sort it
2261 - (dtucker) [auth-pam.c] Propogate TZ environment variable to PAM auth
2262 process so that any logging it does is with the right timezone. From
2263 Scott Strickler, ok djm@.
2264 - (dtucker) [monitor.c] Correctly handle auditing of single commands when
2265 using Protocol 1. From jhb at freebsd.
2266 - (djm) [sshd.c] Fix warning/API abuse; ok dtucker@
2267 - (dtucker) [INSTALL] Add info about audit support.
2268
226920060912
2270 - (djm) [Makefile.in buildpkg.sh.in configure.ac openssh.xml.in]
2271 Support SMF in Solaris Packages if enabled by configure. Patch from
2272 Chad Mynhier, tested by dtucker@
2273
227420060911
2275 - (dtucker) [cipher-aes.c] Include string.h for memcpy and friends. Noted
2276 by Pekka Savola.
2277
227820060910
2279 - (dtucker) [contrib/aix/buildbff.sh] Ensure that perl is available.
2280 - (dtucker) [configure.ac] Add -lcrypt to let DragonFly build OOTB.
2281
228220060909
2283 - (dtucker) [openbsd-compat/bsd-snprintf.c] Add stdarg.h.
2284 - (dtucker) [contrib/aix/buildbff.sh] Always create privsep user.
2285 - (dtucker) [buildpkg.sh.in] Always create privsep user. ok djm@
2286
228720060908
2288 - (dtucker) [auth-sia.c] Add includes required for build on Tru64. Patch
2289 from Chris Adams.
2290 - (dtucker) [configure.ac] The BSM header test needs time.h in some cases.
2291
229220060907
2293 - (djm) [sshd.c auth.c] Set up fakepw() with privsep uid/gid, so it can
2294 be used to drop privilege to; fixes Solaris GSSAPI crash reported by
2295 Magnus Abrante; suggestion and feedback dtucker@
2296 NB. this change will require that the privilege separation user must
2297 exist on all the time, not just when UsePrivilegeSeparation=yes
2298 - (tim) [configure.ac] s/BROKEN_UPDWTMP/BROKEN_UPDWTMPX/ on SCO OSR6
2299 - (dtucker) [loginrec.c] Wrap paths.h in HAVE_PATHS_H.
2300 - (dtucker) [regress/cfgmatch.sh] stop_client is racy, so give us a better
2301 chance of winning.
2302
230320060905
2304 - (dtucker) [configure.ac] s/AC_DEFINES/AC_DEFINE/ spotted by Roumen Petrov.
2305 - (dtucker) [loginrec.c] Include paths.h for _PATH_BTMP.
2306
230720060904
2308 - (dtucker) [configure.ac] Define BROKEN_UPDWTMP on SCO OSR6 as the native
2309 updwdtmp seems to generate invalid wtmp entries. From Roger Cornelius,
2310 ok djm@
2311
231220060903
2313 - (dtucker) [configure.ac openbsd-compat/openbsd-compat.h] Check for
2314 declaration of writev(2) and declare it ourselves if necessary. Makes
2315 the atomiciov() calls build on really old systems. ok djm@
2316
231720060902
2318 - (dtucker) [openbsd-compat/port-irix.c] Add errno.h, found by Iain Morgan.
2319 - (dtucker) [ssh-keyscan.c ssh-rand-helper.c ssh.c sshconnect.c
2320 openbsd-compat/bindresvport.c openbsd-compat/getrrsetbyname.c
2321 openbsd-compat/port-tun.c openbsd-compat/rresvport.c] Include <arpa/inet.h>
2322 for hton* and ntoh* macros. Required on (at least) HP-UX since we define
2323 _XOPEN_SOURCE_EXTENDED. Found by santhi.amirta at gmail com.
2324
232520060901
2326 - (djm) [audit-bsm.c audit.c auth-bsdauth.c auth-chall.c auth-pam.c]
2327 [auth-rsa.c auth-shadow.c auth-sia.c auth1.c auth2-chall.c]
2328 [auth2-gss.c auth2-kbdint.c auth2-none.c authfd.c authfile.c]
2329 [cipher-3des1.c cipher-aes.c cipher-bf1.c cipher-ctr.c clientloop.c]
2330 [dh.c dns.c entropy.c gss-serv-krb5.c gss-serv.c hostfile.c kex.c]
2331 [kexdhc.c kexdhs.c kexgexc.c kexgexs.c key.c loginrec.c mac.c]
2332 [md5crypt.c monitor.c monitor_wrap.c readconf.c rsa.c]
2333 [scard-opensc.c scard.c session.c ssh-add.c ssh-agent.c ssh-dss.c]
2334 [ssh-keygen.c ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c]
2335 [sshconnect1.c sshconnect2.c sshd.c]
2336 [openbsd-compat/bsd-cray.c openbsd-compat/port-aix.c]
2337 [openbsd-compat/port-linux.c openbsd-compat/port-solaris.c]
2338 [openbsd-compat/port-uw.c]
2339 Lots of headers for SCO OSR6, mainly adding stdarg.h for log.h;
2340 compile problems reported by rac AT tenzing.org
2341 - (djm) [includes.h monitor.c openbsd-compat/bindresvport.c]
2342 [openbsd-compat/rresvport.c] Some more headers: netinet/in.h
2343 sys/socket.h and unistd.h in various places
2344 - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Fix implict declaration
2345 warnings for binary_open and binary_close. Patch from Corinna Vinschen.
2346 - (dtucker) [configure.ac includes.h openbsd-compat/glob.{c,h}] Explicitly
2347 test for GLOB_NOMATCH and use our glob functions if it's not found.
2348 Stops sftp from segfaulting when attempting to get a nonexistent file on
2349 Cygwin (previous versions of OpenSSH didn't use the native glob). Partly
2350 from and tested by Corinna Vinschen.
2351 - (dtucker) [README contrib/{caldera,redhat,suse}/openssh.spec] Crank
2352 versions.
2353
235420060831
2355 - (djm) [CREDITS LICENCE Makefile.in auth.c configure.ac includes.h ]
2356 [platform.c platform.h sshd.c openbsd-compat/Makefile.in]
2357 [openbsd-compat/openbsd-compat.h openbsd-compat/port-solaris.c]
2358 [openbsd-compat/port-solaris.h] Add support for Solaris process
2359 contracts, enabled with --use-solaris-contracts. Patch from Chad
2360 Mynhier, tweaked by dtucker@ and myself; ok dtucker@
2361 - (dtucker) [contrib/cygwin/ssh-host-config] Add SeTcbPrivilege privilege
2362 while setting up the ssh service account. Patch from Corinna Vinschen.
2363
236420060830
2365 - (djm) OpenBSD CVS Sync
2366 - dtucker@cvs.openbsd.org 2006/08/21 08:14:01
2367 [sshd_config.5]
2368 Document HostbasedUsesNameFromPacketOnly. Corrections from jmc@,
2369 ok jmc@ djm@
2370 - dtucker@cvs.openbsd.org 2006/08/21 08:15:57
2371 [sshd.8]
2372 Add more detail about what permissions are and aren't accepted for
2373 authorized_keys files. Corrections jmc@, ok djm@, "looks good" jmc@
2374 - djm@cvs.openbsd.org 2006/08/29 10:40:19
2375 [channels.c session.c]
2376 normalise some inconsistent (but harmless) NULL pointer checks
2377 spotted by the Stanford SATURN tool, via Isil Dillig;
2378 ok markus@ deraadt@
2379 - dtucker@cvs.openbsd.org 2006/08/29 12:02:30
2380 [gss-genr.c]
2381 Work around a problem in Heimdal that occurs when KRB5CCNAME file is
2382 missing, by checking whether or not kerberos allocated us a context
2383 before attempting to free it. Patch from Simon Wilkinson, tested by
2384 biorn@, ok djm@
2385 - dtucker@cvs.openbsd.org 2006/08/30 00:06:51
2386 [sshconnect2.c]
2387 Fix regression where SSH2 banner is printed at loglevels ERROR and FATAL
2388 where previously it weren't. bz #1221, found by Dean Kopesky, ok djm@
2389 - djm@cvs.openbsd.org 2006/08/30 00:14:37
2390 [version.h]
2391 crank to 4.4
2392 - (djm) [openbsd-compat/xcrypt.c] needs unistd.h
2393 - (dtucker) [auth.c openbsd-compat/port-aix.c] Bug #1207: always call
2394 loginsuccess on AIX immediately after authentication to clear the failed
2395 login count. Previously this would only happen when an interactive
2396 session starts (ie when a pty is allocated) but this means that accounts
2397 that have primarily non-interactive sessions (eg scp's) may gradually
2398 accumulate enough failures to lock out an account. This change may have
2399 a side effect of creating two audit records, one with a tty of "ssh"
2400 corresponding to the authentication and one with the allocated pty per
2401 interactive session.
2402
240320060824
2404 - (dtucker) [openbsd-compat/basename.c] Include errno.h.
2405 - (dtucker) [openbsd-compat/bsd-misc.c] Add includes needed for select(2) on
2406 older systems.
2407 - (dtucker) [openbsd-compat/bsd-misc.c] Include <sys/select.h> for select(2)
2408 on POSIX systems.
2409 - (dtucker) [openbsd-compat/bsd-openpty.c] Include for ioctl(2).
2410 - (dtucker) [openbsd-compat/rresvport.c] Include <stdlib.h> for malloc.
2411 - (dtucker) [openbsd-compat/xmmap.c] Move #define HAVE_MMAP to prevent
2412 unused variable warning when we have a broken or missing mmap(2).
2413
241420060822
2415 - (dtucker) [Makefile.in] Bug #1177: fix incorrect path for sshrc in
2416 Makefile. Patch from santhi.amirta at gmail, ok djm.
2417
241820060820
2419 - (dtucker) [log.c] Move ifdef to prevent unused variable warning.
2420 - (dtucker) [configure.ac] Save $LIBS during PAM library tests and restore
2421 afterward. Removes the need to mangle $LIBS later to remove -lpam and -ldl.
2422 - (dtucker) [configure.ac] Relocate --with-pam parts in preparation for
2423 fixing bug #1181. No changes yet.
2424 - (dtucker) [configure.ac] Bug #1181: Explicitly test to see if OpenSSL
2425 (0.9.8a and presumably newer) requires -ldl to successfully link.
2426 - (dtucker) [configure.ac] Remove errant "-".
2427
242820060819
2429 - (djm) OpenBSD CVS Sync
2430 - djm@cvs.openbsd.org 2006/08/18 22:41:29
2431 [gss-genr.c]
2432 GSSAPI error code should be 0 and not -1; from simon@sxw.org.uk
2433 - (dtucker) [openbsd-compat/regress/Makefile.in] Add $(EXEEXT) and add a
2434 single rule for the test progs.
2435
243620060818
2437 - (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Resync with
2438 closefrom.c from sudo.
2439 - (dtucker) [openbsd-compat/bsd-closefrom.c] Comment out rcsid.
2440 - (dtucker) [openbsd-compat/regress/snprintftest.c] Newline on error.
2441 - (dtucker) [openbsd-compat/regress/Makefile.in] Use implicit rules for the
2442 test progs instead; they work better than what we have.
2443 - (djm) OpenBSD CVS Sync
2444 - stevesk@cvs.openbsd.org 2006/08/06 01:13:32
2445 [compress.c monitor.c monitor_wrap.c]
2446 "zlib.h" can be <zlib.h>; ok djm@ markus@
2447 - miod@cvs.openbsd.org 2006/08/12 20:46:46
2448 [monitor.c monitor_wrap.c]
2449 Revert previous include file ordering change, for ssh to compile under
2450 gcc2 (or until openssl include files are cleaned of parameter names
2451 in function prototypes)
2452 - dtucker@cvs.openbsd.org 2006/08/14 12:40:25
2453 [servconf.c servconf.h sshd_config.5]
2454 Add ability to match groups to Match keyword in sshd_config. Feedback
2455 djm@, stevesk@, ok stevesk@.
2456 - djm@cvs.openbsd.org 2006/08/16 11:47:15
2457 [sshd.c]
2458 factor inetd connection, TCP listen and main TCP accept loop out of
2459 main() into separate functions to improve readability; ok markus@
2460 - deraadt@cvs.openbsd.org 2006/08/18 09:13:26
2461 [log.c log.h sshd.c]
2462 make signal handler termination path shorter; risky code pointed out by
2463 mark dowd; ok djm markus
2464 - markus@cvs.openbsd.org 2006/08/18 09:15:20
2465 [auth.h session.c sshd.c]
2466 delay authentication related cleanups until we're authenticated and
2467 all alarms have been cancelled; ok deraadt
2468 - djm@cvs.openbsd.org 2006/08/18 10:27:16
2469 [misc.h]
2470 reorder so prototypes are sorted by the files they refer to; no
2471 binary change
2472 - djm@cvs.openbsd.org 2006/08/18 13:54:54
2473 [gss-genr.c ssh-gss.h sshconnect2.c]
2474 bz #1218 - disable SPNEGO as per RFC4462; diff from simon AT sxw.org.uk
2475 ok markus@
2476 - djm@cvs.openbsd.org 2006/08/18 14:40:34
2477 [gss-genr.c ssh-gss.h]
2478 constify host argument to match the rest of the GSSAPI functions and
2479 unbreak compilation with -Werror
2480 - (djm) Disable sigdie() for platforms that cannot safely syslog inside
2481 a signal handler (basically all of them, excepting OpenBSD);
2482 ok dtucker@
2483
248420060817
2485 - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c]
2486 Include stdlib.h for malloc and friends.
2487 - (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Use F_CLOSEM fcntl
2488 for closefrom() on AIX. Pointed out by William Ahern.
2489 - (dtucker) [openbsd-compat/regress/{Makefile.in,closefromtest.c}] Regress
2490 test for closefrom() in compat code.
2491
249220060816
2493 - (djm) [audit-bsm.c] Sprinkle in some headers
2494
249520060815
2496 - (dtucker) [LICENCE] Add Reyk to the list for the compat dir.
2497
249820060806
2499 - (djm) [openbsd-compat/bsd-getpeereid.c] Add some headers to quiet warnings
2500 on Solaris 10
2501
250220060806
2503 - (dtucker) [defines.h] With the includes.h changes we no longer get the
2504 name clash on "YES" so we can remove the workaround for it.
2505 - (dtucker) [openbsd-compat/{bsd-asprintf.c,bsd-openpty.c,bsd-snprintf.c,
2506 glob.c}] Include stdlib.h for malloc and friends in compat code.
2507
250820060805
2509 - (djm) OpenBSD CVS Sync
2510 - stevesk@cvs.openbsd.org 2006/07/24 13:58:22
2511 [sshconnect.c]
2512 disable tunnel forwarding when no strict host key checking
2513 and key changed; ok djm@ markus@ dtucker@
2514 - stevesk@cvs.openbsd.org 2006/07/25 02:01:34
2515 [scard.c]
2516 need #include <string.h>
2517 - stevesk@cvs.openbsd.org 2006/07/25 02:59:21
2518 [channels.c clientloop.c packet.c scp.c serverloop.c sftp-client.c]
2519 [sftp-server.c ssh-agent.c ssh-keyscan.c sshconnect.c sshd.c]
2520 move #include <sys/time.h> out of includes.h
2521 - stevesk@cvs.openbsd.org 2006/07/26 02:35:17
2522 [atomicio.c auth.c dh.c authfile.c buffer.c clientloop.c kex.c]
2523 [groupaccess.c gss-genr.c kexgexs.c misc.c monitor.c monitor_mm.c]
2524 [packet.c scp.c serverloop.c session.c sftp-client.c sftp-common.c]
2525 [sftp-server.c sftp.c ssh-add.c ssh-agent.c ssh-keygen.c sshlogin.c]
2526 [uidswap.c xmalloc.c]
2527 move #include <sys/param.h> out of includes.h
2528 - stevesk@cvs.openbsd.org 2006/07/26 13:57:17
2529 [authfd.c authfile.c dh.c canohost.c channels.c clientloop.c compat.c]
2530 [hostfile.c kex.c log.c misc.c moduli.c monitor.c packet.c readpass.c]
2531 [scp.c servconf.c session.c sftp-server.c sftp.c ssh-add.c ssh-agent.c]
2532 [ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh.c sshconnect.c]
2533 [sshconnect1.c sshd.c xmalloc.c]
2534 move #include <stdlib.h> out of includes.h
2535 - jmc@cvs.openbsd.org 2006/07/27 08:00:50
2536 [ssh_config.5]
2537 avoid confusing wording in HashKnownHosts:
2538 originally spotted by alan amesbury;
2539 ok deraadt
2540 - jmc@cvs.openbsd.org 2006/07/27 08:00:50
2541 [ssh_config.5]
2542 avoid confusing wording in HashKnownHosts:
2543 originally spotted by alan amesbury;
2544 ok deraadt
2545 - dtucker@cvs.openbsd.org 2006/08/01 11:34:36
2546 [sshconnect.c]
2547 Allow fallback to known_hosts entries without port qualifiers for
2548 non-standard ports too, so that all existing known_hosts entries will be
2549 recognised. Requested by, feedback and ok markus@
2550 - stevesk@cvs.openbsd.org 2006/08/01 23:22:48
2551 [auth-passwd.c auth-rhosts.c auth-rsa.c auth.c auth.h auth1.c]
2552 [auth2-chall.c auth2-pubkey.c authfile.c buffer.c canohost.c]
2553 [channels.c clientloop.c dh.c dns.c dns.h hostfile.c kex.c kexdhc.c]
2554 [kexgexc.c kexgexs.c key.c key.h log.c misc.c misc.h moduli.c]
2555 [monitor_wrap.c packet.c progressmeter.c readconf.c readpass.c scp.c]
2556 [servconf.c session.c sftp-client.c sftp-common.c sftp-server.c sftp.c]
2557 [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keyscan.c ssh.c sshconnect.c]
2558 [sshconnect1.c sshconnect2.c sshd.c sshlogin.c sshtty.c uuencode.c]
2559 [uuencode.h xmalloc.c]
2560 move #include <stdio.h> out of includes.h
2561 - stevesk@cvs.openbsd.org 2006/08/01 23:36:12
2562 [authfile.c channels.c progressmeter.c scard.c servconf.c ssh.c]
2563 clean extra spaces
2564 - deraadt@cvs.openbsd.org 2006/08/03 03:34:42
2565 [OVERVIEW atomicio.c atomicio.h auth-bsdauth.c auth-chall.c auth-krb5.c]
2566 [auth-options.c auth-options.h auth-passwd.c auth-rh-rsa.c auth-rhosts.c]
2567 [auth-rsa.c auth-skey.c auth.c auth.h auth1.c auth2-chall.c auth2-gss.c]
2568 [auth2-hostbased.c auth2-kbdint.c auth2-none.c auth2-passwd.c ]
2569 [auth2-pubkey.c auth2.c authfd.c authfd.h authfile.c bufaux.c bufbn.c]
2570 [buffer.c buffer.h canohost.c channels.c channels.h cipher-3des1.c]
2571 [cipher-bf1.c cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c]
2572 [compress.c deattack.c dh.c dispatch.c dns.c dns.h fatal.c groupaccess.c]
2573 [groupaccess.h gss-genr.c gss-serv-krb5.c gss-serv.c hostfile.c kex.c]
2574 [kex.h kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c]
2575 [key.h log.c log.h mac.c match.c md-sha256.c misc.c misc.h moduli.c]
2576 [monitor.c monitor_fdpass.c monitor_mm.c monitor_mm.h monitor_wrap.c]
2577 [monitor_wrap.h msg.c nchan.c packet.c progressmeter.c readconf.c]
2578 [readconf.h readpass.c rsa.c scard.c scard.h scp.c servconf.c servconf.h]
2579 [serverloop.c session.c session.h sftp-client.c sftp-common.c]
2580 [sftp-common.h sftp-glob.c sftp-server.c sftp.c ssh-add.c ssh-agent.c]
2581 [ssh-dss.c ssh-gss.h ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh-rsa.c]
2582 [ssh.c ssh.h sshconnect.c sshconnect.h sshconnect1.c sshconnect2.c]
2583 [sshd.c sshlogin.c sshlogin.h sshpty.c sshpty.h sshtty.c ttymodes.c]
2584 [uidswap.c uidswap.h uuencode.c uuencode.h xmalloc.c xmalloc.h]
2585 [loginrec.c loginrec.h openbsd-compat/port-aix.c openbsd-compat/port-tun.h]
2586 almost entirely get rid of the culture of ".h files that include .h files"
2587 ok djm, sort of ok stevesk
2588 makes the pain stop in one easy step
2589 NB. portable commit contains everything *except* removing includes.h, as
2590 that will take a fair bit more work as we move headers that are required
2591 for portability workarounds to defines.h. (also, this step wasn't "easy")
2592 - stevesk@cvs.openbsd.org 2006/08/04 20:46:05
2593 [monitor.c session.c ssh-agent.c]
2594 spaces
2595 - (djm) [auth-pam.c defines.h] Move PAM related bits to auth-pam.c
2596 - (djm) [auth-pam.c auth.c bufaux.h entropy.c openbsd-compat/port-tun.c]
2597 remove last traces of bufaux.h - it was merged into buffer.h in the big
2598 includes.h commit
2599 - (djm) [auth.c loginrec.c] Missing netinet/in.h for loginrec
2600 - (djm) [openbsd-compat/regress/snprintftest.c]
2601 [openbsd-compat/regress/strduptest.c] Add missing includes so they pass
2602 compilation with "-Wall -Werror"
2603 - (djm) [auth-pam.c auth-shadow.c auth2-none.c cleanup.c sshd.c]
2604 [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Sprinkle more
2605 includes for Linux in
2606 - (dtucker) [cleanup.c] Need defines.h for __dead.
2607 - (dtucker) [auth2-gss.c] We still need the #ifdef GSSAPI in -portable.
2608 - (dtucker) [openbsd-compat/{bsd-arc4random.c,port-tun.c,xmmap.c}] Lots of
2609 #include stdarg.h, needed for log.h.
2610 - (dtucker) [entropy.c] Needs unistd.h too.
2611 - (dtucker) [ssh-rand-helper.c] Needs stdarg.h for log.h.
2612 - (dtucker) [openbsd-compat/getrrsetbyname.c] Nees stdlib.h for malloc.
2613 - (dtucker) [openbsd-compat/strtonum.c] Include stdlib.h for strtoll,
2614 otherwise it is implicitly declared as returning an int.
2615 - (dtucker) OpenBSD CVS Sync
2616 - dtucker@cvs.openbsd.org 2006/08/05 07:52:52
2617 [auth2-none.c sshd.c monitor_wrap.c]
2618 Add headers required to build with KERBEROS5=no. ok djm@
2619 - dtucker@cvs.openbsd.org 2006/08/05 08:00:33
2620 [auth-skey.c]
2621 Add headers required to build with -DSKEY. ok djm@
2622 - dtucker@cvs.openbsd.org 2006/08/05 08:28:24
2623 [monitor_wrap.c auth-skey.c auth2-chall.c]
2624 Zap unused variables in -DSKEY code. ok djm@
2625 - dtucker@cvs.openbsd.org 2006/08/05 08:34:04
2626 [packet.c]
2627 Typo in comment
2628 - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Add headers required to compile
2629 on Cygwin.
2630 - (dtucker) [openbsd-compat/fake-rfc2553.c] Add headers needed for inet_ntoa.
2631 - (dtucker) [auth-skey.c] monitor_wrap.h needs ssh-gss.h.
2632 - (dtucker) [audit.c audit.h] Repair headers.
2633 - (dtucker) [audit-bsm.c] Add additional headers now required.
2634
263520060804
2636 - (dtucker) [configure.ac] The "crippled AES" test does not work on recent
2637 versions of Solaris, so use AC_LINK_IFELSE to actually link the test program
2638 rather than just compiling it. Spotted by dlg@.
2639
264020060802
2641 - (dtucker) [openbsd-compat/daemon.c] Add unistd.h for fork() prototype.
2642
264320060725
2644 - (dtucker) [openbsd-compat/xmmap.c] Need fcntl.h for O_RDRW.
2645
264620060724
2647 - (djm) OpenBSD CVS Sync
2648 - jmc@cvs.openbsd.org 2006/07/12 13:39:55
2649 [sshd_config.5]
2650 - new sentence, new line
2651 - s/The the/The/
2652 - kill a bad comma
2653 - stevesk@cvs.openbsd.org 2006/07/12 22:28:52
2654 [auth-options.c canohost.c channels.c includes.h readconf.c]
2655 [servconf.c ssh-keyscan.c ssh.c sshconnect.c sshd.c]
2656 move #include <netdb.h> out of includes.h; ok djm@
2657 - stevesk@cvs.openbsd.org 2006/07/12 22:42:32
2658 [includes.h ssh.c ssh-rand-helper.c]
2659 move #include <stddef.h> out of includes.h
2660 - stevesk@cvs.openbsd.org 2006/07/14 01:15:28
2661 [monitor_wrap.h]
2662 don't need incompletely-typed 'struct passwd' now with
2663 #include <pwd.h>; ok markus@
2664 - stevesk@cvs.openbsd.org 2006/07/17 01:31:10
2665 [authfd.c authfile.c channels.c cleanup.c clientloop.c groupaccess.c]
2666 [includes.h log.c misc.c msg.c packet.c progressmeter.c readconf.c]
2667 [readpass.c scp.c servconf.c sftp-client.c sftp-server.c sftp.c]
2668 [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh.c]
2669 [sshconnect.c sshlogin.c sshpty.c uidswap.c]
2670 move #include <unistd.h> out of includes.h
2671 - dtucker@cvs.openbsd.org 2006/07/17 12:02:24
2672 [auth-options.c]
2673 Use '\0' rather than 0 to terminates strings; ok djm@
2674 - dtucker@cvs.openbsd.org 2006/07/17 12:06:00
2675 [channels.c channels.h servconf.c sshd_config.5]
2676 Add PermitOpen directive to sshd_config which is equivalent to the
2677 "permitopen" key option. Allows server admin to allow TCP port
2678 forwarding only two specific host/port pairs. Useful when combined
2679 with Match.
2680 If permitopen is used in both sshd_config and a key option, both
2681 must allow a given connection before it will be permitted.
2682 Note that users can still use external forwarders such as netcat,
2683 so to be those must be controlled too for the limits to be effective.
2684 Feedback & ok djm@, man page corrections & ok jmc@.
2685 - jmc@cvs.openbsd.org 2006/07/18 07:50:40
2686 [sshd_config.5]
2687 tweak; ok dtucker
2688 - jmc@cvs.openbsd.org 2006/07/18 07:56:28
2689 [scp.1]
2690 replace DIAGNOSTICS with .Ex;
2691 - jmc@cvs.openbsd.org 2006/07/18 08:03:09
2692 [ssh-agent.1 sshd_config.5]
2693 mark up angle brackets;
2694 - dtucker@cvs.openbsd.org 2006/07/18 08:22:23
2695 [sshd_config.5]
2696 Clarify description of Match, with minor correction from jmc@
2697 - stevesk@cvs.openbsd.org 2006/07/18 22:27:55
2698 [dh.c]
2699 remove unneeded includes; ok djm@
2700 - dtucker@cvs.openbsd.org 2006/07/19 08:56:41
2701 [servconf.c sshd_config.5]
2702 Add support for X11Forwaring, X11DisplayOffset and X11UseLocalhost to
2703 Match. ok djm@
2704 - dtucker@cvs.openbsd.org 2006/07/19 13:07:10
2705 [servconf.c servconf.h session.c sshd.8 sshd_config sshd_config.5]
2706 Add ForceCommand keyword to sshd_config, equivalent to the "command="
2707 key option, man page entry and example in sshd_config.
2708 Feedback & ok djm@, man page corrections & ok jmc@
2709 - stevesk@cvs.openbsd.org 2006/07/20 15:26:15
2710 [auth1.c serverloop.c session.c sshconnect2.c]
2711 missed some needed #include <unistd.h> when KERBEROS5=no; issue from
2712 massimo@cedoc.mo.it
2713 - dtucker@cvs.openbsd.org 2006/07/21 12:43:36
2714 [channels.c channels.h servconf.c servconf.h sshd_config.5]
2715 Make PermitOpen take a list of permitted ports and act more like most
2716 other keywords (ie the first match is the effective setting). This
2717 also makes it easier to override a previously set PermitOpen. ok djm@
2718 - stevesk@cvs.openbsd.org 2006/07/21 21:13:30
2719 [channels.c]
2720 more ARGSUSED (lint) for dispatch table-driven functions; ok djm@
2721 - stevesk@cvs.openbsd.org 2006/07/21 21:26:55
2722 [progressmeter.c]
2723 ARGSUSED for signal handler
2724 - stevesk@cvs.openbsd.org 2006/07/22 19:08:54
2725 [includes.h moduli.c progressmeter.c scp.c sftp-common.c]
2726 [sftp-server.c ssh-agent.c sshlogin.c]
2727 move #include <time.h> out of includes.h
2728 - stevesk@cvs.openbsd.org 2006/07/22 20:48:23
2729 [atomicio.c auth-options.c auth-passwd.c auth-rhosts.c auth-rsa.c]
2730 [auth.c auth1.c auth2-chall.c auth2-hostbased.c auth2-passwd.c auth2.c]
2731 [authfd.c authfile.c bufaux.c bufbn.c buffer.c canohost.c channels.c]
2732 [cipher-3des1.c cipher-bf1.c cipher-ctr.c cipher.c clientloop.c]
2733 [compat.c deattack.c dh.c dns.c gss-genr.c gss-serv.c hostfile.c]
2734 [includes.h kex.c kexdhc.c kexdhs.c kexgexc.c kexgexs.c key.c log.c]
2735 [mac.c match.c md-sha256.c misc.c moduli.c monitor.c monitor_fdpass.c]
2736 [monitor_mm.c monitor_wrap.c msg.c nchan.c packet.c rsa.c]
2737 [progressmeter.c readconf.c readpass.c scp.c servconf.c serverloop.c]
2738 [session.c sftp-client.c sftp-common.c sftp-glob.c sftp-server.c sftp.c]
2739 [ssh-add.c ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c]
2740 [ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c sshconnect2.c]
2741 [sshd.c sshlogin.c sshpty.c ttymodes.c uidswap.c xmalloc.c]
2742 move #include <string.h> out of includes.h
2743 - stevesk@cvs.openbsd.org 2006/07/23 01:11:05
2744 [auth.h dispatch.c kex.h sftp-client.c]
2745 #include <signal.h> for sig_atomic_t; need this prior to <sys/param.h>
2746 move
2747 - (djm) [acss.c auth-krb5.c auth-options.c auth-pam.c auth-shadow.c]
2748 [canohost.c channels.c cipher-acss.c defines.h dns.c gss-genr.c]
2749 [gss-serv-krb5.c gss-serv.c log.h loginrec.c logintest.c readconf.c]
2750 [servconf.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh-rand-helper.c]
2751 [ssh.c sshconnect.c sshd.c openbsd-compat/bindresvport.c]
2752 [openbsd-compat/bsd-arc4random.c openbsd-compat/bsd-misc.c]
2753 [openbsd-compat/getrrsetbyname.c openbsd-compat/glob.c]
2754 [openbsd-compat/mktemp.c openbsd-compat/port-linux.c]
2755 [openbsd-compat/port-tun.c openbsd-compat/readpassphrase.c]
2756 [openbsd-compat/setproctitle.c openbsd-compat/xmmap.c]
2757 make the portable tree compile again - sprinkle unistd.h and string.h
2758 back in. Don't redefine __unused, as it turned out to be used in
2759 headers on Linux, and replace its use in auth-pam.c with ARGSUSED
2760 - (djm) [openbsd-compat/glob.c]
2761 Move get_arg_max() into the ifdef HAVE_GLOB block so that it compiles
2762 on OpenBSD (or other platforms with a decent glob implementation) with
2763 -Werror
2764 - (djm) [uuencode.c]
2765 Add resolv.h, is it contains the prototypes for __b64_ntop/__b64_pton on
2766 some platforms
2767 - (djm) [session.c]
2768 fix compile error with -Werror -Wall: 'path' is only used in
2769 do_setup_env() if HAVE_LOGIN_CAP is not defined
2770 - (djm) [openbsd-compat/basename.c openbsd-compat/bsd-closefrom.c]
2771 [openbsd-compat/bsd-cray.c openbsd-compat/bsd-openpty.c]
2772 [openbsd-compat/bsd-snprintf.c openbsd-compat/fake-rfc2553.c]
2773 [openbsd-compat/port-aix.c openbsd-compat/port-irix.c]
2774 [openbsd-compat/rresvport.c]
2775 These look to need string.h and/or unistd.h (based on a grep for function
2776 names)
2777 - (djm) [Makefile.in]
2778 Remove generated openbsd-compat/regress/Makefile in distclean target
2779 - (djm) [regress/Makefile regress/agent-getpeereid.sh regress/cfgmatch.sh]
2780 [regress/cipher-speed.sh regress/forcecommand.sh regress/forwarding.sh]
2781 Sync regress tests to -current; include dtucker@'s new cfgmatch and
2782 forcecommand tests. Add cipher-speed.sh test (not linked in yet)
2783 - (dtucker) [cleanup.c] Since config.h defines _LARGE_FILES on AIX, including
2784 system headers before defines.h will cause conflicting definitions.
2785 - (dtucker) [regress/forcecommand.sh] Portablize.
2786
278720060713
2788 - (dtucker) [auth-krb5.c auth-pam.c] Still more errno.h
2789
279020060712
2791 - (dtucker) [configure.ac defines.h] Only define SHUT_RD (and friends) and
2792 O_NONBLOCK if they're really needed. Fixes build errors on HP-UX, old
2793 Linuxes and probably more.
2794 - (dtucker) [configure.ac] OpenBSD needs <sys/types.h> before <sys/socket.h>
2795 for SHUT_RD.
2796 - (dtucker) [openbsd-compat/port-tun.c] OpenBSD needs <netinet/in.h> before
2797 <netinet/ip.h>.
2798 - (dtucker) OpenBSD CVS Sync
2799 - stevesk@cvs.openbsd.org 2006/07/10 16:01:57
2800 [sftp-glob.c sftp-common.h sftp.c]
2801 buffer.h only needed in sftp-common.h and remove some unneeded
2802 user includes; ok djm@
2803 - jmc@cvs.openbsd.org 2006/07/10 16:04:21
2804 [sshd.8]
2805 s/and and/and/
2806 - stevesk@cvs.openbsd.org 2006/07/10 16:37:36
2807 [readpass.c log.h scp.c fatal.c xmalloc.c includes.h ssh-keyscan.c misc.c
2808 auth.c packet.c log.c]
2809 move #include <stdarg.h> out of includes.h; ok markus@
2810 - dtucker@cvs.openbsd.org 2006/07/11 10:12:07
2811 [ssh.c]
2812 Only copy the part of environment variable that we actually use. Prevents
2813 ssh bailing when SendEnv is used and an environment variable with a really
2814 long value exists. ok djm@
2815 - markus@cvs.openbsd.org 2006/07/11 18:50:48
2816 [clientloop.c ssh.1 ssh.c channels.c ssh_config.5 readconf.h session.c
2817 channels.h readconf.c]
2818 add ExitOnForwardFailure: terminate the connection if ssh(1)
2819 cannot set up all requested dynamic, local, and remote port
2820 forwardings. ok djm, dtucker, stevesk, jmc
2821 - stevesk@cvs.openbsd.org 2006/07/11 20:07:25
2822 [scp.c auth.c monitor.c serverloop.c sftp-server.c sshpty.c readpass.c
2823 sshd.c monitor_wrap.c monitor_fdpass.c ssh-agent.c ttymodes.c atomicio.c
2824 includes.h session.c sshlogin.c monitor_mm.c packet.c sshconnect2.c
2825 sftp-client.c nchan.c clientloop.c sftp.c misc.c canohost.c channels.c
2826 ssh-keygen.c progressmeter.c uidswap.c msg.c readconf.c sshconnect.c]
2827 move #include <errno.h> out of includes.h; ok markus@
2828 - stevesk@cvs.openbsd.org 2006/07/11 20:16:43
2829 [ssh.c]
2830 cast asterisk field precision argument to int to remove warning;
2831 ok markus@
2832 - stevesk@cvs.openbsd.org 2006/07/11 20:27:56
2833 [authfile.c ssh.c]
2834 need <errno.h> here also (it's also included in <openssl/err.h>)
2835 - dtucker@cvs.openbsd.org 2006/07/12 11:34:58
2836 [sshd.c servconf.h servconf.c sshd_config.5 auth.c]
2837 Add support for conditional directives to sshd_config via a "Match"
2838 keyword, which works similarly to the "Host" directive in ssh_config.
2839 Lines after a Match line override the default set in the main section
2840 if the condition on the Match line is true, eg
2841 AllowTcpForwarding yes
2842 Match User anoncvs
2843 AllowTcpForwarding no
2844 will allow port forwarding by all users except "anoncvs".
2845 Currently only a very small subset of directives are supported.
2846 ok djm@
2847 - (dtucker) [loginrec.c openbsd-compat/xmmap.c openbsd-compat/bindresvport.c
2848 openbsd-compat/glob.c openbsd-compat/mktemp.c openbsd-compat/port-tun.c
2849 openbsd-compat/readpassphrase.c openbsd-compat/strtonum.c] Include <errno.h>.
2850 - (dtucker) [openbsd-compat/setproctitle.c] Include stdarg.h.
2851 - (dtucker) [ssh-keyscan.c ssh-rand-helper.c] More errno.h here too.
2852 - (dtucker) [openbsd-compat/openbsd-compat.h] v*printf needs stdarg.h.
2853 - (dtucker) [openbsd-compat/bsd-asprintf.c openbsd-compat/port-aix.c
2854 openbsd-compat/rresvport.c] More errno.h.
2855
285620060711
2857 - (dtucker) [configure.ac ssh-keygen.c openbsd-compat/bsd-openpty.c
2858 openbsd-compat/daemon.c] Add includes needed by open(2). Conditionally
2859 include paths.h. Fixes build error on Solaris.
2860 - (dtucker) [entropy.c] More fcntl.h, this time on AIX (and probably
2861 others).
2862
286320060710
2864 - (dtucker) [INSTALL] New autoconf version: 2.60.
2865 - OpenBSD CVS Sync
2866 - djm@cvs.openbsd.org 2006/06/14 10:50:42
2867 [sshconnect.c]
2868 limit the number of pre-banner characters we will accept; ok markus@
2869 - djm@cvs.openbsd.org 2006/06/26 10:36:15
2870 [clientloop.c]
2871 mention optional bind_address in runtime port forwarding setup
2872 command-line help. patch from santhi.amirta AT gmail.com
2873 - stevesk@cvs.openbsd.org 2006/07/02 17:12:58
2874 [ssh.1 ssh.c ssh_config.5 sshd_config.5]
2875 more details and clarity for tun(4) device forwarding; ok and help
2876 jmc@
2877 - stevesk@cvs.openbsd.org 2006/07/02 18:36:47
2878 [gss-serv-krb5.c gss-serv.c]
2879 no "servconf.h" needed here
2880 (gss-serv-krb5.c change not applied, portable needs the server options)
2881 - stevesk@cvs.openbsd.org 2006/07/02 22:45:59
2882 [groupaccess.c groupaccess.h includes.h session.c sftp-common.c sshpty.c]
2883 move #include <grp.h> out of includes.h
2884 (portable needed uidswap.c too)
2885 - stevesk@cvs.openbsd.org 2006/07/02 23:01:55
2886 [clientloop.c ssh.1]
2887 use -KR[bind_address:]port here; ok djm@
2888 - stevesk@cvs.openbsd.org 2006/07/03 08:54:20
2889 [includes.h ssh.c sshconnect.c sshd.c]
2890 move #include "version.h" out of includes.h; ok markus@
2891 - stevesk@cvs.openbsd.org 2006/07/03 17:59:32
2892 [channels.c includes.h]
2893 move #include <arpa/inet.h> out of includes.h; old ok djm@
2894 (portable needed session.c too)
2895 - stevesk@cvs.openbsd.org 2006/07/05 02:42:09
2896 [canohost.c hostfile.c includes.h misc.c packet.c readconf.c]
2897 [serverloop.c sshconnect.c uuencode.c]
2898 move #include <netinet/in.h> out of includes.h; ok deraadt@
2899 (also ssh-rand-helper.c logintest.c loginrec.c)
2900 - djm@cvs.openbsd.org 2006/07/06 10:47:05
2901 [servconf.c servconf.h session.c sshd_config.5]
2902 support arguments to Subsystem commands; ok markus@
2903 - djm@cvs.openbsd.org 2006/07/06 10:47:57
2904 [sftp-server.8 sftp-server.c]
2905 add commandline options to enable logging of transactions; ok markus@
2906 - stevesk@cvs.openbsd.org 2006/07/06 16:03:53
2907 [auth-options.c auth-options.h auth-passwd.c auth-rh-rsa.c]
2908 [auth-rhosts.c auth-rsa.c auth.c auth.h auth2-hostbased.c]
2909 [auth2-pubkey.c auth2.c includes.h misc.c misc.h monitor.c]
2910 [monitor_wrap.c monitor_wrap.h scp.c serverloop.c session.c]
2911 [session.h sftp-common.c ssh-add.c ssh-keygen.c ssh-keysign.c]
2912 [ssh.c sshconnect.c sshconnect.h sshd.c sshpty.c sshpty.h uidswap.c]
2913 [uidswap.h]
2914 move #include <pwd.h> out of includes.h; ok markus@
2915 - stevesk@cvs.openbsd.org 2006/07/06 16:22:39
2916 [ssh-keygen.c]
2917 move #include "dns.h" up
2918 - stevesk@cvs.openbsd.org 2006/07/06 17:36:37
2919 [monitor_wrap.h]
2920 typo in comment
2921 - stevesk@cvs.openbsd.org 2006/07/08 21:47:12
2922 [authfd.c canohost.c clientloop.c dns.c dns.h includes.h]
2923 [monitor_fdpass.c nchan.c packet.c servconf.c sftp.c ssh-agent.c]
2924 [ssh-keyscan.c ssh.c sshconnect.h sshd.c sshlogin.h]
2925 move #include <sys/socket.h> out of includes.h
2926 - stevesk@cvs.openbsd.org 2006/07/08 21:48:53
2927 [monitor.c session.c]
2928 missed these from last commit:
2929 move #include <sys/socket.h> out of includes.h
2930 - stevesk@cvs.openbsd.org 2006/07/08 23:30:06
2931 [log.c]
2932 move user includes after /usr/include files
2933 - stevesk@cvs.openbsd.org 2006/07/09 15:15:11
2934 [auth2-none.c authfd.c authfile.c includes.h misc.c monitor.c]
2935 [readpass.c scp.c serverloop.c sftp-client.c sftp-server.c]
2936 [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keysign.c ssh.c sshd.c]
2937 [sshlogin.c sshpty.c]
2938 move #include <fcntl.h> out of includes.h
2939 - stevesk@cvs.openbsd.org 2006/07/09 15:27:59
2940 [ssh-add.c]
2941 use O_RDONLY vs. 0 in open(); no binary change
2942 - djm@cvs.openbsd.org 2006/07/10 11:24:54
2943 [sftp-server.c]
2944 remove optind - it isn't used here
2945 - djm@cvs.openbsd.org 2006/07/10 11:25:53
2946 [sftp-server.c]
2947 don't log variables that aren't yet set
2948 - (djm) [loginrec.c ssh-rand-helper.c sshd.c openbsd-compat/glob.c]
2949 [openbsd-compat/mktemp.c openbsd-compat/openbsd-compat.h]
2950 [openbsd-compat/port-tun.c openbsd-compat/readpassphrase.c]
2951 [openbsd-compat/xcrypt.c] Fix includes.h fallout, mainly fcntl.h
2952 - OpenBSD CVS Sync
2953 - djm@cvs.openbsd.org 2006/07/10 12:03:20
2954 [scp.c]
2955 duplicate argv at the start of main() because it gets modified later;
2956 pointed out by deraadt@ ok markus@
2957 - djm@cvs.openbsd.org 2006/07/10 12:08:08
2958 [channels.c]
2959 fix misparsing of SOCKS 5 packets that could result in a crash;
2960 reported by mk@ ok markus@
2961 - dtucker@cvs.openbsd.org 2006/07/10 12:46:51
2962 [misc.c misc.h sshd.8 sshconnect.c]
2963 Add port identifier to known_hosts for non-default ports, based originally
2964 on a patch from Devin Nate in bz#910.
2965 For any connection using the default port or using a HostKeyAlias the
2966 format is unchanged, otherwise the host name or address is enclosed
2967 within square brackets in the same format as sshd's ListenAddress.
2968 Tested by many, ok markus@.
2969 - (dtucker) [openbsd-compat/openbsd-compat.h] Need to include <sys/socket.h>
2970 for struct sockaddr on platforms that use the fake-rfc stuff.
2971
297220060706
2973 - (dtucker) [configure.ac] Try AIX blibpath test in different order when
2974 compiling with gcc. gcc 4.1.x will accept (but ignore) -b flags so
2975 configure would not select the correct libpath linker flags.
2976 - (dtucker) [INSTALL] A bit more info on autoconf.
2977
297820060705
2979 - (dtucker) [ssh-rand-helper.c] Don't exit if mkdir fails because the
2980 target already exists.
2981
298220060630
2983 - (dtucker) [openbsd-compat/openbsd-compat.h] SNPRINTF_CONST for snprintf
2984 declaration too. Patch from russ at sludge.net.
2985 - (dtucker) [openbsd-compat/getrrsetbyname.c] Undef _res before defining it,
2986 prevents warnings on platforms where _res is in the system headers.
2987 - (dtucker) [INSTALL] Bug #1202: Note when autoconf is required and which
2988 version.
2989
299020060627
2991 - (dtucker) [configure.ac] Bug #1203: Add missing '[', which causes problems
2992 with autoconf 2.60. Patch from vapier at gentoo.org.
2993
299420060625
2995 - (dtucker) [channels.c serverloop.c] Apply the bug #1102 workaround to ptys
2996 only, otherwise sshd can hang exiting non-interactive sessions.
2997
299820060624
2999 - (dtucker) [configure.ac] Bug #1193: Define PASSWD_NEEDS_USERNAME on Solaris.
3000 Works around limitation in Solaris' passwd program for changing passwords
3001 where the username is longer than 8 characters. ok djm@
3002 - (dtucker) [serverloop.c] Get ifdef/ifndef the right way around for the bug
3003 #1102 workaround.
3004
300520060623
3006 - (dtucker) [README.platform configure.ac openbsd-compat/port-tun.c] Add
3007 tunnel support for Mac OS X/Darwin via a third-party tun driver. Patch
3008 from reyk@, tested by anil@
3009 - (dtucker) [channels.c configure.ac serverloop.c] Bug #1102: Around AIX
3010 4.3.3 ML3 or so, the AIX pty layer starting passing zero-length writes
3011 on the pty slave as zero-length reads on the pty master, which sshd
3012 interprets as the descriptor closing. Since most things don't do zero
3013 length writes this rarely matters, but occasionally it happens, and when
3014 it does the SSH pty session appears to hang, so we add a special case for
3015 this condition. ok djm@
3016
301720060613
3018 - (djm) [getput.h] This file has been replaced by functions in misc.c
3019 - OpenBSD CVS Sync
3020 - djm@cvs.openbsd.org 2006/05/08 10:49:48
3021 [sshconnect2.c]
3022 uint32_t -> u_int32_t (which we use everywhere else)
3023 (Id sync only - portable already had this)
3024 - markus@cvs.openbsd.org 2006/05/16 09:00:00
3025 [clientloop.c]
3026 missing free; from Kylene Hall
3027 - markus@cvs.openbsd.org 2006/05/17 12:43:34
3028 [scp.c sftp.c ssh-agent.c ssh-keygen.c sshconnect.c]
3029 fix leak; coverity via Kylene Jo Hall
3030 - miod@cvs.openbsd.org 2006/05/18 21:27:25
3031 [kexdhc.c kexgexc.c]
3032 paramter -> parameter
3033 - dtucker@cvs.openbsd.org 2006/05/29 12:54:08
3034 [ssh_config.5]
3035 Add gssapi-with-mic to PreferredAuthentications default list; ok jmc
3036 - dtucker@cvs.openbsd.org 2006/05/29 12:56:33
3037 [ssh_config]
3038 Add GSSAPIAuthentication and GSSAPIDelegateCredentials to examples in
3039 sample ssh_config. ok markus@
3040 - jmc@cvs.openbsd.org 2006/05/29 16:10:03
3041 [ssh_config.5]
3042 oops - previous was too long; split the list of auths up
3043 - mk@cvs.openbsd.org 2006/05/30 11:46:38
3044 [ssh-add.c]
3045 Sync usage() with man page and reality.
3046 ok deraadt dtucker
3047 - jmc@cvs.openbsd.org 2006/05/29 16:13:23
3048 [ssh.1]
3049 add GSSAPI to the list of authentication methods supported;
3050 - mk@cvs.openbsd.org 2006/05/30 11:46:38
3051 [ssh-add.c]
3052 Sync usage() with man page and reality.
3053 ok deraadt dtucker
3054 - markus@cvs.openbsd.org 2006/06/01 09:21:48
3055 [sshd.c]
3056 call get_remote_ipaddr() early; fixes logging after client disconnects;
3057 report mpf@; ok dtucker@
3058 - markus@cvs.openbsd.org 2006/06/06 10:20:20
3059 [readpass.c sshconnect.c sshconnect.h sshconnect2.c uidswap.c]
3060 replace remaining setuid() calls with permanently_set_uid() and
3061 check seteuid() return values; report Marcus Meissner; ok dtucker djm
3062 - markus@cvs.openbsd.org 2006/06/08 14:45:49
3063 [readpass.c sshconnect.c sshconnect2.c uidswap.c uidswap.h]
3064 do not set the gid, noted by solar; ok djm
3065 - djm@cvs.openbsd.org 2006/06/13 01:18:36
3066 [ssh-agent.c]
3067 always use a format string, even when printing a constant
3068 - djm@cvs.openbsd.org 2006/06/13 02:17:07
3069 [ssh-agent.c]
3070 revert; i am on drugs. spotted by alexander AT beard.se
3071
307220060521
3073 - (dtucker) [auth.c monitor.c] Now that we don't log from both the monitor
3074 and slave, we can remove the special-case handling in the audit hook in
3075 auth_log.
3076
307720060517
3078 - (dtucker) [ssh-rand-helper.c] Check return code of mkdir and fix file
3079 pointer leak. From kjhall at us.ibm.com, found by coverity.
3080
308120060515
3082 - (dtucker) [openbsd-compat/getrrsetbyname.c] Use _compat_res instead of
3083 _res, prevents problems on some platforms that have _res as a global but
3084 don't have getrrsetbyname(), eg IRIX 5.3. Found and tested by
3085 georg.schwarz at freenet.de, ok djm@.
3086 - (dtucker) [defines.h] Find a value for IOV_MAX or use a conservative
3087 default. Patch originally from tim@, ok djm
3088 - (dtucker) [auth-pam.c] Bug #1188: pass result of do_pam_account back and
3089 do not allow kbdint again after the PAM account check fails. ok djm@
3090
309120060506
3092 - (dtucker) OpenBSD CVS Sync
3093 - dtucker@cvs.openbsd.org 2006/04/25 08:02:27
3094 [authfile.c authfile.h sshconnect2.c ssh.c sshconnect1.c]
3095 Prevent ssh from trying to open private keys with bad permissions more than
3096 once or prompting for their passphrases (which it subsequently ignores
3097 anyway), similar to a previous change in ssh-add. bz #1186, ok djm@
3098 - djm@cvs.openbsd.org 2006/05/04 14:55:23
3099 [dh.c]
3100 tighter DH exponent checks here too; feedback and ok markus@
3101 - djm@cvs.openbsd.org 2006/04/01 05:37:46
3102 [OVERVIEW]
3103 $OpenBSD$ in here too
3104 - dtucker@cvs.openbsd.org 2006/05/06 08:35:40
3105 [auth-krb5.c]
3106 Add $OpenBSD$ in comment here too
3107
310820060504
3109 - (dtucker) [auth-pam.c groupaccess.c monitor.c monitor_wrap.c scard-opensc.c
3110 session.c ssh-rand-helper.c sshd.c openbsd-compat/bsd-cygwin_util.c
3111 openbsd-compat/setproctitle.c] Convert malloc(foo*bar) -> calloc(foo,bar)
3112 in Portable-only code; since calloc zeros, remove now-redundant memsets.
3113 Also add a couple of sanity checks. With & ok djm@
3114
311520060503
3116 - (dtucker) [packet.c] Remove in_systm.h since it's also in includes.h
3117 and double including it on IRIX 5.3 causes problems. From Georg Schwarz,
3118 "no objections" tim@
3119
312020060423
3121 - (djm) OpenBSD CVS Sync
3122 - deraadt@cvs.openbsd.org 2006/04/01 05:42:20
3123 [scp.c]
3124 minimal lint cleanup (unused crud, and some size_t); ok djm
3125 - djm@cvs.openbsd.org 2006/04/01 05:50:29
3126 [scp.c]
3127 xasprintification; ok deraadt@
3128 - djm@cvs.openbsd.org 2006/04/01 05:51:34
3129 [atomicio.c]
3130 ANSIfy; requested deraadt@
3131 - dtucker@cvs.openbsd.org 2006/04/02 08:34:52
3132 [ssh-keysign.c]
3133 sessionid can be 32 bytes now too when sha256 kex is used; ok djm@
3134 - djm@cvs.openbsd.org 2006/04/03 07:10:38
3135 [gss-genr.c]
3136 GSSAPI buffers shouldn't be nul-terminated, spotted in bugzilla #1066
3137 by dleonard AT vintela.com. use xasprintf() to simplify code while in
3138 there; "looks right" deraadt@
3139 - djm@cvs.openbsd.org 2006/04/16 00:48:52
3140 [buffer.c buffer.h channels.c]
3141 Fix condition where we could exit with a fatal error when an input
3142 buffer became too large and the remote end had advertised a big window.
3143 The problem was a mismatch in the backoff math between the channels code
3144 and the buffer code, so make a buffer_check_alloc() function that the
3145 channels code can use to propsectivly check whether an incremental
3146 allocation will succeed. bz #1131, debugged with the assistance of
3147 cove AT wildpackets.com; ok dtucker@ deraadt@
3148 - djm@cvs.openbsd.org 2006/04/16 00:52:55
3149 [atomicio.c atomicio.h]
3150 introduce atomiciov() function that wraps readv/writev to retry
3151 interrupted transfers like atomicio() does for read/write;
3152 feedback deraadt@ dtucker@ stevesk@ ok deraadt@
3153 - djm@cvs.openbsd.org 2006/04/16 00:54:10
3154 [sftp-client.c]
3155 avoid making a tiny 4-byte write to send the packet length of sftp
3156 commands, which would result in a separate tiny packet on the wire by
3157 using atomiciov(writev, ...) to write the length and the command in one
3158 pass; ok deraadt@
3159 - djm@cvs.openbsd.org 2006/04/16 07:59:00
3160 [atomicio.c]
3161 reorder sanity test so that it cannot dereference past the end of the
3162 iov array; well spotted canacar@!
3163 - dtucker@cvs.openbsd.org 2006/04/18 10:44:28
3164 [bufaux.c bufbn.c Makefile.in]
3165 Move Buffer bignum functions into their own file, bufbn.c. This means
3166 that sftp and sftp-server (which use the Buffer functions in bufaux.c
3167 but not the bignum ones) no longer need to be linked with libcrypto.
3168 ok markus@
3169 - djm@cvs.openbsd.org 2006/04/20 09:27:09
3170 [auth.h clientloop.c dispatch.c dispatch.h kex.h]
3171 replace the last non-sig_atomic_t flag used in a signal handler with a
3172 sig_atomic_t, unfortunately with some knock-on effects in other (non-
3173 signal) contexts in which it is used; ok markus@
3174 - markus@cvs.openbsd.org 2006/04/20 09:47:59
3175 [sshconnect.c]
3176 simplify; ok djm@
3177 - djm@cvs.openbsd.org 2006/04/20 21:53:44
3178 [includes.h session.c sftp.c]
3179 Switch from using pipes to socketpairs for communication between
3180 sftp/scp and ssh, and between sshd and its subprocesses. This saves
3181 a file descriptor per session and apparently makes userland ppp over
3182 ssh work; ok markus@ deraadt@ (ID Sync only - portable makes this
3183 decision on a per-platform basis)
3184 - djm@cvs.openbsd.org 2006/04/22 04:06:51
3185 [uidswap.c]
3186 use setres[ug]id() to permanently revoke privileges; ok deraadt@
3187 (ID Sync only - portable already uses setres[ug]id() whenever possible)
3188 - stevesk@cvs.openbsd.org 2006/04/22 18:29:33
3189 [crc32.c]
3190 remove extra spaces
3191 - (djm) [auth.h dispatch.h kex.h] sprinkle in signal.h to get
3192 sig_atomic_t
3193
319420060421
3195 - (djm) [Makefile.in configure.ac session.c sshpty.c]
3196 [contrib/redhat/sshd.init openbsd-compat/Makefile.in]
3197 [openbsd-compat/openbsd-compat.h openbsd-compat/port-linux.c]
3198 [openbsd-compat/port-linux.h] Add support for SELinux, setting
3199 the execution and TTY contexts. based on patch from Daniel Walsh,
3200 bz #880; ok dtucker@
3201
320220060418
3203 - (djm) [canohost.c] Reorder IP options check so that it isn't broken
3204 by mapped addresses; bz #1179 reported by markw wtech-llc.com;
3205 ok dtucker@
3206
320720060331
3208 - OpenBSD CVS Sync
3209 - deraadt@cvs.openbsd.org 2006/03/27 01:21:18
3210 [xmalloc.c]
3211 we can do the size & nmemb check before the integer overflow check;
3212 evol
3213 - deraadt@cvs.openbsd.org 2006/03/27 13:03:54
3214 [dh.c]
3215 use strtonum() instead of atoi(), limit dhg size to 64k; ok djm
3216 - djm@cvs.openbsd.org 2006/03/27 23:15:46
3217 [sftp.c]
3218 always use a format string for addargs; spotted by mouring@
3219 - deraadt@cvs.openbsd.org 2006/03/28 00:12:31
3220 [README.tun ssh.c]
3221 spacing
3222 - deraadt@cvs.openbsd.org 2006/03/28 01:52:28
3223 [channels.c]
3224 do not accept unreasonable X ports numbers; ok djm
3225 - deraadt@cvs.openbsd.org 2006/03/28 01:53:43
3226 [ssh-agent.c]
3227 use strtonum() to parse the pid from the file, and range check it
3228 better; ok djm
3229 - djm@cvs.openbsd.org 2006/03/30 09:41:25
3230 [channels.c]
3231 ARGSUSED for dispatch table-driven functions
3232 - djm@cvs.openbsd.org 2006/03/30 09:58:16
3233 [authfd.c bufaux.c deattack.c gss-serv.c mac.c misc.c misc.h]
3234 [monitor_wrap.c msg.c packet.c sftp-client.c sftp-server.c ssh-agent.c]
3235 replace {GET,PUT}_XXBIT macros with functionally similar functions,
3236 silencing a heap of lint warnings. also allows them to use
3237 __bounded__ checking which can't be applied to macros; requested
3238 by and feedback from deraadt@
3239 - djm@cvs.openbsd.org 2006/03/30 10:41:25
3240 [ssh.c ssh_config.5]
3241 add percent escape chars to the IdentityFile option, bz #1159 based
3242 on a patch by imaging AT math.ualberta.ca; feedback and ok dtucker@
3243 - dtucker@cvs.openbsd.org 2006/03/30 11:05:17
3244 [ssh-keygen.c]
3245 Correctly handle truncated files while converting keys; ok djm@
3246 - dtucker@cvs.openbsd.org 2006/03/30 11:40:21
3247 [auth.c monitor.c]
3248 Prevent duplicate log messages when privsep=yes; ok djm@
3249 - jmc@cvs.openbsd.org 2006/03/31 09:09:30
3250 [ssh_config.5]
3251 kill trailing whitespace;
3252 - djm@cvs.openbsd.org 2006/03/31 09:13:56
3253 [ssh_config.5]
3254 remote user escape is %r not %h; spotted by jmc@
3255
325620060326
3257 - OpenBSD CVS Sync
3258 - jakob@cvs.openbsd.org 2006/03/15 08:46:44
3259 [ssh-keygen.c]
3260 if no key file are given when printing the DNS host record, use the
3261 host key file(s) as default. ok djm@
3262 - biorn@cvs.openbsd.org 2006/03/16 10:31:45
3263 [scp.c]
3264 Try to display errormessage even if remout == -1
3265 ok djm@, markus@
3266 - djm@cvs.openbsd.org 2006/03/17 22:31:50
3267 [authfd.c]
3268 another unreachable found by lint
3269 - djm@cvs.openbsd.org 2006/03/17 22:31:11
3270 [authfd.c]
3271 unreachanble statement, found by lint
3272 - djm@cvs.openbsd.org 2006/03/19 02:22:32
3273 [serverloop.c]
3274 memory leaks detected by Coverity via elad AT netbsd.org;
3275 ok deraadt@ dtucker@
3276 - djm@cvs.openbsd.org 2006/03/19 02:22:56
3277 [sftp.c]
3278 more memory leaks detected by Coverity via elad AT netbsd.org;
3279 deraadt@ ok
3280 - djm@cvs.openbsd.org 2006/03/19 02:23:26
3281 [hostfile.c]
3282 FILE* leak detected by Coverity via elad AT netbsd.org;
3283 ok deraadt@
3284 - djm@cvs.openbsd.org 2006/03/19 02:24:05
3285 [dh.c readconf.c servconf.c]
3286 potential NULL pointer dereferences detected by Coverity
3287 via elad AT netbsd.org; ok deraadt@
3288 - djm@cvs.openbsd.org 2006/03/19 07:41:30
3289 [sshconnect2.c]
3290 memory leaks detected by Coverity via elad AT netbsd.org;
3291 deraadt@ ok
3292 - dtucker@cvs.openbsd.org 2006/03/19 11:51:52
3293 [servconf.c]
3294 Correct strdelim null test; ok djm@
3295 - deraadt@cvs.openbsd.org 2006/03/19 18:52:11
3296 [auth1.c authfd.c channels.c]
3297 spacing
3298 - deraadt@cvs.openbsd.org 2006/03/19 18:53:12
3299 [kex.c kex.h monitor.c myproposal.h session.c]
3300 spacing
3301 - deraadt@cvs.openbsd.org 2006/03/19 18:56:41
3302 [clientloop.c progressmeter.c serverloop.c sshd.c]
3303 ARGSUSED for signal handlers
3304 - deraadt@cvs.openbsd.org 2006/03/19 18:59:49
3305 [ssh-keyscan.c]
3306 please lint
3307 - deraadt@cvs.openbsd.org 2006/03/19 18:59:30
3308 [ssh.c]
3309 spacing
3310 - deraadt@cvs.openbsd.org 2006/03/19 18:59:09
3311 [authfile.c]
3312 whoever thought that break after return was a good idea needs to
3313 get their head examimed
3314 - djm@cvs.openbsd.org 2006/03/20 04:09:44
3315 [monitor.c]
3316 memory leaks detected by Coverity via elad AT netbsd.org;
3317 deraadt@ ok
3318 that should be all of them now
3319 - djm@cvs.openbsd.org 2006/03/20 11:38:46
3320 [key.c]
3321 (really) last of the Coverity diffs: avoid possible NULL deref in
3322 key_free. via elad AT netbsd.org; markus@ ok
3323 - deraadt@cvs.openbsd.org 2006/03/20 17:10:19
3324 [auth.c key.c misc.c packet.c ssh-add.c]
3325 in a switch (), break after return or goto is stupid
3326 - deraadt@cvs.openbsd.org 2006/03/20 17:13:16
3327 [key.c]
3328 djm did a typo
3329 - deraadt@cvs.openbsd.org 2006/03/20 17:17:23
3330 [ssh-rsa.c]
3331 in a switch (), break after return or goto is stupid
3332 - deraadt@cvs.openbsd.org 2006/03/20 18:14:02
3333 [channels.c clientloop.c monitor_wrap.c monitor_wrap.h serverloop.c]
3334 [ssh.c sshpty.c sshpty.h]
3335 sprinkle u_int throughout pty subsystem, ok markus
3336 - deraadt@cvs.openbsd.org 2006/03/20 18:17:20
3337 [auth1.c auth2.c sshd.c]
3338 sprinkle some ARGSUSED for table driven functions (which sometimes
3339 must ignore their args)
3340 - deraadt@cvs.openbsd.org 2006/03/20 18:26:55
3341 [channels.c monitor.c session.c session.h ssh-agent.c ssh-keygen.c]
3342 [ssh-rsa.c ssh.c sshlogin.c]
3343 annoying spacing fixes getting in the way of real diffs
3344 - deraadt@cvs.openbsd.org 2006/03/20 18:27:50
3345 [monitor.c]
3346 spacing
3347 - deraadt@cvs.openbsd.org 2006/03/20 18:35:12
3348 [channels.c]
3349 x11_fake_data is only ever used as u_char *
3350 - deraadt@cvs.openbsd.org 2006/03/20 18:41:43
3351 [dns.c]
3352 cast xstrdup to propert u_char *
3353 - deraadt@cvs.openbsd.org 2006/03/20 18:42:27
3354 [canohost.c match.c ssh.c sshconnect.c]
3355 be strict with tolower() casting
3356 - deraadt@cvs.openbsd.org 2006/03/20 18:48:34
3357 [channels.c fatal.c kex.c packet.c serverloop.c]
3358 spacing
3359 - deraadt@cvs.openbsd.org 2006/03/20 21:11:53
3360 [ttymodes.c]
3361 spacing
3362 - djm@cvs.openbsd.org 2006/03/25 00:05:41
3363 [auth-bsdauth.c auth-skey.c auth.c auth2-chall.c channels.c]
3364 [clientloop.c deattack.c gss-genr.c kex.c key.c misc.c moduli.c]
3365 [monitor.c monitor_wrap.c packet.c scard.c sftp-server.c ssh-agent.c]
3366 [ssh-keyscan.c ssh.c sshconnect.c sshconnect2.c sshd.c uuencode.c]
3367 [xmalloc.c xmalloc.h]
3368 introduce xcalloc() and xasprintf() failure-checked allocations
3369 functions and use them throughout openssh
3370
3371 xcalloc is particularly important because malloc(nmemb * size) is a
3372 dangerous idiom (subject to integer overflow) and it is time for it
3373 to die
3374
3375 feedback and ok deraadt@
3376 - djm@cvs.openbsd.org 2006/03/25 01:13:23
3377 [buffer.c channels.c deattack.c misc.c scp.c session.c sftp-client.c]
3378 [sftp-server.c ssh-agent.c ssh-rsa.c xmalloc.c xmalloc.h auth-pam.c]
3379 [uidswap.c]
3380 change OpenSSH's xrealloc() function from being xrealloc(p, new_size)
3381 to xrealloc(p, new_nmemb, new_itemsize).
3382
3383 realloc is particularly prone to integer overflows because it is
3384 almost always allocating "n * size" bytes, so this is a far safer
3385 API; ok deraadt@
3386 - djm@cvs.openbsd.org 2006/03/25 01:30:23
3387 [sftp.c]
3388 "abormally" is a perfectly cromulent word, but "abnormally" is better
3389 - djm@cvs.openbsd.org 2006/03/25 13:17:03
3390 [atomicio.c auth-bsdauth.c auth-chall.c auth-options.c auth-passwd.c]
3391 [auth-rh-rsa.c auth-rhosts.c auth-rsa.c auth-skey.c auth.c auth1.c]
3392 [auth2-chall.c auth2-hostbased.c auth2-kbdint.c auth2-none.c]
3393 [auth2-passwd.c auth2-pubkey.c auth2.c authfd.c authfile.c bufaux.c]
3394 [buffer.c canohost.c channels.c cipher-3des1.c cipher-bf1.c]
3395 [cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c compress.c]
3396 [deattack.c dh.c dispatch.c fatal.c groupaccess.c hostfile.c kex.c]
3397 [kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c log.c]
3398 [mac.c match.c md-sha256.c misc.c monitor.c monitor_fdpass.c]
3399 [monitor_mm.c monitor_wrap.c msg.c nchan.c packet.c progressmeter.c]
3400 [readconf.c readpass.c rsa.c scard.c scp.c servconf.c serverloop.c]
3401 [session.c sftp-client.c sftp-common.c sftp-glob.c sftp-server.c]
3402 [sftp.c ssh-add.c ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c]
3403 [ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c]
3404 [sshconnect2.c sshd.c sshlogin.c sshpty.c sshtty.c ttymodes.c]
3405 [uidswap.c uuencode.c xmalloc.c]
3406 Put $OpenBSD$ tags back (as comments) to replace the RCSID()s that
3407 Theo nuked - our scripts to sync -portable need them in the files
3408 - deraadt@cvs.openbsd.org 2006/03/25 18:29:35
3409 [auth-rsa.c authfd.c packet.c]
3410 needed casts (always will be needed)
3411 - deraadt@cvs.openbsd.org 2006/03/25 18:30:55
3412 [clientloop.c serverloop.c]
3413 spacing
3414 - deraadt@cvs.openbsd.org 2006/03/25 18:36:15
3415 [sshlogin.c sshlogin.h]
3416 nicer size_t and time_t types
3417 - deraadt@cvs.openbsd.org 2006/03/25 18:40:14
3418 [ssh-keygen.c]
3419 cast strtonum() result to right type
3420 - deraadt@cvs.openbsd.org 2006/03/25 18:41:45
3421 [ssh-agent.c]
3422 mark two more signal handlers ARGSUSED
3423 - deraadt@cvs.openbsd.org 2006/03/25 18:43:30
3424 [channels.c]
3425 use strtonum() instead of atoi() [limit X screens to 400, sorry]
3426 - deraadt@cvs.openbsd.org 2006/03/25 18:56:55
3427 [bufaux.c channels.c packet.c]
3428 remove (char *) casts to a function that accepts void * for the arg
3429 - deraadt@cvs.openbsd.org 2006/03/25 18:58:10
3430 [channels.c]
3431 delete cast not required
3432 - djm@cvs.openbsd.org 2006/03/25 22:22:43
3433 [atomicio.h auth-options.h auth.h auth2-gss.c authfd.h authfile.h]
3434 [bufaux.h buffer.h canohost.h channels.h cipher.h clientloop.h]
3435 [compat.h compress.h crc32.c crc32.h deattack.h dh.h dispatch.h]
3436 [dns.c dns.h getput.h groupaccess.h gss-genr.c gss-serv-krb5.c]
3437 [gss-serv.c hostfile.h includes.h kex.h key.h log.h mac.h match.h]
3438 [misc.h monitor.h monitor_fdpass.h monitor_mm.h monitor_wrap.h msg.h]
3439 [myproposal.h packet.h pathnames.h progressmeter.h readconf.h rsa.h]
3440 [scard.h servconf.h serverloop.h session.h sftp-common.h sftp.h]
3441 [ssh-gss.h ssh.h ssh1.h ssh2.h sshconnect.h sshlogin.h sshpty.h]
3442 [ttymodes.h uidswap.h uuencode.h xmalloc.h]
3443 standardise spacing in $OpenBSD$ tags; requested by deraadt@
3444 - deraadt@cvs.openbsd.org 2006/03/26 01:31:48
3445 [uuencode.c]
3446 typo
3447
344820060325
3449 - OpenBSD CVS Sync
3450 - djm@cvs.openbsd.org 2006/03/16 04:24:42
3451 [ssh.1]
3452 Add RFC4419 (Diffie-Hellman group exchange KEX) to the list of SSH RFCs
3453 that OpenSSH supports
3454 - deraadt@cvs.openbsd.org 2006/03/19 18:51:18
3455 [atomicio.c auth-bsdauth.c auth-chall.c auth-krb5.c auth-options.c]
3456 [auth-pam.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c auth-rsa.c]
3457 [auth-shadow.c auth-skey.c auth.c auth1.c auth2-chall.c]
3458 [auth2-hostbased.c auth2-kbdint.c auth2-none.c auth2-passwd.c]
3459 [auth2-pubkey.c auth2.c authfd.c authfile.c bufaux.c buffer.c]
3460 [canohost.c channels.c cipher-3des1.c cipher-acss.c cipher-aes.c]
3461 [cipher-bf1.c cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c]
3462 [compress.c deattack.c dh.c dispatch.c dns.c entropy.c fatal.c]
3463 [groupaccess.c hostfile.c includes.h kex.c kexdh.c kexdhc.c]
3464 [kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c log.c loginrec.c]
3465 [loginrec.h logintest.c mac.c match.c md-sha256.c md5crypt.c misc.c]
3466 [monitor.c monitor_fdpass.c monitor_mm.c monitor_wrap.c msg.c]
3467 [nchan.c packet.c progressmeter.c readconf.c readpass.c rsa.c]
3468 [scard.c scp.c servconf.c serverloop.c session.c sftp-client.c]
3469 [sftp-common.c sftp-glob.c sftp-server.c sftp.c ssh-add.c]
3470 [ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c]
3471 [ssh-rand-helper.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c]
3472 [sshconnect2.c sshd.c sshlogin.c sshpty.c sshtty.c ttymodes.c]
3473 [uidswap.c uuencode.c xmalloc.c openbsd-compat/bsd-arc4random.c]
3474 [openbsd-compat/bsd-closefrom.c openbsd-compat/bsd-cygwin_util.c]
3475 [openbsd-compat/bsd-getpeereid.c openbsd-compat/bsd-misc.c]
3476 [openbsd-compat/bsd-nextstep.c openbsd-compat/bsd-snprintf.c]
3477 [openbsd-compat/bsd-waitpid.c openbsd-compat/fake-rfc2553.c]
3478 RCSID() can die
3479 - deraadt@cvs.openbsd.org 2006/03/19 18:53:12
3480 [kex.h myproposal.h]
3481 spacing
3482 - djm@cvs.openbsd.org 2006/03/20 04:07:22
3483 [auth2-gss.c]
3484 GSSAPI related leaks detected by Coverity via elad AT netbsd.org;
3485 reviewed by simon AT sxw.org.uk; deraadt@ ok
3486 - djm@cvs.openbsd.org 2006/03/20 04:07:49
3487 [gss-genr.c]
3488 more GSSAPI related leaks detected by Coverity via elad AT netbsd.org;
3489 reviewed by simon AT sxw.org.uk; deraadt@ ok
3490 - djm@cvs.openbsd.org 2006/03/20 04:08:18
3491 [gss-serv.c]
3492 last lot of GSSAPI related leaks detected by Coverity via
3493 elad AT netbsd.org; reviewed by simon AT sxw.org.uk; deraadt@ ok
3494 - deraadt@cvs.openbsd.org 2006/03/20 18:14:02
3495 [monitor_wrap.h sshpty.h]
3496 sprinkle u_int throughout pty subsystem, ok markus
3497 - deraadt@cvs.openbsd.org 2006/03/20 18:26:55
3498 [session.h]
3499 annoying spacing fixes getting in the way of real diffs
3500 - deraadt@cvs.openbsd.org 2006/03/20 18:41:43
3501 [dns.c]
3502 cast xstrdup to propert u_char *
3503 - jakob@cvs.openbsd.org 2006/03/22 21:16:24
3504 [ssh.1]
3505 simplify SSHFP example; ok jmc@
3506 - djm@cvs.openbsd.org 2006/03/22 21:27:15
3507 [deattack.c deattack.h]
3508 remove IV support from the CRC attack detector, OpenSSH has never used
3509 it - it only applied to IDEA-CFB, which we don't support.
3510 prompted by NetBSD Coverity report via elad AT netbsd.org;
3511 feedback markus@ "nuke it" deraadt@
3512
351320060318
3514 - (djm) [auth-pam.c] Fix memleak in error path, from Coverity via
3515 elad AT NetBSD.org
3516 - (dtucker) [openbsd-compat/bsd-snprintf.c] Bug #1173: make fmtint() take
3517 a LLONG rather than a long. Fixes scp'ing of large files on platforms
3518 with missing/broken snprintfs. Patch from e.borovac at bom.gov.au.
3519
352020060316
3521 - (dtucker) [entropy.c] Add headers for WIFEXITED and friends.
3522 - (dtucker) [configure.ac md-sha256.c] NetBSD has sha2.h in
3523 /usr/include/crypto. Hint from djm@.
3524 - (tim) [kex.c myproposal.h md-sha256.c openbsd-compat/sha2.c,h]
3525 Disable sha256 when openssl < 0.9.7. Patch from djm@.
3526 - (djm) [kex.c] Slightly more clean deactivation of dhgex-sha256 on old
3527 OpenSSL; ok tim
3528
352920060315
3530 - (djm) OpenBSD CVS Sync:
3531 - msf@cvs.openbsd.org 2006/02/06 15:54:07
3532 [ssh.1]
3533 - typo fix
3534 ok jmc@
3535 - jmc@cvs.openbsd.org 2006/02/06 21:44:47
3536 [ssh.1]
3537 make this a little less ambiguous...
3538 - stevesk@cvs.openbsd.org 2006/02/07 01:08:04
3539 [auth-rhosts.c includes.h]
3540 move #include <netgroup.h> out of includes.h; ok markus@
3541 - stevesk@cvs.openbsd.org 2006/02/07 01:18:09
3542 [includes.h ssh-agent.c ssh-keyscan.c sshconnect2.c]
3543 move #include <sys/queue.h> out of includes.h; ok markus@
3544 - stevesk@cvs.openbsd.org 2006/02/07 01:42:00
3545 [channels.c clientloop.c clientloop.h includes.h packet.h]
3546 [serverloop.c sshpty.c sshpty.h sshtty.c ttymodes.c]
3547 move #include <termios.h> out of includes.h; ok markus@
3548 - stevesk@cvs.openbsd.org 2006/02/07 01:52:50
3549 [sshtty.c]
3550 "log.h" not needed
3551 - stevesk@cvs.openbsd.org 2006/02/07 03:47:05
3552 [hostfile.c]
3553 "packet.h" not needed
3554 - stevesk@cvs.openbsd.org 2006/02/07 03:59:20
3555 [deattack.c]
3556 duplicate #include
3557 - stevesk@cvs.openbsd.org 2006/02/08 12:15:27
3558 [auth.c clientloop.c includes.h misc.c monitor.c readpass.c]
3559 [session.c sftp.c ssh-agent.c ssh-keysign.c ssh.c sshconnect.c]
3560 [sshd.c sshpty.c]
3561 move #include <paths.h> out of includes.h; ok markus@
3562 - stevesk@cvs.openbsd.org 2006/02/08 12:32:49
3563 [includes.h misc.c]
3564 move #include <netinet/tcp.h> out of includes.h; ok markus@
3565 - stevesk@cvs.openbsd.org 2006/02/08 13:15:44
3566 [gss-serv.c monitor.c]
3567 small KNF
3568 - stevesk@cvs.openbsd.org 2006/02/08 14:16:59
3569 [sshconnect.c]
3570 <openssl/bn.h> not needed
3571 - stevesk@cvs.openbsd.org 2006/02/08 14:31:30
3572 [includes.h ssh-agent.c ssh-keyscan.c ssh.c]
3573 move #include <sys/resource.h> out of includes.h; ok markus@
3574 - stevesk@cvs.openbsd.org 2006/02/08 14:38:18
3575 [includes.h packet.c]
3576 move #include <netinet/in_systm.h> and <netinet/ip.h> out of
3577 includes.h; ok markus@
3578 - stevesk@cvs.openbsd.org 2006/02/08 23:51:24
3579 [includes.h scp.c sftp-glob.c sftp-server.c]
3580 move #include <dirent.h> out of includes.h; ok markus@
3581 - stevesk@cvs.openbsd.org 2006/02/09 00:32:07
3582 [includes.h]
3583 #include <sys/endian.h> not needed; ok djm@
3584 NB. ID Sync only - we still need this (but it may move later)
3585 - jmc@cvs.openbsd.org 2006/02/09 10:10:47
3586 [sshd.8]
3587 - move some text into a CAVEATS section
3588 - merge the COMMAND EXECUTION... section into AUTHENTICATION
3589 - stevesk@cvs.openbsd.org 2006/02/10 00:27:13
3590 [channels.c clientloop.c includes.h misc.c progressmeter.c sftp.c]
3591 [ssh.c sshd.c sshpty.c]
3592 move #include <sys/ioctl.h> out of includes.h; ok markus@
3593 - stevesk@cvs.openbsd.org 2006/02/10 01:44:27
3594 [includes.h monitor.c readpass.c scp.c serverloop.c session.c]
3595 [sftp.c sshconnect.c sshconnect2.c sshd.c]
3596 move #include <sys/wait.h> out of includes.h; ok markus@
3597 - otto@cvs.openbsd.org 2006/02/11 19:31:18
3598 [atomicio.c]
3599 type correctness; from Ray Lai in PR 5011; ok millert@
3600 - djm@cvs.openbsd.org 2006/02/12 06:45:34
3601 [ssh.c ssh_config.5]
3602 add a %l expansion code to the ControlPath, which is filled in with the
3603 local hostname at runtime. Requested by henning@ to avoid some problems
3604 with /home on NFS; ok dtucker@
3605 - djm@cvs.openbsd.org 2006/02/12 10:44:18
3606 [readconf.c]
3607 raise error when the user specifies a RekeyLimit that is smaller than 16
3608 (the smallest of our cipher's blocksize) or big enough to cause integer
3609 wraparound; ok & feedback dtucker@
3610 - jmc@cvs.openbsd.org 2006/02/12 10:49:44
3611 [ssh_config.5]
3612 slight rewording; ok djm
3613 - jmc@cvs.openbsd.org 2006/02/12 10:52:41
3614 [sshd.8]
3615 rework the description of authorized_keys a little;
3616 - jmc@cvs.openbsd.org 2006/02/12 17:57:19
3617 [sshd.8]
3618 sort the list of options permissable w/ authorized_keys;
3619 ok djm dtucker
3620 - jmc@cvs.openbsd.org 2006/02/13 10:16:39
3621 [sshd.8]
3622 no need to subsection the authorized_keys examples - instead, convert
3623 this to look like an actual file. also use proto 2 keys, and use IETF
3624 example addresses;
3625 - jmc@cvs.openbsd.org 2006/02/13 10:21:25
3626 [sshd.8]
3627 small tweaks for the ssh_known_hosts section;
3628 - jmc@cvs.openbsd.org 2006/02/13 11:02:26
3629 [sshd.8]
3630 turn this into an example ssh_known_hosts file; ok djm
3631 - jmc@cvs.openbsd.org 2006/02/13 11:08:43
3632 [sshd.8]
3633 - avoid nasty line split
3634 - `*' does not need to be escaped
3635 - jmc@cvs.openbsd.org 2006/02/13 11:27:25
3636 [sshd.8]
3637 sort FILES and use a -compact list;
3638 - david@cvs.openbsd.org 2006/02/15 05:08:24
3639 [sftp-client.c]
3640 typo in comment; ok djm@
3641 - jmc@cvs.openbsd.org 2006/02/15 16:53:20
3642 [ssh.1]
3643 remove the IETF draft references and replace them with some updated RFCs;
3644 - jmc@cvs.openbsd.org 2006/02/15 16:55:33
3645 [sshd.8]
3646 remove ietf draft references; RFC list now maintained in ssh.1;
3647 - jmc@cvs.openbsd.org 2006/02/16 09:05:34
3648 [sshd.8]
3649 sync some of the FILES entries w/ ssh.1;
3650 - jmc@cvs.openbsd.org 2006/02/19 19:52:10
3651 [sshd.8]
3652 move the sshrc stuff out of FILES, and into its own section:
3653 FILES is not a good place to document how stuff works;
3654 - jmc@cvs.openbsd.org 2006/02/19 20:02:17
3655 [sshd.8]
3656 sync the (s)hosts.equiv FILES entries w/ those from ssh.1;
3657 - jmc@cvs.openbsd.org 2006/02/19 20:05:00
3658 [sshd.8]
3659 grammar;
3660 - jmc@cvs.openbsd.org 2006/02/19 20:12:25
3661 [ssh_config.5]
3662 add some vertical space;
3663 - stevesk@cvs.openbsd.org 2006/02/20 16:36:15
3664 [authfd.c channels.c includes.h session.c ssh-agent.c ssh.c]
3665 move #include <sys/un.h> out of includes.h; ok djm@
3666 - stevesk@cvs.openbsd.org 2006/02/20 17:02:44
3667 [clientloop.c includes.h monitor.c progressmeter.c scp.c]
3668 [serverloop.c session.c sftp.c ssh-agent.c ssh.c sshd.c]
3669 move #include <signal.h> out of includes.h; ok markus@
3670 - stevesk@cvs.openbsd.org 2006/02/20 17:19:54
3671 [auth-rhosts.c auth-rsa.c auth.c auth2-none.c auth2-pubkey.c]
3672 [authfile.c clientloop.c includes.h readconf.c scp.c session.c]
3673 [sftp-client.c sftp-common.c sftp-common.h sftp-glob.c]
3674 [sftp-server.c sftp.c ssh-add.c ssh-keygen.c ssh.c sshconnect.c]
3675 [sshconnect2.c sshd.c sshpty.c]
3676 move #include <sys/stat.h> out of includes.h; ok markus@
3677 - stevesk@cvs.openbsd.org 2006/02/22 00:04:45
3678 [canohost.c clientloop.c includes.h match.c readconf.c scp.c ssh.c]
3679 [sshconnect.c]
3680 move #include <ctype.h> out of includes.h; ok djm@
3681 - jmc@cvs.openbsd.org 2006/02/24 10:25:14
3682 [ssh_config.5]
3683 add section on patterns;
3684 from dtucker + myself
3685 - jmc@cvs.openbsd.org 2006/02/24 10:33:54
3686 [sshd_config.5]
3687 signpost to PATTERNS;
3688 - jmc@cvs.openbsd.org 2006/02/24 10:37:07
3689 [ssh_config.5]
3690 tidy up the refs to PATTERNS;
3691 - jmc@cvs.openbsd.org 2006/02/24 10:39:52
3692 [sshd.8]
3693 signpost to PATTERNS section;
3694 - jmc@cvs.openbsd.org 2006/02/24 20:22:16
3695 [ssh-keysign.8 ssh_config.5 sshd_config.5]
3696 some consistency fixes;
3697 - jmc@cvs.openbsd.org 2006/02/24 20:31:31
3698 [ssh.1 ssh_config.5 sshd.8 sshd_config.5]
3699 more consistency fixes;
3700 - jmc@cvs.openbsd.org 2006/02/24 23:20:07
3701 [ssh_config.5]
3702 some grammar/wording fixes;
3703 - jmc@cvs.openbsd.org 2006/02/24 23:43:57
3704 [sshd_config.5]
3705 some grammar/wording fixes;
3706 - jmc@cvs.openbsd.org 2006/02/24 23:51:17
3707 [sshd_config.5]
3708 oops - bits i missed;
3709 - jmc@cvs.openbsd.org 2006/02/25 12:26:17
3710 [ssh_config.5]
3711 document the possible values for KbdInteractiveDevices;
3712 help/ok dtucker
3713 - jmc@cvs.openbsd.org 2006/02/25 12:28:34
3714 [sshd_config.5]
3715 document the order in which allow/deny directives are processed;
3716 help/ok dtucker
3717 - jmc@cvs.openbsd.org 2006/02/26 17:17:18
3718 [ssh_config.5]
3719 move PATTERNS to the end of the main body; requested by dtucker
3720 - jmc@cvs.openbsd.org 2006/02/26 18:01:13
3721 [sshd_config.5]
3722 subsection is pointless here;
3723 - jmc@cvs.openbsd.org 2006/02/26 18:03:10
3724 [ssh_config.5]
3725 comma;
3726 - djm@cvs.openbsd.org 2006/02/28 01:10:21
3727 [session.c]
3728 fix logout recording when privilege separation is disabled, analysis and
3729 patch from vinschen at redhat.com; tested by dtucker@ ok deraadt@
3730 NB. ID sync only - patch already in portable
3731 - djm@cvs.openbsd.org 2006/03/04 04:12:58
3732 [serverloop.c]
3733 move a debug() outside of a signal handler; ok markus@ a little while back
3734 - djm@cvs.openbsd.org 2006/03/12 04:23:07
3735 [ssh.c]
3736 knf nit
3737 - djm@cvs.openbsd.org 2006/03/13 08:16:00
3738 [sshd.c]
3739 don't log that we are listening on a socket before the listen() call
3740 actually succeeds, bz #1162 reported by Senthil Kumar; ok dtucker@
3741 - dtucker@cvs.openbsd.org 2006/03/13 08:33:00
3742 [packet.c]
3743 Set TCP_NODELAY for all connections not just "interactive" ones. Fixes
3744 poor performance and protocol stalls under some network conditions (mindrot
3745 bugs #556 and #981). Patch originally from markus@, ok djm@
3746 - dtucker@cvs.openbsd.org 2006/03/13 08:43:16
3747 [ssh-keygen.c]
3748 Make ssh-keygen handle CR and CRLF line termination when converting IETF
3749 format keys, in adition to vanilla LF. mindrot #1157, tested by Chris
3750 Pepper, ok djm@
3751 - dtucker@cvs.openbsd.org 2006/03/13 10:14:29
3752 [misc.c ssh_config.5 sshd_config.5]
3753 Allow config directives to contain whitespace by surrounding them by double
3754 quotes. mindrot #482, man page help from jmc@, ok djm@
3755 - dtucker@cvs.openbsd.org 2006/03/13 10:26:52
3756 [authfile.c authfile.h ssh-add.c]
3757 Make ssh-add check file permissions before attempting to load private
3758 key files multiple times; it will fail anyway and this prevents confusing
3759 multiple prompts and warnings. mindrot #1138, ok djm@
3760 - djm@cvs.openbsd.org 2006/03/14 00:15:39
3761 [canohost.c]
3762 log the originating address and not just the name when a reverse
3763 mapping check fails, requested by linux AT linuon.com
3764 - markus@cvs.openbsd.org 2006/03/14 16:32:48
3765 [ssh_config.5 sshd_config.5]
3766 *AliveCountMax applies to protcol v2 only; ok dtucker, djm
3767 - djm@cvs.openbsd.org 2006/03/07 09:07:40
3768 [kex.c kex.h monitor.c myproposal.h ssh-keyscan.c sshconnect2.c sshd.c]
3769 Implement the diffie-hellman-group-exchange-sha256 key exchange method
3770 using the SHA256 code in libc (and wrapper to make it into an OpenSSL
3771 EVP), interop tested against CVS PuTTY
3772 NB. no portability bits committed yet
3773 - (djm) [configure.ac defines.h kex.c md-sha256.c]
3774 [openbsd-compat/sha2.h openbsd-compat/openbsd-compat.h]
3775 [openbsd-compat/sha2.c] First stab at portability glue for SHA256
3776 KEX support, should work with libc SHA256 support or OpenSSL
3777 EVP_sha256 if present
3778 - (djm) [includes.h] Restore accidentally dropped netinet/in.h
3779 - (djm) [Makefile.in openbsd-compat/Makefile.in] Add added files
3780 - (djm) [md-sha256.c configure.ac] md-sha256.c needs sha2.h if present
3781 - (djm) [regress/.cvsignore] Ignore Makefile here
3782 - (djm) [loginrec.c] Need stat.h
3783 - (djm) [openbsd-compat/sha2.h] Avoid include macro clash with
3784 system sha2.h
3785 - (djm) [ssh-rand-helper.c] Needs a bunch of headers
3786 - (djm) [ssh-agent.c] Restore dropped stat.h
3787 - (djm) [openbsd-compat/sha2.h openbsd-compat/sha2.c] Comment out
3788 SHA384, which we don't need and doesn't compile without tweaks
3789 - (djm) [auth-pam.c clientloop.c includes.h monitor.c session.c]
3790 [sftp-client.c ssh-keysign.c ssh.c sshconnect.c sshconnect2.c]
3791 [sshd.c openbsd-compat/bsd-misc.c openbsd-compat/bsd-openpty.c]
3792 [openbsd-compat/glob.c openbsd-compat/mktemp.c]
3793 [openbsd-compat/readpassphrase.c] Lots of include fixes for
3794 OpenSolaris
3795 - (tim) [includes.h] put sys/stat.h back in to quiet some "macro redefined:"
3796 - (tim) [openssh/sshpty.c openssh/openbsd-compat/port-tun.c] put in some
3797 includes removed from includes.h
3798 - (dtucker) [configure.ac] Fix glob test conversion to AC_TRY_COMPILE
3799 - (djm) [includes.h] Put back paths.h, it is needed in defines.h
3800 - (dtucker) [openbsd-compat/openbsd-compat.h] AIX (at least) needs
3801 sys/ioctl.h for struct winsize.
3802 - (dtucker) [configure.ac] login_cap.h requires sys/types.h on NetBSD.
3803
380420060313
3805 - (dtucker) [configure.ac] Bug #1171: Don't use printf("%lld", longlong)
3806 since not all platforms support it. Instead, use internal equivalent while
3807 computing LLONG_MIN and LLONG_MAX. Remove special case for alpha-dec-osf*
3808 as it's no longer required. Tested by Bernhard Simon, ok djm@
3809
381020060304
3811 - (dtucker) [contrib/cygwin/ssh-host-config] Require use of lastlog as a
3812 file rather than directory, required as Cygwin will be importing lastlog(1).
3813 Also tightens up permissions on the file. Patch from vinschen@redhat.com.
3814 - (dtucker) [gss-serv-krb5.c] Bug #1166: Correct #ifdefs for gssapi_krb5.h
3815 includes. Patch from gentoo.riverrat at gmail.com.
3816
381720060226
3818 - (dtucker) [configure.ac] Bug #1156: QNX apparently needs SSHD_ACQUIRES_CTTY
3819 patch from kraai at ftbfs.org.
3820
382120060223
3822 - (dtucker) [sshd_config sshd_config.5] Update UsePAM to reflect current
3823 reality. Pointed out by tryponraj at gmail.com.
3824
382520060222
3826 - (dtucker) [openbsd-compat/openssl-compat.{c,h}] Minor tidy up: only
3827 compile in compat code if required.
3828
382920060221
3830 - (dtucker) [openbsd-compat/openssl-compat.h] Prevent warning about
3831 redefinition of SSLeay_add_all_algorithms.
3832
383320060220
3834 - (dtucker) [INSTALL configure.ac openbsd-compat/openssl-compat.{c,h}]
3835 Add optional enabling of OpenSSL's (hardware) Engine support, via
3836 configure --with-ssl-engine. Based in part on a diff by michal at
3837 logix.cz.
3838
383920060219
3840 - (dtucker) [Makefile.in configure.ac, added openbsd-compat/regress/]
3841 Add first attempt at regress tests for compat library. ok djm@
3842
384320060214
3844 - (tim) [buildpkg.sh.in] Make the names consistent.
3845 s/pkg_post_make_install_fixes.sh/pkg-post-make-install-fixes.sh/ OK dtucker@
3846
384720060212
3848 - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Make loop counter unsigned
3849 to silence compiler warning, from vinschen at redhat.com.
3850 - (tim) [configure.ac] Bug #1149. Disable /etc/default/login check for QNX.
3851 - (dtucker) [README version.h contrib/caldera/openssh.spec
3852 contrib/redhat/openssh.spec contrib/suse/openssh.spec] Bump version
3853 strings to match 4.3p2 release.
3854
385520060208
3856 - (tim) [session.c] Logout records were not updated on systems with
3857 post auth privsep disabled due to bug 1086 changes. Analysis and patch
3858 by vinschen at redhat.com. OK tim@, dtucker@.
3859 - (dtucker) [configure.ac] Typo in Ultrix and NewsOS sections (NEED_SETPRGP
3860 -> NEED_SETPGRP), reported by Bernhard Simon. ok tim@
3861
386220060206
3863 - (tim) [configure.ac] Remove unnecessary tests for net/if.h and
3864 netinet/in_systm.h. OK dtucker@.
3865
386620060205
3867 - (tim) [configure.ac] Add AC_REVISION. Add sys/time.h to lastlog.h test
3868 for Solaris. OK dtucker@.
3869 - (tim) [configure.ac] Bug #1149. Changes in QNX section only. Patch by
3870 kraai at ftbfs.org.
3871
387220060203
3873 - (tim) [configure.ac] test for egrep (AC_PROG_EGREP) before first
3874 AC_CHECK_HEADERS test. Without it, if AC_CHECK_HEADERS is first run
3875 by a platform specific check, builtin standard includes tests will be
3876 skipped on the other platforms.
3877 Analysis and suggestion by vinschen at redhat.com, patch by dtucker@.
3878 OK tim@, djm@.
3879
388020060202
3881 - (dtucker) [configure.ac] Bug #1148: Fix "crippled AES" test so that it
3882 works with picky compilers. Patch from alex.kiernan at thus.net.
3883
388420060201
3885 - (djm) [regress/test-exec.sh] Try 'logname' as well as 'whoami' to
3886 determine the user's login name - needed for regress tests on Solaris
3887 10 and OpenSolaris
3888 - (djm) OpenBSD CVS Sync
3889 - jmc@cvs.openbsd.org 2006/02/01 09:06:50
3890 [sshd.8]
3891 - merge sections on protocols 1 and 2 into a single section
3892 - remove configuration file section
3893 ok markus
3894 - jmc@cvs.openbsd.org 2006/02/01 09:11:41
3895 [sshd.8]
3896 small tweak;
3897 - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec]
3898 [contrib/suse/openssh.spec] Update versions ahead of release
3899 - markus@cvs.openbsd.org 2006/02/01 11:27:22
3900 [version.h]
3901 openssh 4.3
3902 - (djm) Release OpenSSH 4.3p1
3903
390420060131
3905 - (djm) OpenBSD CVS Sync
3906 - jmc@cvs.openbsd.org 2006/01/20 11:21:45
3907 [ssh_config.5]
3908 - word change, agreed w/ markus
3909 - consistency fixes
3910 - jmc@cvs.openbsd.org 2006/01/25 09:04:34
3911 [sshd.8]
3912 move the options description up the page, and a few additional tweaks
3913 whilst in here;
3914 ok markus
3915 - jmc@cvs.openbsd.org 2006/01/25 09:07:22
3916 [sshd.8]
3917 move subsections to full sections;
3918 - jmc@cvs.openbsd.org 2006/01/26 08:47:56
3919 [ssh.1]
3920 add a section on verifying host keys in dns;
3921 written with a lot of help from jakob;
3922 feedback dtucker/markus;
3923 ok markus
3924 - reyk@cvs.openbsd.org 2006/01/30 12:22:22
3925 [channels.c]
3926 mark channel as write failed or dead instead of read failed on error
3927 of the channel output filter.
3928 ok markus@
3929 - jmc@cvs.openbsd.org 2006/01/30 13:37:49
3930 [ssh.1]
3931 remove an incorrect sentence;
3932 reported by roumen petrov;
3933 ok djm markus
3934 - djm@cvs.openbsd.org 2006/01/31 10:19:02
3935 [misc.c misc.h scp.c sftp.c]
3936 fix local arbitrary command execution vulnerability on local/local and
3937 remote/remote copies (CVE-2006-0225, bz #1094), patch by
3938 t8m AT centrum.cz, polished by dtucker@ and myself; ok markus@
3939 - djm@cvs.openbsd.org 2006/01/31 10:35:43
3940 [scp.c]
3941 "scp a b c" shouldn't clobber "c" when it is not a directory, report and
3942 fix from biorn@; ok markus@
3943 - (djm) Sync regress tests to OpenBSD:
3944 - dtucker@cvs.openbsd.org 2005/03/10 10:20:39
3945 [regress/forwarding.sh]
3946 Regress test for ClearAllForwardings (bz #994); ok markus@
3947 - dtucker@cvs.openbsd.org 2005/04/25 09:54:09
3948 [regress/multiplex.sh]
3949 Don't call cleanup in multiplex as test-exec will cleanup anyway
3950 found by tim@, ok djm@
3951 NB. ID sync only, we already had this
3952 - djm@cvs.openbsd.org 2005/05/20 23:14:15
3953 [regress/test-exec.sh]
3954 force addressfamily=inet for tests, unbreaking dynamic-forward regress for
3955 recently committed nc SOCKS5 changes
3956 - djm@cvs.openbsd.org 2005/05/24 04:10:54
3957 [regress/try-ciphers.sh]
3958 oops, new arcfour modes here too
3959 - markus@cvs.openbsd.org 2005/06/30 11:02:37
3960 [regress/scp.sh]
3961 allow SUDO=sudo; from Alexander Bluhm
3962 - grunk@cvs.openbsd.org 2005/11/14 21:25:56
3963 [regress/agent-getpeereid.sh]
3964 all other scripts in this dir use $SUDO, not 'sudo', so pull this even
3965 ok markus@
3966 - dtucker@cvs.openbsd.org 2005/12/14 04:36:39
3967 [regress/scp-ssh-wrapper.sh]
3968 Fix assumption about how many args scp will pass; ok djm@
3969 NB. ID sync only, we already had this
3970 - djm@cvs.openbsd.org 2006/01/27 06:49:21
3971 [scp.sh]
3972 regress test for local to local scp copies; ok dtucker@
3973 - djm@cvs.openbsd.org 2006/01/31 10:23:23
3974 [scp.sh]
3975 regression test for CVE-2006-0225 written by dtucker@
3976 - djm@cvs.openbsd.org 2006/01/31 10:36:33
3977 [scp.sh]
3978 regress test for "scp a b c" where "c" is not a directory
3979
398020060129
3981 - (dtucker) [configure.ac opensshd.init.in] Bug #1144: Use /bin/sh for the
3982 opensshd.init script interpretter if /sbin/sh does not exist. ok tim@
3983
398420060120
3985 - (dtucker) OpenBSD CVS Sync
3986 - jmc@cvs.openbsd.org 2006/01/15 17:37:05
3987 [ssh.1]
3988 correction from deraadt
3989 - jmc@cvs.openbsd.org 2006/01/18 10:53:29
3990 [ssh.1]
3991 add a section on ssh-based vpn, based on reyk's README.tun;
3992 - dtucker@cvs.openbsd.org 2006/01/20 00:14:55
3993 [scp.1 ssh.1 ssh_config.5 sftp.1]
3994 Document RekeyLimit. Based on patch from jan.iven at cern.ch from mindrot
3995 #1056 with feedback from jmc, djm and markus; ok jmc@ djm@
3996
399720060114
3998 - (djm) OpenBSD CVS Sync
3999 - jmc@cvs.openbsd.org 2006/01/06 13:27:32
4000 [ssh.1]
4001 weed out some duplicate info in the known_hosts FILES entries;
4002 ok djm
4003 - jmc@cvs.openbsd.org 2006/01/06 13:29:10
4004 [ssh.1]
4005 final round of whacking FILES for duplicate info, and some consistency
4006 fixes;
4007 ok djm
4008 - jmc@cvs.openbsd.org 2006/01/12 14:44:12
4009 [ssh.1]
4010 split sections on tcp and x11 forwarding into two sections.
4011 add an example in the tcp section, based on sth i wrote for ssh faq;
4012 help + ok: djm markus dtucker
4013 - jmc@cvs.openbsd.org 2006/01/12 18:48:48
4014 [ssh.1]
4015 refer to `TCP' rather than `TCP/IP' in the context of connection
4016 forwarding;
4017 ok markus
4018 - jmc@cvs.openbsd.org 2006/01/12 22:20:00
4019 [sshd.8]
4020 refer to TCP forwarding, rather than TCP/IP forwarding;
4021 - jmc@cvs.openbsd.org 2006/01/12 22:26:02
4022 [ssh_config.5]
4023 refer to TCP forwarding, rather than TCP/IP forwarding;
4024 - jmc@cvs.openbsd.org 2006/01/12 22:34:12
4025 [ssh.1]
4026 back out a sentence - AUTHENTICATION already documents this;
4027
402820060109
4029 - (dtucker) [contrib/cygwin/ssh-host-config] Make sshd service depend on
4030 tcpip service so it's always started after IP is up. Patch from
4031 vinschen at redhat.com.
4032
403320060106
4034 - (djm) OpenBSD CVS Sync
4035 - jmc@cvs.openbsd.org 2006/01/03 16:31:10
4036 [ssh.1]
4037 move FILES to a -compact list, and make each files an item in that list.
4038 this avoids nastly line wrap when we have long pathnames, and treats
4039 each file as a separate item;
4040 remove the .Pa too, since it is useless.
4041 - jmc@cvs.openbsd.org 2006/01/03 16:35:30
4042 [ssh.1]
4043 use a larger width for the ENVIRONMENT list;
4044 - jmc@cvs.openbsd.org 2006/01/03 16:52:36
4045 [ssh.1]
4046 put FILES in some sort of order: sort by pathname
4047 - jmc@cvs.openbsd.org 2006/01/03 16:55:18
4048 [ssh.1]
4049 tweak the description of ~/.ssh/environment
4050 - jmc@cvs.openbsd.org 2006/01/04 18:42:46
4051 [ssh.1]
4052 chop out some duplication in the .{r,s}hosts/{h,sh}osts.equiv FILES
4053 entries;
4054 ok markus
4055 - jmc@cvs.openbsd.org 2006/01/04 18:45:01
4056 [ssh.1]
4057 remove .Xr's to rsh(1) and telnet(1): they are hardly needed;
4058 - jmc@cvs.openbsd.org 2006/01/04 19:40:24
4059 [ssh.1]
4060 +.Xr ssh-keyscan 1 ,
4061 - jmc@cvs.openbsd.org 2006/01/04 19:50:09
4062 [ssh.1]
4063 -.Xr gzip 1 ,
4064 - djm@cvs.openbsd.org 2006/01/05 23:43:53
4065 [misc.c]
4066 check that stdio file descriptors are actually closed before clobbering
4067 them in sanitise_stdfd(). problems occurred when a lower numbered fd was
4068 closed, but higher ones weren't. spotted by, and patch tested by
4069 Frédéric Olivié
4070
407120060103
4072 - (djm) [channels.c] clean up harmless merge error, from reyk@
4073
407420060103
4075 - (djm) OpenBSD CVS Sync
4076 - jmc@cvs.openbsd.org 2006/01/02 17:09:49
4077 [ssh_config.5 sshd_config.5]
4078 some corrections from michael knudsen;
4079
408020060102
4081 - (djm) [README.tun] Add README.tun, missed during sync of tun(4) support
4082 - (djm) OpenBSD CVS Sync
4083 - jmc@cvs.openbsd.org 2005/12/31 10:46:17
4084 [ssh.1]
4085 merge the "LOGIN SESSION AND REMOTE EXECUTION" and "SERVER
4086 AUTHENTICATION" sections into "AUTHENTICATION";
4087 some rewording done to make the text read better, plus some
4088 improvements from djm;
4089 ok djm
4090 - jmc@cvs.openbsd.org 2005/12/31 13:44:04
4091 [ssh.1]
4092 clean up ENVIRONMENT a little;
4093 - jmc@cvs.openbsd.org 2005/12/31 13:45:19
4094 [ssh.1]
4095 .Nm does not require an argument;
4096 - stevesk@cvs.openbsd.org 2006/01/01 08:59:27
4097 [includes.h misc.c]
4098 move <net/if.h>; ok djm@
4099 - stevesk@cvs.openbsd.org 2006/01/01 10:08:48
4100 [misc.c]
4101 no trailing "\n" for debug()
4102 - djm@cvs.openbsd.org 2006/01/02 01:20:31
4103 [sftp-client.c sftp-common.h sftp-server.c]
4104 use a common max. packet length, no binary change
4105 - reyk@cvs.openbsd.org 2006/01/02 07:53:44
4106 [misc.c]
4107 clarify tun(4) opening - set the mode and bring the interface up. also
4108 (re)sets the tun(4) layer 2 LINK0 flag for existing tunnel interfaces.
4109 suggested and ok by djm@
4110 - jmc@cvs.openbsd.org 2006/01/02 12:31:06
4111 [ssh.1]
4112 start to cut some duplicate info from FILES;
4113 help/ok djm
4114
411520060101
4116 - (djm) [Makefile.in configure.ac includes.h misc.c]
4117 [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Add support
4118 for tunnel forwarding for FreeBSD and NetBSD. NetBSD's support is
4119 limited to IPv4 tunnels only, and most versions don't support the
4120 tap(4) device at all.
4121 - (djm) [configure.ac] Fix linux/if_tun.h test
4122 - (djm) [openbsd-compat/port-tun.c] Linux needs linux/if.h too
4123
412420051229
4125 - (djm) OpenBSD CVS Sync
4126 - stevesk@cvs.openbsd.org 2005/12/28 22:46:06
4127 [canohost.c channels.c clientloop.c]
4128 use 'break-in' for consistency; ok deraadt@ ok and input jmc@
4129 - reyk@cvs.openbsd.org 2005/12/30 15:56:37
4130 [channels.c channels.h clientloop.c]
4131 add channel output filter interface.
4132 ok djm@, suggested by markus@
4133 - jmc@cvs.openbsd.org 2005/12/30 16:59:00
4134 [sftp.1]
4135 do not suggest that interactive authentication will work
4136 with the -b flag;
4137 based on a diff from john l. scarfone;
4138 ok djm
4139 - stevesk@cvs.openbsd.org 2005/12/31 01:38:45
4140 [ssh.1]
4141 document -MM; ok djm@
4142 - (djm) [openbsd-compat/port-tun.c openbsd-compat/port-tun.h configure.ac]
4143 [serverloop.c ssh.c openbsd-compat/Makefile.in]
4144 [openbsd-compat/openbsd-compat.h] Implement tun(4) forwarding
4145 compatability support for Linux, diff from reyk@
4146 - (djm) [configure.ac] Disable Linux tun(4) compat code if linux/tun.h does
4147 not exist
4148 - (djm) [configure.ac] oops, make that linux/if_tun.h
4149
415020051229
4151 - (tim) [buildpkg.sh.in] grep for $SSHDUID instead of $SSHDGID on /etc/passwd
4152
415320051224
4154 - (djm) OpenBSD CVS Sync
4155 - jmc@cvs.openbsd.org 2005/12/20 21:59:43
4156 [ssh.1]
4157 merge the sections on protocols 1 and 2 into one section on
4158 authentication;
4159 feedback djm dtucker
4160 ok deraadt markus dtucker
4161 - jmc@cvs.openbsd.org 2005/12/20 22:02:50
4162 [ssh.1]
4163 .Ss -> .Sh: subsections have not made this page more readable
4164 - jmc@cvs.openbsd.org 2005/12/20 22:09:41
4165 [ssh.1]
4166 move info on ssh return values and config files up into the main
4167 description;
4168 - jmc@cvs.openbsd.org 2005/12/21 11:48:16
4169 [ssh.1]
4170 -L and -R descriptions are now above, not below, ~C description;
4171 - jmc@cvs.openbsd.org 2005/12/21 11:57:25
4172 [ssh.1]
4173 options now described `above', rather than `later';
4174 - jmc@cvs.openbsd.org 2005/12/21 12:53:31
4175 [ssh.1]
4176 -Y does X11 forwarding too;
4177 ok markus
4178 - stevesk@cvs.openbsd.org 2005/12/21 22:44:26
4179 [sshd.8]
4180 clarify precedence of -p, Port, ListenAddress; ok and help jmc@
4181 - jmc@cvs.openbsd.org 2005/12/22 10:31:40
4182 [ssh_config.5]
4183 put the description of "UsePrivilegedPort" in the correct place;
4184 - jmc@cvs.openbsd.org 2005/12/22 11:23:42
4185 [ssh.1]
4186 expand the description of -w somewhat;
4187 help/ok reyk
4188 - jmc@cvs.openbsd.org 2005/12/23 14:55:53
4189 [ssh.1]
4190 - sync the description of -e w/ synopsis
4191 - simplify the description of -I
4192 - note that -I is only available if support compiled in, and that it
4193 isn't by default
4194 feedback/ok djm@
4195 - jmc@cvs.openbsd.org 2005/12/23 23:46:23
4196 [ssh.1]
4197 less mark up for -c;
4198 - djm@cvs.openbsd.org 2005/12/24 02:27:41
4199 [session.c sshd.c]
4200 eliminate some code duplicated in privsep and non-privsep paths, and
4201 explicitly clear SIGALRM handler; "groovy" deraadt@
4202
420320051220
4204 - (dtucker) OpenBSD CVS Sync
4205 - reyk@cvs.openbsd.org 2005/12/13 15:03:02
4206 [serverloop.c]
4207 if forced_tun_device is not set, it is -1 and not SSH_TUNID_ANY
4208 - jmc@cvs.openbsd.org 2005/12/16 18:07:08
4209 [ssh.1]
4210 move the option descriptions up the page: start of a restructure;
4211 ok markus deraadt
4212 - jmc@cvs.openbsd.org 2005/12/16 18:08:53
4213 [ssh.1]
4214 simplify a sentence;
4215 - jmc@cvs.openbsd.org 2005/12/16 18:12:22
4216 [ssh.1]
4217 make the description of -c a little nicer;
4218 - jmc@cvs.openbsd.org 2005/12/16 18:14:40
4219 [ssh.1]
4220 signpost the protocol sections;
4221 - stevesk@cvs.openbsd.org 2005/12/17 21:13:05
4222 [ssh_config.5 session.c]
4223 spelling: fowarding, fowarded
4224 - stevesk@cvs.openbsd.org 2005/12/17 21:36:42
4225 [ssh_config.5]
4226 spelling: intented -> intended
4227 - dtucker@cvs.openbsd.org 2005/12/20 04:41:07
4228 [ssh.c]
4229 exit(255) on error to match description in ssh(1); bz #1137; ok deraadt@
4230
423120051219
4232 - (dtucker) [cipher-aes.c cipher-ctr.c cipher.c configure.ac
4233 openbsd-compat/openssl-compat.h] Check for and work around broken AES
4234 ciphers >128bit on (some) Solaris 10 systems. ok djm@
4235
423620051217
4237 - (dtucker) [defines.h] HP-UX system headers define "YES" and "NO" which
4238 scp.c also uses, so undef them here.
4239 - (dtucker) [configure.ac openbsd-compat/bsd-snprintf.c] Bug #1133: Our
4240 snprintf replacement can have a conflicting declaration in HP-UX's system
4241 headers (const vs. no const) so we now check for and work around it. Patch
4242 from the dynamic duo of David Leonard and Ted Percival.
4243
424420051214
4245 - (dtucker) OpenBSD CVS Sync (regress/)
4246 - dtucker@cvs.openbsd.org 2005/12/30 04:36:39
4247 [regress/scp-ssh-wrapper.sh]
4248 Fix assumption about how many args scp will pass; ok djm@
4249
425020051213
4251 - (djm) OpenBSD CVS Sync
4252 - jmc@cvs.openbsd.org 2005/11/30 11:18:27
4253 [ssh.1]
4254 timezone -> time zone
4255 - jmc@cvs.openbsd.org 2005/11/30 11:45:20
4256 [ssh.1]
4257 avoid ambiguities in describing TZ;
4258 ok djm@
4259 - reyk@cvs.openbsd.org 2005/12/06 22:38:28
4260 [auth-options.c auth-options.h channels.c channels.h clientloop.c]
4261 [misc.c misc.h readconf.c readconf.h scp.c servconf.c servconf.h]
4262 [serverloop.c sftp.c ssh.1 ssh.c ssh_config ssh_config.5 sshconnect.c]
4263 [sshconnect.h sshd.8 sshd_config sshd_config.5]
4264 Add support for tun(4) forwarding over OpenSSH, based on an idea and
4265 initial channel code bits by markus@. This is a simple and easy way to
4266 use OpenSSH for ad hoc virtual private network connections, e.g.
4267 administrative tunnels or secure wireless access. It's based on a new
4268 ssh channel and works similar to the existing TCP forwarding support,
4269 except that it depends on the tun(4) network interface on both ends of
4270 the connection for layer 2 or layer 3 tunneling. This diff also adds
4271 support for LocalCommand in the ssh(1) client.
4272 ok djm@, markus@, jmc@ (manpages), tested and discussed with others
4273 - djm@cvs.openbsd.org 2005/12/07 03:52:22
4274 [clientloop.c]
4275 reyk forgot to compile with -Werror (missing header)
4276 - jmc@cvs.openbsd.org 2005/12/07 10:52:13
4277 [ssh.1]
4278 - avoid line split in SYNOPSIS
4279 - add args to -w
4280 - kill trailing whitespace
4281 - jmc@cvs.openbsd.org 2005/12/08 14:59:44
4282 [ssh.1 ssh_config.5]
4283 make `!command' a little clearer;
4284 ok reyk
4285 - jmc@cvs.openbsd.org 2005/12/08 15:06:29
4286 [ssh_config.5]
4287 keep options in order;
4288 - reyk@cvs.openbsd.org 2005/12/08 18:34:11
4289 [auth-options.c includes.h misc.c misc.h readconf.c servconf.c]
4290 [serverloop.c ssh.c ssh_config.5 sshd_config.5 configure.ac]
4291 two changes to the new ssh tunnel support. this breaks compatibility
4292 with the initial commit but is required for a portable approach.
4293 - make the tunnel id u_int and platform friendly, use predefined types.
4294 - support configuration of layer 2 (ethernet) or layer 3
4295 (point-to-point, default) modes. configuration is done using the
4296 Tunnel (yes|point-to-point|ethernet|no) option is ssh_config(5) and
4297 restricted by the PermitTunnel (yes|point-to-point|ethernet|no) option
4298 in sshd_config(5).
4299 ok djm@, man page bits by jmc@
4300 - jmc@cvs.openbsd.org 2005/12/08 21:37:50
4301 [ssh_config.5]
4302 new sentence, new line;
4303 - markus@cvs.openbsd.org 2005/12/12 13:46:18
4304 [channels.c channels.h session.c]
4305 make sure protocol messages for internal channels are ignored.
4306 allow adjust messages for non-open channels; with and ok djm@
4307 - (djm) [misc.c] Disable tunnel code for non-OpenBSD (for now), enable
4308 again by providing a sys_tun_open() function for your platform and
4309 setting the CUSTOM_SYS_TUN_OPEN define. More work is required to match
4310 OpenBSD's tunnel protocol, which prepends the address family to the
4311 packet
4312
431320051201
4314 - (djm) [envpass.sh] Remove regress script that was accidentally committed
4315 in top level directory and not noticed for over a year :)
4316
431720051129
4318 - (tim) [ssh-keygen.c] Move DSA length test after setting default when
4319 bits == 0.
4320 - (dtucker) OpenBSD CVS Sync
4321 - dtucker@cvs.openbsd.org 2005/11/29 02:04:55
4322 [ssh-keygen.c]
4323 Populate default key sizes before checking them; from & ok tim@
4324 - (tim) [configure.ac sshd.8] Enable locked account check (a "*LK*" string)
4325 for UnixWare.
4326
432720051128
4328 - (dtucker) [regress/yes-head.sh] Work around breakage caused by some
4329 versions of GNU head. Based on patch from zappaman at buraphalinux.org
4330 - (dtucker) [includes.h] Bug #1122: __USE_GNU is a glibc internal macro, use
4331 _GNU_SOURCE instead. Patch from t8m at centrum.cz.
4332 - (dtucker) OpenBSD CVS Sync
4333 - dtucker@cvs.openbsd.org 2005/11/28 05:16:53
4334 [ssh-keygen.1 ssh-keygen.c]
4335 Enforce DSA key length of exactly 1024 bits to comply with FIPS-186-2,
4336 increase minumum RSA key size to 768 bits and update man page to reflect
4337 these. Patch originally bz#1119 (senthilkumar_sen at hotpop.com),
4338 ok djm@, grudging ok deraadt@.
4339 - dtucker@cvs.openbsd.org 2005/11/28 06:02:56
4340 [ssh-agent.1]
4341 Update agent socket path templates to reflect reality, correct xref for
4342 time formats. bz#1121, patch from openssh at roumenpetrov.info, ok djm@
4343
434420051126
4345 - (dtucker) [configure.ac] Bug #1126: AIX 5.2 and 5.3 (and presumably newer,
4346 when they're available) need the real UID set otherwise pam_chauthtok will
4347 set ADMCHG after changing the password, forcing the user to change it
4348 again immediately.
4349
435020051125
4351 - (dtucker) [configure.ac] Apply tim's fix for older systems where the
4352 resolver state in resolv.h is "state" not "__res_state". With slight
4353 modification by me to also work on old AIXes. ok djm@
4354 - (dtucker) [progressmeter.c scp.c sftp-server.c] Use correct casts for
4355 snprintf formats, fixes warnings on some 64 bit platforms. Patch from
4356 shaw at vranix.com, ok djm@
4357
435820051124
4359 - (djm) [configure.ac openbsd-compat/Makefile.in openbsd-compat/bsd-asprintf.c
4360 openbsd-compat/bsd-snprintf.c openbsd-compat/openbsd-compat.h] Add an
4361 asprintf() implementation, after syncing our {v,}snprintf() implementation
4362 with some extra fixes from Samba's version. With help and debugging from
4363 dtucker and tim; ok dtucker@
4364 - (dtucker) [configure.ac] Fix typos in comments and AC_SEARCH_LIB argument
4365 order in Reliant Unix block. Patch from johane at lysator.liu.se.
4366 - (dtucker) [regress/test-exec.sh] Use 1024 bit keys since we generate so
4367 many and use them only once. Speeds up testing on older/slower hardware.
4368
436920051122
4370 - (dtucker) OpenBSD CVS Sync
4371 - deraadt@cvs.openbsd.org 2005/11/12 18:37:59
4372 [ssh-add.c]
4373 space
4374 - deraadt@cvs.openbsd.org 2005/11/12 18:38:15
4375 [scp.c]
4376 avoid close(-1), as in rcp; ok cloder
4377 - millert@cvs.openbsd.org 2005/11/15 11:59:54
4378 [includes.h]
4379 Include sys/queue.h explicitly instead of assuming some other header
4380 will pull it in. At the moment it gets pulled in by sys/select.h
4381 (which ssh has no business including) via event.h. OK markus@
4382 (ID sync only in -portable)
4383 - dtucker@cvs.openbsd.org 2005/11/21 09:42:10
4384 [auth-krb5.c]
4385 Perform Kerberos calls even for invalid users to prevent leaking
4386 information about account validity. bz #975, patch originally from
4387 Senthil Kumar, sanity checked by Simon Wilkinson, tested by djm@, biorn@,
4388 ok markus@
4389 - dtucker@cvs.openbsd.org 2005/11/22 03:36:03
4390 [hostfile.c]
4391 Correct format/arguments to debug call; spotted by shaw at vranix.com
4392 ok djm@
4393 - (dtucker) [loginrec.c] Add casts to prevent compiler warnings, patch
4394 from shaw at vranix.com.
4395
439620051120
4397 - (dtucker) [openbsd-compat/openssl-compat.h] Add comment explaining what
4398 is going on.
4399
440020051112
4401 - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific
4402 ifdef lost during sync. Spotted by tim@.
4403 - (dtucker) [openbsd-compat/{realpath.c,stroll.c,rresvport.c}] $OpenBSD tag.
4404 - (dtucker) [configure.ac] Use "$AWK" instead of "awk" in gcc version test.
4405 - (dtucker) [configure.ac] Remove duplicate utimes() check. ok djm@
4406 - (dtucker) [regress/reconfigure.sh] Fix potential race in the reconfigure
4407 test: if sshd takes too long to reconfigure the subsequent connection will
4408 fail. Zap pidfile before HUPing sshd which will rewrite it when it's ready.
4409
441020051110
4411 - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from
4412 OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of
4413 "register").
4414 - (dtucker) [openbsd-compat/setenv.c] Make __findenv static, remove
4415 unnecessary prototype.
4416 - (dtucker) [openbsd-compat/setenv.c] Sync changes from OpenBSD setenv.c
4417 revs 1.7 - 1.9.
4418 - (dtucker) [auth-krb5.c] Fix -Wsign-compare warning in non-Heimdal path.
4419 Patch from djm@.
4420 - (dtucker) [configure.ac] Disable pointer-sign warnings on gcc 4.0+
4421 since they're not useful right now. Patch from djm@.
4422 - (dtucker) [openbsd-compat/getgrouplist.c] Sync OpenBSD revs 1.10 - 1.2 (ANSI
4423 prototypes, removal of "register").
4424 - (dtucker) [openbsd-compat/strlcat.c] Sync OpenBSD revs 1.11 - 1.12 (removal
4425 of "register").
4426 - (dtucker) [openbsd-compat/{LOTS}] Move the "OPENBSD ORIGINAL" markers to
4427 after the copyright notices. Having them at the top next to the CVSIDs
4428 guarantees a conflict for each and every sync.
4429 - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10.
4430 - (dtucker) [openbsd-compat/sigact.h] Add "OPENBSD ORIGINAL" marker.
4431 - (dtucker) [openbsd-compat/strmode.c] Update from OpenBSD 1.5 -> 1.7.
4432 Removal of rcsid, "whiteout" inode type.
4433 - (dtucker) [openbsd-compat/basename.c] Update from OpenBSD 1.11 -> 1.14.
4434 Removal of rcsid, will no longer strlcpy parts of the string.
4435 - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5.
4436 - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7.
4437 - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18.
4438 - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5.
4439 - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25.
4440 - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9.
4441 - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14.
4442 - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up
4443 with OpenBSD code since we don't support platforms without fstat any more.
4444 - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9.
4445 - (dtucker) [openbsd-compat/inet_ntoa.c] Update from OpenBSD 1.4 -> 1.6.
4446 - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7.
4447 - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6.
4448 - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6.
4449 - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13.
4450 - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19.
4451 - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8.
4452 - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker.
4453 - (dtucker) [openbsd-compat/bindresvport.c] Update from OpenBSD 1.16 -> 1.17.
4454 - (dtucker) [openbsd-compat/sigact.c] Update from OpenBSD 1.3 -> 1.4.
4455 Id and copyright sync only, there were no substantial changes we need.
4456 - (dtucker) [openbsd-compat/bsd-closefrom.c openbsd-compat/base64.c]
4457 -Wsign-compare fixes from djm.
4458 - (dtucker) [openbsd-compat/sigact.h] Update from OpenBSD 1.2 -> 1.3.
4459 Id and copyright sync only, there were no substantial changes we need.
4460 - (dtucker) [configure.ac] Try to get the gcc version number in a way that
4461 doesn't change between versions, and use a safer default.
4462
446320051105
4464 - (djm) OpenBSD CVS Sync
4465 - markus@cvs.openbsd.org 2005/10/07 11:13:57
4466 [ssh-keygen.c]
4467 change DSA default back to 1024, as it's defined for 1024 bits only
4468 and this causes interop problems with other clients. moreover,
4469 in order to improve the security of DSA you need to change more
4470 components of DSA key generation (e.g. the internal SHA1 hash);
4471 ok deraadt
4472 - djm@cvs.openbsd.org 2005/10/10 10:23:08
4473 [channels.c channels.h clientloop.c serverloop.c session.c]
4474 fix regression I introduced in 4.2: X11 forwardings initiated after
4475 a session has exited (e.g. "(sleep 5; xterm) &") would not start.
4476 bz #1086 reported by t8m AT centrum.cz; ok markus@ dtucker@
4477 - djm@cvs.openbsd.org 2005/10/11 23:37:37
4478 [channels.c]
4479 bz #1076 set SO_REUSEADDR on X11 forwarding listner sockets, preventing
4480 bind() failure when a previous connection's listeners are in TIME_WAIT,
4481 reported by plattner AT inf.ethz.ch; ok dtucker@
4482 - stevesk@cvs.openbsd.org 2005/10/13 14:03:01
4483 [auth2-gss.c gss-genr.c gss-serv.c]
4484 remove unneeded #includes; ok markus@
4485 - stevesk@cvs.openbsd.org 2005/10/13 14:20:37
4486 [gss-serv.c]
4487 spelling in comments
4488 - stevesk@cvs.openbsd.org 2005/10/13 19:08:08
4489 [gss-serv-krb5.c gss-serv.c]
4490 unused declarations; ok deraadt@
4491 (id sync only for gss-serv-krb5.c)
4492 - stevesk@cvs.openbsd.org 2005/10/13 19:13:41
4493 [dns.c]
4494 unneeded #include, unused declaration, little knf; ok deraadt@
4495 - stevesk@cvs.openbsd.org 2005/10/13 22:24:31
4496 [auth2-gss.c gss-genr.c gss-serv.c monitor.c]
4497 KNF; ok djm@
4498 - stevesk@cvs.openbsd.org 2005/10/14 02:17:59
4499 [ssh-keygen.c ssh.c sshconnect2.c]
4500 no trailing "\n" for log functions; ok djm@
4501 - stevesk@cvs.openbsd.org 2005/10/14 02:29:37
4502 [channels.c clientloop.c]
4503 free()->xfree(); ok djm@
4504 - stevesk@cvs.openbsd.org 2005/10/15 15:28:12
4505 [sshconnect.c]
4506 make external definition static; ok deraadt@
4507 - stevesk@cvs.openbsd.org 2005/10/17 13:45:05
4508 [dns.c]
4509 fix memory leaks from 2 sources:
4510 1) key_fingerprint_raw()
4511 2) malloc in dns_read_rdata()
4512 ok jakob@
4513 - stevesk@cvs.openbsd.org 2005/10/17 14:01:28
4514 [dns.c]
4515 remove #ifdef LWRES; ok jakob@
4516 - stevesk@cvs.openbsd.org 2005/10/17 14:13:35
4517 [dns.c dns.h]
4518 more cleanups; ok jakob@
4519 - djm@cvs.openbsd.org 2005/10/30 01:23:19
4520 [ssh_config.5]
4521 mention control socket fallback behaviour, reported by
4522 tryponraj AT gmail.com
4523 - djm@cvs.openbsd.org 2005/10/30 04:01:03
4524 [ssh-keyscan.c]
4525 make ssh-keygen discard junk from server before SSH- ident, spotted by
4526 dave AT cirt.net; ok dtucker@
4527 - djm@cvs.openbsd.org 2005/10/30 04:03:24
4528 [ssh.c]
4529 fix misleading debug message; ok dtucker@
4530 - dtucker@cvs.openbsd.org 2005/10/30 08:29:29
4531 [canohost.c sshd.c]
4532 Check for connections with IP options earlier and drop silently. ok djm@
4533 - jmc@cvs.openbsd.org 2005/10/30 08:43:47
4534 [ssh_config.5]
4535 remove trailing whitespace;
4536 - djm@cvs.openbsd.org 2005/10/30 08:52:18
4537 [clientloop.c packet.c serverloop.c session.c ssh-agent.c ssh-keygen.c]
4538 [ssh.c sshconnect.c sshconnect1.c sshd.c]
4539 no need to escape single quotes in comments, no binary change
4540 - dtucker@cvs.openbsd.org 2005/10/31 06:15:04
4541 [sftp.c]
4542 Fix sorting with "ls -1" command. From Robert Tsai, "looks right" deraadt@
4543 - djm@cvs.openbsd.org 2005/10/31 11:12:49
4544 [ssh-keygen.1 ssh-keygen.c]
4545 generate a protocol 2 RSA key by default
4546 - djm@cvs.openbsd.org 2005/10/31 11:48:29
4547 [serverloop.c]
4548 make sure we clean up wtmp, etc. file when we receive a SIGTERM,
4549 SIGINT or SIGQUIT when running without privilege separation (the
4550 normal privsep case is already OK). Patch mainly by dtucker@ and
4551 senthilkumar_sen AT hotpop.com; ok dtucker@
4552 - jmc@cvs.openbsd.org 2005/10/31 19:55:25
4553 [ssh-keygen.1]
4554 grammar;
4555 - dtucker@cvs.openbsd.org 2005/11/03 13:38:29
4556 [canohost.c]
4557 Cache reverse lookups with and without DNS separately; ok markus@
4558 - djm@cvs.openbsd.org 2005/11/04 05:15:59
4559 [kex.c kex.h kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c]
4560 remove hardcoded hash lengths in key exchange code, allowing
4561 implementation of KEX methods with different hashes (e.g. SHA-256);
4562 ok markus@ dtucker@ stevesk@
4563 - djm@cvs.openbsd.org 2005/11/05 05:01:15
4564 [bufaux.c]
4565 Fix leaks in error paths, bz #1109 and #1110 reported by kremenek AT
4566 cs.stanford.edu; ok dtucker@
4567 - (dtucker) [README.platform] Add PAM section.
4568 - (djm) [openbsd-compat/getrrsetbyname.c] Sync to latest OpenBSD version,
4569 resolving memory leak bz#1111 reported by kremenek AT cs.stanford.edu;
4570 ok dtucker@
4571
457220051102
4573 - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup().
4574 Reported by olavi at ipunplugged.com and antoine.brodin at laposte.net
4575 via FreeBSD.
4576
457720051030
4578 - (djm) [contrib/suse/openssh.spec contrib/suse/rc.
4579 sshd contrib/suse/sysconfig.ssh] Bug #1106: Updated SuSE spec and init
4580 files from imorgan AT nas.nasa.gov
4581 - (dtucker) [session.c] Bug #1045do not check /etc/nologin when PAM is
4582 enabled, instead allow PAM to handle it. Note that on platforms using PAM,
4583 the pam_nologin module should be added to sshd's session stack in order to
4584 maintain exising behaviour. Based on patch and discussion from t8m at
4585 centrum.cz, ok djm@
4586
458720051025
4588 - (dtucker) [configure.ac] Relocate LLONG_MAX calculation to after the
4589 sizeof(long long) checks, to make fixing bug #1104 easier (no changes
4590 yet).
4591 - (dtucker) [configure.ac] Bug #1104: Tru64's printf family doesn't
4592 understand "%lld", even though the compiler has "long long", so handle
4593 it as a special case. Patch tested by mcaskill.scott at epa.gov.
4594 - (dtucker) [contrib/cygwin/ssh-user-config] Remove duplicate yes/no
4595 prompt. Patch from vinschen at redhat.com.
4596
459720051017
4598 - (dtucker) [configure.ac] Bug #1097: Fix configure for cross-compiling.
4599 /etc/default/login report and testing from aabaker at iee.org, corrections
4600 from tim@.
4601
460220051009
4603 - (dtucker) [configure.ac defines.h openbsd-compat/vis.{c,h}] Sync current
4604 versions from OpenBSD. ok djm@
4605
460620051008
4607 - (dtucker) [configure.ac] Bug #1098: define $MAIL for HP-UX; report from
4608 brian.smith at agilent com.
4609 - (djm) [configure.ac] missing 'test' call for -with-Werror test
4610
461120051005
4612 - (dtucker) [configure.ac sshd.8] Enable locked account check (a prepended
4613 "*LOCKED*" string) for FreeBSD. Patch jeremie at le-hen.org and
4614 senthilkumar_sen at hotpop.com.
4615
461620051003
4617 - (dtucker) OpenBSD CVS Sync
4618 - markus@cvs.openbsd.org 2005/09/07 08:53:53
4619 [channels.c]
4620 enforce chanid != NULL; ok djm
4621 - markus@cvs.openbsd.org 2005/09/09 19:18:05
4622 [clientloop.c]
4623 typo; from mark at mcs.vuw.ac.nz, bug #1082
4624 - djm@cvs.openbsd.org 2005/09/13 23:40:07
4625 [sshd.c ssh.c misc.h sftp.c ssh-keygen.c ssh-keysign.c sftp-server.c
4626 scp.c misc.c ssh-keyscan.c ssh-add.c ssh-agent.c]
4627 ensure that stdio fds are attached; ok deraadt@
4628 - djm@cvs.openbsd.org 2005/09/19 11:37:34
4629 [ssh_config.5 ssh.1]
4630 mention ability to specify bind_address for DynamicForward and -D options;
4631 bz#1077 spotted by Haruyama Seigo
4632 - djm@cvs.openbsd.org 2005/09/19 11:47:09
4633 [sshd.c]
4634 stop connection abort on rekey with delayed compression enabled when
4635 post-auth privsep is disabled (e.g. when root is logged in); ok dtucker@
4636 - djm@cvs.openbsd.org 2005/09/19 11:48:10
4637 [gss-serv.c]
4638 typo
4639 - jmc@cvs.openbsd.org 2005/09/19 15:38:27
4640 [ssh.1]
4641 some more .Bk/.Ek to avoid ugly line split;
4642 - jmc@cvs.openbsd.org 2005/09/19 15:42:44
4643 [ssh.c]
4644 update -D usage here too;
4645 - djm@cvs.openbsd.org 2005/09/19 23:31:31
4646 [ssh.1]
4647 spelling nit from stevesk@
4648 - djm@cvs.openbsd.org 2005/09/21 23:36:54
4649 [sshd_config.5]
4650 aquire -> acquire, from stevesk@
4651 - djm@cvs.openbsd.org 2005/09/21 23:37:11
4652 [sshd.c]
4653 change label at markus@'s request
4654 - jaredy@cvs.openbsd.org 2005/09/30 20:34:26
4655 [ssh-keyscan.1]
4656 deploy .An -nosplit; ok jmc
4657 - dtucker@cvs.openbsd.org 2005/10/03 07:44:42
4658 [canohost.c]
4659 Relocate check_ip_options call to prevent logging of garbage for
4660 connections with IP options set. bz#1092 from David Leonard,
4661 "looks good" deraadt@
4662 - (dtucker) [regress/README.regress] Bug #989: Document limitation that scp
4663 is required in the system path for the multiplex test to work.
4664
466520050930
4666 - (dtucker) [openbsd-compat/openbsd-compat.h] Bug #1096: Add prototype
4667 for strtoll. Patch from o.flebbe at science-computing.de.
4668 - (dtucker) [monitor.c] Bug #1087: Send loginmsg to preauth privsep
4669 child during PAM account check without clearing it. This restores the
4670 post-login warnings such as LDAP password expiry. Patch from Tomas Mraz
4671 with help from several others.
4672
467320050929
4674 - (dtucker) [monitor_wrap.c] Remove duplicate definition of loginmsg
4675 introduced during sync.
4676
467720050928
4678 - (dtucker) [entropy.c] Use u_char for receiving RNG seed for consistency.
4679 - (dtucker) [auth-pam.c] Bug #1028: send final non-query messages from
4680 PAM via keyboard-interactive. Patch tested by the folks at Vintela.
4681
468220050927
4683 - (dtucker) [entropy.c] Remove unnecessary tests for getuid and geteuid
4684 calls, since they can't possibly fail. ok djm@
4685 - (dtucker) [entropy.c entropy.h sshd.c] Pass RNG seed to the reexec'ed
4686 process when sshd relies on ssh-random-helper. Should result in faster
4687 logins on systems without a real random device or prngd. ok djm@
4688
468920050924
4690 - (dtucker) [auth2.c] Move start_pam() calls out of if-else block to remove
4691 duplicate call. ok djm@
4692
469320050922
4694 - (dtucker) [configure.ac] Use -R linker flag for libedit too; patch from
4695 skeleten at shillest.net.
4696 - (dtucker) [configure.ac] Fix help for --with-opensc; patch from skeleten at
4697 shillest.net.
4698
469920050919
4700 - (tim) [aclocal.m4 configure.ac] Delete acconfig.h and add templates to
4701 AC_DEFINE and AC_DEFINE_UNQUOTED to quiet autoconf 2.59 warning messages.
4702 ok dtucker@
4703
470420050912
4705 - (tim) [configure.ac] Bug 1078. Fix --without-kerberos5. Reported by
4706 Mike Frysinger.
4707
470820050908
4709 - (tim) [defines.h openbsd-compat/port-uw.c] Add long password support to
4710 OpenServer 6 and add osr5bigcrypt support so when someone migrates
4711 passwords between UnixWare and OpenServer they will still work. OK dtucker@
4712
4713$Id: ChangeLog,v 1.5095 2008/07/21 08:22:25 djm Exp $
diff --git a/Makefile.in b/Makefile.in
index c1b7ab5a6..312b8d2b1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
1# $Id: Makefile.in,v 1.297 2008/07/08 14:21:12 djm Exp $ 1# $Id: Makefile.in,v 1.298 2008/11/05 05:20:46 djm Exp $
2 2
3# uncomment if you run a non bourne compatable shell. Ie. csh 3# uncomment if you run a non bourne compatable shell. Ie. csh
4#SHELL = @SH@ 4#SHELL = @SH@
@@ -71,7 +71,7 @@ LIBSSH_OBJS=acss.o authfd.o authfile.o bufaux.o bufbn.o buffer.o \
71 atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \ 71 atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \
72 monitor_fdpass.o rijndael.o ssh-dss.o ssh-rsa.o dh.o kexdh.o \ 72 monitor_fdpass.o rijndael.o ssh-dss.o ssh-rsa.o dh.o kexdh.o \
73 kexgex.o kexdhc.o kexgexc.o scard.o msg.o progressmeter.o dns.o \ 73 kexgex.o kexdhc.o kexgexc.o scard.o msg.o progressmeter.o dns.o \
74 entropy.o scard-opensc.o gss-genr.o umac.o 74 entropy.o scard-opensc.o gss-genr.o umac.o jpake.o schnorr.o
75 75
76SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ 76SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \
77 sshconnect.o sshconnect1.o sshconnect2.o mux.o 77 sshconnect.o sshconnect1.o sshconnect2.o mux.o
@@ -81,7 +81,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o \
81 auth.o auth1.o auth2.o auth-options.o session.o \ 81 auth.o auth1.o auth2.o auth-options.o session.o \
82 auth-chall.o auth2-chall.o groupaccess.o \ 82 auth-chall.o auth2-chall.o groupaccess.o \
83 auth-skey.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ 83 auth-skey.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \
84 auth2-none.o auth2-passwd.o auth2-pubkey.o \ 84 auth2-none.o auth2-passwd.o auth2-pubkey.o auth2-jpake.o \
85 monitor_mm.o monitor.o monitor_wrap.o kexdhs.o kexgexs.o \ 85 monitor_mm.o monitor.o monitor_wrap.o kexdhs.o kexgexs.o \
86 auth-krb5.o \ 86 auth-krb5.o \
87 auth2-gss.o gss-serv.o gss-serv-krb5.o \ 87 auth2-gss.o gss-serv.o gss-serv-krb5.o \
diff --git a/PROTOCOL b/PROTOCOL
index 37fd536d9..5aada630d 100644
--- a/PROTOCOL
+++ b/PROTOCOL
@@ -64,6 +64,12 @@ remain open after a "eow@openssh.com" has been sent and more data may
64still be sent in the other direction. This message does not consume 64still be sent in the other direction. This message does not consume
65window space and may be sent even if no window space is available. 65window space and may be sent even if no window space is available.
66 66
67NB. due to certain broken SSH implementations aborting upon receipt
68of this message (in contravention of RFC4254 section 5.4), this
69message is only sent to OpenSSH peers (identified by banner).
70Other SSH implementations may be whitelisted to receive this message
71upon request.
72
674. connection: disallow additional sessions extension 734. connection: disallow additional sessions extension
68 "no-more-sessions@openssh.com" 74 "no-more-sessions@openssh.com"
69 75
@@ -87,6 +93,11 @@ connection.
87Note that this is not a general defence against compromised clients 93Note that this is not a general defence against compromised clients
88(that is impossible), but it thwarts a simple attack. 94(that is impossible), but it thwarts a simple attack.
89 95
96NB. due to certain broken SSH implementations aborting upon receipt
97of this message, the no-more-sessions request is only sent to OpenSSH
98servers (identified by banner). Other SSH implementations may be
99whitelisted to receive this message upon request.
100
905. connection: Tunnel forward extension "tun@openssh.com" 1015. connection: Tunnel forward extension "tun@openssh.com"
91 102
92OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com" 103OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com"
@@ -240,4 +251,4 @@ The values of the f_flag bitmask are as follows:
240Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are 251Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are
241advertised in the SSH_FXP_VERSION hello with version "2". 252advertised in the SSH_FXP_VERSION hello with version "2".
242 253
243$OpenBSD: PROTOCOL,v 1.11 2008/07/05 05:16:01 djm Exp $ 254$OpenBSD: PROTOCOL,v 1.12 2009/02/14 06:35:49 djm Exp $
diff --git a/README b/README
index 183d92f70..9de00c093 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
1See http://www.openssh.com/txt/release-5.1 for the release notes. 1See http://www.openssh.com/txt/release-5.2 for the release notes.
2 2
3- A Japanese translation of this document and of the OpenSSH FAQ is 3- A Japanese translation of this document and of the OpenSSH FAQ is
4- available at http://www.unixuser.org/~haruyama/security/openssh/index.html 4- available at http://www.unixuser.org/~haruyama/security/openssh/index.html
@@ -62,4 +62,4 @@ References -
62[6] http://www.openbsd.org/cgi-bin/man.cgi?query=style&sektion=9 62[6] http://www.openbsd.org/cgi-bin/man.cgi?query=style&sektion=9
63[7] http://www.openssh.com/faq.html 63[7] http://www.openssh.com/faq.html
64 64
65$Id: README,v 1.69 2008/07/21 08:21:52 djm Exp $ 65$Id: README,v 1.70 2009/02/23 00:11:57 djm Exp $
diff --git a/RFC.nroff b/RFC.nroff
deleted file mode 100644
index d6baed652..000000000
--- a/RFC.nroff
+++ /dev/null
@@ -1,1780 +0,0 @@
1.\" -*- nroff -*-
2.\"
3.\" $OpenBSD: RFC.nroff,v 1.2 2000/10/16 09:38:44 djm Exp $
4.\"
5.pl 10.0i
6.po 0
7.ll 7.2i
8.lt 7.2i
9.nr LL 7.2i
10.nr LT 7.2i
11.ds LF Ylonen
12.ds RF FORMFEED[Page %]
13.ds CF
14.ds LH Internet-Draft
15.ds RH 15 November 1995
16.ds CH SSH (Secure Shell) Remote Login Protocol
17.na
18.hy 0
19.in 0
20Network Working Group T. Ylonen
21Internet-Draft Helsinki University of Technology
22draft-ylonen-ssh-protocol-00.txt 15 November 1995
23Expires: 15 May 1996
24
25.in 3
26
27.ce
28The SSH (Secure Shell) Remote Login Protocol
29
30.ti 0
31Status of This Memo
32
33This document is an Internet-Draft. Internet-Drafts are working
34documents of the Internet Engineering Task Force (IETF), its areas,
35and its working groups. Note that other groups may also distribute
36working documents as Internet-Drafts.
37
38Internet-Drafts are draft documents valid for a maximum of six
39months and may be updated, replaced, or obsoleted by other docu-
40ments at any time. It is inappropriate to use Internet-Drafts as
41reference material or to cite them other than as ``work in pro-
42gress.''
43
44To learn the current status of any Internet-Draft, please check the
45``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
46Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
47munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
48ftp.isi.edu (US West Coast).
49
50The distribution of this memo is unlimited.
51
52.ti 0
53Introduction
54
55SSH (Secure Shell) is a program to log into another computer over a
56network, to execute commands in a remote machine, and to move files
57from one machine to another. It provides strong authentication and
58secure communications over insecure networks. Its features include
59the following:
60.IP o
61Closes several security holes (e.g., IP, routing, and DNS spoofing).
62New authentication methods: .rhosts together with RSA [RSA] based host
63authentication, and pure RSA authentication.
64.IP o
65All communications are automatically and transparently encrypted.
66Encryption is also used to protect integrity.
67.IP o
68X11 connection forwarding provides secure X11 sessions.
69.IP o
70Arbitrary TCP/IP ports can be redirected over the encrypted channel
71in both directions.
72.IP o
73Client RSA-authenticates the server machine in the beginning of every
74connection to prevent trojan horses (by routing or DNS spoofing) and
75man-in-the-middle attacks, and the server RSA-authenticates the client
76machine before accepting .rhosts or /etc/hosts.equiv authentication
77(to prevent DNS, routing, or IP spoofing).
78.IP o
79An authentication agent, running in the user's local workstation or
80laptop, can be used to hold the user's RSA authentication keys.
81.RT
82
83The goal has been to make the software as easy to use as possible for
84ordinary users. The protocol has been designed to be as secure as
85possible while making it possible to create implementations that
86are easy to use and install. The sample implementation has a number
87of convenient features that are not described in this document as they
88are not relevant for the protocol.
89
90
91.ti 0
92Overview of the Protocol
93
94The software consists of a server program running on a server machine,
95and a client program running on a client machine (plus a few auxiliary
96programs). The machines are connected by an insecure IP [RFC0791]
97network (that can be monitored, tampered with, and spoofed by hostile
98parties).
99
100A connection is always initiated by the client side. The server
101listens on a specific port waiting for connections. Many clients may
102connect to the same server machine.
103
104The client and the server are connected via a TCP/IP [RFC0793] socket
105that is used for bidirectional communication. Other types of
106transport can be used but are currently not defined.
107
108When the client connects the server, the server accepts the connection
109and responds by sending back its version identification string. The
110client parses the server's identification, and sends its own
111identification. The purpose of the identification strings is to
112validate that the connection was to the correct port, declare the
113protocol version number used, and to declare the software version used
114on each side (for debugging purposes). The identification strings are
115human-readable. If either side fails to understand or support the
116other side's version, it closes the connection.
117
118After the protocol identification phase, both sides switch to a packet
119based binary protocol. The server starts by sending its host key
120(every host has an RSA key used to authenticate the host), server key
121(an RSA key regenerated every hour), and other information to the
122client. The client then generates a 256 bit session key, encrypts it
123using both RSA keys (see below for details), and sends the encrypted
124session key and selected cipher type to the server. Both sides then
125turn on encryption using the selected algorithm and key. The server
126sends an encrypted confirmation message to the client.
127
128The client then authenticates itself using any of a number of
129authentication methods. The currently supported authentication
130methods are .rhosts or /etc/hosts.equiv authentication (disabled by
131default), the same with RSA-based host authentication, RSA
132authentication, and password authentication.
133
134After successful authentication, the client makes a number of requests
135to prepare for the session. Typical requests include allocating a
136pseudo tty, starting X11 [X11] or TCP/IP port forwarding, starting
137authentication agent forwarding, and executing the shell or a command.
138
139When a shell or command is executed, the connection enters interactive
140session mode. In this mode, data is passed in both directions,
141new forwarded connections may be opened, etc. The interactive session
142normally terminates when the server sends the exit status of the
143program to the client.
144
145
146The protocol makes several reservations for future extensibility.
147First of all, the initial protocol identification messages include the
148protocol version number. Second, the first packet by both sides
149includes a protocol flags field, which can be used to agree on
150extensions in a compatible manner. Third, the authentication and
151session preparation phases work so that the client sends requests to
152the server, and the server responds with success or failure. If the
153client sends a request that the server does not support, the server
154simply returns failure for it. This permits compatible addition of
155new authentication methods and preparation operations. The
156interactive session phase, on the other hand, works asynchronously and
157does not permit the use of any extensions (because there is no easy
158and reliable way to signal rejection to the other side and problems
159would be hard to debug). Any compatible extensions to this phase must
160be agreed upon during any of the earlier phases.
161
162.ti 0
163The Binary Packet Protocol
164
165After the protocol identification strings, both sides only send
166specially formatted packets. The packet layout is as follows:
167.IP o
168Packet length: 32 bit unsigned integer, coded as four 8-bit bytes, msb
169first. Gives the length of the packet, not including the length field
170and padding. The maximum length of a packet (not including the length
171field and padding) is 262144 bytes.
172.IP o
173Padding: 1-8 bytes of random data (or zeroes if not encrypting). The
174amount of padding is (8 - (length % 8)) bytes (where % stands for the
175modulo operator). The rationale for always having some random padding
176at the beginning of each packet is to make known plaintext attacks
177more difficult.
178.IP o
179Packet type: 8-bit unsigned byte. The value 255 is reserved for
180future extension.
181.IP o
182Data: binary data bytes, depending on the packet type. The number of
183data bytes is the "length" field minus 5.
184.IP o
185Check bytes: 32-bit crc, four 8-bit bytes, msb first. The crc is the
186Cyclic Redundancy Check, with the polynomial 0xedb88320, of the
187Padding, Packet type, and Data fields. The crc is computed before
188any encryption.
189.RT
190
191The packet, except for the length field, may be encrypted using any of
192a number of algorithms. The length of the encrypted part (Padding +
193Type + Data + Check) is always a multiple of 8 bytes. Typically the
194cipher is used in a chained mode, with all packets chained together as
195if it was a single data stream (the length field is never included in
196the encryption process). Details of encryption are described below.
197
198When the session starts, encryption is turned off. Encryption is
199enabled after the client has sent the session key. The encryption
200algorithm to use is selected by the client.
201
202
203.ti 0
204Packet Compression
205
206If compression is supported (it is an optional feature, see
207SSH_CMSG_REQUEST_COMPRESSION below), the packet type and data fields
208of the packet are compressed using the gzip deflate algorithm [GZIP].
209If compression is in effect, the packet length field indicates the
210length of the compressed data, plus 4 for the crc. The amount of
211padding is computed from the compressed data, so that the amount of
212data to be encrypted becomes a multiple of 8 bytes.
213
214When compressing, the packets (type + data portions) in each direction
215are compressed as if they formed a continuous data stream, with only the
216current compression block flushed between packets. This corresponds
217to the GNU ZLIB library Z_PARTIAL_FLUSH option. The compression
218dictionary is not flushed between packets. The two directions are
219compressed independently of each other.
220
221
222.ti 0
223Packet Encryption
224
225The protocol supports several encryption methods. During session
226initialization, the server sends a bitmask of all encryption methods
227that it supports, and the client selects one of these methods. The
228client also generates a 256-bit random session key (32 8-bit bytes) and
229sends it to the server.
230
231The encryption methods supported by the current implementation, and
232their codes are:
233.TS
234center;
235l r l.
236SSH_CIPHER_NONE 0 No encryption
237SSH_CIPHER_IDEA 1 IDEA in CFB mode
238SSH_CIPHER_DES 2 DES in CBC mode
239SSH_CIPHER_3DES 3 Triple-DES in CBC mode
240SSH_CIPHER_TSS 4 An experimental stream cipher
241SSH_CIPHER_RC4 5 RC4
242.TE
243
244All implementations are required to support SSH_CIPHER_DES and
245SSH_CIPHER_3DES. Supporting SSH_CIPHER_IDEA, SSH_CIPHER_RC4, and
246SSH_CIPHER_NONE is recommended. Support for SSH_CIPHER_TSS is
247optional (and it is not described in this document). Other ciphers
248may be added at a later time; support for them is optional.
249
250For encryption, the encrypted portion of the packet is considered a
251linear byte stream. The length of the stream is always a multiple of
2528. The encrypted portions of consecutive packets (in the same
253direction) are encrypted as if they were a continuous buffer (that is,
254any initialization vectors are passed from the previous packet to the
255next packet). Data in each direction is encrypted independently.
256.IP SSH_CIPHER_DES
257The key is taken from the first 8 bytes of the session key. The least
258significant bit of each byte is ignored. This results in 56 bits of
259key data. DES [DES] is used in CBC mode. The iv (initialization vector) is
260initialized to all zeroes.
261.IP SSH_CIPHER_3DES
262The variant of triple-DES used here works as follows: there are three
263independent DES-CBC ciphers, with independent initialization vectors.
264The data (the whole encrypted data stream) is first encrypted with the
265first cipher, then decrypted with the second cipher, and finally
266encrypted with the third cipher. All these operations are performed
267in CBC mode.
268
269The key for the first cipher is taken from the first 8 bytes of the
270session key; the key for the next cipher from the next 8 bytes, and
271the key for the third cipher from the following 8 bytes. All three
272initialization vectors are initialized to zero.
273
274(Note: the variant of 3DES used here differs from some other
275descriptions.)
276.IP SSH_CIPHER_IDEA
277The key is taken from the first 16 bytes of the session key. IDEA
278[IDEA] is used in CFB mode. The initialization vector is initialized
279to all zeroes.
280.IP SSH_CIPHER_TSS
281All 32 bytes of the session key are used as the key.
282
283There is no reference available for the TSS algorithm; it is currently
284only documented in the sample implementation source code. The
285security of this cipher is unknown (but it is quite fast). The cipher
286is basically a stream cipher that uses MD5 as a random number
287generator and takes feedback from the data.
288.IP SSH_CIPHER_RC4
289The first 16 bytes of the session key are used as the key for the
290server to client direction. The remaining 16 bytes are used as the
291key for the client to server direction. This gives independent
292128-bit keys for each direction.
293
294This algorithm is the alleged RC4 cipher posted to the Usenet in 1995.
295It is widely believed to be equivalent with the original RSADSI RC4
296cipher. This is a very fast algorithm.
297.RT
298
299
300.ti 0
301Data Type Encodings
302
303The Data field of each packet contains data encoded as described in
304this section. There may be several data items; each item is coded as
305described here, and their representations are concatenated together
306(without any alignment or padding).
307
308Each data type is stored as follows:
309.IP "8-bit byte"
310The byte is stored directly as a single byte.
311.IP "32-bit unsigned integer"
312Stored in 4 bytes, msb first.
313.IP "Arbitrary length binary string"
314First 4 bytes are the length of the string, msb first (not including
315the length itself). The following "length" bytes are the string
316value. There are no terminating null characters.
317.IP "Multiple-precision integer"
318First 2 bytes are the number of bits in the integer, msb first (for
319example, the value 0x00012345 would have 17 bits). The value zero has
320zero bits. It is permissible that the number of bits be larger than the
321real number of bits.
322
323The number of bits is followed by (bits + 7) / 8 bytes of binary data,
324msb first, giving the value of the integer.
325.RT
326
327
328.ti 0
329TCP/IP Port Number and Other Options
330
331The server listens for connections on TCP/IP port 22.
332
333The client may connect the server from any port. However, if the
334client wishes to use any form of .rhosts or /etc/hosts.equiv
335authentication, it must connect from a privileged port (less than
3361024).
337
338For the IP Type of Service field [RFC0791], it is recommended that
339interactive sessions (those having a user terminal or forwarding X11
340connections) use the IPTOS_LOWDELAY, and non-interactive connections
341use IPTOS_THROUGHPUT.
342
343It is recommended that keepalives are used, because otherwise programs
344on the server may never notice if the other end of the connection is
345rebooted.
346
347
348.ti 0
349Protocol Version Identification
350
351After the socket is opened, the server sends an identification string,
352which is of the form
353"SSH-<protocolmajor>.<protocolminor>-<version>\\n", where
354<protocolmajor> and <protocolminor> are integers and specify the
355protocol version number (not software distribution version).
356<version> is server side software version string (max 40 characters);
357it is not interpreted by the remote side but may be useful for
358debugging.
359
360The client parses the server's string, and sends a corresponding
361string with its own information in response. If the server has lower
362version number, and the client contains special code to emulate it,
363the client responds with the lower number; otherwise it responds with
364its own number. The server then compares the version number the
365client sent with its own, and determines whether they can work
366together. The server either disconnects, or sends the first packet
367using the binary packet protocol and both sides start working
368according to the lower of the protocol versions.
369
370By convention, changes which keep the protocol compatible with
371previous versions keep the same major protocol version; changes that
372are not compatible increment the major version (which will hopefully
373never happen). The version described in this document is 1.3.
374
375The client will
376
377.ti 0
378Key Exchange and Server Host Authentication
379
380The first message sent by the server using the packet protocol is
381SSH_SMSG_PUBLIC_KEY. It declares the server's host key, server public
382key, supported ciphers, supported authentication methods, and flags
383for protocol extensions. It also contains a 64-bit random number
384(cookie) that must be returned in the client's reply (to make IP
385spoofing more difficult). No encryption is used for this message.
386
387Both sides compute a session id as follows. The modulus of the server
388key is interpreted as a byte string (without explicit length field,
389with minimum length able to hold the whole value), most significant
390byte first. This string is concatenated with the server host key
391interpreted the same way. Additionally, the cookie is concatenated
392with this. Both sides compute MD5 of the resulting string. The
393resulting 16 bytes (128 bits) are stored by both parties and are
394called the session id.
395
396The client responds with a SSH_CMSG_SESSION_KEY message, which
397contains the selected cipher type, a copy of the 64-bit cookie sent by
398the server, client's protocol flags, and a session key encrypted
399with both the server's host key and server key. No encryption is used
400for this message.
401
402The session key is 32 8-bit bytes (a total of 256 random bits
403generated by the client). The client first xors the 16 bytes of the
404session id with the first 16 bytes of the session key. The resulting
405string is then encrypted using the smaller key (one with smaller
406modulus), and the result is then encrypted using the other key. The
407number of bits in the public modulus of the two keys must differ by at
408least 128 bits.
409
410At each encryption step, a multiple-precision integer is constructed
411from the data to be encrypted as follows (the integer is here
412interpreted as a sequence of bytes, msb first; the number of bytes is
413the number of bytes needed to represent the modulus).
414
415The most significant byte (which is only partial as the value must be
416less than the public modulus, which is never a power of two) is zero.
417
418The next byte contains the value 2 (which stands for public-key
419encrypted data in the PKCS standard [PKCS#1]). Then, there are
420non-zero random bytes to fill any unused space, a zero byte, and the
421data to be encrypted in the least significant bytes, the last byte of
422the data in the least significant byte.
423
424This algorithm is used twice. First, it is used to encrypt the 32
425random bytes generated by the client to be used as the session key
426(xored by the session id). This value is converted to an integer as
427described above, and encrypted with RSA using the key with the smaller
428modulus. The resulting integer is converted to a byte stream, msb
429first. This byte stream is padded and encrypted identically using the
430key with the larger modulus.
431
432After the client has sent the session key, it starts to use the
433selected algorithm and key for decrypting any received packets, and
434for encrypting any sent packets. Separate ciphers are used for
435different directions (that is, both directions have separate
436initialization vectors or other state for the ciphers).
437
438When the server has received the session key message, and has turned
439on encryption, it sends a SSH_SMSG_SUCCESS message to the client.
440
441The recommended size of the host key is 1024 bits, and 768 bits for
442the server key. The minimum size is 512 bits for the smaller key.
443
444
445.ti 0
446Declaring the User Name
447
448The client then sends a SSH_CMSG_USER message to the server. This
449message specifies the user name to log in as.
450
451The server validates that such a user exists, checks whether
452authentication is needed, and responds with either SSH_SMSG_SUCCESS or
453SSH_SMSG_FAILURE. SSH_SMSG_SUCCESS indicates that no authentication
454is needed for this user (no password), and authentication phase has
455now been completed. SSH_SMSG_FAILURE indicates that authentication is
456needed (or the user does not exist).
457
458If the user does not exist, it is recommended that this returns
459failure, but the server keeps reading messages from the client, and
460responds to any messages (except SSH_MSG_DISCONNECT, SSH_MSG_IGNORE,
461and SSH_MSG_DEBUG) with SSH_SMSG_FAILURE. This way the client cannot
462be certain whether the user exists.
463
464
465.ti 0
466Authentication Phase
467
468Provided the server didn't immediately accept the login, an
469authentication exchange begins. The client sends messages to the
470server requesting different types of authentication in arbitrary order as
471many times as desired (however, the server may close the connection
472after a timeout). The server always responds with SSH_SMSG_SUCCESS if
473it has accepted the authentication, and with SSH_SMSG_FAILURE if it has
474denied authentication with the requested method or it does not
475recognize the message. Some authentication methods cause an exchange
476of further messages before the final result is sent. The
477authentication phase ends when the server responds with success.
478
479The recommended value for the authentication timeout (timeout before
480disconnecting if no successful authentication has been made) is 5
481minutes.
482
483The following authentication methods are currently supported:
484.TS
485center;
486l r l.
487SSH_AUTH_RHOSTS 1 .rhosts or /etc/hosts.equiv
488SSH_AUTH_RSA 2 pure RSA authentication
489SSH_AUTH_PASSWORD 3 password authentication
490SSH_AUTH_RHOSTS_RSA 4 .rhosts with RSA host authentication
491.TE
492.IP SSH_AUTH_RHOSTS
493
494This is the authentication method used by rlogin and rsh [RFC1282].
495
496The client sends SSH_CMSG_AUTH_RHOSTS with the client-side user name
497as an argument.
498
499The server checks whether to permit authentication. On UNIX systems,
500this is usually done by checking /etc/hosts.equiv, and .rhosts in the
501user's home directory. The connection must come from a privileged
502port.
503
504It is recommended that the server checks that there are no IP options
505(such as source routing) specified for the socket before accepting
506this type of authentication. The client host name should be
507reverse-mapped and then forward mapped to ensure that it has the
508proper IP-address.
509
510This authentication method trusts the remote host (root on the remote
511host can pretend to be any other user on that host), the name
512services, and partially the network: anyone who can see packets coming
513out from the server machine can do IP-spoofing and pretend to be any
514machine; however, the protocol prevents blind IP-spoofing (which used
515to be possible with rlogin).
516
517Many sites probably want to disable this authentication method because
518of the fundamental insecurity of conventional .rhosts or
519/etc/hosts.equiv authentication when faced with spoofing. It is
520recommended that this method not be supported by the server by
521default.
522.IP SSH_AUTH_RHOSTS_RSA
523
524In addition to conventional .rhosts and hosts.equiv authentication,
525this method additionally requires that the client host be
526authenticated using RSA.
527
528The client sends SSH_CMSG_AUTH_RHOSTS_RSA specifying the client-side
529user name, and the public host key of the client host.
530
531The server first checks if normal .rhosts or /etc/hosts.equiv
532authentication would be accepted, and if not, responds with
533SSH_SMSG_FAILURE. Otherwise, it checks whether it knows the host key
534for the client machine (using the same name for the host that was used
535for checking the .rhosts and /etc/hosts.equiv files). If it does not
536know the RSA key for the client, access is denied and SSH_SMSG_FAILURE
537is sent.
538
539If the server knows the host key of the client machine, it verifies
540that the given host key matches that known for the client. If not,
541access is denied and SSH_SMSG_FAILURE is sent.
542
543The server then sends a SSH_SMSG_AUTH_RSA_CHALLENGE message containing
544an encrypted challenge for the client. The challenge is 32 8-bit
545random bytes (256 bits). When encrypted, the highest (partial) byte
546is left as zero, the next byte contains the value 2, the following are
547non-zero random bytes, followed by a zero byte, and the challenge put
548in the remaining bytes. This is then encrypted using RSA with the
549client host's public key. (The padding and encryption algorithm is
550the same as that used for the session key.)
551
552The client decrypts the challenge using its private host key,
553concatenates this with the session id, and computes an MD5 checksum
554of the resulting 48 bytes. The MD5 output is returned as 16 bytes in
555a SSH_CMSG_AUTH_RSA_RESPONSE message. (MD5 is used to deter chosen
556plaintext attacks against RSA; the session id binds it to a specific
557session).
558
559The server verifies that the MD5 of the decrypted challenge returned by
560the client matches that of the original value, and sends SSH_SMSG_SUCCESS if
561so. Otherwise it sends SSH_SMSG_FAILURE and refuses the
562authentication attempt.
563
564This authentication method trusts the client side machine in that root
565on that machine can pretend to be any user on that machine.
566Additionally, it trusts the client host key. The name and/or IP
567address of the client host is only used to select the public host key.
568The same host name is used when scanning .rhosts or /etc/hosts.equiv
569and when selecting the host key. It would in principle be possible to
570eliminate the host name entirely and substitute it directly by the
571host key. IP and/or DNS [RFC1034] spoofing can only be used
572to pretend to be a host for which the attacker has the private host
573key.
574.IP SSH_AUTH_RSA
575
576The idea behind RSA authentication is that the server recognizes the
577public key offered by the client, generates a random challenge, and
578encrypts the challenge with the public key. The client must then
579prove that it has the corresponding private key by decrypting the
580challenge.
581
582The client sends SSH_CMSG_AUTH_RSA with public key modulus (n) as an
583argument.
584
585The server may respond immediately with SSH_SMSG_FAILURE if it does
586not permit authentication with this key. Otherwise it generates a
587challenge, encrypts it using the user's public key (stored on the
588server and identified using the modulus), and sends
589SSH_SMSG_AUTH_RSA_CHALLENGE with the challenge (mp-int) as an
590argument.
591
592The challenge is 32 8-bit random bytes (256 bits). When encrypted,
593the highest (partial) byte is left as zero, the next byte contains the
594value 2, the following are non-zero random bytes, followed by a zero
595byte, and the challenge put in the remaining bytes. This is then
596encrypted with the public key. (The padding and encryption algorithm
597is the same as that used for the session key.)
598
599The client decrypts the challenge using its private key, concatenates
600it with the session id, and computes an MD5 checksum of the resulting
60148 bytes. The MD5 output is returned as 16 bytes in a
602SSH_CMSG_AUTH_RSA_RESPONSE message. (Note that the MD5 is necessary
603to avoid chosen plaintext attacks against RSA; the session id binds it
604to a specific session.)
605
606The server verifies that the MD5 of the decrypted challenge returned
607by the client matches that of the original value, and sends
608SSH_SMSG_SUCCESS if so. Otherwise it sends SSH_SMSG_FAILURE and
609refuses the authentication attempt.
610
611This authentication method does not trust the remote host, the
612network, name services, or anything else. Authentication is based
613solely on the possession of the private identification keys. Anyone
614in possession of the private keys can log in, but nobody else.
615
616The server may have additional requirements for a successful
617authentiation. For example, to limit damage due to a compromised RSA
618key, a server might restrict access to a limited set of hosts.
619.IP SSH_AUTH_PASSWORD
620
621The client sends a SSH_CMSG_AUTH_PASSWORD message with the plain text
622password. (Note that even though the password is plain text inside
623the message, it is normally encrypted by the packet mechanism.)
624
625The server verifies the password, and sends SSH_SMSG_SUCCESS if
626authentication was accepted and SSH_SMSG_FAILURE otherwise.
627
628Note that the password is read from the user by the client; the user
629never interacts with a login program.
630
631This authentication method does not trust the remote host, the
632network, name services or anything else. Authentication is based
633solely on the possession of the password. Anyone in possession of the
634password can log in, but nobody else.
635.RT
636
637.ti 0
638Preparatory Operations
639
640After successful authentication, the server waits for a request from
641the client, processes the request, and responds with SSH_SMSG_SUCCESS
642whenever a request has been successfully processed. If it receives a
643message that it does not recognize or it fails to honor a request, it
644returns SSH_SMSG_FAILURE. It is expected that new message types might
645be added to this phase in future.
646
647The following messages are currently defined for this phase.
648.IP SSH_CMSG_REQUEST_COMPRESSION
649Requests that compression be enabled for this session. A
650gzip-compatible compression level (1-9) is passed as an argument.
651.IP SSH_CMSG_REQUEST_PTY
652Requests that a pseudo terminal device be allocated for this session.
653The user terminal type and terminal modes are supplied as arguments.
654.IP SSH_CMSG_X11_REQUEST_FORWARDING
655Requests forwarding of X11 connections from the remote machine to the
656local machine over the secure channel. Causes an internet-domain
657socket to be allocated and the DISPLAY variable to be set on the server.
658X11 authentication data is automatically passed to the server, and the
659client may implement spoofing of authentication data for added
660security. The authentication data is passed as arguments.
661.IP SSH_CMSG_PORT_FORWARD_REQUEST
662Requests forwarding of a TCP/IP port on the server host over the
663secure channel. What happens is that whenever a connection is made to
664the port on the server, a connection will be made from the client end
665to the specified host/port. Any user can forward unprivileged ports;
666only the root can forward privileged ports (as determined by
667authentication done earlier).
668.IP SSH_CMSG_AGENT_REQUEST_FORWARDING
669Requests forwarding of the connection to the authentication agent.
670.IP SSH_CMSG_EXEC_SHELL
671Starts a shell (command interpreter) for the user, and moves into
672interactive session mode.
673.IP SSH_CMSG_EXEC_CMD
674Executes the given command (actually "<shell> -c <command>" or
675equivalent) for the user, and moves into interactive session mode.
676.RT
677
678
679.ti 0
680Interactive Session and Exchange of Data
681
682During the interactive session, any data written by the shell or
683command running on the server machine is forwarded to stdin or
684stderr on the client machine, and any input available from stdin on
685the client machine is forwarded to the program on the server machine.
686
687All exchange is asynchronous; either side can send at any time, and
688there are no acknowledgements (TCP/IP already provides reliable
689transport, and the packet protocol protects against tampering or IP
690spoofing).
691
692When the client receives EOF from its standard input, it will send
693SSH_CMSG_EOF; however, this in no way terminates the exchange. The
694exchange terminates and interactive mode is left when the server sends
695SSH_SMSG_EXITSTATUS to indicate that the client program has
696terminated. Alternatively, either side may disconnect at any time by
697sending SSH_MSG_DISCONNECT or closing the connection.
698
699The server may send any of the following messages:
700.IP SSH_SMSG_STDOUT_DATA
701Data written to stdout by the program running on the server. The data
702is passed as a string argument. The client writes this data to
703stdout.
704.IP SSH_SMSG_STDERR_DATA
705Data written to stderr by the program running on the server. The data
706is passed as a string argument. The client writes this data to
707stderr. (Note that if the program is running on a tty, it is not
708possible to separate stdout and stderr data, and all data will be sent
709as stdout data.)
710.IP SSH_SMSG_EXITSTATUS
711Indicates that the shell or command has exited. Exit status is passed
712as an integer argument. This message causes termination of the
713interactive session.
714.IP SSH_SMSG_AGENT_OPEN
715Indicates that someone on the server side is requesting a connection
716to the authentication agent. The server-side channel number is passed
717as an argument. The client must respond with either
718SSH_CHANNEL_OPEN_CONFIRMATION or SSH_CHANNEL_OPEN_FAILURE.
719.IP SSH_SMSG_X11_OPEN
720Indicates that a connection has been made to the X11 socket on the
721server side and should be forwarded to the real X server. An integer
722argument indicates the channel number allocated for this connection on
723the server side. The client should send back either
724SSH_MSG_CHANNEL_OPEN_CONFIRMATION or SSH_MSG_CHANNEL_OPEN_FAILURE with
725the same server side channel number.
726.IP SSH_MSG_PORT_OPEN
727Indicates that a connection has been made to a port on the server side
728for which forwarding has been requested. Arguments are server side
729channel number, host name to connect to, and port to connect to. The
730client should send back either
731SSH_MSG_CHANNEL_OPEN_CONFIRMATION or SSH_MSG_CHANNEL_OPEN_FAILURE with
732the same server side channel number.
733.IP SSH_MSG_CHANNEL_OPEN_CONFIRMATION
734This is sent by the server to indicate that it has opened a connection
735as requested in a previous message. The first argument indicates the
736client side channel number, and the second argument is the channel number
737that the server has allocated for this connection.
738.IP SSH_MSG_CHANNEL_OPEN_FAILURE
739This is sent by the server to indicate that it failed to open a
740connection as requested in a previous message. The client-side
741channel number is passed as an argument. The client will close the
742descriptor associated with the channel and free the channel.
743.IP SSH_MSG_CHANNEL_DATA
744This packet contains data for a channel from the server. The first
745argument is the client-side channel number, and the second argument (a
746string) is the data.
747.IP SSH_MSG_CHANNEL_CLOSE
748This is sent by the server to indicate that whoever was in the other
749end of the channel has closed it. The argument is the client side channel
750number. The client will let all buffered data in the channel to
751drain, and when ready, will close the socket, free the channel, and
752send the server a SSH_MSG_CHANNEL_CLOSE_CONFIRMATION message for the
753channel.
754.IP SSH_MSG_CHANNEL_CLOSE_CONFIRMATION
755This is send by the server to indicate that a channel previously
756closed by the client has now been closed on the server side as well.
757The argument indicates the client channel number. The client frees
758the channel.
759.RT
760
761The client may send any of the following messages:
762.IP SSH_CMSG_STDIN_DATA
763This is data to be sent as input to the program running on the server.
764The data is passed as a string.
765.IP SSH_CMSG_EOF
766Indicates that the client has encountered EOF while reading standard
767input. The server will allow any buffered input data to drain, and
768will then close the input to the program.
769.IP SSH_CMSG_WINDOW_SIZE
770Indicates that window size on the client has been changed. The server
771updates the window size of the tty and causes SIGWINCH to be sent to
772the program. The new window size is passed as four integer arguments:
773row, col, xpixel, ypixel.
774.IP SSH_MSG_PORT_OPEN
775Indicates that a connection has been made to a port on the client side
776for which forwarding has been requested. Arguments are client side
777channel number, host name to connect to, and port to connect to. The
778server should send back either SSH_MSG_CHANNEL_OPEN_CONFIRMATION or
779SSH_MSG_CHANNEL_OPEN_FAILURE with the same client side channel number.
780.IP SSH_MSG_CHANNEL_OPEN_CONFIRMATION
781This is sent by the client to indicate that it has opened a connection
782as requested in a previous message. The first argument indicates the
783server side channel number, and the second argument is the channel
784number that the client has allocated for this connection.
785.IP SSH_MSG_CHANNEL_OPEN_FAILURE
786This is sent by the client to indicate that it failed to open a
787connection as requested in a previous message. The server side
788channel number is passed as an argument. The server will close the
789descriptor associated with the channel and free the channel.
790.IP SSH_MSG_CHANNEL_DATA
791This packet contains data for a channel from the client. The first
792argument is the server side channel number, and the second argument (a
793string) is the data.
794.IP SSH_MSG_CHANNEL_CLOSE
795This is sent by the client to indicate that whoever was in the other
796end of the channel has closed it. The argument is the server channel
797number. The server will allow buffered data to drain, and when ready,
798will close the socket, free the channel, and send the client a
799SSH_MSG_CHANNEL_CLOSE_CONFIRMATION message for the channel.
800.IP SSH_MSG_CHANNEL_CLOSE_CONFIRMATION
801This is send by the client to indicate that a channel previously
802closed by the server has now been closed on the client side as well.
803The argument indicates the server channel number. The server frees
804the channel.
805.RT
806
807Any unsupported messages during interactive mode cause the connection
808to be terminated with SSH_MSG_DISCONNECT and an error message.
809Compatible protocol upgrades should agree about any extensions during
810the preparation phase or earlier.
811
812
813.ti 0
814Termination of the Connection
815
816Normal termination of the connection is always initiated by the server
817by sending SSH_SMSG_EXITSTATUS after the program has exited. The
818client responds to this message by sending SSH_CMSG_EXIT_CONFIRMATION
819and closes the socket; the server then closes the socket. There are
820two purposes for the confirmation: some systems may lose previously
821sent data when the socket is closed, and closing the client side first
822causes any TCP/IP TIME_WAIT [RFC0793] waits to occur on the client side, not
823consuming server resources.
824
825If the program terminates due to a signal, the server will send
826SSH_MSG_DISCONNECT with an appropriate message. If the connection is
827closed, all file descriptors to the program will be closed and the
828server will exit. If the program runs on a tty, the kernel sends it
829the SIGHUP signal when the pty master side is closed.
830
831.ti 0
832Protocol Flags
833
834Both the server and the client pass 32 bits of protocol flags to the
835other side. The flags are intended for compatible protocol extension;
836the server first announces which added capabilities it supports, and
837the client then sends the capabilities that it supports.
838
839The following flags are currently defined (the values are bit masks):
840.IP "1 SSH_PROTOFLAG_SCREEN_NUMBER"
841This flag can only be sent by the client. It indicates that the X11
842forwarding requests it sends will include the screen number.
843.IP "2 SSH_PROTOFLAG_HOST_IN_FWD_OPEN"
844If both sides specify this flag, SSH_SMSG_X11_OPEN and
845SSH_MSG_PORT_OPEN messages will contain an additional field containing
846a description of the host at the other end of the connection.
847.RT
848
849.ti 0
850Detailed Description of Packet Types and Formats
851
852The supported packet types and the corresponding message numbers are
853given in the following table. Messages with _MSG_ in their name may
854be sent by either side. Messages with _CMSG_ are only sent by the
855client, and messages with _SMSG_ only by the server.
856
857A packet may contain additional data after the arguments specified
858below. Any such data should be ignored by the receiver. However, it
859is recommended that no such data be stored without good reason. (This
860helps build compatible extensions.)
861.IP "0 SSH_MSG_NONE"
862This code is reserved. This message type is never sent.
863.IP "1 SSH_MSG_DISCONNECT"
864.TS
865;
866l l.
867string Cause of disconnection
868.TE
869This message may be sent by either party at any time. It causes the
870immediate disconnection of the connection. The message is intended to
871be displayed to a human, and describes the reason for disconnection.
872.IP "2 SSH_SMSG_PUBLIC_KEY"
873.TS
874;
875l l.
8768 bytes anti_spoofing_cookie
87732-bit int server_key_bits
878mp-int server_key_public_exponent
879mp-int server_key_public_modulus
88032-bit int host_key_bits
881mp-int host_key_public_exponent
882mp-int host_key_public_modulus
88332-bit int protocol_flags
88432-bit int supported_ciphers_mask
88532-bit int supported_authentications_mask
886.TE
887Sent as the first message by the server. This message gives the
888server's host key, server key, protocol flags (intended for compatible
889protocol extension), supported_ciphers_mask (which is the
890bitwise or of (1 << cipher_number), where << is the left shift
891operator, for all supported ciphers), and
892supported_authentications_mask (which is the bitwise or of (1 <<
893authentication_type) for all supported authentication types). The
894anti_spoofing_cookie is 64 random bytes, and must be sent back
895verbatim by the client in its reply. It is used to make IP-spoofing
896more difficult (encryption and host keys are the real defense against
897spoofing).
898.IP "3 SSH_CMSG_SESSION_KEY"
899.TS
900;
901l l.
9021 byte cipher_type (must be one of the supported values)
9038 bytes anti_spoofing_cookie (must match data sent by the server)
904mp-int double-encrypted session key
90532-bit int protocol_flags
906.TE
907Sent by the client as the first message in the session. Selects the
908cipher to use, and sends the encrypted session key to the server. The
909anti_spoofing_cookie must be the same bytes that were sent by the
910server. Protocol_flags is intended for negotiating compatible
911protocol extensions.
912.IP "4 SSH_CMSG_USER"
913.TS
914;
915l l.
916string user login name on server
917.TE
918Sent by the client to begin authentication. Specifies the user name
919on the server to log in as. The server responds with SSH_SMSG_SUCCESS
920if no authentication is needed for this user, or SSH_SMSG_FAILURE if
921authentication is needed (or the user does not exist). [Note to the
922implementator: the user name is of arbitrary size. The implementation
923must be careful not to overflow internal buffers.]
924.IP "5 SSH_CMSG_AUTH_RHOSTS"
925.TS
926;
927l l.
928string client-side user name
929.TE
930Requests authentication using /etc/hosts.equiv and .rhosts (or
931equivalent mechanisms). This authentication method is normally
932disabled in the server because it is not secure (but this is the
933method used by rsh and rlogin). The server responds with
934SSH_SMSG_SUCCESS if authentication was successful, and
935SSH_SMSG_FAILURE if access was not granted. The server should check
936that the client side port number is less than 1024 (a privileged
937port), and immediately reject authentication if it is not. Supporting
938this authentication method is optional. This method should normally
939not be enabled in the server because it is not safe. (However, not
940enabling this only helps if rlogind and rshd are disabled.)
941.IP "6 SSH_CMSG_AUTH_RSA"
942.TS
943;
944l l.
945mp-int identity_public_modulus
946.TE
947Requests authentication using pure RSA authentication. The server
948checks if the given key is permitted to log in, and if so, responds
949with SSH_SMSG_AUTH_RSA_CHALLENGE. Otherwise, it responds with
950SSH_SMSG_FAILURE. The client often tries several different keys in
951sequence until one supported by the server is found. Authentication
952is accepted if the client gives the correct response to the challenge.
953The server is free to add other criteria for authentication, such as a
954requirement that the connection must come from a certain host. Such
955additions are not visible at the protocol level. Supporting this
956authentication method is optional but recommended.
957.IP "7 SSH_SMSG_AUTH_RSA_CHALLENGE"
958.TS
959;
960l l.
961mp-int encrypted challenge
962.TE
963Presents an RSA authentication challenge to the client. The challenge
964is a 256-bit random value encrypted as described elsewhere in this
965document. The client must decrypt the challenge using the RSA private
966key, compute MD5 of the challenge plus session id, and send back the
967resulting 16 bytes using SSH_CMSG_AUTH_RSA_RESPONSE.
968.IP "8 SSH_CMSG_AUTH_RSA_RESPONSE"
969.TS
970;
971l l.
97216 bytes MD5 of decrypted challenge
973.TE
974This message is sent by the client in response to an RSA challenge.
975The MD5 checksum is returned instead of the decrypted challenge to
976deter known-plaintext attacks against the RSA key. The server
977responds to this message with either SSH_SMSG_SUCCESS or
978SSH_SMSG_FAILURE.
979.IP "9 SSH_CMSG_AUTH_PASSWORD"
980.TS
981;
982l l.
983string plain text password
984.TE
985Requests password authentication using the given password. Note that
986even though the password is plain text inside the packet, the whole
987packet is normally encrypted by the packet layer. It would not be
988possible for the client to perform password encryption/hashing,
989because it cannot know which kind of encryption/hashing, if any, the
990server uses. The server responds to this message with
991SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE.
992.IP "10 SSH_CMSG_REQUEST_PTY"
993.TS
994;
995l l.
996string TERM environment variable value (e.g. vt100)
99732-bit int terminal height, rows (e.g., 24)
99832-bit int terminal width, columns (e.g., 80)
99932-bit int terminal width, pixels (0 if no graphics) (e.g., 480)
100032-bit int terminal height, pixels (0 if no graphics) (e.g., 640)
1001n bytes tty modes encoded in binary
1002.TE
1003Requests a pseudo-terminal to be allocated for this command. This
1004message can be used regardless of whether the session will later
1005execute the shell or a command. If a pty has been requested with this
1006message, the shell or command will run on a pty. Otherwise it will
1007communicate with the server using pipes, sockets or some other similar
1008mechanism.
1009
1010The terminal type gives the type of the user's terminal. In the UNIX
1011environment it is passed to the shell or command in the TERM
1012environment variable.
1013
1014The width and height values give the initial size of the user's
1015terminal or window. All values can be zero if not supported by the
1016operating system. The server will pass these values to the kernel if
1017supported.
1018
1019Terminal modes are encoded into a byte stream in a portable format.
1020The exact format is described later in this document.
1021
1022The server responds to the request with either SSH_SMSG_SUCCESS or
1023SSH_SMSG_FAILURE. If the server does not have the concept of pseudo
1024terminals, it should return success if it is possible to execute a
1025shell or a command so that it looks to the client as if it was running
1026on a pseudo terminal.
1027.IP "11 SSH_CMSG_WINDOW_SIZE"
1028.TS
1029;
1030l l.
103132-bit int terminal height, rows
103232-bit int terminal width, columns
103332-bit int terminal width, pixels
103432-bit int terminal height, pixels
1035.TE
1036This message can only be sent by the client during the interactive
1037session. This indicates that the size of the user's window has
1038changed, and provides the new size. The server will update the
1039kernel's notion of the window size, and a SIGWINCH signal or
1040equivalent will be sent to the shell or command (if supported by the
1041operating system).
1042.IP "12 SSH_CMSG_EXEC_SHELL"
1043
1044(no arguments)
1045
1046Starts a shell (command interpreter), and enters interactive session
1047mode.
1048.IP "13 SSH_CMSG_EXEC_CMD"
1049.TS
1050;
1051l l.
1052string command to execute
1053.TE
1054Starts executing the given command, and enters interactive session
1055mode. On UNIX, the command is run as "<shell> -c <command>", where
1056<shell> is the user's login shell.
1057.IP "14 SSH_SMSG_SUCCESS"
1058
1059(no arguments)
1060
1061This message is sent by the server in response to the session key, a
1062successful authentication request, and a successfully completed
1063preparatory operation.
1064.IP "15 SSH_SMSG_FAILURE"
1065
1066(no arguments)
1067
1068This message is sent by the server in response to a failed
1069authentication operation to indicate that the user has not yet been
1070successfully authenticated, and in response to a failed preparatory
1071operation. This is also sent in response to an authentication or
1072preparatory operation request that is not recognized or supported.
1073.IP "16 SSH_CMSG_STDIN_DATA"
1074.TS
1075;
1076l l.
1077string data
1078.TE
1079Delivers data from the client to be supplied as input to the shell or
1080program running on the server side. This message can only be used in
1081the interactive session mode. No acknowledgement is sent for this
1082message.
1083.IP "17 SSH_SMSG_STDOUT_DATA"
1084.TS
1085;
1086l l.
1087string data
1088.TE
1089Delivers data from the server that was read from the standard output of
1090the shell or program running on the server side. This message can
1091only be used in the interactive session mode. No acknowledgement is
1092sent for this message.
1093.IP "18 SSH_SMSG_STDERR_DATA"
1094.TS
1095;
1096l l.
1097string data
1098.TE
1099Delivers data from the server that was read from the standard error of
1100the shell or program running on the server side. This message can
1101only be used in the interactive session mode. No acknowledgement is
1102sent for this message.
1103.IP "19 SSH_CMSG_EOF"
1104
1105(no arguments)
1106
1107This message is sent by the client to indicate that EOF has been
1108reached on the input. Upon receiving this message, and after all
1109buffered input data has been sent to the shell or program, the server
1110will close the input file descriptor to the program. This message can
1111only be used in the interactive session mode. No acknowledgement is
1112sent for this message.
1113.IP "20 SSH_SMSG_EXITSTATUS"
1114.TS
1115;
1116l l.
111732-bit int exit status of the command
1118.TE
1119Returns the exit status of the shell or program after it has exited.
1120The client should respond with SSH_CMSG_EXIT_CONFIRMATION when it has
1121received this message. This will be the last message sent by the
1122server. If the program being executed dies with a signal instead of
1123exiting normally, the server should terminate the session with
1124SSH_MSG_DISCONNECT (which can be used to pass a human-readable string
1125indicating that the program died due to a signal) instead of using
1126this message.
1127.IP "21 SSH_MSG_CHANNEL_OPEN_CONFIRMATION"
1128.TS
1129;
1130l l.
113132-bit int remote_channel
113232-bit int local_channel
1133.TE
1134This is sent in response to any channel open request if the channel
1135has been successfully opened. Remote_channel is the channel number
1136received in the initial open request; local_channel is the channel
1137number the side sending this message has allocated for the channel.
1138Data can be transmitted on the channel after this message.
1139.IP "22 SSH_MSG_CHANNEL_OPEN_FAILURE"
1140.TS
1141;
1142l l.
114332-bit int remote_channel
1144.TE
1145This message indicates that an earlier channel open request by the
1146other side has failed or has been denied. Remote_channel is the
1147channel number given in the original request.
1148.IP "23 SSH_MSG_CHANNEL_DATA"
1149.TS
1150;
1151l l.
115232-bit int remote_channel
1153string data
1154.TE
1155Data is transmitted in a channel in these messages. A channel is
1156bidirectional, and both sides can send these messages. There is no
1157acknowledgement for these messages. It is possible that either side
1158receives these messages after it has sent SSH_MSG_CHANNEL_CLOSE for
1159the channel. These messages cannot be received after the party has
1160sent or received SSH_MSG_CHANNEL_CLOSE_CONFIRMATION.
1161.IP "24 SSH_MSG_CHANNEL_CLOSE"
1162.TS
1163;
1164l l.
116532-bit int remote_channel
1166.TE
1167When a channel is closed at one end of the connection, that side sends
1168this message. Upon receiving this message, the channel should be
1169closed. When this message is received, if the channel is already
1170closed (the receiving side has sent this message for the same channel
1171earlier), the channel is freed and no further action is taken;
1172otherwise the channel is freed and SSH_MSG_CHANNEL_CLOSE_CONFIRMATION
1173is sent in response. (It is possible that the channel is closed
1174simultaneously at both ends.)
1175.IP "25 SSH_MSG_CHANNEL_CLOSE_CONFIRMATION"
1176.TS
1177;
1178l l.
117932-bit int remote_channel
1180.TE
1181This message is sent in response to SSH_MSG_CHANNEL_CLOSE unless the
1182channel was already closed. When this message is sent or received,
1183the channel is freed.
1184.IP "26 (OBSOLETED; was unix-domain X11 forwarding)
1185.IP "27 SSH_SMSG_X11_OPEN"
1186.TS
1187;
1188l l.
118932-bit int local_channel
1190string originator_string (see below)
1191.TE
1192This message can be sent by the server during the interactive session
1193mode to indicate that a client has connected the fake X server.
1194Local_channel is the channel number that the server has allocated for
1195the connection. The client should try to open a connection to the
1196real X server, and respond with SSH_MSG_CHANNEL_OPEN_CONFIRMATION or
1197SSH_MSG_CHANNEL_OPEN_FAILURE.
1198
1199The field originator_string is present if both sides
1200specified SSH_PROTOFLAG_HOST_IN_FWD_OPEN in the protocol flags. It
1201contains a description of the host originating the connection.
1202.IP "28 SSH_CMSG_PORT_FORWARD_REQUEST"
1203.TS
1204;
1205l l.
120632-bit int server_port
1207string host_to_connect
120832-bit int port_to_connect
1209.TE
1210Sent by the client in the preparatory phase, this message requests
1211that server_port on the server machine be forwarded over the secure
1212channel to the client machine, and from there to the specified host
1213and port. The server should start listening on the port, and send
1214SSH_MSG_PORT_OPEN whenever a connection is made to it. Supporting
1215this message is optional, and the server is free to reject any forward
1216request. For example, it is highly recommended that unless the user
1217has been authenticated as root, forwarding any privileged port numbers
1218(below 1024) is denied.
1219.IP "29 SSH_MSG_PORT_OPEN"
1220.TS
1221;
1222l l.
122332-bit int local_channel
1224string host_name
122532-bit int port
1226string originator_string (see below)
1227.TE
1228Sent by either party in interactive session mode, this message
1229indicates that a connection has been opened to a forwarded TCP/IP
1230port. Local_channel is the channel number that the sending party has
1231allocated for the connection. Host_name is the host the connection
1232should be be forwarded to, and the port is the port on that host to
1233connect. The receiving party should open the connection, and respond
1234with SSH_MSG_CHANNEL_OPEN_CONFIRMATION or
1235SSH_MSG_CHANNEL_OPEN_FAILURE. It is recommended that the receiving
1236side check the host_name and port for validity to avoid compromising
1237local security by compromised remote side software. Particularly, it
1238is recommended that the client permit connections only to those ports
1239for which it has requested forwarding with SSH_CMSG_PORT_FORWARD_REQUEST.
1240
1241The field originator_string is present if both sides
1242specified SSH_PROTOFLAG_HOST_IN_FWD_OPEN in the protocol flags. It
1243contains a description of the host originating the connection.
1244.IP "30 SSH_CMSG_AGENT_REQUEST_FORWARDING"
1245
1246(no arguments)
1247
1248Requests that the connection to the authentication agent be forwarded
1249over the secure channel. The method used by clients to contact the
1250authentication agent within each machine is implementation and machine
1251dependent. If the server accepts this request, it should arrange that
1252any clients run from this session will actually contact the server
1253program when they try to contact the authentication agent. The server
1254should then send a SSH_SMSG_AGENT_OPEN to open a channel to the agent,
1255and the client should forward the connection to the real
1256authentication agent. Supporting this message is optional.
1257.IP "31 SSH_SMSG_AGENT_OPEN"
1258.TS
1259;
1260l l.
126132-bit int local_channel
1262.TE
1263Sent by the server in interactive session mode, this message requests
1264opening a channel to the authentication agent. The client should open
1265a channel, and respond with either SSH_MSG_CHANNEL_OPEN_CONFIRMATION
1266or SSH_MSG_CHANNEL_OPEN_FAILURE.
1267.IP "32 SSH_MSG_IGNORE"
1268.TS
1269;
1270l l.
1271string data
1272.TE
1273Either party may send this message at any time. This message, and the
1274argument string, is silently ignored. This message might be used in
1275some implementations to make traffic analysis more difficult. This
1276message is not currently sent by the implementation, but all
1277implementations are required to recognize and ignore it.
1278.IP "33 SSH_CMSG_EXIT_CONFIRMATION"
1279
1280(no arguments)
1281
1282Sent by the client in response to SSH_SMSG_EXITSTATUS. This is the
1283last message sent by the client.
1284.IP "34 SSH_CMSG_X11_REQUEST_FORWARDING"
1285.TS
1286;
1287l l.
1288string x11_authentication_protocol
1289string x11_authentication_data
129032-bit int screen number (if SSH_PROTOFLAG_SCREEN_NUMBER)
1291.TE
1292Sent by the client during the preparatory phase, this message requests
1293that the server create a fake X11 display and set the DISPLAY
1294environment variable accordingly. An internet-domain display is
1295preferable. The given authentication protocol and the associated data
1296should be recorded by the server so that it is used as authentication
1297on connections (e.g., in .Xauthority). The authentication protocol
1298must be one of the supported X11 authentication protocols, e.g.,
1299"MIT-MAGIC-COOKIE-1". Authentication data must be a lowercase hex
1300string of even length. Its interpretation is protocol dependent.
1301The data is in a format that can be used with e.g. the xauth program.
1302Supporting this message is optional.
1303
1304The client is permitted (and recommended) to generate fake
1305authentication information and send fake information to the server.
1306This way, a corrupt server will not have access to the user's terminal
1307after the connection has terminated. The correct authorization codes
1308will also not be left hanging around in files on the server (many
1309users keep the same X session for months, thus protecting the
1310authorization data becomes important).
1311
1312X11 authentication spoofing works by initially sending fake (random)
1313authentication data to the server, and interpreting the first packet
1314sent by the X11 client after the connection has been opened. The
1315first packet contains the client's authentication. If the packet
1316contains the correct fake data, it is replaced by the client by the
1317correct authentication data, and then sent to the X server.
1318.IP "35 SSH_CMSG_AUTH_RHOSTS_RSA"
1319.TS
1320;
1321l l.
1322string clint-side user name
132332-bit int client_host_key_bits
1324mp-int client_host_key_public_exponent
1325mp-int client_host_key_public_modulus
1326.TE
1327Requests authentication using /etc/hosts.equiv and .rhosts (or
1328equivalent) together with RSA host authentication. The server should
1329check that the client side port number is less than 1024 (a privileged
1330port), and immediately reject authentication if it is not. The server
1331responds with SSH_SMSG_FAILURE or SSH_SMSG_AUTH_RSA_CHALLENGE. The
1332client must respond to the challenge with the proper
1333SSH_CMSG_AUTH_RSA_RESPONSE. The server then responds with success if
1334access was granted, or failure if the client gave a wrong response.
1335Supporting this authentication method is optional but recommended in
1336most environments.
1337.IP "36 SSH_MSG_DEBUG"
1338.TS
1339;
1340l l.
1341string debugging message sent to the other side
1342.TE
1343This message may be sent by either party at any time. It is used to
1344send debugging messages that may be informative to the user in
1345solving various problems. For example, if authentication fails
1346because of some configuration error (e.g., incorrect permissions for
1347some file), it can be very helpful for the user to make the cause of
1348failure available. On the other hand, one should not make too much
1349information available for security reasons. It is recommended that
1350the client provides an option to display the debugging information
1351sent by the sender (the user probably does not want to see it by default).
1352The server can log debugging data sent by the client (if any). Either
1353party is free to ignore any received debugging data. Every
1354implementation must be able to receive this message, but no
1355implementation is required to send these.
1356.IP "37 SSH_CMSG_REQUEST_COMPRESSION"
1357.TS
1358;
1359l l.
136032-bit int gzip compression level (1-9)
1361.TE
1362This message can be sent by the client in the preparatory operations
1363phase. The server responds with SSH_SMSG_FAILURE if it does not
1364support compression or does not want to compress; it responds with
1365SSH_SMSG_SUCCESS if it accepted the compression request. In the
1366latter case the response to this packet will still be uncompressed,
1367but all further packets in either direction will be compressed by gzip.
1368.RT
1369
1370
1371.ti 0
1372Encoding of Terminal Modes
1373
1374Terminal modes (as passed in SSH_CMSG_REQUEST_PTY) are encoded into a
1375byte stream. It is intended that the coding be portable across
1376different environments.
1377
1378The tty mode description is a stream of bytes. The stream consists of
1379opcode-argument pairs. It is terminated by opcode TTY_OP_END (0).
1380Opcodes 1-127 have one-byte arguments. Opcodes 128-159 have 32-bit
1381integer arguments (stored msb first). Opcodes 160-255 are not yet
1382defined, and cause parsing to stop (they should only be used after any
1383other data).
1384
1385The client puts in the stream any modes it knows about, and the server
1386ignores any modes it does not know about. This allows some degree of
1387machine-independence, at least between systems that use a POSIX-like
1388[POSIX] tty interface. The protocol can support other systems as
1389well, but the client may need to fill reasonable values for a number
1390of parameters so the server pty gets set to a reasonable mode (the
1391server leaves all unspecified mode bits in their default values, and
1392only some combinations make sense).
1393
1394The following opcodes have been defined. The naming of opcodes mostly
1395follows the POSIX terminal mode flags.
1396.IP "0 TTY_OP_END"
1397Indicates end of options.
1398.IP "1 VINTR"
1399Interrupt character; 255 if none. Similarly for the other characters.
1400Not all of these characters are supported on all systems.
1401.IP "2 VQUIT"
1402The quit character (sends SIGQUIT signal on UNIX systems).
1403.IP "3 VERASE"
1404Erase the character to left of the cursor.
1405.IP "4 VKILL"
1406Kill the current input line.
1407.IP "5 VEOF "
1408End-of-file character (sends EOF from the terminal).
1409.IP "6 VEOL "
1410End-of-line character in addition to carriage return and/or linefeed.
1411.IP "7 VEOL2"
1412Additional end-of-line character.
1413.IP "8 VSTART"
1414Continues paused output (normally ^Q).
1415.IP "9 VSTOP"
1416Pauses output (^S).
1417.IP "10 VSUSP"
1418Suspends the current program.
1419.IP "11 VDSUSP"
1420Another suspend character.
1421.IP "12 VREPRINT"
1422Reprints the current input line.
1423.IP "13 VWERASE"
1424Erases a word left of cursor.
1425.IP "14 VLNEXT"
1426More special input characters; these are probably not supported on
1427most systems.
1428.IP "15 VFLUSH"
1429.IP "16 VSWTCH"
1430.IP "17 VSTATUS"
1431.IP "18 VDISCARD"
1432
1433.IP "30 IGNPAR"
1434The ignore parity flag. The next byte should be 0 if this flag is not
1435set, and 1 if it is set.
1436.IP "31 PARMRK"
1437More flags. The exact definitions can be found in the POSIX standard.
1438.IP "32 INPCK"
1439.IP "33 ISTRIP"
1440.IP "34 INLCR"
1441.IP "35 IGNCR"
1442.IP "36 ICRNL"
1443.IP "37 IUCLC"
1444.IP "38 IXON"
1445.IP "39 IXANY"
1446.IP "40 IXOFF"
1447.IP "41 IMAXBEL"
1448
1449.IP "50 ISIG"
1450.IP "51 ICANON"
1451.IP "52 XCASE"
1452.IP "53 ECHO"
1453.IP "54 ECHOE"
1454.IP "55 ECHOK"
1455.IP "56 ECHONL"
1456.IP "57 NOFLSH"
1457.IP "58 TOSTOP"
1458.IP "59 IEXTEN"
1459.IP "60 ECHOCTL"
1460.IP "61 ECHOKE"
1461.IP "62 PENDIN"
1462
1463.IP "70 OPOST"
1464.IP "71 OLCUC"
1465.IP "72 ONLCR"
1466.IP "73 OCRNL"
1467.IP "74 ONOCR"
1468.IP "75 ONLRET"
1469
1470.IP "90 CS7"
1471.IP "91 CS8"
1472.IP "92 PARENB"
1473.IP "93 PARODD"
1474
1475.IP "192 TTY_OP_ISPEED"
1476Specifies the input baud rate in bits per second.
1477.IP "193 TTY_OP_OSPEED"
1478Specifies the output baud rate in bits per second.
1479.RT
1480
1481
1482.ti 0
1483The Authentication Agent Protocol
1484
1485The authentication agent is a program that can be used to hold RSA
1486authentication keys for the user (in future, it might hold data for
1487other authentication types as well). An authorized program can send
1488requests to the agent to generate a proper response to an RSA
1489challenge. How the connection is made to the agent (or its
1490representative) inside a host and how access control is done inside a
1491host is implementation-dependent; however, how it is forwarded and how
1492one interacts with it is specified in this protocol. The connection
1493to the agent is normally automatically forwarded over the secure
1494channel.
1495
1496A program that wishes to use the agent first opens a connection to its
1497local representative (typically, the agent itself or an SSH server).
1498It then writes a request to the connection, and waits for response.
1499It is recommended that at least five minutes of timeout are provided
1500waiting for the agent to respond to an authentication challenge (this
1501gives sufficient time for the user to cut-and-paste the challenge to a
1502separate machine, perform the computation there, and cut-and-paste the
1503result back if so desired).
1504
1505Messages sent to and by the agent are in the following format:
1506.TS
1507;
1508l l.
15094 bytes Length, msb first. Does not include length itself.
15101 byte Packet type. The value 255 is reserved for future extensions.
1511data Any data, depending on packet type. Encoding as in the ssh packet
1512protocol.
1513.TE
1514
1515The following message types are currently defined:
1516.IP "1 SSH_AGENTC_REQUEST_RSA_IDENTITIES"
1517
1518(no arguments)
1519
1520Requests the agent to send a list of all RSA keys for which it can
1521answer a challenge.
1522.IP "2 SSH_AGENT_RSA_IDENTITIES_ANSWER"
1523.TS
1524;
1525l l.
152632-bit int howmany
1527howmany times:
152832-bit int bits
1529mp-int public exponent
1530mp-int public modulus
1531string comment
1532.TE
1533The agent sends this message in response to the to
1534SSH_AGENTC_REQUEST_RSA_IDENTITIES. The answer lists all RSA keys for
1535which the agent can answer a challenge. The comment field is intended
1536to help identify each key; it may be printed by an application to
1537indicate which key is being used. If the agent is not holding any
1538keys, howmany will be zero.
1539.IP "3 SSH_AGENTC_RSA_CHALLENGE
1540.TS
1541;
1542l l.
154332-bit int bits
1544mp-int public exponent
1545mp-int public modulus
1546mp-int challenge
154716 bytes session_id
154832-bit int response_type
1549.TE
1550Requests RSA decryption of random challenge to authenticate the other
1551side. The challenge will be decrypted with the RSA private key
1552corresponding to the given public key.
1553
1554The decrypted challenge must contain a zero in the highest (partial)
1555byte, 2 in the next byte, followed by non-zero random bytes, a zero
1556byte, and then the real challenge value in the lowermost bytes. The
1557real challenge must be 32 8-bit bytes (256 bits).
1558
1559Response_type indicates the format of the response to be returned.
1560Currently the only supported value is 1, which means to compute MD5 of
1561the real challenge plus session id, and return the resulting 16 bytes
1562in a SSH_AGENT_RSA_RESPONSE message.
1563.IP "4 SSH_AGENT_RSA_RESPONSE"
1564.TS
1565;
1566l l.
156716 bytes MD5 of decrypted challenge
1568.TE
1569Answers an RSA authentication challenge. The response is 16 bytes:
1570the MD5 checksum of the 32-byte challenge.
1571.IP "5 SSH_AGENT_FAILURE"
1572
1573(no arguments)
1574
1575This message is sent whenever the agent fails to answer a request
1576properly. For example, if the agent cannot answer a challenge (e.g.,
1577no longer has the proper key), it can respond with this. The agent
1578also responds with this message if it receives a message it does not
1579recognize.
1580.IP "6 SSH_AGENT_SUCCESS"
1581
1582(no arguments)
1583
1584This message is sent by the agent as a response to certain requests
1585that do not otherwise cause a message be sent. Currently, this is
1586only sent in response to SSH_AGENTC_ADD_RSA_IDENTITY and
1587SSH_AGENTC_REMOVE_RSA_IDENTITY.
1588.IP "7 SSH_AGENTC_ADD_RSA_IDENTITY"
1589.TS
1590;
1591l l.
159232-bit int bits
1593mp-int public modulus
1594mp-int public exponent
1595mp-int private exponent
1596mp-int multiplicative inverse of p mod q
1597mp-int p
1598mp-int q
1599string comment
1600.TE
1601Registers an RSA key with the agent. After this request, the agent can
1602use this RSA key to answer requests. The agent responds with
1603SSH_AGENT_SUCCESS or SSH_AGENT_FAILURE.
1604.IP "8 SSH_AGENT_REMOVE_RSA_IDENTITY"
1605.TS
1606;
1607l l.
160832-bit int bits
1609mp-int public exponent
1610mp-int public modulus
1611.TE
1612Removes an RSA key from the agent. The agent will no longer accept
1613challenges for this key and will not list it as a supported identity.
1614The agent responds with SSH_AGENT_SUCCESS or SSH_AGENT_FAILURE.
1615.RT
1616
1617If the agent receives a message that it does not understand, it
1618responds with SSH_AGENT_FAILURE. This permits compatible future
1619extensions.
1620
1621It is possible that several clients have a connection open to the
1622authentication agent simultaneously. Each client will use a separate
1623connection (thus, any SSH connection can have multiple agent
1624connections active simultaneously).
1625
1626
1627.ti 0
1628References
1629
1630.IP "[DES] "
1631FIPS PUB 46-1: Data Encryption Standard. National Bureau of
1632Standards, January 1988. FIPS PUB 81: DES Modes of Operation.
1633National Bureau of Standards, December 1980. Bruce Schneier: Applied
1634Cryptography. John Wiley & Sons, 1994. J. Seberry and J. Pieprzyk:
1635Cryptography: An Introduction to Computer Security. Prentice-Hall,
16361989.
1637.IP "[GZIP] "
1638The GNU GZIP program; available for anonymous ftp at prep.ai.mit.edu.
1639Please let me know if you know a paper describing the algorithm.
1640.IP "[IDEA] "
1641Xuejia Lai: On the Design and Security of Block Ciphers, ETH Series in
1642Information Processing, vol. 1, Hartung-Gorre Verlag, Konstanz,
1643Switzerland, 1992. Bruce Schneier: Applied Cryptography, John Wiley &
1644Sons, 1994. See also the following patents: PCT/CH91/00117, EP 0 482
1645154 B1, US Pat. 5,214,703.
1646.IP [PKCS#1]
1647PKCS #1: RSA Encryption Standard. Version 1.5, RSA Laboratories,
1648November 1993. Available for anonymous ftp at ftp.rsa.com.
1649.IP [POSIX]
1650Portable Operating System Interface (POSIX) - Part 1: Application
1651Program Interface (API) [C language], ISO/IEC 9945-1, IEEE Std 1003.1,
16521990.
1653.IP [RFC0791]
1654J. Postel: Internet Protocol, RFC 791, USC/ISI, September 1981.
1655.IP [RFC0793]
1656J. Postel: Transmission Control Protocol, RFC 793, USC/ISI, September
16571981.
1658.IP [RFC1034]
1659P. Mockapetris: Domain Names - Concepts and Facilities, RFC 1034,
1660USC/ISI, November 1987.
1661.IP [RFC1282]
1662B. Kantor: BSD Rlogin, RFC 1258, UCSD, December 1991.
1663.IP "[RSA] "
1664Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1994. See
1665also R. Rivest, A. Shamir, and L. M. Adleman: Cryptographic
1666Communications System and Method. US Patent 4,405,829, 1983.
1667.IP "[X11] "
1668R. Scheifler: X Window System Protocol, X Consortium Standard, Version
166911, Release 6. Massachusetts Institute of Technology, Laboratory of
1670Computer Science, 1994.
1671.RT
1672
1673
1674.ti 0
1675Security Considerations
1676
1677This protocol deals with the very issue of user authentication and
1678security.
1679
1680First of all, as an implementation issue, the server program will have
1681to run as root (or equivalent) on the server machine. This is because
1682the server program will need be able to change to an arbitrary user
1683id. The server must also be able to create a privileged TCP/IP port.
1684
1685The client program will need to run as root if any variant of .rhosts
1686authentication is to be used. This is because the client program will
1687need to create a privileged port. The client host key is also usually
1688stored in a file which is readable by root only. The client needs the
1689host key in .rhosts authentication only. Root privileges can be
1690dropped as soon as the privileged port has been created and the host
1691key has been read.
1692
1693The SSH protocol offers major security advantages over existing telnet
1694and rlogin protocols.
1695.IP o
1696IP spoofing is restricted to closing a connection (by encryption, host
1697keys, and the special random cookie). If encryption is not used, IP
1698spoofing is possible for those who can hear packets going out from the
1699server.
1700.IP o
1701DNS spoofing is made ineffective (by host keys).
1702.IP o
1703Routing spoofing is made ineffective (by host keys).
1704.IP o
1705All data is encrypted with strong algorithms to make eavesdropping as
1706difficult as possible. This includes encrypting any authentication
1707information such as passwords. The information for decrypting session
1708keys is destroyed every hour.
1709.IP o
1710Strong authentication methods: .rhosts combined with RSA host
1711authentication, and pure RSA authentication.
1712.IP o
1713X11 connections and arbitrary TCP/IP ports can be forwarded securely.
1714.IP o
1715Man-in-the-middle attacks are deterred by using the server host key to
1716encrypt the session key.
1717.IP o
1718Trojan horses to catch a password by routing manipulation are deterred
1719by checking that the host key of the server machine matches that
1720stored on the client host.
1721.RT
1722
1723The security of SSH against man-in-the-middle attacks and the security
1724of the new form of .rhosts authentication, as well as server host
1725validation, depends on the integrity of the host key and the files
1726containing known host keys.
1727
1728The host key is normally stored in a root-readable file. If the host
1729key is compromised, it permits attackers to use IP, DNS and routing
1730spoofing as with current rlogin and rsh. It should never be any worse
1731than the current situation.
1732
1733The files containing known host keys are not sensitive. However, if an
1734attacker gets to modify the known host key files, it has the same
1735consequences as a compromised host key, because the attacker can then
1736change the recorded host key.
1737
1738The security improvements obtained by this protocol for X11 are of
1739particular significance. Previously, there has been no way to protect
1740data communicated between an X server and a client running on a remote
1741machine. By creating a fake display on the server, and forwarding all
1742X11 requests over the secure channel, SSH can be used to run any X11
1743applications securely without any cooperation with the vendors of the
1744X server or the application.
1745
1746Finally, the security of this program relies on the strength of the
1747underlying cryptographic algorithms. The RSA algorithm is used for
1748authentication key exchange. It is widely believed to be secure. Of
1749the algorithms used to encrypt the session, DES has a rather small key
1750these days, probably permitting governments and organized criminals to
1751break it in very short time with specialized hardware. 3DES is
1752probably safe (but slower). IDEA is widely believed to be secure.
1753People have varying degrees of confidence in the other algorithms.
1754This program is not secure if used with no encryption at all.
1755
1756
1757.ti 0
1758Additional Information
1759
1760Additional information (especially on the implementation and mailing
1761lists) is available via WWW at http://www.cs.hut.fi/ssh.
1762
1763Comments should be sent to Tatu Ylonen <ylo@cs.hut.fi> or the SSH
1764Mailing List <ssh@clinet.fi>.
1765
1766.ti 0
1767Author's Address
1768
1769.TS
1770;
1771l.
1772Tatu Ylonen
1773Helsinki University of Technology
1774Otakaari 1
1775FIN-02150 Espoo, Finland
1776
1777Phone: +358-0-451-3374
1778Fax: +358-0-451-3293
1779EMail: ylo@cs.hut.fi
1780.TE
diff --git a/acconfig.h b/acconfig.h
deleted file mode 100644
index 79b5e8191..000000000
--- a/acconfig.h
+++ /dev/null
@@ -1,458 +0,0 @@
1/* $Id: acconfig.h,v 1.183 2005/07/07 10:33:36 dtucker Exp $ */
2
3/*
4 * Copyright (c) 1999-2003 Damien Miller. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#ifndef _CONFIG_H
28#define _CONFIG_H
29
30/* Generated automatically from acconfig.h by autoheader. */
31/* Please make your changes there */
32
33@TOP@
34
35/* Define if your platform breaks doing a seteuid before a setuid */
36#undef SETEUID_BREAKS_SETUID
37
38/* Define if your setreuid() is broken */
39#undef BROKEN_SETREUID
40
41/* Define if your setregid() is broken */
42#undef BROKEN_SETREGID
43
44/* Define if your setresuid() is broken */
45#undef BROKEN_SETRESUID
46
47/* Define if your setresgid() is broken */
48#undef BROKEN_SETRESGID
49
50/* Define to a Set Process Title type if your system is */
51/* supported by bsd-setproctitle.c */
52#undef SPT_TYPE
53#undef SPT_PADCHAR
54
55/* SCO workaround */
56#undef BROKEN_SYS_TERMIO_H
57
58/* Define if you have SecureWare-based protected password database */
59#undef HAVE_SECUREWARE
60
61/* If your header files don't define LOGIN_PROGRAM, then use this (detected) */
62/* from environment and PATH */
63#undef LOGIN_PROGRAM_FALLBACK
64
65/* Full path of your "passwd" program */
66#undef _PATH_PASSWD_PROG
67
68/* Define if your password has a pw_class field */
69#undef HAVE_PW_CLASS_IN_PASSWD
70
71/* Define if your password has a pw_expire field */
72#undef HAVE_PW_EXPIRE_IN_PASSWD
73
74/* Define if your password has a pw_change field */
75#undef HAVE_PW_CHANGE_IN_PASSWD
76
77/* Define if your system uses access rights style file descriptor passing */
78#undef HAVE_ACCRIGHTS_IN_MSGHDR
79
80/* Define if your system uses ancillary data style file descriptor passing */
81#undef HAVE_CONTROL_IN_MSGHDR
82
83/* Define if you system's inet_ntoa is busted (e.g. Irix gcc issue) */
84#undef BROKEN_INET_NTOA
85
86/* Define if your system defines sys_errlist[] */
87#undef HAVE_SYS_ERRLIST
88
89/* Define if your system defines sys_nerr */
90#undef HAVE_SYS_NERR
91
92/* Define if your system choked on IP TOS setting */
93#undef IP_TOS_IS_BROKEN
94
95/* Define if you have the getuserattr function. */
96#undef HAVE_GETUSERATTR
97
98/* Define if you have the basename function. */
99#undef HAVE_BASENAME
100
101/* Work around problematic Linux PAM modules handling of PAM_TTY */
102#undef PAM_TTY_KLUDGE
103
104/* Define if pam_chauthtok wants real uid set to the unpriv'ed user */
105#undef SSHPAM_CHAUTHTOK_NEEDS_RUID
106
107/* Use PIPES instead of a socketpair() */
108#undef USE_PIPES
109
110/* Define if your snprintf is busted */
111#undef BROKEN_SNPRINTF
112
113/* Define if you are on Cygwin */
114#undef HAVE_CYGWIN
115
116/* Define if you have a broken realpath. */
117#undef BROKEN_REALPATH
118
119/* Define if you are on NeXT */
120#undef HAVE_NEXT
121
122/* Define if you want to enable PAM support */
123#undef USE_PAM
124
125/* Define if you want to enable AIX4's authenticate function */
126#undef WITH_AIXAUTHENTICATE
127
128/* Define if your AIX loginfailed() function takes 4 arguments (AIX >= 5.2) */
129#undef AIX_LOGINFAILED_4ARG
130
131/* Define if your skeychallenge() function takes 4 arguments (eg NetBSD) */
132#undef SKEYCHALLENGE_4ARG
133
134/* Define if you have/want arrays (cluster-wide session managment, not C arrays) */
135#undef WITH_IRIX_ARRAY
136
137/* Define if you want IRIX project management */
138#undef WITH_IRIX_PROJECT
139
140/* Define if you want IRIX audit trails */
141#undef WITH_IRIX_AUDIT
142
143/* Define if you want IRIX kernel jobs */
144#undef WITH_IRIX_JOBS
145
146/* Location of PRNGD/EGD random number socket */
147#undef PRNGD_SOCKET
148
149/* Port number of PRNGD/EGD random number socket */
150#undef PRNGD_PORT
151
152/* Builtin PRNG command timeout */
153#undef ENTROPY_TIMEOUT_MSEC
154
155/* non-privileged user for privilege separation */
156#undef SSH_PRIVSEP_USER
157
158/* Define if you want to install preformatted manpages.*/
159#undef MANTYPE
160
161/* Define if your ssl headers are included with #include <openssl/header.h> */
162#undef HAVE_OPENSSL
163
164/* Define if you are linking against RSAref. Used only to print the right
165 * message at run-time. */
166#undef RSAREF
167
168/* struct timeval */
169#undef HAVE_STRUCT_TIMEVAL
170
171/* struct utmp and struct utmpx fields */
172#undef HAVE_HOST_IN_UTMP
173#undef HAVE_HOST_IN_UTMPX
174#undef HAVE_ADDR_IN_UTMP
175#undef HAVE_ADDR_IN_UTMPX
176#undef HAVE_ADDR_V6_IN_UTMP
177#undef HAVE_ADDR_V6_IN_UTMPX
178#undef HAVE_SYSLEN_IN_UTMPX
179#undef HAVE_PID_IN_UTMP
180#undef HAVE_TYPE_IN_UTMP
181#undef HAVE_TYPE_IN_UTMPX
182#undef HAVE_TV_IN_UTMP
183#undef HAVE_TV_IN_UTMPX
184#undef HAVE_ID_IN_UTMP
185#undef HAVE_ID_IN_UTMPX
186#undef HAVE_EXIT_IN_UTMP
187#undef HAVE_TIME_IN_UTMP
188#undef HAVE_TIME_IN_UTMPX
189
190/* Define if you don't want to use your system's login() call */
191#undef DISABLE_LOGIN
192
193/* Define if you don't want to use pututline() etc. to write [uw]tmp */
194#undef DISABLE_PUTUTLINE
195
196/* Define if you don't want to use pututxline() etc. to write [uw]tmpx */
197#undef DISABLE_PUTUTXLINE
198
199/* Define if you don't want to use lastlog */
200#undef DISABLE_LASTLOG
201
202/* Define if you don't want to use lastlog in session.c */
203#undef NO_SSH_LASTLOG
204
205/* Define if you don't want to use utmp */
206#undef DISABLE_UTMP
207
208/* Define if you don't want to use utmpx */
209#undef DISABLE_UTMPX
210
211/* Define if you don't want to use wtmp */
212#undef DISABLE_WTMP
213
214/* Define if you don't want to use wtmpx */
215#undef DISABLE_WTMPX
216
217/* Some systems need a utmpx entry for /bin/login to work */
218#undef LOGIN_NEEDS_UTMPX
219
220/* Some versions of /bin/login need the TERM supplied on the commandline */
221#undef LOGIN_NEEDS_TERM
222
223/* Define if your login program cannot handle end of options ("--") */
224#undef LOGIN_NO_ENDOPT
225
226/* Define if you want to specify the path to your lastlog file */
227#undef CONF_LASTLOG_FILE
228
229/* Define if you want to specify the path to your utmp file */
230#undef CONF_UTMP_FILE
231
232/* Define if you want to specify the path to your wtmp file */
233#undef CONF_WTMP_FILE
234
235/* Define if you want to specify the path to your utmpx file */
236#undef CONF_UTMPX_FILE
237
238/* Define if you want to specify the path to your wtmpx file */
239#undef CONF_WTMPX_FILE
240
241/* Define if you want external askpass support */
242#undef USE_EXTERNAL_ASKPASS
243
244/* Define if libc defines __progname */
245#undef HAVE___PROGNAME
246
247/* Define if compiler implements __FUNCTION__ */
248#undef HAVE___FUNCTION__
249
250/* Define if compiler implements __func__ */
251#undef HAVE___func__
252
253/* Define this is you want GSSAPI support in the version 2 protocol */
254#undef GSSAPI
255
256/* Define if you want Kerberos 5 support */
257#undef KRB5
258
259/* Define this if you are using the Heimdal version of Kerberos V5 */
260#undef HEIMDAL
261
262/* Define this if you want to use libkafs' AFS support */
263#undef USE_AFS
264
265/* Define if you want S/Key support */
266#undef SKEY
267
268/* Define if you want TCP Wrappers support */
269#undef LIBWRAP
270
271/* Define if your libraries define login() */
272#undef HAVE_LOGIN
273
274/* Define if your libraries define daemon() */
275#undef HAVE_DAEMON
276
277/* Define if your libraries define getpagesize() */
278#undef HAVE_GETPAGESIZE
279
280/* Define if xauth is found in your path */
281#undef XAUTH_PATH
282
283/* Define if you want to allow MD5 passwords */
284#undef HAVE_MD5_PASSWORDS
285
286/* Define if you want to disable shadow passwords */
287#undef DISABLE_SHADOW
288
289/* Define if you want to use shadow password expire field */
290#undef HAS_SHADOW_EXPIRE
291
292/* Define if you have Digital Unix Security Integration Architecture */
293#undef HAVE_OSF_SIA
294
295/* Define if you have getpwanam(3) [SunOS 4.x] */
296#undef HAVE_GETPWANAM
297
298/* Define if you have an old version of PAM which takes only one argument */
299/* to pam_strerror */
300#undef HAVE_OLD_PAM
301
302/* Define if you are using Solaris-derived PAM which passes pam_messages */
303/* to the conversation function with an extra level of indirection */
304#undef PAM_SUN_CODEBASE
305
306/* Set this to your mail directory if you don't have maillock.h */
307#undef MAIL_DIRECTORY
308
309/* Data types */
310#undef HAVE_U_INT
311#undef HAVE_INTXX_T
312#undef HAVE_U_INTXX_T
313#undef HAVE_UINTXX_T
314#undef HAVE_INT64_T
315#undef HAVE_U_INT64_T
316#undef HAVE_U_CHAR
317#undef HAVE_SIZE_T
318#undef HAVE_SSIZE_T
319#undef HAVE_CLOCK_T
320#undef HAVE_MODE_T
321#undef HAVE_PID_T
322#undef HAVE_SA_FAMILY_T
323#undef HAVE_STRUCT_SOCKADDR_STORAGE
324#undef HAVE_STRUCT_ADDRINFO
325#undef HAVE_STRUCT_IN6_ADDR
326#undef HAVE_STRUCT_SOCKADDR_IN6
327
328/* Fields in struct sockaddr_storage */
329#undef HAVE_SS_FAMILY_IN_SS
330#undef HAVE___SS_FAMILY_IN_SS
331
332/* Define if you have /dev/ptmx */
333#undef HAVE_DEV_PTMX
334
335/* Define if you have /dev/ptc */
336#undef HAVE_DEV_PTS_AND_PTC
337
338/* Define if you need to use IP address instead of hostname in $DISPLAY */
339#undef IPADDR_IN_DISPLAY
340
341/* Specify default $PATH */
342#undef USER_PATH
343
344/* Specify location of ssh.pid */
345#undef _PATH_SSH_PIDDIR
346
347/* getaddrinfo is broken (if present) */
348#undef BROKEN_GETADDRINFO
349
350/* updwtmpx is broken (if present) */
351#undef BROKEN_UPDWTMPX
352
353/* Workaround more Linux IPv6 quirks */
354#undef DONT_TRY_OTHER_AF
355
356/* Detect IPv4 in IPv6 mapped addresses and treat as IPv4 */
357#undef IPV4_IN_IPV6
358
359/* Define if you have BSD auth support */
360#undef BSD_AUTH
361
362/* Define if X11 doesn't support AF_UNIX sockets on that system */
363#undef NO_X11_UNIX_SOCKETS
364
365/* Define if the concept of ports only accessible to superusers isn't known */
366#undef NO_IPPORT_RESERVED_CONCEPT
367
368/* Needed for SCO and NeXT */
369#undef BROKEN_SAVED_UIDS
370
371/* Define if your system glob() function has the GLOB_ALTDIRFUNC extension */
372#undef GLOB_HAS_ALTDIRFUNC
373
374/* Define if your system glob() function has gl_matchc options in glob_t */
375#undef GLOB_HAS_GL_MATCHC
376
377/* Define in your struct dirent expects you to allocate extra space for d_name */
378#undef BROKEN_ONE_BYTE_DIRENT_D_NAME
379
380/* Define if your system has /etc/default/login */
381#undef HAVE_ETC_DEFAULT_LOGIN
382
383/* Define if your getopt(3) defines and uses optreset */
384#undef HAVE_GETOPT_OPTRESET
385
386/* Define on *nto-qnx systems */
387#undef MISSING_NFDBITS
388
389/* Define on *nto-qnx systems */
390#undef MISSING_HOWMANY
391
392/* Define on *nto-qnx systems */
393#undef MISSING_FD_MASK
394
395/* Define if you want smartcard support */
396#undef SMARTCARD
397
398/* Define if you want smartcard support using sectok */
399#undef USE_SECTOK
400
401/* Define if you want smartcard support using OpenSC */
402#undef USE_OPENSC
403
404/* Define if you want to use OpenSSL's internally seeded PRNG only */
405#undef OPENSSL_PRNG_ONLY
406
407/* Define if you shouldn't strip 'tty' from your ttyname in [uw]tmp */
408#undef WITH_ABBREV_NO_TTY
409
410/* Define if you want a different $PATH for the superuser */
411#undef SUPERUSER_PATH
412
413/* Path that unprivileged child will chroot() to in privep mode */
414#undef PRIVSEP_PATH
415
416/* Define if your platform needs to skip post auth file descriptor passing */
417#undef DISABLE_FD_PASSING
418
419/* Silly mkstemp() */
420#undef HAVE_STRICT_MKSTEMP
421
422/* Some systems put this outside of libc */
423#undef HAVE_NANOSLEEP
424
425/* Define if sshd somehow reacquires a controlling TTY after setsid() */
426#undef SSHD_ACQUIRES_CTTY
427
428/* Define if cmsg_type is not passed correctly */
429#undef BROKEN_CMSG_TYPE
430
431/*
432 * Define to whatever link() returns for "not supported" if it doesn't
433 * return EOPNOTSUPP.
434 */
435#undef LINK_OPNOTSUPP_ERRNO
436
437/* Strings used in /etc/passwd to denote locked account */
438#undef LOCKED_PASSWD_STRING
439#undef LOCKED_PASSWD_PREFIX
440#undef LOCKED_PASSWD_SUBSTR
441
442/* Define if getrrsetbyname() exists */
443#undef HAVE_GETRRSETBYNAME
444
445/* Define if HEADER.ad exists in arpa/nameser.h */
446#undef HAVE_HEADER_AD
447
448/* Define if your resolver libs need this for getrrsetbyname */
449#undef BIND_8_COMPAT
450
451/* Define if you have /proc/$pid/fd */
452#undef HAVE_PROC_PID
453
454@BOTTOM@
455
456/* ******************* Shouldn't need to edit below this line ************** */
457
458#endif /* _CONFIG_H */
diff --git a/addrmatch.c b/addrmatch.c
index 2086afe84..d39885b7b 100644
--- a/addrmatch.c
+++ b/addrmatch.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: addrmatch.c,v 1.3 2008/06/10 23:06:19 djm Exp $ */ 1/* $OpenBSD: addrmatch.c,v 1.4 2008/12/10 03:55:20 stevesk Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2004-2008 Damien Miller <djm@mindrot.org> 4 * Copyright (c) 2004-2008 Damien Miller <djm@mindrot.org>
@@ -31,6 +31,7 @@
31 31
32#include "match.h" 32#include "match.h"
33#include "log.h" 33#include "log.h"
34#include "xmalloc.h"
34 35
35struct xaddr { 36struct xaddr {
36 sa_family_t af; 37 sa_family_t af;
@@ -97,7 +98,9 @@ addr_sa_to_xaddr(struct sockaddr *sa, socklen_t slen, struct xaddr *xa)
97 return -1; 98 return -1;
98 xa->af = AF_INET6; 99 xa->af = AF_INET6;
99 memcpy(&xa->v6, &in6->sin6_addr, sizeof(xa->v6)); 100 memcpy(&xa->v6, &in6->sin6_addr, sizeof(xa->v6));
101#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
100 xa->scope_id = in6->sin6_scope_id; 102 xa->scope_id = in6->sin6_scope_id;
103#endif
101 break; 104 break;
102 default: 105 default:
103 return -1; 106 return -1;
@@ -415,7 +418,7 @@ addr_match_list(const char *addr, const char *_list)
415 goto foundit; 418 goto foundit;
416 } 419 }
417 } 420 }
418 free(o); 421 xfree(o);
419 422
420 return ret; 423 return ret;
421} 424}
diff --git a/auth-krb4.c b/auth-krb4.c
deleted file mode 100644
index b28df469f..000000000
--- a/auth-krb4.c
+++ /dev/null
@@ -1,368 +0,0 @@
1/*
2 * Copyright (c) 1999 Dug Song. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25#include "includes.h"
26RCSID("$OpenBSD: auth-krb4.c,v 1.29 2003/02/21 10:34:48 mpech Exp $");
27
28#include "ssh.h"
29#include "ssh1.h"
30#include "packet.h"
31#include "xmalloc.h"
32#include "log.h"
33#include "servconf.h"
34#include "uidswap.h"
35#include "auth.h"
36
37#ifdef AFS
38#include "radix.h"
39#endif
40
41#ifdef KRB4
42extern ServerOptions options;
43
44static int
45krb4_init(void *context)
46{
47 static int cleanup_registered = 0;
48 Authctxt *authctxt = (Authctxt *)context;
49 const char *tkt_root = TKT_ROOT;
50 struct stat st;
51 int fd;
52
53 if (!authctxt->krb4_ticket_file) {
54 /* Set unique ticket string manually since we're still root. */
55 authctxt->krb4_ticket_file = xmalloc(MAXPATHLEN);
56#ifdef AFS
57 if (lstat("/ticket", &st) != -1)
58 tkt_root = "/ticket/";
59#endif /* AFS */
60 snprintf(authctxt->krb4_ticket_file, MAXPATHLEN, "%s%u_%ld",
61 tkt_root, authctxt->pw->pw_uid, (long)getpid());
62 krb_set_tkt_string(authctxt->krb4_ticket_file);
63 }
64 /* Register ticket cleanup in case of fatal error. */
65 if (!cleanup_registered) {
66 fatal_add_cleanup(krb4_cleanup_proc, authctxt);
67 cleanup_registered = 1;
68 }
69 /* Try to create our ticket file. */
70 if ((fd = mkstemp(authctxt->krb4_ticket_file)) != -1) {
71 close(fd);
72 return (1);
73 }
74 /* Ticket file exists - make sure user owns it (just passed ticket). */
75 if (lstat(authctxt->krb4_ticket_file, &st) != -1) {
76 if (st.st_mode == (S_IFREG | S_IRUSR | S_IWUSR) &&
77 st.st_uid == authctxt->pw->pw_uid)
78 return (1);
79 }
80 /* Failure - cancel cleanup function, leaving ticket for inspection. */
81 log("WARNING: bad ticket file %s", authctxt->krb4_ticket_file);
82
83 fatal_remove_cleanup(krb4_cleanup_proc, authctxt);
84 cleanup_registered = 0;
85
86 xfree(authctxt->krb4_ticket_file);
87 authctxt->krb4_ticket_file = NULL;
88
89 return (0);
90}
91
92/*
93 * try krb4 authentication,
94 * return 1 on success, 0 on failure, -1 if krb4 is not available
95 */
96int
97auth_krb4_password(Authctxt *authctxt, const char *password)
98{
99 AUTH_DAT adata;
100 KTEXT_ST tkt;
101 struct hostent *hp;
102 struct passwd *pw;
103 char localhost[MAXHOSTNAMELEN], phost[INST_SZ], realm[REALM_SZ];
104 u_int32_t faddr;
105 int r;
106
107 if ((pw = authctxt->pw) == NULL)
108 return (0);
109
110 /*
111 * Try Kerberos password authentication only for non-root
112 * users and only if Kerberos is installed.
113 */
114 if (pw->pw_uid != 0 && krb_get_lrealm(realm, 1) == KSUCCESS) {
115 /* Set up our ticket file. */
116 if (!krb4_init(authctxt)) {
117 log("Couldn't initialize Kerberos ticket file for %s!",
118 pw->pw_name);
119 goto failure;
120 }
121 /* Try to get TGT using our password. */
122 r = krb_get_pw_in_tkt((char *) pw->pw_name, "", realm,
123 "krbtgt", realm, DEFAULT_TKT_LIFE, (char *)password);
124 if (r != INTK_OK) {
125 debug("Kerberos v4 password authentication for %s "
126 "failed: %s", pw->pw_name, krb_err_txt[r]);
127 goto failure;
128 }
129 /* Successful authentication. */
130 chown(tkt_string(), pw->pw_uid, pw->pw_gid);
131
132 /*
133 * Now that we have a TGT, try to get a local
134 * "rcmd" ticket to ensure that we are not talking
135 * to a bogus Kerberos server.
136 */
137 gethostname(localhost, sizeof(localhost));
138 strlcpy(phost, (char *)krb_get_phost(localhost),
139 sizeof(phost));
140 r = krb_mk_req(&tkt, KRB4_SERVICE_NAME, phost, realm, 33);
141
142 if (r == KSUCCESS) {
143 if ((hp = gethostbyname(localhost)) == NULL) {
144 log("Couldn't get local host address!");
145 goto failure;
146 }
147 memmove((void *)&faddr, (void *)hp->h_addr,
148 sizeof(faddr));
149
150 /* Verify our "rcmd" ticket. */
151 r = krb_rd_req(&tkt, KRB4_SERVICE_NAME, phost,
152 faddr, &adata, "");
153 if (r == RD_AP_UNDEC) {
154 /*
155 * Probably didn't have a srvtab on
156 * localhost. Disallow login.
157 */
158 log("Kerberos v4 TGT for %s unverifiable, "
159 "no srvtab installed? krb_rd_req: %s",
160 pw->pw_name, krb_err_txt[r]);
161 goto failure;
162 } else if (r != KSUCCESS) {
163 log("Kerberos v4 %s ticket unverifiable: %s",
164 KRB4_SERVICE_NAME, krb_err_txt[r]);
165 goto failure;
166 }
167 } else if (r == KDC_PR_UNKNOWN) {
168 /*
169 * Disallow login if no rcmd service exists, and
170 * log the error.
171 */
172 log("Kerberos v4 TGT for %s unverifiable: %s; %s.%s "
173 "not registered, or srvtab is wrong?", pw->pw_name,
174 krb_err_txt[r], KRB4_SERVICE_NAME, phost);
175 goto failure;
176 } else {
177 /*
178 * TGT is bad, forget it. Possibly spoofed!
179 */
180 debug("WARNING: Kerberos v4 TGT possibly spoofed "
181 "for %s: %s", pw->pw_name, krb_err_txt[r]);
182 goto failure;
183 }
184 /* Authentication succeeded. */
185 return (1);
186 } else
187 /* Logging in as root or no local Kerberos realm. */
188 debug("Unable to authenticate to Kerberos.");
189
190 failure:
191 krb4_cleanup_proc(authctxt);
192
193 if (!options.kerberos_or_local_passwd)
194 return (0);
195
196 /* Fall back to ordinary passwd authentication. */
197 return (-1);
198}
199
200void
201krb4_cleanup_proc(void *context)
202{
203 Authctxt *authctxt = (Authctxt *)context;
204 debug("krb4_cleanup_proc called");
205 if (authctxt->krb4_ticket_file) {
206 (void) dest_tkt();
207 xfree(authctxt->krb4_ticket_file);
208 authctxt->krb4_ticket_file = NULL;
209 }
210}
211
212int
213auth_krb4(Authctxt *authctxt, KTEXT auth, char **client, KTEXT reply)
214{
215 AUTH_DAT adat = {0};
216 Key_schedule schedule;
217 struct sockaddr_in local, foreign;
218 char instance[INST_SZ];
219 socklen_t slen;
220 u_int cksum;
221 int r, s;
222
223 s = packet_get_connection_in();
224
225 slen = sizeof(local);
226 memset(&local, 0, sizeof(local));
227 if (getsockname(s, (struct sockaddr *) & local, &slen) < 0)
228 debug("getsockname failed: %.100s", strerror(errno));
229 slen = sizeof(foreign);
230 memset(&foreign, 0, sizeof(foreign));
231 if (getpeername(s, (struct sockaddr *) & foreign, &slen) < 0) {
232 debug("getpeername failed: %.100s", strerror(errno));
233 fatal_cleanup();
234 }
235 instance[0] = '*';
236 instance[1] = 0;
237
238 /* Get the encrypted request, challenge, and session key. */
239 if ((r = krb_rd_req(auth, KRB4_SERVICE_NAME, instance,
240 0, &adat, ""))) {
241 debug("Kerberos v4 krb_rd_req: %.100s", krb_err_txt[r]);
242 return (0);
243 }
244 des_key_sched((des_cblock *) adat.session, schedule);
245
246 *client = xmalloc(MAX_K_NAME_SZ);
247 (void) snprintf(*client, MAX_K_NAME_SZ, "%s%s%s@%s", adat.pname,
248 *adat.pinst ? "." : "", adat.pinst, adat.prealm);
249
250 /* Check ~/.klogin authorization now. */
251 if (kuserok(&adat, authctxt->user) != KSUCCESS) {
252 log("Kerberos v4 .klogin authorization failed for %s to "
253 "account %s", *client, authctxt->user);
254 xfree(*client);
255 *client = NULL;
256 return (0);
257 }
258 /* Increment the checksum, and return it encrypted with the
259 session key. */
260 cksum = adat.checksum + 1;
261 cksum = htonl(cksum);
262
263 /* If we can't successfully encrypt the checksum, we send back an
264 empty message, admitting our failure. */
265 if ((r = krb_mk_priv((u_char *) & cksum, reply->dat, sizeof(cksum) + 1,
266 schedule, &adat.session, &local, &foreign)) < 0) {
267 debug("Kerberos v4 mk_priv: (%d) %s", r, krb_err_txt[r]);
268 reply->dat[0] = 0;
269 reply->length = 0;
270 } else
271 reply->length = r;
272
273 /* Clear session key. */
274 memset(&adat.session, 0, sizeof(adat.session));
275 return (1);
276}
277#endif /* KRB4 */
278
279#ifdef AFS
280int
281auth_krb4_tgt(Authctxt *authctxt, const char *string)
282{
283 CREDENTIALS creds;
284 struct passwd *pw;
285
286 if ((pw = authctxt->pw) == NULL)
287 goto failure;
288
289 temporarily_use_uid(pw);
290
291 if (!radix_to_creds(string, &creds)) {
292 log("Protocol error decoding Kerberos v4 TGT");
293 goto failure;
294 }
295 if (strncmp(creds.service, "", 1) == 0) /* backward compatibility */
296 strlcpy(creds.service, "krbtgt", sizeof creds.service);
297
298 if (strcmp(creds.service, "krbtgt")) {
299 log("Kerberos v4 TGT (%s%s%s@%s) rejected for %s",
300 creds.pname, creds.pinst[0] ? "." : "", creds.pinst,
301 creds.realm, pw->pw_name);
302 goto failure;
303 }
304 if (!krb4_init(authctxt))
305 goto failure;
306
307 if (in_tkt(creds.pname, creds.pinst) != KSUCCESS)
308 goto failure;
309
310 if (save_credentials(creds.service, creds.instance, creds.realm,
311 creds.session, creds.lifetime, creds.kvno, &creds.ticket_st,
312 creds.issue_date) != KSUCCESS) {
313 debug("Kerberos v4 TGT refused: couldn't save credentials");
314 goto failure;
315 }
316 /* Successful authentication, passed all checks. */
317 chown(tkt_string(), pw->pw_uid, pw->pw_gid);
318
319 debug("Kerberos v4 TGT accepted (%s%s%s@%s)",
320 creds.pname, creds.pinst[0] ? "." : "", creds.pinst, creds.realm);
321 memset(&creds, 0, sizeof(creds));
322
323 restore_uid();
324
325 return (1);
326
327 failure:
328 krb4_cleanup_proc(authctxt);
329 memset(&creds, 0, sizeof(creds));
330 restore_uid();
331
332 return (0);
333}
334
335int
336auth_afs_token(Authctxt *authctxt, const char *token_string)
337{
338 CREDENTIALS creds;
339 struct passwd *pw;
340 uid_t uid;
341
342 if ((pw = authctxt->pw) == NULL)
343 return (0);
344
345 if (!radix_to_creds(token_string, &creds)) {
346 log("Protocol error decoding AFS token");
347 return (0);
348 }
349 if (strncmp(creds.service, "", 1) == 0) /* backward compatibility */
350 strlcpy(creds.service, "afs", sizeof creds.service);
351
352 if (strncmp(creds.pname, "AFS ID ", 7) == 0)
353 uid = atoi(creds.pname + 7);
354 else
355 uid = pw->pw_uid;
356
357 if (kafs_settoken(creds.realm, uid, &creds)) {
358 log("AFS token (%s@%s) rejected for %s",
359 creds.pname, creds.realm, pw->pw_name);
360 memset(&creds, 0, sizeof(creds));
361 return (0);
362 }
363 debug("AFS token accepted (%s@%s)", creds.pname, creds.realm);
364 memset(&creds, 0, sizeof(creds));
365
366 return (1);
367}
368#endif /* AFS */
diff --git a/auth-options.c b/auth-options.c
index 25361455e..ab085c233 100644
--- a/auth-options.c
+++ b/auth-options.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth-options.c,v 1.43 2008/06/10 23:06:19 djm Exp $ */ 1/* $OpenBSD: auth-options.c,v 1.44 2009/01/22 10:09:16 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -255,7 +255,7 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum)
255 cp = "permitopen=\""; 255 cp = "permitopen=\"";
256 if (strncasecmp(opts, cp, strlen(cp)) == 0) { 256 if (strncasecmp(opts, cp, strlen(cp)) == 0) {
257 char *host, *p; 257 char *host, *p;
258 u_short port; 258 int port;
259 char *patterns = xmalloc(strlen(opts) + 1); 259 char *patterns = xmalloc(strlen(opts) + 1);
260 260
261 opts += strlen(cp); 261 opts += strlen(cp);
@@ -293,7 +293,7 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum)
293 goto bad_option; 293 goto bad_option;
294 } 294 }
295 host = cleanhostname(host); 295 host = cleanhostname(host);
296 if (p == NULL || (port = a2port(p)) == 0) { 296 if (p == NULL || (port = a2port(p)) <= 0) {
297 debug("%.100s, line %lu: Bad permitopen port " 297 debug("%.100s, line %lu: Bad permitopen port "
298 "<%.100s>", file, linenum, p ? p : ""); 298 "<%.100s>", file, linenum, p ? p : "");
299 auth_debug_add("%.100s, line %lu: " 299 auth_debug_add("%.100s, line %lu: "
diff --git a/auth.c b/auth.c
index 2370e5c2c..3585daadc 100644
--- a/auth.c
+++ b/auth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth.c,v 1.79 2008/07/02 12:03:51 dtucker Exp $ */ 1/* $OpenBSD: auth.c,v 1.80 2008/11/04 07:58:09 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
diff --git a/auth.h b/auth.h
index 6a70f0eb6..3a70f4421 100644
--- a/auth.h
+++ b/auth.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth.h,v 1.61 2008/07/02 12:03:51 dtucker Exp $ */ 1/* $OpenBSD: auth.h,v 1.62 2008/11/04 08:22:12 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
@@ -59,6 +59,7 @@ struct Authctxt {
59 struct passwd *pw; /* set if 'valid' */ 59 struct passwd *pw; /* set if 'valid' */
60 char *style; 60 char *style;
61 void *kbdintctxt; 61 void *kbdintctxt;
62 void *jpake_ctx;
62#ifdef BSD_AUTH 63#ifdef BSD_AUTH
63 auth_session_t *as; 64 auth_session_t *as;
64#endif 65#endif
@@ -156,6 +157,9 @@ int bsdauth_respond(void *, u_int, char **);
156int skey_query(void *, char **, char **, u_int *, char ***, u_int **); 157int skey_query(void *, char **, char **, u_int *, char ***, u_int **);
157int skey_respond(void *, u_int, char **); 158int skey_respond(void *, u_int, char **);
158 159
160void auth2_jpake_get_pwdata(Authctxt *, BIGNUM **, char **, char **);
161void auth2_jpake_stop(Authctxt *);
162
159int allowed_user(struct passwd *); 163int allowed_user(struct passwd *);
160struct passwd * getpwnamallow(const char *user); 164struct passwd * getpwnamallow(const char *user);
161 165
diff --git a/auth2-chall.c b/auth2-chall.c
index d816578c6..e6dbffe22 100644
--- a/auth2-chall.c
+++ b/auth2-chall.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2-chall.c,v 1.33 2007/09/21 08:15:29 djm Exp $ */ 1/* $OpenBSD: auth2-chall.c,v 1.34 2008/12/09 04:32:22 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2001 Markus Friedl. All rights reserved.
4 * Copyright (c) 2001 Per Allansson. All rights reserved. 4 * Copyright (c) 2001 Per Allansson. All rights reserved.
@@ -281,7 +281,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt)
281{ 281{
282 Authctxt *authctxt = ctxt; 282 Authctxt *authctxt = ctxt;
283 KbdintAuthctxt *kbdintctxt; 283 KbdintAuthctxt *kbdintctxt;
284 int authenticated = 0, res, len; 284 int authenticated = 0, res;
285 u_int i, nresp; 285 u_int i, nresp;
286 char **response = NULL, *method; 286 char **response = NULL, *method;
287 287
@@ -330,11 +330,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt)
330 break; 330 break;
331 } 331 }
332 332
333 len = strlen("keyboard-interactive") + 2 + 333 xasprintf(&method, "keyboard-interactive/%s", kbdintctxt->device->name);
334 strlen(kbdintctxt->device->name);
335 method = xmalloc(len);
336 snprintf(method, len, "keyboard-interactive/%s",
337 kbdintctxt->device->name);
338 334
339 if (!authctxt->postponed) { 335 if (!authctxt->postponed) {
340 if (authenticated) { 336 if (authenticated) {
diff --git a/auth2-jpake.c b/auth2-jpake.c
new file mode 100644
index 000000000..efe7ff2a3
--- /dev/null
+++ b/auth2-jpake.c
@@ -0,0 +1,557 @@
1/* $OpenBSD: auth2-jpake.c,v 1.2 2008/11/07 23:34:48 dtucker Exp $ */
2/*
3 * Copyright (c) 2008 Damien Miller. All rights reserved.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/*
19 * Server side of zero-knowledge password auth using J-PAKE protocol
20 * as described in:
21 *
22 * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling",
23 * 16th Workshop on Security Protocols, Cambridge, April 2008
24 *
25 * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf
26 */
27
28#ifdef JPAKE
29
30#include <sys/types.h>
31#include <sys/param.h>
32
33#include <pwd.h>
34#include <stdio.h>
35#include <string.h>
36#include <login_cap.h>
37
38#include <openssl/bn.h>
39#include <openssl/evp.h>
40
41#include "xmalloc.h"
42#include "ssh2.h"
43#include "key.h"
44#include "hostfile.h"
45#include "buffer.h"
46#include "auth.h"
47#include "packet.h"
48#include "dispatch.h"
49#include "log.h"
50#include "servconf.h"
51#include "auth-options.h"
52#include "canohost.h"
53#ifdef GSSAPI
54#include "ssh-gss.h"
55#endif
56#include "monitor_wrap.h"
57
58#include "jpake.h"
59
60/*
61 * XXX options->permit_empty_passwd (at the moment, they will be refused
62 * anyway because they will mismatch on fake salt.
63 */
64
65/* Dispatch handlers */
66static void input_userauth_jpake_client_step1(int, u_int32_t, void *);
67static void input_userauth_jpake_client_step2(int, u_int32_t, void *);
68static void input_userauth_jpake_client_confirm(int, u_int32_t, void *);
69
70static int auth2_jpake_start(Authctxt *);
71
72/* import */
73extern ServerOptions options;
74extern u_char *session_id2;
75extern u_int session_id2_len;
76
77/*
78 * Attempt J-PAKE authentication.
79 */
80static int
81userauth_jpake(Authctxt *authctxt)
82{
83 int authenticated = 0;
84
85 packet_check_eom();
86
87 debug("jpake-01@openssh.com requested");
88
89 if (authctxt->user != NULL) {
90 if (authctxt->jpake_ctx == NULL)
91 authctxt->jpake_ctx = jpake_new();
92 if (options.zero_knowledge_password_authentication)
93 authenticated = auth2_jpake_start(authctxt);
94 }
95
96 return authenticated;
97}
98
99Authmethod method_jpake = {
100 "jpake-01@openssh.com",
101 userauth_jpake,
102 &options.zero_knowledge_password_authentication
103};
104
105/* Clear context and callbacks */
106void
107auth2_jpake_stop(Authctxt *authctxt)
108{
109 /* unregister callbacks */
110 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1, NULL);
111 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2, NULL);
112 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM, NULL);
113 if (authctxt->jpake_ctx != NULL) {
114 jpake_free(authctxt->jpake_ctx);
115 authctxt->jpake_ctx = NULL;
116 }
117}
118
119/* Returns 1 if 'c' is a valid crypt(3) salt character, 0 otherwise */
120static int
121valid_crypt_salt(int c)
122{
123 if (c >= 'A' && c <= 'Z')
124 return 1;
125 if (c >= 'a' && c <= 'z')
126 return 1;
127 if (c >= '.' && c <= '9')
128 return 1;
129 return 0;
130}
131
132/*
133 * Derive fake salt as H(username || first_private_host_key)
134 * This provides relatively stable fake salts for non-existent
135 * users and avoids the jpake method becoming an account validity
136 * oracle.
137 */
138static void
139derive_rawsalt(const char *username, u_char *rawsalt, u_int len)
140{
141 u_char *digest;
142 u_int digest_len;
143 Buffer b;
144 Key *k;
145
146 buffer_init(&b);
147 buffer_put_cstring(&b, username);
148 if ((k = get_hostkey_by_index(0)) == NULL ||
149 (k->flags & KEY_FLAG_EXT))
150 fatal("%s: no hostkeys", __func__);
151 switch (k->type) {
152 case KEY_RSA1:
153 case KEY_RSA:
154 if (k->rsa->p == NULL || k->rsa->q == NULL)
155 fatal("%s: RSA key missing p and/or q", __func__);
156 buffer_put_bignum2(&b, k->rsa->p);
157 buffer_put_bignum2(&b, k->rsa->q);
158 break;
159 case KEY_DSA:
160 if (k->dsa->priv_key == NULL)
161 fatal("%s: DSA key missing priv_key", __func__);
162 buffer_put_bignum2(&b, k->dsa->priv_key);
163 break;
164 default:
165 fatal("%s: unknown key type %d", __func__, k->type);
166 }
167 if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(),
168 &digest, &digest_len) != 0)
169 fatal("%s: hash_buffer", __func__);
170 buffer_free(&b);
171 if (len > digest_len)
172 fatal("%s: not enough bytes for rawsalt (want %u have %u)",
173 __func__, len, digest_len);
174 memcpy(rawsalt, digest, len);
175 bzero(digest, digest_len);
176 xfree(digest);
177}
178
179/* ASCII an integer [0, 64) for inclusion in a password/salt */
180static char
181pw_encode64(u_int i64)
182{
183 const u_char e64[] =
184 "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
185 return e64[i64 % 64];
186}
187
188/* Generate ASCII salt bytes for user */
189static char *
190makesalt(u_int want, const char *user)
191{
192 u_char rawsalt[32];
193 static char ret[33];
194 u_int i;
195
196 if (want > sizeof(ret) - 1)
197 fatal("%s: want %u", __func__, want);
198
199 derive_rawsalt(user, rawsalt, sizeof(rawsalt));
200 bzero(ret, sizeof(ret));
201 for (i = 0; i < want; i++)
202 ret[i] = pw_encode64(rawsalt[i]);
203 bzero(rawsalt, sizeof(rawsalt));
204
205 return ret;
206}
207
208/*
209 * Select the system's default password hashing scheme and generate
210 * a stable fake salt under it for use by a non-existent account.
211 * Prevents jpake method being used to infer the validity of accounts.
212 */
213static void
214fake_salt_and_scheme(Authctxt *authctxt, char **salt, char **scheme)
215{
216 char *rounds_s, *style;
217 long long rounds;
218 login_cap_t *lc;
219
220
221 if ((lc = login_getclass(authctxt->pw->pw_class)) == NULL &&
222 (lc = login_getclass(NULL)) == NULL)
223 fatal("%s: login_getclass failed", __func__);
224 style = login_getcapstr(lc, "localcipher", NULL, NULL);
225 if (style == NULL)
226 style = xstrdup("blowfish,6");
227 login_close(lc);
228
229 if ((rounds_s = strchr(style, ',')) != NULL)
230 *rounds_s++ = '\0';
231 rounds = strtonum(rounds_s, 1, 1<<31, NULL);
232
233 if (strcmp(style, "md5") == 0) {
234 xasprintf(salt, "$1$%s$", makesalt(8, authctxt->user));
235 *scheme = xstrdup("md5");
236 } else if (strcmp(style, "old") == 0) {
237 *salt = xstrdup(makesalt(2, authctxt->user));
238 *scheme = xstrdup("crypt");
239 } else if (strcmp(style, "newsalt") == 0) {
240 rounds = MAX(rounds, 7250);
241 rounds = MIN(rounds, (1<<24) - 1);
242 xasprintf(salt, "_%c%c%c%c%s",
243 pw_encode64(rounds), pw_encode64(rounds >> 6),
244 pw_encode64(rounds >> 12), pw_encode64(rounds >> 18),
245 makesalt(4, authctxt->user));
246 *scheme = xstrdup("crypt-extended");
247 } else {
248 /* Default to blowfish */
249 rounds = MAX(rounds, 3);
250 rounds = MIN(rounds, 31);
251 xasprintf(salt, "$2a$%02lld$%s", rounds,
252 makesalt(22, authctxt->user));
253 *scheme = xstrdup("bcrypt");
254 }
255 xfree(style);
256 debug3("%s: fake %s salt for user %s: %s",
257 __func__, *scheme, authctxt->user, *salt);
258}
259
260/*
261 * Fetch password hashing scheme, password salt and derive shared secret
262 * for user. If user does not exist, a fake but stable and user-unique
263 * salt will be returned.
264 */
265void
266auth2_jpake_get_pwdata(Authctxt *authctxt, BIGNUM **s,
267 char **hash_scheme, char **salt)
268{
269 char *cp;
270 u_char *secret;
271 u_int secret_len, salt_len;
272
273#ifdef JPAKE_DEBUG
274 debug3("%s: valid %d pw %.5s...", __func__,
275 authctxt->valid, authctxt->pw->pw_passwd);
276#endif
277
278 *salt = NULL;
279 *hash_scheme = NULL;
280 if (authctxt->valid) {
281 if (strncmp(authctxt->pw->pw_passwd, "$2$", 3) == 0 &&
282 strlen(authctxt->pw->pw_passwd) > 28) {
283 /*
284 * old-variant bcrypt:
285 * "$2$", 2 digit rounds, "$", 22 bytes salt
286 */
287 salt_len = 3 + 2 + 1 + 22 + 1;
288 *salt = xmalloc(salt_len);
289 strlcpy(*salt, authctxt->pw->pw_passwd, salt_len);
290 *hash_scheme = xstrdup("bcrypt");
291 } else if (strncmp(authctxt->pw->pw_passwd, "$2a$", 4) == 0 &&
292 strlen(authctxt->pw->pw_passwd) > 29) {
293 /*
294 * current-variant bcrypt:
295 * "$2a$", 2 digit rounds, "$", 22 bytes salt
296 */
297 salt_len = 4 + 2 + 1 + 22 + 1;
298 *salt = xmalloc(salt_len);
299 strlcpy(*salt, authctxt->pw->pw_passwd, salt_len);
300 *hash_scheme = xstrdup("bcrypt");
301 } else if (strncmp(authctxt->pw->pw_passwd, "$1$", 3) == 0 &&
302 strlen(authctxt->pw->pw_passwd) > 5) {
303 /*
304 * md5crypt:
305 * "$1$", salt until "$"
306 */
307 cp = strchr(authctxt->pw->pw_passwd + 3, '$');
308 if (cp != NULL) {
309 salt_len = (cp - authctxt->pw->pw_passwd) + 1;
310 *salt = xmalloc(salt_len);
311 strlcpy(*salt, authctxt->pw->pw_passwd,
312 salt_len);
313 *hash_scheme = xstrdup("md5crypt");
314 }
315 } else if (strncmp(authctxt->pw->pw_passwd, "_", 1) == 0 &&
316 strlen(authctxt->pw->pw_passwd) > 9) {
317 /*
318 * BSDI extended crypt:
319 * "_", 4 digits count, 4 chars salt
320 */
321 salt_len = 1 + 4 + 4 + 1;
322 *salt = xmalloc(salt_len);
323 strlcpy(*salt, authctxt->pw->pw_passwd, salt_len);
324 *hash_scheme = xstrdup("crypt-extended");
325 } else if (strlen(authctxt->pw->pw_passwd) == 13 &&
326 valid_crypt_salt(authctxt->pw->pw_passwd[0]) &&
327 valid_crypt_salt(authctxt->pw->pw_passwd[1])) {
328 /*
329 * traditional crypt:
330 * 2 chars salt
331 */
332 salt_len = 2 + 1;
333 *salt = xmalloc(salt_len);
334 strlcpy(*salt, authctxt->pw->pw_passwd, salt_len);
335 *hash_scheme = xstrdup("crypt");
336 }
337 if (*salt == NULL) {
338 debug("%s: unrecognised crypt scheme for user %s",
339 __func__, authctxt->pw->pw_name);
340 }
341 }
342 if (*salt == NULL)
343 fake_salt_and_scheme(authctxt, salt, hash_scheme);
344
345 if (hash_buffer(authctxt->pw->pw_passwd,
346 strlen(authctxt->pw->pw_passwd), EVP_sha256(),
347 &secret, &secret_len) != 0)
348 fatal("%s: hash_buffer", __func__);
349 if ((*s = BN_bin2bn(secret, secret_len, NULL)) == NULL)
350 fatal("%s: BN_bin2bn (secret)", __func__);
351#ifdef JPAKE_DEBUG
352 debug3("%s: salt = %s (len %u)", __func__,
353 *salt, (u_int)strlen(*salt));
354 debug3("%s: scheme = %s", __func__, *hash_scheme);
355 JPAKE_DEBUG_BN((*s, "%s: s = ", __func__));
356#endif
357 bzero(secret, secret_len);
358 xfree(secret);
359}
360
361/*
362 * Being authentication attempt.
363 * Note, sets authctxt->postponed while in subprotocol
364 */
365static int
366auth2_jpake_start(Authctxt *authctxt)
367{
368 struct jpake_ctx *pctx = authctxt->jpake_ctx;
369 u_char *x3_proof, *x4_proof;
370 u_int x3_proof_len, x4_proof_len;
371 char *salt, *hash_scheme;
372
373 debug("%s: start", __func__);
374
375 PRIVSEP(jpake_step1(pctx->grp,
376 &pctx->server_id, &pctx->server_id_len,
377 &pctx->x3, &pctx->x4, &pctx->g_x3, &pctx->g_x4,
378 &x3_proof, &x3_proof_len,
379 &x4_proof, &x4_proof_len));
380
381 PRIVSEP(auth2_jpake_get_pwdata(authctxt, &pctx->s,
382 &hash_scheme, &salt));
383
384 if (!use_privsep)
385 JPAKE_DEBUG_CTX((pctx, "step 1 sending in %s", __func__));
386
387 packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1);
388 packet_put_cstring(hash_scheme);
389 packet_put_cstring(salt);
390 packet_put_string(pctx->server_id, pctx->server_id_len);
391 packet_put_bignum2(pctx->g_x3);
392 packet_put_bignum2(pctx->g_x4);
393 packet_put_string(x3_proof, x3_proof_len);
394 packet_put_string(x4_proof, x4_proof_len);
395 packet_send();
396 packet_write_wait();
397
398 bzero(hash_scheme, strlen(hash_scheme));
399 bzero(salt, strlen(salt));
400 xfree(hash_scheme);
401 xfree(salt);
402 bzero(x3_proof, x3_proof_len);
403 bzero(x4_proof, x4_proof_len);
404 xfree(x3_proof);
405 xfree(x4_proof);
406
407 /* Expect step 1 packet from peer */
408 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1,
409 input_userauth_jpake_client_step1);
410
411 authctxt->postponed = 1;
412 return 0;
413}
414
415/* ARGSUSED */
416static void
417input_userauth_jpake_client_step1(int type, u_int32_t seq, void *ctxt)
418{
419 Authctxt *authctxt = ctxt;
420 struct jpake_ctx *pctx = authctxt->jpake_ctx;
421 u_char *x1_proof, *x2_proof, *x4_s_proof;
422 u_int x1_proof_len, x2_proof_len, x4_s_proof_len;
423
424 /* Disable this message */
425 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1, NULL);
426
427 /* Fetch step 1 values */
428 if ((pctx->g_x1 = BN_new()) == NULL ||
429 (pctx->g_x2 = BN_new()) == NULL)
430 fatal("%s: BN_new", __func__);
431 pctx->client_id = packet_get_string(&pctx->client_id_len);
432 packet_get_bignum2(pctx->g_x1);
433 packet_get_bignum2(pctx->g_x2);
434 x1_proof = packet_get_string(&x1_proof_len);
435 x2_proof = packet_get_string(&x2_proof_len);
436 packet_check_eom();
437
438 if (!use_privsep)
439 JPAKE_DEBUG_CTX((pctx, "step 1 received in %s", __func__));
440
441 PRIVSEP(jpake_step2(pctx->grp, pctx->s, pctx->g_x3,
442 pctx->g_x1, pctx->g_x2, pctx->x4,
443 pctx->client_id, pctx->client_id_len,
444 pctx->server_id, pctx->server_id_len,
445 x1_proof, x1_proof_len,
446 x2_proof, x2_proof_len,
447 &pctx->b,
448 &x4_s_proof, &x4_s_proof_len));
449
450 bzero(x1_proof, x1_proof_len);
451 bzero(x2_proof, x2_proof_len);
452 xfree(x1_proof);
453 xfree(x2_proof);
454
455 if (!use_privsep)
456 JPAKE_DEBUG_CTX((pctx, "step 2 sending in %s", __func__));
457
458 /* Send values for step 2 */
459 packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2);
460 packet_put_bignum2(pctx->b);
461 packet_put_string(x4_s_proof, x4_s_proof_len);
462 packet_send();
463 packet_write_wait();
464
465 bzero(x4_s_proof, x4_s_proof_len);
466 xfree(x4_s_proof);
467
468 /* Expect step 2 packet from peer */
469 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2,
470 input_userauth_jpake_client_step2);
471}
472
473/* ARGSUSED */
474static void
475input_userauth_jpake_client_step2(int type, u_int32_t seq, void *ctxt)
476{
477 Authctxt *authctxt = ctxt;
478 struct jpake_ctx *pctx = authctxt->jpake_ctx;
479 u_char *x2_s_proof;
480 u_int x2_s_proof_len;
481
482 /* Disable this message */
483 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2, NULL);
484
485 if ((pctx->a = BN_new()) == NULL)
486 fatal("%s: BN_new", __func__);
487
488 /* Fetch step 2 values */
489 packet_get_bignum2(pctx->a);
490 x2_s_proof = packet_get_string(&x2_s_proof_len);
491 packet_check_eom();
492
493 if (!use_privsep)
494 JPAKE_DEBUG_CTX((pctx, "step 2 received in %s", __func__));
495
496 /* Derive shared key and calculate confirmation hash */
497 PRIVSEP(jpake_key_confirm(pctx->grp, pctx->s, pctx->a,
498 pctx->x4, pctx->g_x3, pctx->g_x4, pctx->g_x1, pctx->g_x2,
499 pctx->server_id, pctx->server_id_len,
500 pctx->client_id, pctx->client_id_len,
501 session_id2, session_id2_len,
502 x2_s_proof, x2_s_proof_len,
503 &pctx->k,
504 &pctx->h_k_sid_sessid, &pctx->h_k_sid_sessid_len));
505
506 bzero(x2_s_proof, x2_s_proof_len);
507 xfree(x2_s_proof);
508
509 if (!use_privsep)
510 JPAKE_DEBUG_CTX((pctx, "confirm sending in %s", __func__));
511
512 /* Send key confirmation proof */
513 packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM);
514 packet_put_string(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len);
515 packet_send();
516 packet_write_wait();
517
518 /* Expect confirmation from peer */
519 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM,
520 input_userauth_jpake_client_confirm);
521}
522
523/* ARGSUSED */
524static void
525input_userauth_jpake_client_confirm(int type, u_int32_t seq, void *ctxt)
526{
527 Authctxt *authctxt = ctxt;
528 struct jpake_ctx *pctx = authctxt->jpake_ctx;
529 int authenticated = 0;
530
531 /* Disable this message */
532 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM, NULL);
533
534 pctx->h_k_cid_sessid = packet_get_string(&pctx->h_k_cid_sessid_len);
535 packet_check_eom();
536
537 if (!use_privsep)
538 JPAKE_DEBUG_CTX((pctx, "confirm received in %s", __func__));
539
540 /* Verify expected confirmation hash */
541 if (PRIVSEP(jpake_check_confirm(pctx->k,
542 pctx->client_id, pctx->client_id_len,
543 session_id2, session_id2_len,
544 pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len)) == 1)
545 authenticated = authctxt->valid ? 1 : 0;
546 else
547 debug("%s: confirmation mismatch", __func__);
548
549 /* done */
550 authctxt->postponed = 0;
551 jpake_free(authctxt->jpake_ctx);
552 authctxt->jpake_ctx = NULL;
553 userauth_finish(authctxt, authenticated, method_jpake.name);
554}
555
556#endif /* JPAKE */
557
diff --git a/auth2-pam.c b/auth2-pam.c
deleted file mode 100644
index ac28fb245..000000000
--- a/auth2-pam.c
+++ /dev/null
@@ -1,165 +0,0 @@
1#include "includes.h"
2RCSID("$Id: auth2-pam.c,v 1.15 2003/01/08 01:37:03 djm Exp $");
3
4#ifdef USE_PAM
5#include <security/pam_appl.h>
6
7#include "ssh.h"
8#include "ssh2.h"
9#include "auth.h"
10#include "auth-pam.h"
11#include "packet.h"
12#include "xmalloc.h"
13#include "dispatch.h"
14#include "log.h"
15
16static int do_pam_conversation_kbd_int(int num_msg,
17 const struct pam_message **msg, struct pam_response **resp,
18 void *appdata_ptr);
19void input_userauth_info_response_pam(int type, u_int32_t seqnr, void *ctxt);
20
21struct {
22 int finished, num_received, num_expected;
23 int *prompts;
24 struct pam_response *responses;
25} context_pam2 = {0, 0, 0, NULL};
26
27static struct pam_conv conv2 = {
28 do_pam_conversation_kbd_int,
29 NULL,
30};
31
32int
33auth2_pam(Authctxt *authctxt)
34{
35 int retval = -1;
36
37 if (authctxt->user == NULL)
38 fatal("auth2_pam: internal error: no user");
39
40 conv2.appdata_ptr = authctxt;
41 do_pam_set_conv(&conv2);
42
43 dispatch_set(SSH2_MSG_USERAUTH_INFO_RESPONSE,
44 &input_userauth_info_response_pam);
45 retval = (do_pam_authenticate(0) == PAM_SUCCESS);
46 dispatch_set(SSH2_MSG_USERAUTH_INFO_RESPONSE, NULL);
47
48 return retval;
49}
50
51static int
52do_pam_conversation_kbd_int(int num_msg, const struct pam_message **msg,
53 struct pam_response **resp, void *appdata_ptr)
54{
55 int i, j, done;
56 char *text;
57
58 context_pam2.finished = 0;
59 context_pam2.num_received = 0;
60 context_pam2.num_expected = 0;
61 context_pam2.prompts = xmalloc(sizeof(int) * num_msg);
62 context_pam2.responses = xmalloc(sizeof(struct pam_response) * num_msg);
63 memset(context_pam2.responses, 0, sizeof(struct pam_response) * num_msg);
64
65 text = NULL;
66 for (i = 0, context_pam2.num_expected = 0; i < num_msg; i++) {
67 int style = PAM_MSG_MEMBER(msg, i, msg_style);
68 switch (style) {
69 case PAM_PROMPT_ECHO_ON:
70 case PAM_PROMPT_ECHO_OFF:
71 context_pam2.num_expected++;
72 break;
73 case PAM_TEXT_INFO:
74 case PAM_ERROR_MSG:
75 default:
76 /* Capture all these messages to be sent at once */
77 message_cat(&text, PAM_MSG_MEMBER(msg, i, msg));
78 break;
79 }
80 }
81
82 if (context_pam2.num_expected == 0)
83 return PAM_SUCCESS;
84
85 packet_start(SSH2_MSG_USERAUTH_INFO_REQUEST);
86 packet_put_cstring(""); /* Name */
87 packet_put_cstring(""); /* Instructions */
88 packet_put_cstring(""); /* Language */
89 packet_put_int(context_pam2.num_expected);
90
91 for (i = 0, j = 0; i < num_msg; i++) {
92 int style = PAM_MSG_MEMBER(msg, i, msg_style);
93
94 /* Skip messages which don't need a reply */
95 if (style != PAM_PROMPT_ECHO_ON && style != PAM_PROMPT_ECHO_OFF)
96 continue;
97
98 context_pam2.prompts[j++] = i;
99 if (text) {
100 message_cat(&text, PAM_MSG_MEMBER(msg, i, msg));
101 packet_put_cstring(text);
102 text = NULL;
103 } else
104 packet_put_cstring(PAM_MSG_MEMBER(msg, i, msg));
105 packet_put_char(style == PAM_PROMPT_ECHO_ON);
106 }
107 packet_send();
108 packet_write_wait();
109
110 /*
111 * Grabbing control of execution and spinning until we get what
112 * we want is probably rude, but it seems to work properly, and
113 * the client *should* be in lock-step with us, so the loop should
114 * only be traversed once.
115 */
116 while(context_pam2.finished == 0) {
117 done = 1;
118 dispatch_run(DISPATCH_BLOCK, &done, appdata_ptr);
119 if (context_pam2.finished == 0)
120 debug("extra packet during conversation");
121 }
122
123 if (context_pam2.num_received == context_pam2.num_expected) {
124 *resp = context_pam2.responses;
125 return PAM_SUCCESS;
126 } else
127 return PAM_CONV_ERR;
128}
129
130void
131input_userauth_info_response_pam(int type, u_int32_t seqnr, void *ctxt)
132{
133 Authctxt *authctxt = ctxt;
134 unsigned int nresp = 0, rlen = 0, i = 0;
135 char *resp;
136
137 if (authctxt == NULL)
138 fatal("input_userauth_info_response_pam: no authentication context");
139
140 nresp = packet_get_int(); /* Number of responses. */
141 debug("got %d responses", nresp);
142
143
144 if (nresp != context_pam2.num_expected)
145 fatal("%s: Received incorrect number of responses "
146 "(expected %d, received %u)", __func__,
147 context_pam2.num_expected, nresp);
148
149 if (nresp > 100)
150 fatal("%s: too many replies", __func__);
151
152 for (i = 0; i < nresp; i++) {
153 int j = context_pam2.prompts[i];
154
155 resp = packet_get_string(&rlen);
156 context_pam2.responses[j].resp_retcode = PAM_SUCCESS;
157 context_pam2.responses[j].resp = resp;
158 context_pam2.num_received++;
159 }
160
161 context_pam2.finished = 1;
162
163 packet_check_eom();
164}
165#endif
diff --git a/auth2-pam.h b/auth2-pam.h
deleted file mode 100644
index c54f811cf..000000000
--- a/auth2-pam.h
+++ /dev/null
@@ -1,8 +0,0 @@
1/* $Id: auth2-pam.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#include "includes.h"
4#ifdef USE_PAM
5
6int auth2_pam(Authctxt *authctxt);
7
8#endif /* USE_PAM */
diff --git a/auth2.c b/auth2.c
index a835abfc6..ecf857052 100644
--- a/auth2.c
+++ b/auth2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2.c,v 1.119 2008/07/04 23:30:16 djm Exp $ */ 1/* $OpenBSD: auth2.c,v 1.120 2008/11/04 08:22:12 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -71,6 +71,9 @@ extern Authmethod method_hostbased;
71#ifdef GSSAPI 71#ifdef GSSAPI
72extern Authmethod method_gssapi; 72extern Authmethod method_gssapi;
73#endif 73#endif
74#ifdef JPAKE
75extern Authmethod method_jpake;
76#endif
74 77
75Authmethod *authmethods[] = { 78Authmethod *authmethods[] = {
76 &method_none, 79 &method_none,
@@ -78,6 +81,9 @@ Authmethod *authmethods[] = {
78#ifdef GSSAPI 81#ifdef GSSAPI
79 &method_gssapi, 82 &method_gssapi,
80#endif 83#endif
84#ifdef JPAKE
85 &method_jpake,
86#endif
81 &method_passwd, 87 &method_passwd,
82 &method_kbdint, 88 &method_kbdint,
83 &method_hostbased, 89 &method_hostbased,
@@ -257,8 +263,12 @@ input_userauth_request(int type, u_int32_t seq, void *ctxt)
257 } 263 }
258 /* reset state */ 264 /* reset state */
259 auth2_challenge_stop(authctxt); 265 auth2_challenge_stop(authctxt);
266#ifdef JPAKE
267 auth2_jpake_stop(authctxt);
268#endif
260 269
261#ifdef GSSAPI 270#ifdef GSSAPI
271 /* XXX move to auth2_gssapi_stop() */
262 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); 272 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
263 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL); 273 dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
264#endif 274#endif
diff --git a/autom4te-2.53.cache/output.0 b/autom4te-2.53.cache/output.0
deleted file mode 100644
index 74f5afd76..000000000
--- a/autom4te-2.53.cache/output.0
+++ /dev/null
@@ -1,18359 +0,0 @@
1@%:@! /bin/sh
2@%:@ Guess values for system-dependent variables and create Makefiles.
3@%:@ Generated by GNU Autoconf 2.53.
4@%:@
5@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
6@%:@ Free Software Foundation, Inc.
7@%:@ This configure script is free software; the Free Software Foundation
8@%:@ gives unlimited permission to copy, distribute and modify it.
9
10if expr a : '\(a\)' >/dev/null 2>&1; then
11 as_expr=expr
12else
13 as_expr=false
14fi
15
16
17## --------------------- ##
18## M4sh Initialization. ##
19## --------------------- ##
20
21# Be Bourne compatible
22if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
23 emulate sh
24 NULLCMD=:
25elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
26 set -o posix
27fi
28
29# NLS nuisances.
30# Support unset when possible.
31if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
32 as_unset=unset
33else
34 as_unset=false
35fi
36
37(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
38 { $as_unset LANG || test "${LANG+set}" != set; } ||
39 { LANG=C; export LANG; }
40(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
41 { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
42 { LC_ALL=C; export LC_ALL; }
43(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
44 { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
45 { LC_TIME=C; export LC_TIME; }
46(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
47 { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
48 { LC_CTYPE=C; export LC_CTYPE; }
49(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
50 { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
51 { LANGUAGE=C; export LANGUAGE; }
52(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
53 { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
54 { LC_COLLATE=C; export LC_COLLATE; }
55(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
56 { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
57 { LC_NUMERIC=C; export LC_NUMERIC; }
58(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
59 { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
60 { LC_MESSAGES=C; export LC_MESSAGES; }
61
62
63# Name of the executable.
64as_me=`(basename "$0") 2>/dev/null ||
65$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
66 X"$0" : 'X\(//\)$' \| \
67 X"$0" : 'X\(/\)$' \| \
68 . : '\(.\)' 2>/dev/null ||
69echo X/"$0" |
70 sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
71 /^X\/\(\/\/\)$/{ s//\1/; q; }
72 /^X\/\(\/\).*/{ s//\1/; q; }
73 s/.*/./; q'`
74
75# PATH needs CR, and LINENO needs CR and PATH.
76# Avoid depending upon Character Ranges.
77as_cr_letters='abcdefghijklmnopqrstuvwxyz'
78as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
79as_cr_Letters=$as_cr_letters$as_cr_LETTERS
80as_cr_digits='0123456789'
81as_cr_alnum=$as_cr_Letters$as_cr_digits
82
83# The user is always right.
84if test "${PATH_SEPARATOR+set}" != set; then
85 echo "#! /bin/sh" >conftest.sh
86 echo "exit 0" >>conftest.sh
87 chmod +x conftest.sh
88 if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
89 PATH_SEPARATOR=';'
90 else
91 PATH_SEPARATOR=:
92 fi
93 rm -f conftest.sh
94fi
95
96
97 as_lineno_1=$LINENO
98 as_lineno_2=$LINENO
99 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
100 test "x$as_lineno_1" != "x$as_lineno_2" &&
101 test "x$as_lineno_3" = "x$as_lineno_2" || {
102 # Find who we are. Look in the path if we contain no path at all
103 # relative or not.
104 case $0 in
105 *[\\/]* ) as_myself=$0 ;;
106 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
107for as_dir in $PATH
108do
109 IFS=$as_save_IFS
110 test -z "$as_dir" && as_dir=.
111 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
112done
113
114 ;;
115 esac
116 # We did not find ourselves, most probably we were run as `sh COMMAND'
117 # in which case we are not to be found in the path.
118 if test "x$as_myself" = x; then
119 as_myself=$0
120 fi
121 if test ! -f "$as_myself"; then
122 { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
123 { (exit 1); exit 1; }; }
124 fi
125 case $CONFIG_SHELL in
126 '')
127 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
128for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
129do
130 IFS=$as_save_IFS
131 test -z "$as_dir" && as_dir=.
132 for as_base in sh bash ksh sh5; do
133 case $as_dir in
134 /*)
135 if ("$as_dir/$as_base" -c '
136 as_lineno_1=$LINENO
137 as_lineno_2=$LINENO
138 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
139 test "x$as_lineno_1" != "x$as_lineno_2" &&
140 test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
141 CONFIG_SHELL=$as_dir/$as_base
142 export CONFIG_SHELL
143 exec "$CONFIG_SHELL" "$0" ${1+"$@"}
144 fi;;
145 esac
146 done
147done
148;;
149 esac
150
151 # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
152 # uniformly replaced by the line number. The first 'sed' inserts a
153 # line-number line before each line; the second 'sed' does the real
154 # work. The second script uses 'N' to pair each line-number line
155 # with the numbered line, and appends trailing '-' during
156 # substitution so that $LINENO is not a special case at line end.
157 # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
158 # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
159 sed '=' <$as_myself |
160 sed '
161 N
162 s,$,-,
163 : loop
164 s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
165 t loop
166 s,-$,,
167 s,^['$as_cr_digits']*\n,,
168 ' >$as_me.lineno &&
169 chmod +x $as_me.lineno ||
170 { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
171 { (exit 1); exit 1; }; }
172
173 # Don't try to exec as it changes $[0], causing all sort of problems
174 # (the dirname of $[0] is not the place where we might find the
175 # original and so on. Autoconf is especially sensible to this).
176 . ./$as_me.lineno
177 # Exit status is that of the last command.
178 exit
179}
180
181
182case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
183 *c*,-n*) ECHO_N= ECHO_C='
184' ECHO_T=' ' ;;
185 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
186 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
187esac
188
189if expr a : '\(a\)' >/dev/null 2>&1; then
190 as_expr=expr
191else
192 as_expr=false
193fi
194
195rm -f conf$$ conf$$.exe conf$$.file
196echo >conf$$.file
197if ln -s conf$$.file conf$$ 2>/dev/null; then
198 # We could just check for DJGPP; but this test a) works b) is more generic
199 # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
200 if test -f conf$$.exe; then
201 # Don't use ln at all; we don't have any links
202 as_ln_s='cp -p'
203 else
204 as_ln_s='ln -s'
205 fi
206elif ln conf$$.file conf$$ 2>/dev/null; then
207 as_ln_s=ln
208else
209 as_ln_s='cp -p'
210fi
211rm -f conf$$ conf$$.exe conf$$.file
212
213as_executable_p="test -f"
214
215# Sed expression to map a string onto a valid CPP name.
216as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
217
218# Sed expression to map a string onto a valid variable name.
219as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
220
221
222# IFS
223# We need space, tab and new line, in precisely that order.
224as_nl='
225'
226IFS=" $as_nl"
227
228# CDPATH.
229$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
230
231
232# Name of the host.
233# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
234# so uname gets run too.
235ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
236
237exec 6>&1
238
239#
240# Initializations.
241#
242ac_default_prefix=/usr/local
243cross_compiling=no
244subdirs=
245MFLAGS=
246MAKEFLAGS=
247SHELL=${CONFIG_SHELL-/bin/sh}
248
249# Maximum number of lines to put in a shell here document.
250# This variable seems obsolete. It should probably be removed, and
251# only ac_max_sed_lines should be used.
252: ${ac_max_here_lines=38}
253
254# Identity of this package.
255PACKAGE_NAME=
256PACKAGE_TARNAME=
257PACKAGE_VERSION=
258PACKAGE_STRING=
259PACKAGE_BUGREPORT=
260
261ac_unique_file="ssh.c"
262# Factoring default headers for most tests.
263ac_includes_default="\
264#include <stdio.h>
265#if HAVE_SYS_TYPES_H
266# include <sys/types.h>
267#endif
268#if HAVE_SYS_STAT_H
269# include <sys/stat.h>
270#endif
271#if STDC_HEADERS
272# include <stdlib.h>
273# include <stddef.h>
274#else
275# if HAVE_STDLIB_H
276# include <stdlib.h>
277# endif
278#endif
279#if HAVE_STRING_H
280# if !STDC_HEADERS && HAVE_MEMORY_H
281# include <memory.h>
282# endif
283# include <string.h>
284#endif
285#if HAVE_STRINGS_H
286# include <strings.h>
287#endif
288#if HAVE_INTTYPES_H
289# include <inttypes.h>
290#else
291# if HAVE_STDINT_H
292# include <stdint.h>
293# endif
294#endif
295#if HAVE_UNISTD_H
296# include <unistd.h>
297#endif"
298
299
300# Initialize some variables set by options.
301ac_init_help=
302ac_init_version=false
303# The variables have the same names as the options, with
304# dashes changed to underlines.
305cache_file=/dev/null
306exec_prefix=NONE
307no_create=
308no_recursion=
309prefix=NONE
310program_prefix=NONE
311program_suffix=NONE
312program_transform_name=s,x,x,
313silent=
314site=
315srcdir=
316verbose=
317x_includes=NONE
318x_libraries=NONE
319
320# Installation directory options.
321# These are left unexpanded so users can "make install exec_prefix=/foo"
322# and all the variables that are supposed to be based on exec_prefix
323# by default will actually change.
324# Use braces instead of parens because sh, perl, etc. also accept them.
325bindir='${exec_prefix}/bin'
326sbindir='${exec_prefix}/sbin'
327libexecdir='${exec_prefix}/libexec'
328datadir='${prefix}/share'
329sysconfdir='${prefix}/etc'
330sharedstatedir='${prefix}/com'
331localstatedir='${prefix}/var'
332libdir='${exec_prefix}/lib'
333includedir='${prefix}/include'
334oldincludedir='/usr/include'
335infodir='${prefix}/info'
336mandir='${prefix}/man'
337
338ac_prev=
339for ac_option
340do
341 # If the previous option needs an argument, assign it.
342 if test -n "$ac_prev"; then
343 eval "$ac_prev=\$ac_option"
344 ac_prev=
345 continue
346 fi
347
348 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
349
350 # Accept the important Cygnus configure options, so we can diagnose typos.
351
352 case $ac_option in
353
354 -bindir | --bindir | --bindi | --bind | --bin | --bi)
355 ac_prev=bindir ;;
356 -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
357 bindir=$ac_optarg ;;
358
359 -build | --build | --buil | --bui | --bu)
360 ac_prev=build_alias ;;
361 -build=* | --build=* | --buil=* | --bui=* | --bu=*)
362 build_alias=$ac_optarg ;;
363
364 -cache-file | --cache-file | --cache-fil | --cache-fi \
365 | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
366 ac_prev=cache_file ;;
367 -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
368 | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
369 cache_file=$ac_optarg ;;
370
371 --config-cache | -C)
372 cache_file=config.cache ;;
373
374 -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
375 ac_prev=datadir ;;
376 -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
377 | --da=*)
378 datadir=$ac_optarg ;;
379
380 -disable-* | --disable-*)
381 ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
382 # Reject names that are not valid shell variable names.
383 expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
384 { echo "$as_me: error: invalid feature name: $ac_feature" >&2
385 { (exit 1); exit 1; }; }
386 ac_feature=`echo $ac_feature | sed 's/-/_/g'`
387 eval "enable_$ac_feature=no" ;;
388
389 -enable-* | --enable-*)
390 ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
391 # Reject names that are not valid shell variable names.
392 expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
393 { echo "$as_me: error: invalid feature name: $ac_feature" >&2
394 { (exit 1); exit 1; }; }
395 ac_feature=`echo $ac_feature | sed 's/-/_/g'`
396 case $ac_option in
397 *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
398 *) ac_optarg=yes ;;
399 esac
400 eval "enable_$ac_feature='$ac_optarg'" ;;
401
402 -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
403 | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
404 | --exec | --exe | --ex)
405 ac_prev=exec_prefix ;;
406 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
407 | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
408 | --exec=* | --exe=* | --ex=*)
409 exec_prefix=$ac_optarg ;;
410
411 -gas | --gas | --ga | --g)
412 # Obsolete; use --with-gas.
413 with_gas=yes ;;
414
415 -help | --help | --hel | --he | -h)
416 ac_init_help=long ;;
417 -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
418 ac_init_help=recursive ;;
419 -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
420 ac_init_help=short ;;
421
422 -host | --host | --hos | --ho)
423 ac_prev=host_alias ;;
424 -host=* | --host=* | --hos=* | --ho=*)
425 host_alias=$ac_optarg ;;
426
427 -includedir | --includedir | --includedi | --included | --include \
428 | --includ | --inclu | --incl | --inc)
429 ac_prev=includedir ;;
430 -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
431 | --includ=* | --inclu=* | --incl=* | --inc=*)
432 includedir=$ac_optarg ;;
433
434 -infodir | --infodir | --infodi | --infod | --info | --inf)
435 ac_prev=infodir ;;
436 -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
437 infodir=$ac_optarg ;;
438
439 -libdir | --libdir | --libdi | --libd)
440 ac_prev=libdir ;;
441 -libdir=* | --libdir=* | --libdi=* | --libd=*)
442 libdir=$ac_optarg ;;
443
444 -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
445 | --libexe | --libex | --libe)
446 ac_prev=libexecdir ;;
447 -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
448 | --libexe=* | --libex=* | --libe=*)
449 libexecdir=$ac_optarg ;;
450
451 -localstatedir | --localstatedir | --localstatedi | --localstated \
452 | --localstate | --localstat | --localsta | --localst \
453 | --locals | --local | --loca | --loc | --lo)
454 ac_prev=localstatedir ;;
455 -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
456 | --localstate=* | --localstat=* | --localsta=* | --localst=* \
457 | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
458 localstatedir=$ac_optarg ;;
459
460 -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
461 ac_prev=mandir ;;
462 -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
463 mandir=$ac_optarg ;;
464
465 -nfp | --nfp | --nf)
466 # Obsolete; use --without-fp.
467 with_fp=no ;;
468
469 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
470 | --no-cr | --no-c | -n)
471 no_create=yes ;;
472
473 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
474 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
475 no_recursion=yes ;;
476
477 -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
478 | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
479 | --oldin | --oldi | --old | --ol | --o)
480 ac_prev=oldincludedir ;;
481 -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
482 | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
483 | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
484 oldincludedir=$ac_optarg ;;
485
486 -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
487 ac_prev=prefix ;;
488 -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
489 prefix=$ac_optarg ;;
490
491 -program-prefix | --program-prefix | --program-prefi | --program-pref \
492 | --program-pre | --program-pr | --program-p)
493 ac_prev=program_prefix ;;
494 -program-prefix=* | --program-prefix=* | --program-prefi=* \
495 | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
496 program_prefix=$ac_optarg ;;
497
498 -program-suffix | --program-suffix | --program-suffi | --program-suff \
499 | --program-suf | --program-su | --program-s)
500 ac_prev=program_suffix ;;
501 -program-suffix=* | --program-suffix=* | --program-suffi=* \
502 | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
503 program_suffix=$ac_optarg ;;
504
505 -program-transform-name | --program-transform-name \
506 | --program-transform-nam | --program-transform-na \
507 | --program-transform-n | --program-transform- \
508 | --program-transform | --program-transfor \
509 | --program-transfo | --program-transf \
510 | --program-trans | --program-tran \
511 | --progr-tra | --program-tr | --program-t)
512 ac_prev=program_transform_name ;;
513 -program-transform-name=* | --program-transform-name=* \
514 | --program-transform-nam=* | --program-transform-na=* \
515 | --program-transform-n=* | --program-transform-=* \
516 | --program-transform=* | --program-transfor=* \
517 | --program-transfo=* | --program-transf=* \
518 | --program-trans=* | --program-tran=* \
519 | --progr-tra=* | --program-tr=* | --program-t=*)
520 program_transform_name=$ac_optarg ;;
521
522 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
523 | -silent | --silent | --silen | --sile | --sil)
524 silent=yes ;;
525
526 -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
527 ac_prev=sbindir ;;
528 -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
529 | --sbi=* | --sb=*)
530 sbindir=$ac_optarg ;;
531
532 -sharedstatedir | --sharedstatedir | --sharedstatedi \
533 | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
534 | --sharedst | --shareds | --shared | --share | --shar \
535 | --sha | --sh)
536 ac_prev=sharedstatedir ;;
537 -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
538 | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
539 | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
540 | --sha=* | --sh=*)
541 sharedstatedir=$ac_optarg ;;
542
543 -site | --site | --sit)
544 ac_prev=site ;;
545 -site=* | --site=* | --sit=*)
546 site=$ac_optarg ;;
547
548 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
549 ac_prev=srcdir ;;
550 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
551 srcdir=$ac_optarg ;;
552
553 -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
554 | --syscon | --sysco | --sysc | --sys | --sy)
555 ac_prev=sysconfdir ;;
556 -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
557 | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
558 sysconfdir=$ac_optarg ;;
559
560 -target | --target | --targe | --targ | --tar | --ta | --t)
561 ac_prev=target_alias ;;
562 -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
563 target_alias=$ac_optarg ;;
564
565 -v | -verbose | --verbose | --verbos | --verbo | --verb)
566 verbose=yes ;;
567
568 -version | --version | --versio | --versi | --vers | -V)
569 ac_init_version=: ;;
570
571 -with-* | --with-*)
572 ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
573 # Reject names that are not valid shell variable names.
574 expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
575 { echo "$as_me: error: invalid package name: $ac_package" >&2
576 { (exit 1); exit 1; }; }
577 ac_package=`echo $ac_package| sed 's/-/_/g'`
578 case $ac_option in
579 *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
580 *) ac_optarg=yes ;;
581 esac
582 eval "with_$ac_package='$ac_optarg'" ;;
583
584 -without-* | --without-*)
585 ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
586 # Reject names that are not valid shell variable names.
587 expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
588 { echo "$as_me: error: invalid package name: $ac_package" >&2
589 { (exit 1); exit 1; }; }
590 ac_package=`echo $ac_package | sed 's/-/_/g'`
591 eval "with_$ac_package=no" ;;
592
593 --x)
594 # Obsolete; use --with-x.
595 with_x=yes ;;
596
597 -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
598 | --x-incl | --x-inc | --x-in | --x-i)
599 ac_prev=x_includes ;;
600 -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
601 | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
602 x_includes=$ac_optarg ;;
603
604 -x-libraries | --x-libraries | --x-librarie | --x-librari \
605 | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
606 ac_prev=x_libraries ;;
607 -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
608 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
609 x_libraries=$ac_optarg ;;
610
611 -*) { echo "$as_me: error: unrecognized option: $ac_option
612Try \`$0 --help' for more information." >&2
613 { (exit 1); exit 1; }; }
614 ;;
615
616 *=*)
617 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
618 # Reject names that are not valid shell variable names.
619 expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
620 { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
621 { (exit 1); exit 1; }; }
622 ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
623 eval "$ac_envvar='$ac_optarg'"
624 export $ac_envvar ;;
625
626 *)
627 # FIXME: should be removed in autoconf 3.0.
628 echo "$as_me: WARNING: you should use --build, --host, --target" >&2
629 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
630 echo "$as_me: WARNING: invalid host type: $ac_option" >&2
631 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
632 ;;
633
634 esac
635done
636
637if test -n "$ac_prev"; then
638 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
639 { echo "$as_me: error: missing argument to $ac_option" >&2
640 { (exit 1); exit 1; }; }
641fi
642
643# Be sure to have absolute paths.
644for ac_var in exec_prefix prefix
645do
646 eval ac_val=$`echo $ac_var`
647 case $ac_val in
648 [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
649 *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
650 { (exit 1); exit 1; }; };;
651 esac
652done
653
654# Be sure to have absolute paths.
655for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
656 localstatedir libdir includedir oldincludedir infodir mandir
657do
658 eval ac_val=$`echo $ac_var`
659 case $ac_val in
660 [\\/$]* | ?:[\\/]* ) ;;
661 *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
662 { (exit 1); exit 1; }; };;
663 esac
664done
665
666# There might be people who depend on the old broken behavior: `$host'
667# used to hold the argument of --host etc.
668# FIXME: To remove some day.
669build=$build_alias
670host=$host_alias
671target=$target_alias
672
673# FIXME: To remove some day.
674if test "x$host_alias" != x; then
675 if test "x$build_alias" = x; then
676 cross_compiling=maybe
677 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
678 If a cross compiler is detected then cross compile mode will be used." >&2
679 elif test "x$build_alias" != "x$host_alias"; then
680 cross_compiling=yes
681 fi
682fi
683
684ac_tool_prefix=
685test -n "$host_alias" && ac_tool_prefix=$host_alias-
686
687test "$silent" = yes && exec 6>/dev/null
688
689
690# Find the source files, if location was not specified.
691if test -z "$srcdir"; then
692 ac_srcdir_defaulted=yes
693 # Try the directory containing this script, then its parent.
694 ac_confdir=`(dirname "$0") 2>/dev/null ||
695$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
696 X"$0" : 'X\(//\)[^/]' \| \
697 X"$0" : 'X\(//\)$' \| \
698 X"$0" : 'X\(/\)' \| \
699 . : '\(.\)' 2>/dev/null ||
700echo X"$0" |
701 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
702 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
703 /^X\(\/\/\)$/{ s//\1/; q; }
704 /^X\(\/\).*/{ s//\1/; q; }
705 s/.*/./; q'`
706 srcdir=$ac_confdir
707 if test ! -r $srcdir/$ac_unique_file; then
708 srcdir=..
709 fi
710else
711 ac_srcdir_defaulted=no
712fi
713if test ! -r $srcdir/$ac_unique_file; then
714 if test "$ac_srcdir_defaulted" = yes; then
715 { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
716 { (exit 1); exit 1; }; }
717 else
718 { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
719 { (exit 1); exit 1; }; }
720 fi
721fi
722srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
723ac_env_build_alias_set=${build_alias+set}
724ac_env_build_alias_value=$build_alias
725ac_cv_env_build_alias_set=${build_alias+set}
726ac_cv_env_build_alias_value=$build_alias
727ac_env_host_alias_set=${host_alias+set}
728ac_env_host_alias_value=$host_alias
729ac_cv_env_host_alias_set=${host_alias+set}
730ac_cv_env_host_alias_value=$host_alias
731ac_env_target_alias_set=${target_alias+set}
732ac_env_target_alias_value=$target_alias
733ac_cv_env_target_alias_set=${target_alias+set}
734ac_cv_env_target_alias_value=$target_alias
735ac_env_CC_set=${CC+set}
736ac_env_CC_value=$CC
737ac_cv_env_CC_set=${CC+set}
738ac_cv_env_CC_value=$CC
739ac_env_CFLAGS_set=${CFLAGS+set}
740ac_env_CFLAGS_value=$CFLAGS
741ac_cv_env_CFLAGS_set=${CFLAGS+set}
742ac_cv_env_CFLAGS_value=$CFLAGS
743ac_env_LDFLAGS_set=${LDFLAGS+set}
744ac_env_LDFLAGS_value=$LDFLAGS
745ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
746ac_cv_env_LDFLAGS_value=$LDFLAGS
747ac_env_CPPFLAGS_set=${CPPFLAGS+set}
748ac_env_CPPFLAGS_value=$CPPFLAGS
749ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
750ac_cv_env_CPPFLAGS_value=$CPPFLAGS
751ac_env_CPP_set=${CPP+set}
752ac_env_CPP_value=$CPP
753ac_cv_env_CPP_set=${CPP+set}
754ac_cv_env_CPP_value=$CPP
755
756#
757# Report the --help message.
758#
759if test "$ac_init_help" = "long"; then
760 # Omit some internal or obsolete options to make the list less imposing.
761 # This message is too long to be a string in the A/UX 3.1 sh.
762 cat <<_ACEOF
763\`configure' configures this package to adapt to many kinds of systems.
764
765Usage: $0 [OPTION]... [VAR=VALUE]...
766
767To assign environment variables (e.g., CC, CFLAGS...), specify them as
768VAR=VALUE. See below for descriptions of some of the useful variables.
769
770Defaults for the options are specified in brackets.
771
772Configuration:
773 -h, --help display this help and exit
774 --help=short display options specific to this package
775 --help=recursive display the short help of all the included packages
776 -V, --version display version information and exit
777 -q, --quiet, --silent do not print \`checking...' messages
778 --cache-file=FILE cache test results in FILE [disabled]
779 -C, --config-cache alias for \`--cache-file=config.cache'
780 -n, --no-create do not create output files
781 --srcdir=DIR find the sources in DIR [configure dir or \`..']
782
783_ACEOF
784
785 cat <<_ACEOF
786Installation directories:
787 --prefix=PREFIX install architecture-independent files in PREFIX
788 [$ac_default_prefix]
789 --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
790 [PREFIX]
791
792By default, \`make install' will install all the files in
793\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
794an installation prefix other than \`$ac_default_prefix' using \`--prefix',
795for instance \`--prefix=\$HOME'.
796
797For better control, use the options below.
798
799Fine tuning of the installation directories:
800 --bindir=DIR user executables [EPREFIX/bin]
801 --sbindir=DIR system admin executables [EPREFIX/sbin]
802 --libexecdir=DIR program executables [EPREFIX/libexec]
803 --datadir=DIR read-only architecture-independent data [PREFIX/share]
804 --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
805 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
806 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
807 --libdir=DIR object code libraries [EPREFIX/lib]
808 --includedir=DIR C header files [PREFIX/include]
809 --oldincludedir=DIR C header files for non-gcc [/usr/include]
810 --infodir=DIR info documentation [PREFIX/info]
811 --mandir=DIR man documentation [PREFIX/man]
812_ACEOF
813
814 cat <<\_ACEOF
815
816System types:
817 --build=BUILD configure for building on BUILD [guessed]
818 --host=HOST cross-compile to build programs to run on HOST [BUILD]
819_ACEOF
820fi
821
822if test -n "$ac_init_help"; then
823
824 cat <<\_ACEOF
825
826Optional Features:
827 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
828 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
829 --disable-largefile omit support for large files
830 --disable-strip Disable calling strip(1) on install
831 --disable-lastlog disable use of lastlog even if detected no
832 --disable-utmp disable use of utmp even if detected no
833 --disable-utmpx disable use of utmpx even if detected no
834 --disable-wtmp disable use of wtmp even if detected no
835 --disable-wtmpx disable use of wtmpx even if detected no
836 --disable-libutil disable use of libutil (login() etc.) no
837 --disable-pututline disable use of pututline() etc. (uwtmp) no
838 --disable-pututxline disable use of pututxline() etc. (uwtmpx) no
839
840Optional Packages:
841 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
842 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
843 --with-osfsia Enable Digital Unix SIA
844 --with-cflags Specify additional flags to pass to compiler
845 --with-cppflags Specify additional flags to pass to preprocessor
846 --with-ldflags Specify additional flags to pass to linker
847 --with-libs Specify additional libraries to link with
848 --without-rpath Disable auto-added -R linker paths
849 --with-zlib=PATH Use zlib in PATH
850 --with-skey[=PATH] Enable S/Key support
851 (optionally in PATH)
852 --with-tcp-wrappers[=PATH] Enable tcpwrappers support
853 (optionally in PATH)
854 --with-pam Enable PAM support
855 --with-ssl-dir=PATH Specify path to OpenSSL installation
856 --with-rand-helper Use subprocess to gather strong randomness
857 --with-prngd-port=PORT read entropy from PRNGD/EGD TCP localhost:PORT
858 --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)
859 --with-entropy-timeout Specify entropy gathering command timeout (msec)
860 --with-privsep-user=user Specify non-privileged user for privilege separation
861 --with-sectok Enable smartcard support using libsectok
862 --with-opensc=PFX Enable smartcard support using OpenSC
863 --with-kerberos5=PATH Enable Kerberos 5 support
864 --with-kerberos4=PATH Enable Kerberos 4 support
865 --with-afs=PATH Enable AFS support
866 --with-privsep-path=xxx Path for privilege separation chroot (default=/var/empty)
867 --with-xauth=PATH Specify path to xauth program
868 --with-mantype=man|cat|doc Set man page type
869 --with-md5-passwords Enable use of MD5 passwords
870 --without-shadow Disable shadow password support
871 --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY
872 --with-default-path= Specify default \$PATH environment for server
873 --with-superuser-path= Specify different path for super-user
874 --with-ipv4-default Use IPv4 by connections unless '-6' specified
875 --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses
876 --with-bsd-auth Enable BSD auth support
877 --with-pid-dir=PATH Specify location of ssh.pid file
878 --with-lastlog=FILE|DIR specify lastlog location common locations
879
880Some influential environment variables:
881 CC C compiler command
882 CFLAGS C compiler flags
883 LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
884 nonstandard directory <lib dir>
885 CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
886 headers in a nonstandard directory <include dir>
887 CPP C preprocessor
888
889Use these variables to override the choices made by `configure' or to help
890it to find libraries and programs with nonstandard names/locations.
891
892_ACEOF
893fi
894
895if test "$ac_init_help" = "recursive"; then
896 # If there are subdirs, report their specific --help.
897 ac_popdir=`pwd`
898 for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
899 test -d $ac_dir || continue
900 ac_builddir=.
901
902if test "$ac_dir" != .; then
903 ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
904 # A "../" for each directory in $ac_dir_suffix.
905 ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
906else
907 ac_dir_suffix= ac_top_builddir=
908fi
909
910case $srcdir in
911 .) # No --srcdir option. We are building in place.
912 ac_srcdir=.
913 if test -z "$ac_top_builddir"; then
914 ac_top_srcdir=.
915 else
916 ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
917 fi ;;
918 [\\/]* | ?:[\\/]* ) # Absolute path.
919 ac_srcdir=$srcdir$ac_dir_suffix;
920 ac_top_srcdir=$srcdir ;;
921 *) # Relative path.
922 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
923 ac_top_srcdir=$ac_top_builddir$srcdir ;;
924esac
925# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
926# absolute.
927ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
928ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
929ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
930ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
931
932 cd $ac_dir
933 # Check for guested configure; otherwise get Cygnus style configure.
934 if test -f $ac_srcdir/configure.gnu; then
935 echo
936 $SHELL $ac_srcdir/configure.gnu --help=recursive
937 elif test -f $ac_srcdir/configure; then
938 echo
939 $SHELL $ac_srcdir/configure --help=recursive
940 elif test -f $ac_srcdir/configure.ac ||
941 test -f $ac_srcdir/configure.in; then
942 echo
943 $ac_configure --help
944 else
945 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
946 fi
947 cd $ac_popdir
948 done
949fi
950
951test -n "$ac_init_help" && exit 0
952if $ac_init_version; then
953 cat <<\_ACEOF
954
955Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
956Free Software Foundation, Inc.
957This configure script is free software; the Free Software Foundation
958gives unlimited permission to copy, distribute and modify it.
959_ACEOF
960 exit 0
961fi
962exec 5>config.log
963cat >&5 <<_ACEOF
964This file contains any messages produced by compilers while
965running configure, to aid debugging if configure makes a mistake.
966
967It was created by $as_me, which was
968generated by GNU Autoconf 2.53. Invocation command line was
969
970 $ $0 $@
971
972_ACEOF
973{
974cat <<_ASUNAME
975@%:@@%:@ --------- @%:@@%:@
976@%:@@%:@ Platform. @%:@@%:@
977@%:@@%:@ --------- @%:@@%:@
978
979hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
980uname -m = `(uname -m) 2>/dev/null || echo unknown`
981uname -r = `(uname -r) 2>/dev/null || echo unknown`
982uname -s = `(uname -s) 2>/dev/null || echo unknown`
983uname -v = `(uname -v) 2>/dev/null || echo unknown`
984
985/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
986/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
987
988/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
989/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
990/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
991hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
992/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
993/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
994/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
995
996_ASUNAME
997
998as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
999for as_dir in $PATH
1000do
1001 IFS=$as_save_IFS
1002 test -z "$as_dir" && as_dir=.
1003 echo "PATH: $as_dir"
1004done
1005
1006} >&5
1007
1008cat >&5 <<_ACEOF
1009
1010
1011@%:@@%:@ ----------- @%:@@%:@
1012@%:@@%:@ Core tests. @%:@@%:@
1013@%:@@%:@ ----------- @%:@@%:@
1014
1015_ACEOF
1016
1017
1018# Keep a trace of the command line.
1019# Strip out --no-create and --no-recursion so they do not pile up.
1020# Also quote any args containing shell meta-characters.
1021ac_configure_args=
1022ac_sep=
1023for ac_arg
1024do
1025 case $ac_arg in
1026 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
1027 | --no-cr | --no-c | -n ) continue ;;
1028 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
1029 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
1030 continue ;;
1031 *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1032 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
1033 esac
1034 case " $ac_configure_args " in
1035 *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
1036 *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
1037 ac_sep=" " ;;
1038 esac
1039 # Get rid of the leading space.
1040done
1041
1042# When interrupted or exit'd, cleanup temporary files, and complete
1043# config.log. We remove comments because anyway the quotes in there
1044# would cause problems or look ugly.
1045# WARNING: Be sure not to use single quotes in there, as some shells,
1046# such as our DU 5.0 friend, will then `close' the trap.
1047trap 'exit_status=$?
1048 # Save into config.log some information that might help in debugging.
1049 {
1050 echo
1051 cat <<\_ASBOX
1052@%:@@%:@ ---------------- @%:@@%:@
1053@%:@@%:@ Cache variables. @%:@@%:@
1054@%:@@%:@ ---------------- @%:@@%:@
1055_ASBOX
1056 echo
1057 # The following way of writing the cache mishandles newlines in values,
1058{
1059 (set) 2>&1 |
1060 case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
1061 *ac_space=\ *)
1062 sed -n \
1063 "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
1064 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
1065 ;;
1066 *)
1067 sed -n \
1068 "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
1069 ;;
1070 esac;
1071}
1072 echo
1073 if test -s confdefs.h; then
1074 cat <<\_ASBOX
1075@%:@@%:@ ----------- @%:@@%:@
1076@%:@@%:@ confdefs.h. @%:@@%:@
1077@%:@@%:@ ----------- @%:@@%:@
1078_ASBOX
1079 echo
1080 sed "/^$/d" confdefs.h
1081 echo
1082 fi
1083 test "$ac_signal" != 0 &&
1084 echo "$as_me: caught signal $ac_signal"
1085 echo "$as_me: exit $exit_status"
1086 } >&5
1087 rm -f core core.* *.core &&
1088 rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
1089 exit $exit_status
1090 ' 0
1091for ac_signal in 1 2 13 15; do
1092 trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
1093done
1094ac_signal=0
1095
1096# confdefs.h avoids OS command line length limits that DEFS can exceed.
1097rm -rf conftest* confdefs.h
1098# AIX cpp loses on an empty file, so make sure it contains at least a newline.
1099echo >confdefs.h
1100
1101# Predefined preprocessor variables.
1102
1103cat >>confdefs.h <<_ACEOF
1104@%:@define PACKAGE_NAME "$PACKAGE_NAME"
1105_ACEOF
1106
1107
1108cat >>confdefs.h <<_ACEOF
1109@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
1110_ACEOF
1111
1112
1113cat >>confdefs.h <<_ACEOF
1114@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
1115_ACEOF
1116
1117
1118cat >>confdefs.h <<_ACEOF
1119@%:@define PACKAGE_STRING "$PACKAGE_STRING"
1120_ACEOF
1121
1122
1123cat >>confdefs.h <<_ACEOF
1124@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
1125_ACEOF
1126
1127
1128# Let the site file select an alternate cache file if it wants to.
1129# Prefer explicitly selected file to automatically selected ones.
1130if test -z "$CONFIG_SITE"; then
1131 if test "x$prefix" != xNONE; then
1132 CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
1133 else
1134 CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
1135 fi
1136fi
1137for ac_site_file in $CONFIG_SITE; do
1138 if test -r "$ac_site_file"; then
1139 { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
1140echo "$as_me: loading site script $ac_site_file" >&6;}
1141 sed 's/^/| /' "$ac_site_file" >&5
1142 . "$ac_site_file"
1143 fi
1144done
1145
1146if test -r "$cache_file"; then
1147 # Some versions of bash will fail to source /dev/null (special
1148 # files actually), so we avoid doing that.
1149 if test -f "$cache_file"; then
1150 { echo "$as_me:$LINENO: loading cache $cache_file" >&5
1151echo "$as_me: loading cache $cache_file" >&6;}
1152 case $cache_file in
1153 [\\/]* | ?:[\\/]* ) . $cache_file;;
1154 *) . ./$cache_file;;
1155 esac
1156 fi
1157else
1158 { echo "$as_me:$LINENO: creating cache $cache_file" >&5
1159echo "$as_me: creating cache $cache_file" >&6;}
1160 >$cache_file
1161fi
1162
1163# Check that the precious variables saved in the cache have kept the same
1164# value.
1165ac_cache_corrupted=false
1166for ac_var in `(set) 2>&1 |
1167 sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
1168 eval ac_old_set=\$ac_cv_env_${ac_var}_set
1169 eval ac_new_set=\$ac_env_${ac_var}_set
1170 eval ac_old_val="\$ac_cv_env_${ac_var}_value"
1171 eval ac_new_val="\$ac_env_${ac_var}_value"
1172 case $ac_old_set,$ac_new_set in
1173 set,)
1174 { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
1175echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
1176 ac_cache_corrupted=: ;;
1177 ,set)
1178 { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
1179echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
1180 ac_cache_corrupted=: ;;
1181 ,);;
1182 *)
1183 if test "x$ac_old_val" != "x$ac_new_val"; then
1184 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
1185echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
1186 { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
1187echo "$as_me: former value: $ac_old_val" >&2;}
1188 { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
1189echo "$as_me: current value: $ac_new_val" >&2;}
1190 ac_cache_corrupted=:
1191 fi;;
1192 esac
1193 # Pass precious variables to config.status.
1194 if test "$ac_new_set" = set; then
1195 case $ac_new_val in
1196 *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1197 ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
1198 *) ac_arg=$ac_var=$ac_new_val ;;
1199 esac
1200 case " $ac_configure_args " in
1201 *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
1202 *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
1203 esac
1204 fi
1205done
1206if $ac_cache_corrupted; then
1207 { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
1208echo "$as_me: error: changes in the environment can compromise the build" >&2;}
1209 { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
1210echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
1211 { (exit 1); exit 1; }; }
1212fi
1213
1214ac_ext=c
1215ac_cpp='$CPP $CPPFLAGS'
1216ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1217ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1218ac_compiler_gnu=$ac_cv_c_compiler_gnu
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239ac_config_headers="$ac_config_headers config.h"
1240
1241ac_ext=c
1242ac_cpp='$CPP $CPPFLAGS'
1243ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1244ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1245ac_compiler_gnu=$ac_cv_c_compiler_gnu
1246if test -n "$ac_tool_prefix"; then
1247 # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
1248set dummy ${ac_tool_prefix}gcc; ac_word=$2
1249echo "$as_me:$LINENO: checking for $ac_word" >&5
1250echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1251if test "${ac_cv_prog_CC+set}" = set; then
1252 echo $ECHO_N "(cached) $ECHO_C" >&6
1253else
1254 if test -n "$CC"; then
1255 ac_cv_prog_CC="$CC" # Let the user override the test.
1256else
1257as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1258for as_dir in $PATH
1259do
1260 IFS=$as_save_IFS
1261 test -z "$as_dir" && as_dir=.
1262 for ac_exec_ext in '' $ac_executable_extensions; do
1263 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1264 ac_cv_prog_CC="${ac_tool_prefix}gcc"
1265 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1266 break 2
1267 fi
1268done
1269done
1270
1271fi
1272fi
1273CC=$ac_cv_prog_CC
1274if test -n "$CC"; then
1275 echo "$as_me:$LINENO: result: $CC" >&5
1276echo "${ECHO_T}$CC" >&6
1277else
1278 echo "$as_me:$LINENO: result: no" >&5
1279echo "${ECHO_T}no" >&6
1280fi
1281
1282fi
1283if test -z "$ac_cv_prog_CC"; then
1284 ac_ct_CC=$CC
1285 # Extract the first word of "gcc", so it can be a program name with args.
1286set dummy gcc; ac_word=$2
1287echo "$as_me:$LINENO: checking for $ac_word" >&5
1288echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1289if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1290 echo $ECHO_N "(cached) $ECHO_C" >&6
1291else
1292 if test -n "$ac_ct_CC"; then
1293 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1294else
1295as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1296for as_dir in $PATH
1297do
1298 IFS=$as_save_IFS
1299 test -z "$as_dir" && as_dir=.
1300 for ac_exec_ext in '' $ac_executable_extensions; do
1301 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1302 ac_cv_prog_ac_ct_CC="gcc"
1303 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1304 break 2
1305 fi
1306done
1307done
1308
1309fi
1310fi
1311ac_ct_CC=$ac_cv_prog_ac_ct_CC
1312if test -n "$ac_ct_CC"; then
1313 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1314echo "${ECHO_T}$ac_ct_CC" >&6
1315else
1316 echo "$as_me:$LINENO: result: no" >&5
1317echo "${ECHO_T}no" >&6
1318fi
1319
1320 CC=$ac_ct_CC
1321else
1322 CC="$ac_cv_prog_CC"
1323fi
1324
1325if test -z "$CC"; then
1326 if test -n "$ac_tool_prefix"; then
1327 # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
1328set dummy ${ac_tool_prefix}cc; ac_word=$2
1329echo "$as_me:$LINENO: checking for $ac_word" >&5
1330echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1331if test "${ac_cv_prog_CC+set}" = set; then
1332 echo $ECHO_N "(cached) $ECHO_C" >&6
1333else
1334 if test -n "$CC"; then
1335 ac_cv_prog_CC="$CC" # Let the user override the test.
1336else
1337as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1338for as_dir in $PATH
1339do
1340 IFS=$as_save_IFS
1341 test -z "$as_dir" && as_dir=.
1342 for ac_exec_ext in '' $ac_executable_extensions; do
1343 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1344 ac_cv_prog_CC="${ac_tool_prefix}cc"
1345 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1346 break 2
1347 fi
1348done
1349done
1350
1351fi
1352fi
1353CC=$ac_cv_prog_CC
1354if test -n "$CC"; then
1355 echo "$as_me:$LINENO: result: $CC" >&5
1356echo "${ECHO_T}$CC" >&6
1357else
1358 echo "$as_me:$LINENO: result: no" >&5
1359echo "${ECHO_T}no" >&6
1360fi
1361
1362fi
1363if test -z "$ac_cv_prog_CC"; then
1364 ac_ct_CC=$CC
1365 # Extract the first word of "cc", so it can be a program name with args.
1366set dummy cc; ac_word=$2
1367echo "$as_me:$LINENO: checking for $ac_word" >&5
1368echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1369if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1370 echo $ECHO_N "(cached) $ECHO_C" >&6
1371else
1372 if test -n "$ac_ct_CC"; then
1373 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1374else
1375as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1376for as_dir in $PATH
1377do
1378 IFS=$as_save_IFS
1379 test -z "$as_dir" && as_dir=.
1380 for ac_exec_ext in '' $ac_executable_extensions; do
1381 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1382 ac_cv_prog_ac_ct_CC="cc"
1383 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1384 break 2
1385 fi
1386done
1387done
1388
1389fi
1390fi
1391ac_ct_CC=$ac_cv_prog_ac_ct_CC
1392if test -n "$ac_ct_CC"; then
1393 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1394echo "${ECHO_T}$ac_ct_CC" >&6
1395else
1396 echo "$as_me:$LINENO: result: no" >&5
1397echo "${ECHO_T}no" >&6
1398fi
1399
1400 CC=$ac_ct_CC
1401else
1402 CC="$ac_cv_prog_CC"
1403fi
1404
1405fi
1406if test -z "$CC"; then
1407 # Extract the first word of "cc", so it can be a program name with args.
1408set dummy cc; ac_word=$2
1409echo "$as_me:$LINENO: checking for $ac_word" >&5
1410echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1411if test "${ac_cv_prog_CC+set}" = set; then
1412 echo $ECHO_N "(cached) $ECHO_C" >&6
1413else
1414 if test -n "$CC"; then
1415 ac_cv_prog_CC="$CC" # Let the user override the test.
1416else
1417 ac_prog_rejected=no
1418as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1419for as_dir in $PATH
1420do
1421 IFS=$as_save_IFS
1422 test -z "$as_dir" && as_dir=.
1423 for ac_exec_ext in '' $ac_executable_extensions; do
1424 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1425 if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
1426 ac_prog_rejected=yes
1427 continue
1428 fi
1429 ac_cv_prog_CC="cc"
1430 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1431 break 2
1432 fi
1433done
1434done
1435
1436if test $ac_prog_rejected = yes; then
1437 # We found a bogon in the path, so make sure we never use it.
1438 set dummy $ac_cv_prog_CC
1439 shift
1440 if test $@%:@ != 0; then
1441 # We chose a different compiler from the bogus one.
1442 # However, it has the same basename, so the bogon will be chosen
1443 # first if we set CC to just the basename; use the full file name.
1444 shift
1445 set dummy "$as_dir/$ac_word" ${1+"$@"}
1446 shift
1447 ac_cv_prog_CC="$@"
1448 fi
1449fi
1450fi
1451fi
1452CC=$ac_cv_prog_CC
1453if test -n "$CC"; then
1454 echo "$as_me:$LINENO: result: $CC" >&5
1455echo "${ECHO_T}$CC" >&6
1456else
1457 echo "$as_me:$LINENO: result: no" >&5
1458echo "${ECHO_T}no" >&6
1459fi
1460
1461fi
1462if test -z "$CC"; then
1463 if test -n "$ac_tool_prefix"; then
1464 for ac_prog in cl
1465 do
1466 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
1467set dummy $ac_tool_prefix$ac_prog; ac_word=$2
1468echo "$as_me:$LINENO: checking for $ac_word" >&5
1469echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1470if test "${ac_cv_prog_CC+set}" = set; then
1471 echo $ECHO_N "(cached) $ECHO_C" >&6
1472else
1473 if test -n "$CC"; then
1474 ac_cv_prog_CC="$CC" # Let the user override the test.
1475else
1476as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1477for as_dir in $PATH
1478do
1479 IFS=$as_save_IFS
1480 test -z "$as_dir" && as_dir=.
1481 for ac_exec_ext in '' $ac_executable_extensions; do
1482 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1483 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
1484 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1485 break 2
1486 fi
1487done
1488done
1489
1490fi
1491fi
1492CC=$ac_cv_prog_CC
1493if test -n "$CC"; then
1494 echo "$as_me:$LINENO: result: $CC" >&5
1495echo "${ECHO_T}$CC" >&6
1496else
1497 echo "$as_me:$LINENO: result: no" >&5
1498echo "${ECHO_T}no" >&6
1499fi
1500
1501 test -n "$CC" && break
1502 done
1503fi
1504if test -z "$CC"; then
1505 ac_ct_CC=$CC
1506 for ac_prog in cl
1507do
1508 # Extract the first word of "$ac_prog", so it can be a program name with args.
1509set dummy $ac_prog; ac_word=$2
1510echo "$as_me:$LINENO: checking for $ac_word" >&5
1511echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1512if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1513 echo $ECHO_N "(cached) $ECHO_C" >&6
1514else
1515 if test -n "$ac_ct_CC"; then
1516 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1517else
1518as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1519for as_dir in $PATH
1520do
1521 IFS=$as_save_IFS
1522 test -z "$as_dir" && as_dir=.
1523 for ac_exec_ext in '' $ac_executable_extensions; do
1524 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1525 ac_cv_prog_ac_ct_CC="$ac_prog"
1526 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1527 break 2
1528 fi
1529done
1530done
1531
1532fi
1533fi
1534ac_ct_CC=$ac_cv_prog_ac_ct_CC
1535if test -n "$ac_ct_CC"; then
1536 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1537echo "${ECHO_T}$ac_ct_CC" >&6
1538else
1539 echo "$as_me:$LINENO: result: no" >&5
1540echo "${ECHO_T}no" >&6
1541fi
1542
1543 test -n "$ac_ct_CC" && break
1544done
1545
1546 CC=$ac_ct_CC
1547fi
1548
1549fi
1550
1551
1552test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
1553echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
1554 { (exit 1); exit 1; }; }
1555
1556# Provide some information about the compiler.
1557echo "$as_me:$LINENO:" \
1558 "checking for C compiler version" >&5
1559ac_compiler=`set X $ac_compile; echo $2`
1560{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
1561 (eval $ac_compiler --version </dev/null >&5) 2>&5
1562 ac_status=$?
1563 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1564 (exit $ac_status); }
1565{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
1566 (eval $ac_compiler -v </dev/null >&5) 2>&5
1567 ac_status=$?
1568 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1569 (exit $ac_status); }
1570{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
1571 (eval $ac_compiler -V </dev/null >&5) 2>&5
1572 ac_status=$?
1573 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1574 (exit $ac_status); }
1575
1576cat >conftest.$ac_ext <<_ACEOF
1577#line $LINENO "configure"
1578#include "confdefs.h"
1579
1580#ifdef F77_DUMMY_MAIN
1581# ifdef __cplusplus
1582 extern "C"
1583# endif
1584 int F77_DUMMY_MAIN() { return 1; }
1585#endif
1586int
1587main ()
1588{
1589
1590 ;
1591 return 0;
1592}
1593_ACEOF
1594ac_clean_files_save=$ac_clean_files
1595ac_clean_files="$ac_clean_files a.out a.exe"
1596# Try to create an executable without -o first, disregard a.out.
1597# It will help us diagnose broken compilers, and finding out an intuition
1598# of exeext.
1599echo "$as_me:$LINENO: checking for C compiler default output" >&5
1600echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
1601ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
1602if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
1603 (eval $ac_link_default) 2>&5
1604 ac_status=$?
1605 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1606 (exit $ac_status); }; then
1607 # Find the output, starting from the most likely. This scheme is
1608# not robust to junk in `.', hence go to wildcards (a.*) only as a last
1609# resort.
1610
1611# Be careful to initialize this variable, since it used to be cached.
1612# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
1613ac_cv_exeext=
1614for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
1615 ls a.out conftest 2>/dev/null;
1616 ls a.* conftest.* 2>/dev/null`; do
1617 case $ac_file in
1618 *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
1619 a.out ) # We found the default executable, but exeext='' is most
1620 # certainly right.
1621 break;;
1622 *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
1623 # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
1624 export ac_cv_exeext
1625 break;;
1626 * ) break;;
1627 esac
1628done
1629else
1630 echo "$as_me: failed program was:" >&5
1631cat conftest.$ac_ext >&5
1632{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
1633echo "$as_me: error: C compiler cannot create executables" >&2;}
1634 { (exit 77); exit 77; }; }
1635fi
1636
1637ac_exeext=$ac_cv_exeext
1638echo "$as_me:$LINENO: result: $ac_file" >&5
1639echo "${ECHO_T}$ac_file" >&6
1640
1641# Check the compiler produces executables we can run. If not, either
1642# the compiler is broken, or we cross compile.
1643echo "$as_me:$LINENO: checking whether the C compiler works" >&5
1644echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
1645# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
1646# If not cross compiling, check that we can run a simple program.
1647if test "$cross_compiling" != yes; then
1648 if { ac_try='./$ac_file'
1649 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1650 (eval $ac_try) 2>&5
1651 ac_status=$?
1652 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1653 (exit $ac_status); }; }; then
1654 cross_compiling=no
1655 else
1656 if test "$cross_compiling" = maybe; then
1657 cross_compiling=yes
1658 else
1659 { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
1660If you meant to cross compile, use \`--host'." >&5
1661echo "$as_me: error: cannot run C compiled programs.
1662If you meant to cross compile, use \`--host'." >&2;}
1663 { (exit 1); exit 1; }; }
1664 fi
1665 fi
1666fi
1667echo "$as_me:$LINENO: result: yes" >&5
1668echo "${ECHO_T}yes" >&6
1669
1670rm -f a.out a.exe conftest$ac_cv_exeext
1671ac_clean_files=$ac_clean_files_save
1672# Check the compiler produces executables we can run. If not, either
1673# the compiler is broken, or we cross compile.
1674echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
1675echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
1676echo "$as_me:$LINENO: result: $cross_compiling" >&5
1677echo "${ECHO_T}$cross_compiling" >&6
1678
1679echo "$as_me:$LINENO: checking for suffix of executables" >&5
1680echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
1681if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
1682 (eval $ac_link) 2>&5
1683 ac_status=$?
1684 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1685 (exit $ac_status); }; then
1686 # If both `conftest.exe' and `conftest' are `present' (well, observable)
1687# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
1688# work properly (i.e., refer to `conftest.exe'), while it won't with
1689# `rm'.
1690for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
1691 case $ac_file in
1692 *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
1693 *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
1694 export ac_cv_exeext
1695 break;;
1696 * ) break;;
1697 esac
1698done
1699else
1700 { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
1701echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
1702 { (exit 1); exit 1; }; }
1703fi
1704
1705rm -f conftest$ac_cv_exeext
1706echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
1707echo "${ECHO_T}$ac_cv_exeext" >&6
1708
1709rm -f conftest.$ac_ext
1710EXEEXT=$ac_cv_exeext
1711ac_exeext=$EXEEXT
1712echo "$as_me:$LINENO: checking for suffix of object files" >&5
1713echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
1714if test "${ac_cv_objext+set}" = set; then
1715 echo $ECHO_N "(cached) $ECHO_C" >&6
1716else
1717 cat >conftest.$ac_ext <<_ACEOF
1718#line $LINENO "configure"
1719#include "confdefs.h"
1720
1721#ifdef F77_DUMMY_MAIN
1722# ifdef __cplusplus
1723 extern "C"
1724# endif
1725 int F77_DUMMY_MAIN() { return 1; }
1726#endif
1727int
1728main ()
1729{
1730
1731 ;
1732 return 0;
1733}
1734_ACEOF
1735rm -f conftest.o conftest.obj
1736if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1737 (eval $ac_compile) 2>&5
1738 ac_status=$?
1739 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1740 (exit $ac_status); }; then
1741 for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
1742 case $ac_file in
1743 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
1744 *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
1745 break;;
1746 esac
1747done
1748else
1749 echo "$as_me: failed program was:" >&5
1750cat conftest.$ac_ext >&5
1751{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
1752echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
1753 { (exit 1); exit 1; }; }
1754fi
1755
1756rm -f conftest.$ac_cv_objext conftest.$ac_ext
1757fi
1758echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
1759echo "${ECHO_T}$ac_cv_objext" >&6
1760OBJEXT=$ac_cv_objext
1761ac_objext=$OBJEXT
1762echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
1763echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
1764if test "${ac_cv_c_compiler_gnu+set}" = set; then
1765 echo $ECHO_N "(cached) $ECHO_C" >&6
1766else
1767 cat >conftest.$ac_ext <<_ACEOF
1768#line $LINENO "configure"
1769#include "confdefs.h"
1770
1771#ifdef F77_DUMMY_MAIN
1772# ifdef __cplusplus
1773 extern "C"
1774# endif
1775 int F77_DUMMY_MAIN() { return 1; }
1776#endif
1777int
1778main ()
1779{
1780#ifndef __GNUC__
1781 choke me
1782#endif
1783
1784 ;
1785 return 0;
1786}
1787_ACEOF
1788rm -f conftest.$ac_objext
1789if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1790 (eval $ac_compile) 2>&5
1791 ac_status=$?
1792 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1793 (exit $ac_status); } &&
1794 { ac_try='test -s conftest.$ac_objext'
1795 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1796 (eval $ac_try) 2>&5
1797 ac_status=$?
1798 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1799 (exit $ac_status); }; }; then
1800 ac_compiler_gnu=yes
1801else
1802 echo "$as_me: failed program was:" >&5
1803cat conftest.$ac_ext >&5
1804ac_compiler_gnu=no
1805fi
1806rm -f conftest.$ac_objext conftest.$ac_ext
1807ac_cv_c_compiler_gnu=$ac_compiler_gnu
1808
1809fi
1810echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
1811echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
1812GCC=`test $ac_compiler_gnu = yes && echo yes`
1813ac_test_CFLAGS=${CFLAGS+set}
1814ac_save_CFLAGS=$CFLAGS
1815CFLAGS="-g"
1816echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
1817echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
1818if test "${ac_cv_prog_cc_g+set}" = set; then
1819 echo $ECHO_N "(cached) $ECHO_C" >&6
1820else
1821 cat >conftest.$ac_ext <<_ACEOF
1822#line $LINENO "configure"
1823#include "confdefs.h"
1824
1825#ifdef F77_DUMMY_MAIN
1826# ifdef __cplusplus
1827 extern "C"
1828# endif
1829 int F77_DUMMY_MAIN() { return 1; }
1830#endif
1831int
1832main ()
1833{
1834
1835 ;
1836 return 0;
1837}
1838_ACEOF
1839rm -f conftest.$ac_objext
1840if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1841 (eval $ac_compile) 2>&5
1842 ac_status=$?
1843 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1844 (exit $ac_status); } &&
1845 { ac_try='test -s conftest.$ac_objext'
1846 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1847 (eval $ac_try) 2>&5
1848 ac_status=$?
1849 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1850 (exit $ac_status); }; }; then
1851 ac_cv_prog_cc_g=yes
1852else
1853 echo "$as_me: failed program was:" >&5
1854cat conftest.$ac_ext >&5
1855ac_cv_prog_cc_g=no
1856fi
1857rm -f conftest.$ac_objext conftest.$ac_ext
1858fi
1859echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
1860echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
1861if test "$ac_test_CFLAGS" = set; then
1862 CFLAGS=$ac_save_CFLAGS
1863elif test $ac_cv_prog_cc_g = yes; then
1864 if test "$GCC" = yes; then
1865 CFLAGS="-g -O2"
1866 else
1867 CFLAGS="-g"
1868 fi
1869else
1870 if test "$GCC" = yes; then
1871 CFLAGS="-O2"
1872 else
1873 CFLAGS=
1874 fi
1875fi
1876# Some people use a C++ compiler to compile C. Since we use `exit',
1877# in C++ we need to declare it. In case someone uses the same compiler
1878# for both compiling C and C++ we need to have the C++ compiler decide
1879# the declaration of exit, since it's the most demanding environment.
1880cat >conftest.$ac_ext <<_ACEOF
1881@%:@ifndef __cplusplus
1882 choke me
1883@%:@endif
1884_ACEOF
1885rm -f conftest.$ac_objext
1886if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1887 (eval $ac_compile) 2>&5
1888 ac_status=$?
1889 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1890 (exit $ac_status); } &&
1891 { ac_try='test -s conftest.$ac_objext'
1892 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1893 (eval $ac_try) 2>&5
1894 ac_status=$?
1895 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1896 (exit $ac_status); }; }; then
1897 for ac_declaration in \
1898 ''\
1899 '#include <stdlib.h>' \
1900 'extern "C" void std::exit (int) throw (); using std::exit;' \
1901 'extern "C" void std::exit (int); using std::exit;' \
1902 'extern "C" void exit (int) throw ();' \
1903 'extern "C" void exit (int);' \
1904 'void exit (int);'
1905do
1906 cat >conftest.$ac_ext <<_ACEOF
1907#line $LINENO "configure"
1908#include "confdefs.h"
1909@%:@include <stdlib.h>
1910$ac_declaration
1911#ifdef F77_DUMMY_MAIN
1912# ifdef __cplusplus
1913 extern "C"
1914# endif
1915 int F77_DUMMY_MAIN() { return 1; }
1916#endif
1917int
1918main ()
1919{
1920exit (42);
1921 ;
1922 return 0;
1923}
1924_ACEOF
1925rm -f conftest.$ac_objext
1926if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1927 (eval $ac_compile) 2>&5
1928 ac_status=$?
1929 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1930 (exit $ac_status); } &&
1931 { ac_try='test -s conftest.$ac_objext'
1932 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1933 (eval $ac_try) 2>&5
1934 ac_status=$?
1935 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1936 (exit $ac_status); }; }; then
1937 :
1938else
1939 echo "$as_me: failed program was:" >&5
1940cat conftest.$ac_ext >&5
1941continue
1942fi
1943rm -f conftest.$ac_objext conftest.$ac_ext
1944 cat >conftest.$ac_ext <<_ACEOF
1945#line $LINENO "configure"
1946#include "confdefs.h"
1947$ac_declaration
1948#ifdef F77_DUMMY_MAIN
1949# ifdef __cplusplus
1950 extern "C"
1951# endif
1952 int F77_DUMMY_MAIN() { return 1; }
1953#endif
1954int
1955main ()
1956{
1957exit (42);
1958 ;
1959 return 0;
1960}
1961_ACEOF
1962rm -f conftest.$ac_objext
1963if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1964 (eval $ac_compile) 2>&5
1965 ac_status=$?
1966 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1967 (exit $ac_status); } &&
1968 { ac_try='test -s conftest.$ac_objext'
1969 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1970 (eval $ac_try) 2>&5
1971 ac_status=$?
1972 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1973 (exit $ac_status); }; }; then
1974 break
1975else
1976 echo "$as_me: failed program was:" >&5
1977cat conftest.$ac_ext >&5
1978fi
1979rm -f conftest.$ac_objext conftest.$ac_ext
1980done
1981rm -f conftest*
1982if test -n "$ac_declaration"; then
1983 echo '#ifdef __cplusplus' >>confdefs.h
1984 echo $ac_declaration >>confdefs.h
1985 echo '#endif' >>confdefs.h
1986fi
1987
1988else
1989 echo "$as_me: failed program was:" >&5
1990cat conftest.$ac_ext >&5
1991fi
1992rm -f conftest.$ac_objext conftest.$ac_ext
1993ac_ext=c
1994ac_cpp='$CPP $CPPFLAGS'
1995ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1996ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1997ac_compiler_gnu=$ac_cv_c_compiler_gnu
1998
1999ac_aux_dir=
2000for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
2001 if test -f $ac_dir/install-sh; then
2002 ac_aux_dir=$ac_dir
2003 ac_install_sh="$ac_aux_dir/install-sh -c"
2004 break
2005 elif test -f $ac_dir/install.sh; then
2006 ac_aux_dir=$ac_dir
2007 ac_install_sh="$ac_aux_dir/install.sh -c"
2008 break
2009 elif test -f $ac_dir/shtool; then
2010 ac_aux_dir=$ac_dir
2011 ac_install_sh="$ac_aux_dir/shtool install -c"
2012 break
2013 fi
2014done
2015if test -z "$ac_aux_dir"; then
2016 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
2017echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
2018 { (exit 1); exit 1; }; }
2019fi
2020ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2021ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2022ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2023
2024# Make sure we can run config.sub.
2025$ac_config_sub sun4 >/dev/null 2>&1 ||
2026 { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
2027echo "$as_me: error: cannot run $ac_config_sub" >&2;}
2028 { (exit 1); exit 1; }; }
2029
2030echo "$as_me:$LINENO: checking build system type" >&5
2031echo $ECHO_N "checking build system type... $ECHO_C" >&6
2032if test "${ac_cv_build+set}" = set; then
2033 echo $ECHO_N "(cached) $ECHO_C" >&6
2034else
2035 ac_cv_build_alias=$build_alias
2036test -z "$ac_cv_build_alias" &&
2037 ac_cv_build_alias=`$ac_config_guess`
2038test -z "$ac_cv_build_alias" &&
2039 { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2040echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2041 { (exit 1); exit 1; }; }
2042ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
2043 { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
2044echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
2045 { (exit 1); exit 1; }; }
2046
2047fi
2048echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2049echo "${ECHO_T}$ac_cv_build" >&6
2050build=$ac_cv_build
2051build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2052build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2053build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2054
2055
2056echo "$as_me:$LINENO: checking host system type" >&5
2057echo $ECHO_N "checking host system type... $ECHO_C" >&6
2058if test "${ac_cv_host+set}" = set; then
2059 echo $ECHO_N "(cached) $ECHO_C" >&6
2060else
2061 ac_cv_host_alias=$host_alias
2062test -z "$ac_cv_host_alias" &&
2063 ac_cv_host_alias=$ac_cv_build_alias
2064ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
2065 { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
2066echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
2067 { (exit 1); exit 1; }; }
2068
2069fi
2070echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2071echo "${ECHO_T}$ac_cv_host" >&6
2072host=$ac_cv_host
2073host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2074host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2075host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2076
2077
2078
2079echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
2080echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
2081if test "${ac_cv_c_bigendian+set}" = set; then
2082 echo $ECHO_N "(cached) $ECHO_C" >&6
2083else
2084 # See if sys/param.h defines the BYTE_ORDER macro.
2085cat >conftest.$ac_ext <<_ACEOF
2086#line $LINENO "configure"
2087#include "confdefs.h"
2088#include <sys/types.h>
2089#include <sys/param.h>
2090
2091#ifdef F77_DUMMY_MAIN
2092# ifdef __cplusplus
2093 extern "C"
2094# endif
2095 int F77_DUMMY_MAIN() { return 1; }
2096#endif
2097int
2098main ()
2099{
2100#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
2101 bogus endian macros
2102#endif
2103
2104 ;
2105 return 0;
2106}
2107_ACEOF
2108rm -f conftest.$ac_objext
2109if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2110 (eval $ac_compile) 2>&5
2111 ac_status=$?
2112 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2113 (exit $ac_status); } &&
2114 { ac_try='test -s conftest.$ac_objext'
2115 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2116 (eval $ac_try) 2>&5
2117 ac_status=$?
2118 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2119 (exit $ac_status); }; }; then
2120 # It does; now see whether it defined to BIG_ENDIAN or not.
2121cat >conftest.$ac_ext <<_ACEOF
2122#line $LINENO "configure"
2123#include "confdefs.h"
2124#include <sys/types.h>
2125#include <sys/param.h>
2126
2127#ifdef F77_DUMMY_MAIN
2128# ifdef __cplusplus
2129 extern "C"
2130# endif
2131 int F77_DUMMY_MAIN() { return 1; }
2132#endif
2133int
2134main ()
2135{
2136#if BYTE_ORDER != BIG_ENDIAN
2137 not big endian
2138#endif
2139
2140 ;
2141 return 0;
2142}
2143_ACEOF
2144rm -f conftest.$ac_objext
2145if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2146 (eval $ac_compile) 2>&5
2147 ac_status=$?
2148 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2149 (exit $ac_status); } &&
2150 { ac_try='test -s conftest.$ac_objext'
2151 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2152 (eval $ac_try) 2>&5
2153 ac_status=$?
2154 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2155 (exit $ac_status); }; }; then
2156 ac_cv_c_bigendian=yes
2157else
2158 echo "$as_me: failed program was:" >&5
2159cat conftest.$ac_ext >&5
2160ac_cv_c_bigendian=no
2161fi
2162rm -f conftest.$ac_objext conftest.$ac_ext
2163else
2164 echo "$as_me: failed program was:" >&5
2165cat conftest.$ac_ext >&5
2166# It does not; compile a test program.
2167if test "$cross_compiling" = yes; then
2168 # try to guess the endianess by grep'ing values into an object file
2169 ac_cv_c_bigendian=unknown
2170 cat >conftest.$ac_ext <<_ACEOF
2171#line $LINENO "configure"
2172#include "confdefs.h"
2173short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
2174short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
2175void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
2176short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
2177short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
2178void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
2179#ifdef F77_DUMMY_MAIN
2180# ifdef __cplusplus
2181 extern "C"
2182# endif
2183 int F77_DUMMY_MAIN() { return 1; }
2184#endif
2185int
2186main ()
2187{
2188 _ascii (); _ebcdic ();
2189 ;
2190 return 0;
2191}
2192_ACEOF
2193rm -f conftest.$ac_objext
2194if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2195 (eval $ac_compile) 2>&5
2196 ac_status=$?
2197 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2198 (exit $ac_status); } &&
2199 { ac_try='test -s conftest.$ac_objext'
2200 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2201 (eval $ac_try) 2>&5
2202 ac_status=$?
2203 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2204 (exit $ac_status); }; }; then
2205 if fgrep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
2206 ac_cv_c_bigendian=yes
2207fi
2208if fgrep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
2209 if test "$ac_cv_c_bigendian" = unknown; then
2210 ac_cv_c_bigendian=no
2211 else
2212 # finding both strings is unlikely to happen, but who knows?
2213 ac_cv_c_bigendian=unknown
2214 fi
2215fi
2216else
2217 echo "$as_me: failed program was:" >&5
2218cat conftest.$ac_ext >&5
2219fi
2220rm -f conftest.$ac_objext conftest.$ac_ext
2221else
2222 cat >conftest.$ac_ext <<_ACEOF
2223#line $LINENO "configure"
2224#include "confdefs.h"
2225int
2226main ()
2227{
2228 /* Are we little or big endian? From Harbison&Steele. */
2229 union
2230 {
2231 long l;
2232 char c[sizeof (long)];
2233 } u;
2234 u.l = 1;
2235 exit (u.c[sizeof (long) - 1] == 1);
2236}
2237_ACEOF
2238rm -f conftest$ac_exeext
2239if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
2240 (eval $ac_link) 2>&5
2241 ac_status=$?
2242 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2243 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
2244 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2245 (eval $ac_try) 2>&5
2246 ac_status=$?
2247 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2248 (exit $ac_status); }; }; then
2249 ac_cv_c_bigendian=no
2250else
2251 echo "$as_me: program exited with status $ac_status" >&5
2252echo "$as_me: failed program was:" >&5
2253cat conftest.$ac_ext >&5
2254( exit $ac_status )
2255ac_cv_c_bigendian=yes
2256fi
2257rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
2258fi
2259fi
2260rm -f conftest.$ac_objext conftest.$ac_ext
2261fi
2262echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
2263echo "${ECHO_T}$ac_cv_c_bigendian" >&6
2264case $ac_cv_c_bigendian in
2265 yes)
2266
2267cat >>confdefs.h <<\_ACEOF
2268@%:@define WORDS_BIGENDIAN 1
2269_ACEOF
2270 ;;
2271 no)
2272 ;;
2273 *)
2274 { { echo "$as_me:$LINENO: error: unknown endianess
2275presetting ac_cv_c_bigendian=no (or yes) will help" >&5
2276echo "$as_me: error: unknown endianess
2277presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
2278 { (exit 1); exit 1; }; } ;;
2279esac
2280
2281
2282# Checks for programs.
2283ac_ext=c
2284ac_cpp='$CPP $CPPFLAGS'
2285ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2286ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2287ac_compiler_gnu=$ac_cv_c_compiler_gnu
2288echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
2289echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
2290# On Suns, sometimes $CPP names a directory.
2291if test -n "$CPP" && test -d "$CPP"; then
2292 CPP=
2293fi
2294if test -z "$CPP"; then
2295 if test "${ac_cv_prog_CPP+set}" = set; then
2296 echo $ECHO_N "(cached) $ECHO_C" >&6
2297else
2298 # Double quotes because CPP needs to be expanded
2299 for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
2300 do
2301 ac_preproc_ok=false
2302for ac_c_preproc_warn_flag in '' yes
2303do
2304 # Use a header file that comes with gcc, so configuring glibc
2305 # with a fresh cross-compiler works.
2306 # On the NeXT, cc -E runs the code through the compiler's parser,
2307 # not just through cpp. "Syntax error" is here to catch this case.
2308 cat >conftest.$ac_ext <<_ACEOF
2309#line $LINENO "configure"
2310#include "confdefs.h"
2311@%:@include <assert.h>
2312 Syntax error
2313_ACEOF
2314if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2315 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2316 ac_status=$?
2317 egrep -v '^ *\+' conftest.er1 >conftest.err
2318 rm -f conftest.er1
2319 cat conftest.err >&5
2320 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2321 (exit $ac_status); } >/dev/null; then
2322 if test -s conftest.err; then
2323 ac_cpp_err=$ac_c_preproc_warn_flag
2324 else
2325 ac_cpp_err=
2326 fi
2327else
2328 ac_cpp_err=yes
2329fi
2330if test -z "$ac_cpp_err"; then
2331 :
2332else
2333 echo "$as_me: failed program was:" >&5
2334 cat conftest.$ac_ext >&5
2335 # Broken: fails on valid input.
2336continue
2337fi
2338rm -f conftest.err conftest.$ac_ext
2339
2340 # OK, works on sane cases. Now check whether non-existent headers
2341 # can be detected and how.
2342 cat >conftest.$ac_ext <<_ACEOF
2343#line $LINENO "configure"
2344#include "confdefs.h"
2345@%:@include <ac_nonexistent.h>
2346_ACEOF
2347if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2348 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2349 ac_status=$?
2350 egrep -v '^ *\+' conftest.er1 >conftest.err
2351 rm -f conftest.er1
2352 cat conftest.err >&5
2353 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2354 (exit $ac_status); } >/dev/null; then
2355 if test -s conftest.err; then
2356 ac_cpp_err=$ac_c_preproc_warn_flag
2357 else
2358 ac_cpp_err=
2359 fi
2360else
2361 ac_cpp_err=yes
2362fi
2363if test -z "$ac_cpp_err"; then
2364 # Broken: success on invalid input.
2365continue
2366else
2367 echo "$as_me: failed program was:" >&5
2368 cat conftest.$ac_ext >&5
2369 # Passes both tests.
2370ac_preproc_ok=:
2371break
2372fi
2373rm -f conftest.err conftest.$ac_ext
2374
2375done
2376# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
2377rm -f conftest.err conftest.$ac_ext
2378if $ac_preproc_ok; then
2379 break
2380fi
2381
2382 done
2383 ac_cv_prog_CPP=$CPP
2384
2385fi
2386 CPP=$ac_cv_prog_CPP
2387else
2388 ac_cv_prog_CPP=$CPP
2389fi
2390echo "$as_me:$LINENO: result: $CPP" >&5
2391echo "${ECHO_T}$CPP" >&6
2392ac_preproc_ok=false
2393for ac_c_preproc_warn_flag in '' yes
2394do
2395 # Use a header file that comes with gcc, so configuring glibc
2396 # with a fresh cross-compiler works.
2397 # On the NeXT, cc -E runs the code through the compiler's parser,
2398 # not just through cpp. "Syntax error" is here to catch this case.
2399 cat >conftest.$ac_ext <<_ACEOF
2400#line $LINENO "configure"
2401#include "confdefs.h"
2402@%:@include <assert.h>
2403 Syntax error
2404_ACEOF
2405if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2406 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2407 ac_status=$?
2408 egrep -v '^ *\+' conftest.er1 >conftest.err
2409 rm -f conftest.er1
2410 cat conftest.err >&5
2411 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2412 (exit $ac_status); } >/dev/null; then
2413 if test -s conftest.err; then
2414 ac_cpp_err=$ac_c_preproc_warn_flag
2415 else
2416 ac_cpp_err=
2417 fi
2418else
2419 ac_cpp_err=yes
2420fi
2421if test -z "$ac_cpp_err"; then
2422 :
2423else
2424 echo "$as_me: failed program was:" >&5
2425 cat conftest.$ac_ext >&5
2426 # Broken: fails on valid input.
2427continue
2428fi
2429rm -f conftest.err conftest.$ac_ext
2430
2431 # OK, works on sane cases. Now check whether non-existent headers
2432 # can be detected and how.
2433 cat >conftest.$ac_ext <<_ACEOF
2434#line $LINENO "configure"
2435#include "confdefs.h"
2436@%:@include <ac_nonexistent.h>
2437_ACEOF
2438if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2439 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2440 ac_status=$?
2441 egrep -v '^ *\+' conftest.er1 >conftest.err
2442 rm -f conftest.er1
2443 cat conftest.err >&5
2444 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2445 (exit $ac_status); } >/dev/null; then
2446 if test -s conftest.err; then
2447 ac_cpp_err=$ac_c_preproc_warn_flag
2448 else
2449 ac_cpp_err=
2450 fi
2451else
2452 ac_cpp_err=yes
2453fi
2454if test -z "$ac_cpp_err"; then
2455 # Broken: success on invalid input.
2456continue
2457else
2458 echo "$as_me: failed program was:" >&5
2459 cat conftest.$ac_ext >&5
2460 # Passes both tests.
2461ac_preproc_ok=:
2462break
2463fi
2464rm -f conftest.err conftest.$ac_ext
2465
2466done
2467# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
2468rm -f conftest.err conftest.$ac_ext
2469if $ac_preproc_ok; then
2470 :
2471else
2472 { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
2473echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
2474 { (exit 1); exit 1; }; }
2475fi
2476
2477ac_ext=c
2478ac_cpp='$CPP $CPPFLAGS'
2479ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2480ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2481ac_compiler_gnu=$ac_cv_c_compiler_gnu
2482
2483if test -n "$ac_tool_prefix"; then
2484 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
2485set dummy ${ac_tool_prefix}ranlib; ac_word=$2
2486echo "$as_me:$LINENO: checking for $ac_word" >&5
2487echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2488if test "${ac_cv_prog_RANLIB+set}" = set; then
2489 echo $ECHO_N "(cached) $ECHO_C" >&6
2490else
2491 if test -n "$RANLIB"; then
2492 ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
2493else
2494as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2495for as_dir in $PATH
2496do
2497 IFS=$as_save_IFS
2498 test -z "$as_dir" && as_dir=.
2499 for ac_exec_ext in '' $ac_executable_extensions; do
2500 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2501 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
2502 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2503 break 2
2504 fi
2505done
2506done
2507
2508fi
2509fi
2510RANLIB=$ac_cv_prog_RANLIB
2511if test -n "$RANLIB"; then
2512 echo "$as_me:$LINENO: result: $RANLIB" >&5
2513echo "${ECHO_T}$RANLIB" >&6
2514else
2515 echo "$as_me:$LINENO: result: no" >&5
2516echo "${ECHO_T}no" >&6
2517fi
2518
2519fi
2520if test -z "$ac_cv_prog_RANLIB"; then
2521 ac_ct_RANLIB=$RANLIB
2522 # Extract the first word of "ranlib", so it can be a program name with args.
2523set dummy ranlib; ac_word=$2
2524echo "$as_me:$LINENO: checking for $ac_word" >&5
2525echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2526if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
2527 echo $ECHO_N "(cached) $ECHO_C" >&6
2528else
2529 if test -n "$ac_ct_RANLIB"; then
2530 ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
2531else
2532as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2533for as_dir in $PATH
2534do
2535 IFS=$as_save_IFS
2536 test -z "$as_dir" && as_dir=.
2537 for ac_exec_ext in '' $ac_executable_extensions; do
2538 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2539 ac_cv_prog_ac_ct_RANLIB="ranlib"
2540 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2541 break 2
2542 fi
2543done
2544done
2545
2546 test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
2547fi
2548fi
2549ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
2550if test -n "$ac_ct_RANLIB"; then
2551 echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
2552echo "${ECHO_T}$ac_ct_RANLIB" >&6
2553else
2554 echo "$as_me:$LINENO: result: no" >&5
2555echo "${ECHO_T}no" >&6
2556fi
2557
2558 RANLIB=$ac_ct_RANLIB
2559else
2560 RANLIB="$ac_cv_prog_RANLIB"
2561fi
2562
2563# Find a good install program. We prefer a C program (faster),
2564# so one script is as good as another. But avoid the broken or
2565# incompatible versions:
2566# SysV /etc/install, /usr/sbin/install
2567# SunOS /usr/etc/install
2568# IRIX /sbin/install
2569# AIX /bin/install
2570# AmigaOS /C/install, which installs bootblocks on floppy discs
2571# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2572# AFS /usr/afsws/bin/install, which mishandles nonexistent args
2573# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2574# ./install, which can be erroneously created by make from ./install.sh.
2575echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2576echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2577if test -z "$INSTALL"; then
2578if test "${ac_cv_path_install+set}" = set; then
2579 echo $ECHO_N "(cached) $ECHO_C" >&6
2580else
2581 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2582for as_dir in $PATH
2583do
2584 IFS=$as_save_IFS
2585 test -z "$as_dir" && as_dir=.
2586 # Account for people who put trailing slashes in PATH elements.
2587case $as_dir/ in
2588 ./ | .// | /cC/* | \
2589 /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2590 /usr/ucb/* ) ;;
2591 *)
2592 # OSF1 and SCO ODT 3.0 have their own names for install.
2593 # Don't use installbsd from OSF since it installs stuff as root
2594 # by default.
2595 for ac_prog in ginstall scoinst install; do
2596 for ac_exec_ext in '' $ac_executable_extensions; do
2597 if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2598 if test $ac_prog = install &&
2599 grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2600 # AIX install. It has an incompatible calling convention.
2601 :
2602 elif test $ac_prog = install &&
2603 grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2604 # program-specific install script used by HP pwplus--don't use.
2605 :
2606 else
2607 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2608 break 3
2609 fi
2610 fi
2611 done
2612 done
2613 ;;
2614esac
2615done
2616
2617
2618fi
2619 if test "${ac_cv_path_install+set}" = set; then
2620 INSTALL=$ac_cv_path_install
2621 else
2622 # As a last resort, use the slow shell script. We don't cache a
2623 # path for INSTALL within a source directory, because that will
2624 # break other packages using the cache if that directory is
2625 # removed, or if the path is relative.
2626 INSTALL=$ac_install_sh
2627 fi
2628fi
2629echo "$as_me:$LINENO: result: $INSTALL" >&5
2630echo "${ECHO_T}$INSTALL" >&6
2631
2632# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2633# It thinks the first close brace ends the variable substitution.
2634test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2635
2636test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2637
2638test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2639
2640# Extract the first word of "ar", so it can be a program name with args.
2641set dummy ar; ac_word=$2
2642echo "$as_me:$LINENO: checking for $ac_word" >&5
2643echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2644if test "${ac_cv_path_AR+set}" = set; then
2645 echo $ECHO_N "(cached) $ECHO_C" >&6
2646else
2647 case $AR in
2648 [\\/]* | ?:[\\/]*)
2649 ac_cv_path_AR="$AR" # Let the user override the test with a path.
2650 ;;
2651 *)
2652 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2653for as_dir in $PATH
2654do
2655 IFS=$as_save_IFS
2656 test -z "$as_dir" && as_dir=.
2657 for ac_exec_ext in '' $ac_executable_extensions; do
2658 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2659 ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
2660 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2661 break 2
2662 fi
2663done
2664done
2665
2666 ;;
2667esac
2668fi
2669AR=$ac_cv_path_AR
2670
2671if test -n "$AR"; then
2672 echo "$as_me:$LINENO: result: $AR" >&5
2673echo "${ECHO_T}$AR" >&6
2674else
2675 echo "$as_me:$LINENO: result: no" >&5
2676echo "${ECHO_T}no" >&6
2677fi
2678
2679for ac_prog in perl5 perl
2680do
2681 # Extract the first word of "$ac_prog", so it can be a program name with args.
2682set dummy $ac_prog; ac_word=$2
2683echo "$as_me:$LINENO: checking for $ac_word" >&5
2684echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2685if test "${ac_cv_path_PERL+set}" = set; then
2686 echo $ECHO_N "(cached) $ECHO_C" >&6
2687else
2688 case $PERL in
2689 [\\/]* | ?:[\\/]*)
2690 ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
2691 ;;
2692 *)
2693 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2694for as_dir in $PATH
2695do
2696 IFS=$as_save_IFS
2697 test -z "$as_dir" && as_dir=.
2698 for ac_exec_ext in '' $ac_executable_extensions; do
2699 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2700 ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
2701 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2702 break 2
2703 fi
2704done
2705done
2706
2707 ;;
2708esac
2709fi
2710PERL=$ac_cv_path_PERL
2711
2712if test -n "$PERL"; then
2713 echo "$as_me:$LINENO: result: $PERL" >&5
2714echo "${ECHO_T}$PERL" >&6
2715else
2716 echo "$as_me:$LINENO: result: no" >&5
2717echo "${ECHO_T}no" >&6
2718fi
2719
2720 test -n "$PERL" && break
2721done
2722
2723# Extract the first word of "sed", so it can be a program name with args.
2724set dummy sed; ac_word=$2
2725echo "$as_me:$LINENO: checking for $ac_word" >&5
2726echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2727if test "${ac_cv_path_SED+set}" = set; then
2728 echo $ECHO_N "(cached) $ECHO_C" >&6
2729else
2730 case $SED in
2731 [\\/]* | ?:[\\/]*)
2732 ac_cv_path_SED="$SED" # Let the user override the test with a path.
2733 ;;
2734 *)
2735 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2736for as_dir in $PATH
2737do
2738 IFS=$as_save_IFS
2739 test -z "$as_dir" && as_dir=.
2740 for ac_exec_ext in '' $ac_executable_extensions; do
2741 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2742 ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
2743 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2744 break 2
2745 fi
2746done
2747done
2748
2749 ;;
2750esac
2751fi
2752SED=$ac_cv_path_SED
2753
2754if test -n "$SED"; then
2755 echo "$as_me:$LINENO: result: $SED" >&5
2756echo "${ECHO_T}$SED" >&6
2757else
2758 echo "$as_me:$LINENO: result: no" >&5
2759echo "${ECHO_T}no" >&6
2760fi
2761
2762
2763# Extract the first word of "ent", so it can be a program name with args.
2764set dummy ent; ac_word=$2
2765echo "$as_me:$LINENO: checking for $ac_word" >&5
2766echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2767if test "${ac_cv_path_ENT+set}" = set; then
2768 echo $ECHO_N "(cached) $ECHO_C" >&6
2769else
2770 case $ENT in
2771 [\\/]* | ?:[\\/]*)
2772 ac_cv_path_ENT="$ENT" # Let the user override the test with a path.
2773 ;;
2774 *)
2775 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2776for as_dir in $PATH
2777do
2778 IFS=$as_save_IFS
2779 test -z "$as_dir" && as_dir=.
2780 for ac_exec_ext in '' $ac_executable_extensions; do
2781 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2782 ac_cv_path_ENT="$as_dir/$ac_word$ac_exec_ext"
2783 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2784 break 2
2785 fi
2786done
2787done
2788
2789 ;;
2790esac
2791fi
2792ENT=$ac_cv_path_ENT
2793
2794if test -n "$ENT"; then
2795 echo "$as_me:$LINENO: result: $ENT" >&5
2796echo "${ECHO_T}$ENT" >&6
2797else
2798 echo "$as_me:$LINENO: result: no" >&5
2799echo "${ECHO_T}no" >&6
2800fi
2801
2802
2803# Extract the first word of "bash", so it can be a program name with args.
2804set dummy bash; ac_word=$2
2805echo "$as_me:$LINENO: checking for $ac_word" >&5
2806echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2807if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
2808 echo $ECHO_N "(cached) $ECHO_C" >&6
2809else
2810 case $TEST_MINUS_S_SH in
2811 [\\/]* | ?:[\\/]*)
2812 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
2813 ;;
2814 *)
2815 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2816for as_dir in $PATH
2817do
2818 IFS=$as_save_IFS
2819 test -z "$as_dir" && as_dir=.
2820 for ac_exec_ext in '' $ac_executable_extensions; do
2821 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2822 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
2823 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2824 break 2
2825 fi
2826done
2827done
2828
2829 ;;
2830esac
2831fi
2832TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
2833
2834if test -n "$TEST_MINUS_S_SH"; then
2835 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
2836echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
2837else
2838 echo "$as_me:$LINENO: result: no" >&5
2839echo "${ECHO_T}no" >&6
2840fi
2841
2842# Extract the first word of "ksh", so it can be a program name with args.
2843set dummy ksh; ac_word=$2
2844echo "$as_me:$LINENO: checking for $ac_word" >&5
2845echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2846if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
2847 echo $ECHO_N "(cached) $ECHO_C" >&6
2848else
2849 case $TEST_MINUS_S_SH in
2850 [\\/]* | ?:[\\/]*)
2851 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
2852 ;;
2853 *)
2854 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2855for as_dir in $PATH
2856do
2857 IFS=$as_save_IFS
2858 test -z "$as_dir" && as_dir=.
2859 for ac_exec_ext in '' $ac_executable_extensions; do
2860 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2861 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
2862 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2863 break 2
2864 fi
2865done
2866done
2867
2868 ;;
2869esac
2870fi
2871TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
2872
2873if test -n "$TEST_MINUS_S_SH"; then
2874 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
2875echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
2876else
2877 echo "$as_me:$LINENO: result: no" >&5
2878echo "${ECHO_T}no" >&6
2879fi
2880
2881# Extract the first word of "sh", so it can be a program name with args.
2882set dummy sh; ac_word=$2
2883echo "$as_me:$LINENO: checking for $ac_word" >&5
2884echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2885if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
2886 echo $ECHO_N "(cached) $ECHO_C" >&6
2887else
2888 case $TEST_MINUS_S_SH in
2889 [\\/]* | ?:[\\/]*)
2890 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
2891 ;;
2892 *)
2893 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2894for as_dir in $PATH
2895do
2896 IFS=$as_save_IFS
2897 test -z "$as_dir" && as_dir=.
2898 for ac_exec_ext in '' $ac_executable_extensions; do
2899 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2900 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
2901 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2902 break 2
2903 fi
2904done
2905done
2906
2907 ;;
2908esac
2909fi
2910TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
2911
2912if test -n "$TEST_MINUS_S_SH"; then
2913 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
2914echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
2915else
2916 echo "$as_me:$LINENO: result: no" >&5
2917echo "${ECHO_T}no" >&6
2918fi
2919
2920# Extract the first word of "sh", so it can be a program name with args.
2921set dummy sh; ac_word=$2
2922echo "$as_me:$LINENO: checking for $ac_word" >&5
2923echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2924if test "${ac_cv_path_SH+set}" = set; then
2925 echo $ECHO_N "(cached) $ECHO_C" >&6
2926else
2927 case $SH in
2928 [\\/]* | ?:[\\/]*)
2929 ac_cv_path_SH="$SH" # Let the user override the test with a path.
2930 ;;
2931 *)
2932 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2933for as_dir in $PATH
2934do
2935 IFS=$as_save_IFS
2936 test -z "$as_dir" && as_dir=.
2937 for ac_exec_ext in '' $ac_executable_extensions; do
2938 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2939 ac_cv_path_SH="$as_dir/$ac_word$ac_exec_ext"
2940 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2941 break 2
2942 fi
2943done
2944done
2945
2946 ;;
2947esac
2948fi
2949SH=$ac_cv_path_SH
2950
2951if test -n "$SH"; then
2952 echo "$as_me:$LINENO: result: $SH" >&5
2953echo "${ECHO_T}$SH" >&6
2954else
2955 echo "$as_me:$LINENO: result: no" >&5
2956echo "${ECHO_T}no" >&6
2957fi
2958
2959
2960# System features
2961# Check whether --enable-largefile or --disable-largefile was given.
2962if test "${enable_largefile+set}" = set; then
2963 enableval="$enable_largefile"
2964
2965fi;
2966if test "$enable_largefile" != no; then
2967
2968 echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
2969echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
2970if test "${ac_cv_sys_largefile_CC+set}" = set; then
2971 echo $ECHO_N "(cached) $ECHO_C" >&6
2972else
2973 ac_cv_sys_largefile_CC=no
2974 if test "$GCC" != yes; then
2975 ac_save_CC=$CC
2976 while :; do
2977 # IRIX 6.2 and later do not support large files by default,
2978 # so use the C compiler's -n32 option if that helps.
2979 cat >conftest.$ac_ext <<_ACEOF
2980#line $LINENO "configure"
2981#include "confdefs.h"
2982@%:@include <sys/types.h>
2983 /* Check that off_t can represent 2**63 - 1 correctly.
2984 We can't simply define LARGE_OFF_T to be 9223372036854775807,
2985 since some C++ compilers masquerading as C compilers
2986 incorrectly reject 9223372036854775807. */
2987@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
2988 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
2989 && LARGE_OFF_T % 2147483647 == 1)
2990 ? 1 : -1];
2991#ifdef F77_DUMMY_MAIN
2992# ifdef __cplusplus
2993 extern "C"
2994# endif
2995 int F77_DUMMY_MAIN() { return 1; }
2996#endif
2997int
2998main ()
2999{
3000
3001 ;
3002 return 0;
3003}
3004_ACEOF
3005 rm -f conftest.$ac_objext
3006if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3007 (eval $ac_compile) 2>&5
3008 ac_status=$?
3009 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3010 (exit $ac_status); } &&
3011 { ac_try='test -s conftest.$ac_objext'
3012 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3013 (eval $ac_try) 2>&5
3014 ac_status=$?
3015 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3016 (exit $ac_status); }; }; then
3017 break
3018else
3019 echo "$as_me: failed program was:" >&5
3020cat conftest.$ac_ext >&5
3021fi
3022rm -f conftest.$ac_objext
3023 CC="$CC -n32"
3024 rm -f conftest.$ac_objext
3025if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3026 (eval $ac_compile) 2>&5
3027 ac_status=$?
3028 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3029 (exit $ac_status); } &&
3030 { ac_try='test -s conftest.$ac_objext'
3031 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3032 (eval $ac_try) 2>&5
3033 ac_status=$?
3034 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3035 (exit $ac_status); }; }; then
3036 ac_cv_sys_largefile_CC=' -n32'; break
3037else
3038 echo "$as_me: failed program was:" >&5
3039cat conftest.$ac_ext >&5
3040fi
3041rm -f conftest.$ac_objext
3042 break
3043 done
3044 CC=$ac_save_CC
3045 rm -f conftest.$ac_ext
3046 fi
3047fi
3048echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
3049echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
3050 if test "$ac_cv_sys_largefile_CC" != no; then
3051 CC=$CC$ac_cv_sys_largefile_CC
3052 fi
3053
3054 echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
3055echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
3056if test "${ac_cv_sys_file_offset_bits+set}" = set; then
3057 echo $ECHO_N "(cached) $ECHO_C" >&6
3058else
3059 while :; do
3060 ac_cv_sys_file_offset_bits=no
3061 cat >conftest.$ac_ext <<_ACEOF
3062#line $LINENO "configure"
3063#include "confdefs.h"
3064@%:@include <sys/types.h>
3065 /* Check that off_t can represent 2**63 - 1 correctly.
3066 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3067 since some C++ compilers masquerading as C compilers
3068 incorrectly reject 9223372036854775807. */
3069@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3070 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3071 && LARGE_OFF_T % 2147483647 == 1)
3072 ? 1 : -1];
3073#ifdef F77_DUMMY_MAIN
3074# ifdef __cplusplus
3075 extern "C"
3076# endif
3077 int F77_DUMMY_MAIN() { return 1; }
3078#endif
3079int
3080main ()
3081{
3082
3083 ;
3084 return 0;
3085}
3086_ACEOF
3087rm -f conftest.$ac_objext
3088if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3089 (eval $ac_compile) 2>&5
3090 ac_status=$?
3091 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3092 (exit $ac_status); } &&
3093 { ac_try='test -s conftest.$ac_objext'
3094 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3095 (eval $ac_try) 2>&5
3096 ac_status=$?
3097 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3098 (exit $ac_status); }; }; then
3099 break
3100else
3101 echo "$as_me: failed program was:" >&5
3102cat conftest.$ac_ext >&5
3103fi
3104rm -f conftest.$ac_objext conftest.$ac_ext
3105 cat >conftest.$ac_ext <<_ACEOF
3106#line $LINENO "configure"
3107#include "confdefs.h"
3108@%:@define _FILE_OFFSET_BITS 64
3109@%:@include <sys/types.h>
3110 /* Check that off_t can represent 2**63 - 1 correctly.
3111 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3112 since some C++ compilers masquerading as C compilers
3113 incorrectly reject 9223372036854775807. */
3114@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3115 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3116 && LARGE_OFF_T % 2147483647 == 1)
3117 ? 1 : -1];
3118#ifdef F77_DUMMY_MAIN
3119# ifdef __cplusplus
3120 extern "C"
3121# endif
3122 int F77_DUMMY_MAIN() { return 1; }
3123#endif
3124int
3125main ()
3126{
3127
3128 ;
3129 return 0;
3130}
3131_ACEOF
3132rm -f conftest.$ac_objext
3133if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3134 (eval $ac_compile) 2>&5
3135 ac_status=$?
3136 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3137 (exit $ac_status); } &&
3138 { ac_try='test -s conftest.$ac_objext'
3139 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3140 (eval $ac_try) 2>&5
3141 ac_status=$?
3142 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3143 (exit $ac_status); }; }; then
3144 ac_cv_sys_file_offset_bits=64; break
3145else
3146 echo "$as_me: failed program was:" >&5
3147cat conftest.$ac_ext >&5
3148fi
3149rm -f conftest.$ac_objext conftest.$ac_ext
3150 break
3151done
3152fi
3153echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
3154echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
3155if test "$ac_cv_sys_file_offset_bits" != no; then
3156
3157cat >>confdefs.h <<_ACEOF
3158@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
3159_ACEOF
3160
3161fi
3162rm -f conftest*
3163 echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
3164echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
3165if test "${ac_cv_sys_large_files+set}" = set; then
3166 echo $ECHO_N "(cached) $ECHO_C" >&6
3167else
3168 while :; do
3169 ac_cv_sys_large_files=no
3170 cat >conftest.$ac_ext <<_ACEOF
3171#line $LINENO "configure"
3172#include "confdefs.h"
3173@%:@include <sys/types.h>
3174 /* Check that off_t can represent 2**63 - 1 correctly.
3175 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3176 since some C++ compilers masquerading as C compilers
3177 incorrectly reject 9223372036854775807. */
3178@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3179 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3180 && LARGE_OFF_T % 2147483647 == 1)
3181 ? 1 : -1];
3182#ifdef F77_DUMMY_MAIN
3183# ifdef __cplusplus
3184 extern "C"
3185# endif
3186 int F77_DUMMY_MAIN() { return 1; }
3187#endif
3188int
3189main ()
3190{
3191
3192 ;
3193 return 0;
3194}
3195_ACEOF
3196rm -f conftest.$ac_objext
3197if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3198 (eval $ac_compile) 2>&5
3199 ac_status=$?
3200 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3201 (exit $ac_status); } &&
3202 { ac_try='test -s conftest.$ac_objext'
3203 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3204 (eval $ac_try) 2>&5
3205 ac_status=$?
3206 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3207 (exit $ac_status); }; }; then
3208 break
3209else
3210 echo "$as_me: failed program was:" >&5
3211cat conftest.$ac_ext >&5
3212fi
3213rm -f conftest.$ac_objext conftest.$ac_ext
3214 cat >conftest.$ac_ext <<_ACEOF
3215#line $LINENO "configure"
3216#include "confdefs.h"
3217@%:@define _LARGE_FILES 1
3218@%:@include <sys/types.h>
3219 /* Check that off_t can represent 2**63 - 1 correctly.
3220 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3221 since some C++ compilers masquerading as C compilers
3222 incorrectly reject 9223372036854775807. */
3223@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3224 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3225 && LARGE_OFF_T % 2147483647 == 1)
3226 ? 1 : -1];
3227#ifdef F77_DUMMY_MAIN
3228# ifdef __cplusplus
3229 extern "C"
3230# endif
3231 int F77_DUMMY_MAIN() { return 1; }
3232#endif
3233int
3234main ()
3235{
3236
3237 ;
3238 return 0;
3239}
3240_ACEOF
3241rm -f conftest.$ac_objext
3242if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3243 (eval $ac_compile) 2>&5
3244 ac_status=$?
3245 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3246 (exit $ac_status); } &&
3247 { ac_try='test -s conftest.$ac_objext'
3248 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3249 (eval $ac_try) 2>&5
3250 ac_status=$?
3251 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3252 (exit $ac_status); }; }; then
3253 ac_cv_sys_large_files=1; break
3254else
3255 echo "$as_me: failed program was:" >&5
3256cat conftest.$ac_ext >&5
3257fi
3258rm -f conftest.$ac_objext conftest.$ac_ext
3259 break
3260done
3261fi
3262echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
3263echo "${ECHO_T}$ac_cv_sys_large_files" >&6
3264if test "$ac_cv_sys_large_files" != no; then
3265
3266cat >>confdefs.h <<_ACEOF
3267@%:@define _LARGE_FILES $ac_cv_sys_large_files
3268_ACEOF
3269
3270fi
3271rm -f conftest*
3272fi
3273
3274
3275if test -z "$AR" ; then
3276 { { echo "$as_me:$LINENO: error: *** 'ar' missing, please install or fix your \$PATH ***" >&5
3277echo "$as_me: error: *** 'ar' missing, please install or fix your \$PATH ***" >&2;}
3278 { (exit 1); exit 1; }; }
3279fi
3280
3281# Use LOGIN_PROGRAM from environment if possible
3282if test ! -z "$LOGIN_PROGRAM" ; then
3283 cat >>confdefs.h <<_ACEOF
3284@%:@define LOGIN_PROGRAM_FALLBACK "$LOGIN_PROGRAM"
3285_ACEOF
3286
3287else
3288 # Search for login
3289 # Extract the first word of "login", so it can be a program name with args.
3290set dummy login; ac_word=$2
3291echo "$as_me:$LINENO: checking for $ac_word" >&5
3292echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3293if test "${ac_cv_path_LOGIN_PROGRAM_FALLBACK+set}" = set; then
3294 echo $ECHO_N "(cached) $ECHO_C" >&6
3295else
3296 case $LOGIN_PROGRAM_FALLBACK in
3297 [\\/]* | ?:[\\/]*)
3298 ac_cv_path_LOGIN_PROGRAM_FALLBACK="$LOGIN_PROGRAM_FALLBACK" # Let the user override the test with a path.
3299 ;;
3300 *)
3301 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3302for as_dir in $PATH
3303do
3304 IFS=$as_save_IFS
3305 test -z "$as_dir" && as_dir=.
3306 for ac_exec_ext in '' $ac_executable_extensions; do
3307 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3308 ac_cv_path_LOGIN_PROGRAM_FALLBACK="$as_dir/$ac_word$ac_exec_ext"
3309 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3310 break 2
3311 fi
3312done
3313done
3314
3315 ;;
3316esac
3317fi
3318LOGIN_PROGRAM_FALLBACK=$ac_cv_path_LOGIN_PROGRAM_FALLBACK
3319
3320if test -n "$LOGIN_PROGRAM_FALLBACK"; then
3321 echo "$as_me:$LINENO: result: $LOGIN_PROGRAM_FALLBACK" >&5
3322echo "${ECHO_T}$LOGIN_PROGRAM_FALLBACK" >&6
3323else
3324 echo "$as_me:$LINENO: result: no" >&5
3325echo "${ECHO_T}no" >&6
3326fi
3327
3328 if test ! -z "$LOGIN_PROGRAM_FALLBACK" ; then
3329 cat >>confdefs.h <<_ACEOF
3330@%:@define LOGIN_PROGRAM_FALLBACK "$LOGIN_PROGRAM_FALLBACK"
3331_ACEOF
3332
3333 fi
3334fi
3335
3336if test -z "$LD" ; then
3337 LD=$CC
3338fi
3339
3340
3341echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
3342echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
3343if test "${ac_cv_prog_cc_stdc+set}" = set; then
3344 echo $ECHO_N "(cached) $ECHO_C" >&6
3345else
3346 ac_cv_prog_cc_stdc=no
3347ac_save_CC=$CC
3348cat >conftest.$ac_ext <<_ACEOF
3349#line $LINENO "configure"
3350#include "confdefs.h"
3351#include <stdarg.h>
3352#include <stdio.h>
3353#include <sys/types.h>
3354#include <sys/stat.h>
3355/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
3356struct buf { int x; };
3357FILE * (*rcsopen) (struct buf *, struct stat *, int);
3358static char *e (p, i)
3359 char **p;
3360 int i;
3361{
3362 return p[i];
3363}
3364static char *f (char * (*g) (char **, int), char **p, ...)
3365{
3366 char *s;
3367 va_list v;
3368 va_start (v,p);
3369 s = g (p, va_arg (v,int));
3370 va_end (v);
3371 return s;
3372}
3373int test (int i, double x);
3374struct s1 {int (*f) (int a);};
3375struct s2 {int (*f) (double a);};
3376int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
3377int argc;
3378char **argv;
3379#ifdef F77_DUMMY_MAIN
3380# ifdef __cplusplus
3381 extern "C"
3382# endif
3383 int F77_DUMMY_MAIN() { return 1; }
3384#endif
3385int
3386main ()
3387{
3388return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
3389 ;
3390 return 0;
3391}
3392_ACEOF
3393# Don't try gcc -ansi; that turns off useful extensions and
3394# breaks some systems' header files.
3395# AIX -qlanglvl=ansi
3396# Ultrix and OSF/1 -std1
3397# HP-UX 10.20 and later -Ae
3398# HP-UX older versions -Aa -D_HPUX_SOURCE
3399# SVR4 -Xc -D__EXTENSIONS__
3400for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
3401do
3402 CC="$ac_save_CC $ac_arg"
3403 rm -f conftest.$ac_objext
3404if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3405 (eval $ac_compile) 2>&5
3406 ac_status=$?
3407 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3408 (exit $ac_status); } &&
3409 { ac_try='test -s conftest.$ac_objext'
3410 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3411 (eval $ac_try) 2>&5
3412 ac_status=$?
3413 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3414 (exit $ac_status); }; }; then
3415 ac_cv_prog_cc_stdc=$ac_arg
3416break
3417else
3418 echo "$as_me: failed program was:" >&5
3419cat conftest.$ac_ext >&5
3420fi
3421rm -f conftest.$ac_objext
3422done
3423rm -f conftest.$ac_ext conftest.$ac_objext
3424CC=$ac_save_CC
3425
3426fi
3427
3428case "x$ac_cv_prog_cc_stdc" in
3429 x|xno)
3430 echo "$as_me:$LINENO: result: none needed" >&5
3431echo "${ECHO_T}none needed" >&6 ;;
3432 *)
3433 echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
3434echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
3435 CC="$CC $ac_cv_prog_cc_stdc" ;;
3436esac
3437
3438echo "$as_me:$LINENO: checking for inline" >&5
3439echo $ECHO_N "checking for inline... $ECHO_C" >&6
3440if test "${ac_cv_c_inline+set}" = set; then
3441 echo $ECHO_N "(cached) $ECHO_C" >&6
3442else
3443 ac_cv_c_inline=no
3444for ac_kw in inline __inline__ __inline; do
3445 cat >conftest.$ac_ext <<_ACEOF
3446#line $LINENO "configure"
3447#include "confdefs.h"
3448#ifndef __cplusplus
3449static $ac_kw int static_foo () {return 0; }
3450$ac_kw int foo () {return 0; }
3451#endif
3452
3453_ACEOF
3454rm -f conftest.$ac_objext
3455if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3456 (eval $ac_compile) 2>&5
3457 ac_status=$?
3458 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3459 (exit $ac_status); } &&
3460 { ac_try='test -s conftest.$ac_objext'
3461 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3462 (eval $ac_try) 2>&5
3463 ac_status=$?
3464 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3465 (exit $ac_status); }; }; then
3466 ac_cv_c_inline=$ac_kw; break
3467else
3468 echo "$as_me: failed program was:" >&5
3469cat conftest.$ac_ext >&5
3470fi
3471rm -f conftest.$ac_objext conftest.$ac_ext
3472done
3473
3474fi
3475echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
3476echo "${ECHO_T}$ac_cv_c_inline" >&6
3477case $ac_cv_c_inline in
3478 inline | yes) ;;
3479 no)
3480cat >>confdefs.h <<\_ACEOF
3481@%:@define inline
3482_ACEOF
3483 ;;
3484 *) cat >>confdefs.h <<_ACEOF
3485@%:@define inline $ac_cv_c_inline
3486_ACEOF
3487 ;;
3488esac
3489
3490if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
3491 CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wno-uninitialized"
3492fi
3493
3494# Check for some target-specific stuff
3495case "$host" in
3496*-*-aix*)
3497 AFS_LIBS="-lld"
3498 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
3499 LDFLAGS="$LDFLAGS -L/usr/local/lib"
3500 if (test "$LD" != "gcc" && test -z "$blibpath"); then
3501 echo "$as_me:$LINENO: checking if linkage editor ($LD) accepts -blibpath" >&5
3502echo $ECHO_N "checking if linkage editor ($LD) accepts -blibpath... $ECHO_C" >&6
3503 saved_LDFLAGS="$LDFLAGS"
3504 LDFLAGS="$LDFLAGS -blibpath:/usr/lib:/lib:/usr/local/lib"
3505 cat >conftest.$ac_ext <<_ACEOF
3506#line $LINENO "configure"
3507#include "confdefs.h"
3508
3509#ifdef F77_DUMMY_MAIN
3510# ifdef __cplusplus
3511 extern "C"
3512# endif
3513 int F77_DUMMY_MAIN() { return 1; }
3514#endif
3515int
3516main ()
3517{
3518
3519 ;
3520 return 0;
3521}
3522_ACEOF
3523rm -f conftest.$ac_objext conftest$ac_exeext
3524if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3525 (eval $ac_link) 2>&5
3526 ac_status=$?
3527 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3528 (exit $ac_status); } &&
3529 { ac_try='test -s conftest$ac_exeext'
3530 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3531 (eval $ac_try) 2>&5
3532 ac_status=$?
3533 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3534 (exit $ac_status); }; }; then
3535
3536 echo "$as_me:$LINENO: result: yes" >&5
3537echo "${ECHO_T}yes" >&6
3538 blibpath="/usr/lib:/lib:/usr/local/lib"
3539
3540else
3541 echo "$as_me: failed program was:" >&5
3542cat conftest.$ac_ext >&5
3543 echo "$as_me:$LINENO: result: no" >&5
3544echo "${ECHO_T}no" >&6
3545
3546fi
3547rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3548 LDFLAGS="$saved_LDFLAGS"
3549 fi
3550 echo "$as_me:$LINENO: checking for authenticate" >&5
3551echo $ECHO_N "checking for authenticate... $ECHO_C" >&6
3552if test "${ac_cv_func_authenticate+set}" = set; then
3553 echo $ECHO_N "(cached) $ECHO_C" >&6
3554else
3555 cat >conftest.$ac_ext <<_ACEOF
3556#line $LINENO "configure"
3557#include "confdefs.h"
3558/* System header to define __stub macros and hopefully few prototypes,
3559 which can conflict with char authenticate (); below. */
3560#include <assert.h>
3561/* Override any gcc2 internal prototype to avoid an error. */
3562#ifdef __cplusplus
3563extern "C"
3564#endif
3565/* We use char because int might match the return type of a gcc2
3566 builtin and then its argument prototype would still apply. */
3567char authenticate ();
3568char (*f) ();
3569
3570#ifdef F77_DUMMY_MAIN
3571# ifdef __cplusplus
3572 extern "C"
3573# endif
3574 int F77_DUMMY_MAIN() { return 1; }
3575#endif
3576int
3577main ()
3578{
3579/* The GNU C library defines this for functions which it implements
3580 to always fail with ENOSYS. Some functions are actually named
3581 something starting with __ and the normal name is an alias. */
3582#if defined (__stub_authenticate) || defined (__stub___authenticate)
3583choke me
3584#else
3585f = authenticate;
3586#endif
3587
3588 ;
3589 return 0;
3590}
3591_ACEOF
3592rm -f conftest.$ac_objext conftest$ac_exeext
3593if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3594 (eval $ac_link) 2>&5
3595 ac_status=$?
3596 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3597 (exit $ac_status); } &&
3598 { ac_try='test -s conftest$ac_exeext'
3599 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3600 (eval $ac_try) 2>&5
3601 ac_status=$?
3602 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3603 (exit $ac_status); }; }; then
3604 ac_cv_func_authenticate=yes
3605else
3606 echo "$as_me: failed program was:" >&5
3607cat conftest.$ac_ext >&5
3608ac_cv_func_authenticate=no
3609fi
3610rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3611fi
3612echo "$as_me:$LINENO: result: $ac_cv_func_authenticate" >&5
3613echo "${ECHO_T}$ac_cv_func_authenticate" >&6
3614if test $ac_cv_func_authenticate = yes; then
3615 cat >>confdefs.h <<\_ACEOF
3616@%:@define WITH_AIXAUTHENTICATE 1
3617_ACEOF
3618
3619else
3620 echo "$as_me:$LINENO: checking for authenticate in -ls" >&5
3621echo $ECHO_N "checking for authenticate in -ls... $ECHO_C" >&6
3622if test "${ac_cv_lib_s_authenticate+set}" = set; then
3623 echo $ECHO_N "(cached) $ECHO_C" >&6
3624else
3625 ac_check_lib_save_LIBS=$LIBS
3626LIBS="-ls $LIBS"
3627cat >conftest.$ac_ext <<_ACEOF
3628#line $LINENO "configure"
3629#include "confdefs.h"
3630
3631/* Override any gcc2 internal prototype to avoid an error. */
3632#ifdef __cplusplus
3633extern "C"
3634#endif
3635/* We use char because int might match the return type of a gcc2
3636 builtin and then its argument prototype would still apply. */
3637char authenticate ();
3638#ifdef F77_DUMMY_MAIN
3639# ifdef __cplusplus
3640 extern "C"
3641# endif
3642 int F77_DUMMY_MAIN() { return 1; }
3643#endif
3644int
3645main ()
3646{
3647authenticate ();
3648 ;
3649 return 0;
3650}
3651_ACEOF
3652rm -f conftest.$ac_objext conftest$ac_exeext
3653if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3654 (eval $ac_link) 2>&5
3655 ac_status=$?
3656 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3657 (exit $ac_status); } &&
3658 { ac_try='test -s conftest$ac_exeext'
3659 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3660 (eval $ac_try) 2>&5
3661 ac_status=$?
3662 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3663 (exit $ac_status); }; }; then
3664 ac_cv_lib_s_authenticate=yes
3665else
3666 echo "$as_me: failed program was:" >&5
3667cat conftest.$ac_ext >&5
3668ac_cv_lib_s_authenticate=no
3669fi
3670rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3671LIBS=$ac_check_lib_save_LIBS
3672fi
3673echo "$as_me:$LINENO: result: $ac_cv_lib_s_authenticate" >&5
3674echo "${ECHO_T}$ac_cv_lib_s_authenticate" >&6
3675if test $ac_cv_lib_s_authenticate = yes; then
3676 cat >>confdefs.h <<\_ACEOF
3677@%:@define WITH_AIXAUTHENTICATE 1
3678_ACEOF
3679
3680 LIBS="$LIBS -ls"
3681
3682fi
3683
3684
3685fi
3686
3687 cat >>confdefs.h <<\_ACEOF
3688@%:@define BROKEN_GETADDRINFO 1
3689_ACEOF
3690
3691 cat >>confdefs.h <<\_ACEOF
3692@%:@define BROKEN_REALPATH 1
3693_ACEOF
3694
3695 cat >>confdefs.h <<\_ACEOF
3696@%:@define DISABLE_LASTLOG 1
3697_ACEOF
3698
3699 cat >>confdefs.h <<\_ACEOF
3700@%:@define LOGIN_NEEDS_UTMPX 1
3701_ACEOF
3702
3703 cat >>confdefs.h <<\_ACEOF
3704@%:@define SETPROCTITLE_STRATEGY PS_USE_CLOBBER_ARGV
3705_ACEOF
3706
3707 cat >>confdefs.h <<\_ACEOF
3708@%:@define SETPROCTITLE_PS_PADDING '\0'
3709_ACEOF
3710
3711 ;;
3712*-*-cygwin*)
3713 check_for_libcrypt_later=1
3714 LIBS="$LIBS /usr/lib/textmode.o"
3715 cat >>confdefs.h <<\_ACEOF
3716@%:@define HAVE_CYGWIN 1
3717_ACEOF
3718
3719 cat >>confdefs.h <<\_ACEOF
3720@%:@define USE_PIPES 1
3721_ACEOF
3722
3723 cat >>confdefs.h <<\_ACEOF
3724@%:@define DISABLE_SHADOW 1
3725_ACEOF
3726
3727 cat >>confdefs.h <<\_ACEOF
3728@%:@define IPV4_DEFAULT 1
3729_ACEOF
3730
3731 cat >>confdefs.h <<\_ACEOF
3732@%:@define IP_TOS_IS_BROKEN 1
3733_ACEOF
3734
3735 cat >>confdefs.h <<\_ACEOF
3736@%:@define NO_X11_UNIX_SOCKETS 1
3737_ACEOF
3738
3739 cat >>confdefs.h <<\_ACEOF
3740@%:@define NO_IPPORT_RESERVED_CONCEPT 1
3741_ACEOF
3742
3743 cat >>confdefs.h <<\_ACEOF
3744@%:@define DISABLE_FD_PASSING 1
3745_ACEOF
3746
3747 cat >>confdefs.h <<\_ACEOF
3748@%:@define SETGROUPS_NOOP 1
3749_ACEOF
3750
3751 ;;
3752*-*-dgux*)
3753 cat >>confdefs.h <<\_ACEOF
3754@%:@define IP_TOS_IS_BROKEN 1
3755_ACEOF
3756
3757 ;;
3758*-*-darwin*)
3759 echo "$as_me:$LINENO: checking if we have working getaddrinfo" >&5
3760echo $ECHO_N "checking if we have working getaddrinfo... $ECHO_C" >&6
3761 if test "$cross_compiling" = yes; then
3762 echo "$as_me:$LINENO: result: assume it is working" >&5
3763echo "${ECHO_T}assume it is working" >&6
3764else
3765 cat >conftest.$ac_ext <<_ACEOF
3766#line $LINENO "configure"
3767#include "confdefs.h"
3768#include <mach-o/dyld.h>
3769main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
3770 exit(0);
3771 else
3772 exit(1);
3773}
3774_ACEOF
3775rm -f conftest$ac_exeext
3776if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3777 (eval $ac_link) 2>&5
3778 ac_status=$?
3779 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3780 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
3781 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3782 (eval $ac_try) 2>&5
3783 ac_status=$?
3784 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3785 (exit $ac_status); }; }; then
3786 echo "$as_me:$LINENO: result: working" >&5
3787echo "${ECHO_T}working" >&6
3788else
3789 echo "$as_me: program exited with status $ac_status" >&5
3790echo "$as_me: failed program was:" >&5
3791cat conftest.$ac_ext >&5
3792( exit $ac_status )
3793echo "$as_me:$LINENO: result: buggy" >&5
3794echo "${ECHO_T}buggy" >&6
3795 cat >>confdefs.h <<\_ACEOF
3796@%:@define BROKEN_GETADDRINFO 1
3797_ACEOF
3798
3799fi
3800rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
3801fi
3802 ;;
3803*-*-hpux10.26)
3804 if test -z "$GCC"; then
3805 CFLAGS="$CFLAGS -Ae"
3806 fi
3807 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
3808 IPADDR_IN_DISPLAY=yes
3809 cat >>confdefs.h <<\_ACEOF
3810@%:@define HAVE_SECUREWARE 1
3811_ACEOF
3812
3813 cat >>confdefs.h <<\_ACEOF
3814@%:@define USE_PIPES 1
3815_ACEOF
3816
3817 cat >>confdefs.h <<\_ACEOF
3818@%:@define LOGIN_NO_ENDOPT 1
3819_ACEOF
3820
3821 cat >>confdefs.h <<\_ACEOF
3822@%:@define LOGIN_NEEDS_UTMPX 1
3823_ACEOF
3824
3825 cat >>confdefs.h <<\_ACEOF
3826@%:@define DISABLE_SHADOW 1
3827_ACEOF
3828
3829 cat >>confdefs.h <<\_ACEOF
3830@%:@define DISABLE_UTMP 1
3831_ACEOF
3832
3833 cat >>confdefs.h <<\_ACEOF
3834@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
3835_ACEOF
3836
3837 LIBS="$LIBS -lsec -lsecpw"
3838
3839echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
3840echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
3841if test "${ac_cv_lib_xnet_t_error+set}" = set; then
3842 echo $ECHO_N "(cached) $ECHO_C" >&6
3843else
3844 ac_check_lib_save_LIBS=$LIBS
3845LIBS="-lxnet $LIBS"
3846cat >conftest.$ac_ext <<_ACEOF
3847#line $LINENO "configure"
3848#include "confdefs.h"
3849
3850/* Override any gcc2 internal prototype to avoid an error. */
3851#ifdef __cplusplus
3852extern "C"
3853#endif
3854/* We use char because int might match the return type of a gcc2
3855 builtin and then its argument prototype would still apply. */
3856char t_error ();
3857#ifdef F77_DUMMY_MAIN
3858# ifdef __cplusplus
3859 extern "C"
3860# endif
3861 int F77_DUMMY_MAIN() { return 1; }
3862#endif
3863int
3864main ()
3865{
3866t_error ();
3867 ;
3868 return 0;
3869}
3870_ACEOF
3871rm -f conftest.$ac_objext conftest$ac_exeext
3872if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3873 (eval $ac_link) 2>&5
3874 ac_status=$?
3875 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3876 (exit $ac_status); } &&
3877 { ac_try='test -s conftest$ac_exeext'
3878 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3879 (eval $ac_try) 2>&5
3880 ac_status=$?
3881 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3882 (exit $ac_status); }; }; then
3883 ac_cv_lib_xnet_t_error=yes
3884else
3885 echo "$as_me: failed program was:" >&5
3886cat conftest.$ac_ext >&5
3887ac_cv_lib_xnet_t_error=no
3888fi
3889rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3890LIBS=$ac_check_lib_save_LIBS
3891fi
3892echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
3893echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
3894if test $ac_cv_lib_xnet_t_error = yes; then
3895 cat >>confdefs.h <<_ACEOF
3896@%:@define HAVE_LIBXNET 1
3897_ACEOF
3898
3899 LIBS="-lxnet $LIBS"
3900
3901else
3902 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
3903echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
3904 { (exit 1); exit 1; }; }
3905fi
3906
3907 disable_ptmx_check=yes
3908 ;;
3909*-*-hpux10*)
3910 if test -z "$GCC"; then
3911 CFLAGS="$CFLAGS -Ae"
3912 fi
3913 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
3914 IPADDR_IN_DISPLAY=yes
3915 cat >>confdefs.h <<\_ACEOF
3916@%:@define USE_PIPES 1
3917_ACEOF
3918
3919 cat >>confdefs.h <<\_ACEOF
3920@%:@define LOGIN_NO_ENDOPT 1
3921_ACEOF
3922
3923 cat >>confdefs.h <<\_ACEOF
3924@%:@define LOGIN_NEEDS_UTMPX 1
3925_ACEOF
3926
3927 cat >>confdefs.h <<\_ACEOF
3928@%:@define DISABLE_SHADOW 1
3929_ACEOF
3930
3931 cat >>confdefs.h <<\_ACEOF
3932@%:@define DISABLE_UTMP 1
3933_ACEOF
3934
3935 cat >>confdefs.h <<\_ACEOF
3936@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
3937_ACEOF
3938
3939 LIBS="$LIBS -lsec"
3940
3941echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
3942echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
3943if test "${ac_cv_lib_xnet_t_error+set}" = set; then
3944 echo $ECHO_N "(cached) $ECHO_C" >&6
3945else
3946 ac_check_lib_save_LIBS=$LIBS
3947LIBS="-lxnet $LIBS"
3948cat >conftest.$ac_ext <<_ACEOF
3949#line $LINENO "configure"
3950#include "confdefs.h"
3951
3952/* Override any gcc2 internal prototype to avoid an error. */
3953#ifdef __cplusplus
3954extern "C"
3955#endif
3956/* We use char because int might match the return type of a gcc2
3957 builtin and then its argument prototype would still apply. */
3958char t_error ();
3959#ifdef F77_DUMMY_MAIN
3960# ifdef __cplusplus
3961 extern "C"
3962# endif
3963 int F77_DUMMY_MAIN() { return 1; }
3964#endif
3965int
3966main ()
3967{
3968t_error ();
3969 ;
3970 return 0;
3971}
3972_ACEOF
3973rm -f conftest.$ac_objext conftest$ac_exeext
3974if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3975 (eval $ac_link) 2>&5
3976 ac_status=$?
3977 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3978 (exit $ac_status); } &&
3979 { ac_try='test -s conftest$ac_exeext'
3980 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3981 (eval $ac_try) 2>&5
3982 ac_status=$?
3983 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3984 (exit $ac_status); }; }; then
3985 ac_cv_lib_xnet_t_error=yes
3986else
3987 echo "$as_me: failed program was:" >&5
3988cat conftest.$ac_ext >&5
3989ac_cv_lib_xnet_t_error=no
3990fi
3991rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3992LIBS=$ac_check_lib_save_LIBS
3993fi
3994echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
3995echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
3996if test $ac_cv_lib_xnet_t_error = yes; then
3997 cat >>confdefs.h <<_ACEOF
3998@%:@define HAVE_LIBXNET 1
3999_ACEOF
4000
4001 LIBS="-lxnet $LIBS"
4002
4003else
4004 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
4005echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
4006 { (exit 1); exit 1; }; }
4007fi
4008
4009 ;;
4010*-*-hpux11*)
4011 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
4012 IPADDR_IN_DISPLAY=yes
4013 cat >>confdefs.h <<\_ACEOF
4014@%:@define PAM_SUN_CODEBASE 1
4015_ACEOF
4016
4017 cat >>confdefs.h <<\_ACEOF
4018@%:@define USE_PIPES 1
4019_ACEOF
4020
4021 cat >>confdefs.h <<\_ACEOF
4022@%:@define LOGIN_NO_ENDOPT 1
4023_ACEOF
4024
4025 cat >>confdefs.h <<\_ACEOF
4026@%:@define LOGIN_NEEDS_UTMPX 1
4027_ACEOF
4028
4029 cat >>confdefs.h <<\_ACEOF
4030@%:@define DISABLE_SHADOW 1
4031_ACEOF
4032
4033 cat >>confdefs.h <<\_ACEOF
4034@%:@define DISABLE_UTMP 1
4035_ACEOF
4036
4037 cat >>confdefs.h <<\_ACEOF
4038@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
4039_ACEOF
4040
4041 LIBS="$LIBS -lsec"
4042
4043echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
4044echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
4045if test "${ac_cv_lib_xnet_t_error+set}" = set; then
4046 echo $ECHO_N "(cached) $ECHO_C" >&6
4047else
4048 ac_check_lib_save_LIBS=$LIBS
4049LIBS="-lxnet $LIBS"
4050cat >conftest.$ac_ext <<_ACEOF
4051#line $LINENO "configure"
4052#include "confdefs.h"
4053
4054/* Override any gcc2 internal prototype to avoid an error. */
4055#ifdef __cplusplus
4056extern "C"
4057#endif
4058/* We use char because int might match the return type of a gcc2
4059 builtin and then its argument prototype would still apply. */
4060char t_error ();
4061#ifdef F77_DUMMY_MAIN
4062# ifdef __cplusplus
4063 extern "C"
4064# endif
4065 int F77_DUMMY_MAIN() { return 1; }
4066#endif
4067int
4068main ()
4069{
4070t_error ();
4071 ;
4072 return 0;
4073}
4074_ACEOF
4075rm -f conftest.$ac_objext conftest$ac_exeext
4076if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4077 (eval $ac_link) 2>&5
4078 ac_status=$?
4079 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4080 (exit $ac_status); } &&
4081 { ac_try='test -s conftest$ac_exeext'
4082 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4083 (eval $ac_try) 2>&5
4084 ac_status=$?
4085 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4086 (exit $ac_status); }; }; then
4087 ac_cv_lib_xnet_t_error=yes
4088else
4089 echo "$as_me: failed program was:" >&5
4090cat conftest.$ac_ext >&5
4091ac_cv_lib_xnet_t_error=no
4092fi
4093rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4094LIBS=$ac_check_lib_save_LIBS
4095fi
4096echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
4097echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
4098if test $ac_cv_lib_xnet_t_error = yes; then
4099 cat >>confdefs.h <<_ACEOF
4100@%:@define HAVE_LIBXNET 1
4101_ACEOF
4102
4103 LIBS="-lxnet $LIBS"
4104
4105else
4106 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
4107echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
4108 { (exit 1); exit 1; }; }
4109fi
4110
4111 ;;
4112*-*-irix5*)
4113 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4114 LDFLAGS="$LDFLAGS"
4115 PATH="$PATH:/usr/etc"
4116 cat >>confdefs.h <<\_ACEOF
4117@%:@define BROKEN_INET_NTOA 1
4118_ACEOF
4119
4120 cat >>confdefs.h <<\_ACEOF
4121@%:@define WITH_ABBREV_NO_TTY 1
4122_ACEOF
4123
4124 ;;
4125*-*-irix6*)
4126 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4127 LDFLAGS="$LDFLAGS"
4128 PATH="$PATH:/usr/etc"
4129 cat >>confdefs.h <<\_ACEOF
4130@%:@define WITH_IRIX_ARRAY 1
4131_ACEOF
4132
4133 cat >>confdefs.h <<\_ACEOF
4134@%:@define WITH_IRIX_PROJECT 1
4135_ACEOF
4136
4137 cat >>confdefs.h <<\_ACEOF
4138@%:@define WITH_IRIX_AUDIT 1
4139_ACEOF
4140
4141 echo "$as_me:$LINENO: checking for jlimit_startjob" >&5
4142echo $ECHO_N "checking for jlimit_startjob... $ECHO_C" >&6
4143if test "${ac_cv_func_jlimit_startjob+set}" = set; then
4144 echo $ECHO_N "(cached) $ECHO_C" >&6
4145else
4146 cat >conftest.$ac_ext <<_ACEOF
4147#line $LINENO "configure"
4148#include "confdefs.h"
4149/* System header to define __stub macros and hopefully few prototypes,
4150 which can conflict with char jlimit_startjob (); below. */
4151#include <assert.h>
4152/* Override any gcc2 internal prototype to avoid an error. */
4153#ifdef __cplusplus
4154extern "C"
4155#endif
4156/* We use char because int might match the return type of a gcc2
4157 builtin and then its argument prototype would still apply. */
4158char jlimit_startjob ();
4159char (*f) ();
4160
4161#ifdef F77_DUMMY_MAIN
4162# ifdef __cplusplus
4163 extern "C"
4164# endif
4165 int F77_DUMMY_MAIN() { return 1; }
4166#endif
4167int
4168main ()
4169{
4170/* The GNU C library defines this for functions which it implements
4171 to always fail with ENOSYS. Some functions are actually named
4172 something starting with __ and the normal name is an alias. */
4173#if defined (__stub_jlimit_startjob) || defined (__stub___jlimit_startjob)
4174choke me
4175#else
4176f = jlimit_startjob;
4177#endif
4178
4179 ;
4180 return 0;
4181}
4182_ACEOF
4183rm -f conftest.$ac_objext conftest$ac_exeext
4184if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4185 (eval $ac_link) 2>&5
4186 ac_status=$?
4187 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4188 (exit $ac_status); } &&
4189 { ac_try='test -s conftest$ac_exeext'
4190 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4191 (eval $ac_try) 2>&5
4192 ac_status=$?
4193 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4194 (exit $ac_status); }; }; then
4195 ac_cv_func_jlimit_startjob=yes
4196else
4197 echo "$as_me: failed program was:" >&5
4198cat conftest.$ac_ext >&5
4199ac_cv_func_jlimit_startjob=no
4200fi
4201rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4202fi
4203echo "$as_me:$LINENO: result: $ac_cv_func_jlimit_startjob" >&5
4204echo "${ECHO_T}$ac_cv_func_jlimit_startjob" >&6
4205if test $ac_cv_func_jlimit_startjob = yes; then
4206 cat >>confdefs.h <<\_ACEOF
4207@%:@define WITH_IRIX_JOBS 1
4208_ACEOF
4209
4210fi
4211
4212 cat >>confdefs.h <<\_ACEOF
4213@%:@define BROKEN_INET_NTOA 1
4214_ACEOF
4215
4216 cat >>confdefs.h <<\_ACEOF
4217@%:@define WITH_ABBREV_NO_TTY 1
4218_ACEOF
4219
4220 ;;
4221*-*-linux*)
4222 no_dev_ptmx=1
4223 check_for_libcrypt_later=1
4224 cat >>confdefs.h <<\_ACEOF
4225@%:@define DONT_TRY_OTHER_AF 1
4226_ACEOF
4227
4228 cat >>confdefs.h <<\_ACEOF
4229@%:@define PAM_TTY_KLUDGE 1
4230_ACEOF
4231
4232 cat >>confdefs.h <<\_ACEOF
4233@%:@define SETPROCTITLE_STRATEGY PS_USE_CLOBBER_ARGV
4234_ACEOF
4235
4236 cat >>confdefs.h <<\_ACEOF
4237@%:@define SETPROCTITLE_PS_PADDING '\0'
4238_ACEOF
4239
4240 inet6_default_4in6=yes
4241 ;;
4242mips-sony-bsd|mips-sony-newsos4)
4243 cat >>confdefs.h <<\_ACEOF
4244@%:@define HAVE_NEWS4 1
4245_ACEOF
4246
4247 SONY=1
4248 ;;
4249*-*-netbsd*)
4250 check_for_libcrypt_before=1
4251 need_dash_r=1
4252 ;;
4253*-*-freebsd*)
4254 check_for_libcrypt_later=1
4255 ;;
4256*-next-*)
4257 conf_lastlog_location="/usr/adm/lastlog"
4258 conf_utmp_location=/etc/utmp
4259 conf_wtmp_location=/usr/adm/wtmp
4260 MAIL=/usr/spool/mail
4261 cat >>confdefs.h <<\_ACEOF
4262@%:@define HAVE_NEXT 1
4263_ACEOF
4264
4265 cat >>confdefs.h <<\_ACEOF
4266@%:@define BROKEN_REALPATH 1
4267_ACEOF
4268
4269 cat >>confdefs.h <<\_ACEOF
4270@%:@define USE_PIPES 1
4271_ACEOF
4272
4273 cat >>confdefs.h <<\_ACEOF
4274@%:@define BROKEN_SAVED_UIDS 1
4275_ACEOF
4276
4277 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4278 CFLAGS="$CFLAGS"
4279 ;;
4280*-*-solaris*)
4281 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4282 LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
4283 need_dash_r=1
4284 cat >>confdefs.h <<\_ACEOF
4285@%:@define PAM_SUN_CODEBASE 1
4286_ACEOF
4287
4288 cat >>confdefs.h <<\_ACEOF
4289@%:@define LOGIN_NEEDS_UTMPX 1
4290_ACEOF
4291
4292 cat >>confdefs.h <<\_ACEOF
4293@%:@define LOGIN_NEEDS_TERM 1
4294_ACEOF
4295
4296 cat >>confdefs.h <<\_ACEOF
4297@%:@define PAM_TTY_KLUDGE 1
4298_ACEOF
4299
4300 cat >>confdefs.h <<\_ACEOF
4301@%:@define STREAMS_PUSH_ACQUIRES_CTTY 1
4302_ACEOF
4303
4304 # hardwire lastlog location (can't detect it on some versions)
4305 conf_lastlog_location="/var/adm/lastlog"
4306 echo "$as_me:$LINENO: checking for obsolete utmp and wtmp in solaris2.x" >&5
4307echo $ECHO_N "checking for obsolete utmp and wtmp in solaris2.x... $ECHO_C" >&6
4308 sol2ver=`echo "$host"| sed -e 's/.*[0-9]\.//'`
4309 if test "$sol2ver" -ge 8; then
4310 echo "$as_me:$LINENO: result: yes" >&5
4311echo "${ECHO_T}yes" >&6
4312 cat >>confdefs.h <<\_ACEOF
4313@%:@define DISABLE_UTMP 1
4314_ACEOF
4315
4316 cat >>confdefs.h <<\_ACEOF
4317@%:@define DISABLE_WTMP 1
4318_ACEOF
4319
4320 else
4321 echo "$as_me:$LINENO: result: no" >&5
4322echo "${ECHO_T}no" >&6
4323 fi
4324 ;;
4325*-*-sunos4*)
4326 CPPFLAGS="$CPPFLAGS -DSUNOS4"
4327
4328for ac_func in getpwanam
4329do
4330as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4331echo "$as_me:$LINENO: checking for $ac_func" >&5
4332echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4333if eval "test \"\${$as_ac_var+set}\" = set"; then
4334 echo $ECHO_N "(cached) $ECHO_C" >&6
4335else
4336 cat >conftest.$ac_ext <<_ACEOF
4337#line $LINENO "configure"
4338#include "confdefs.h"
4339/* System header to define __stub macros and hopefully few prototypes,
4340 which can conflict with char $ac_func (); below. */
4341#include <assert.h>
4342/* Override any gcc2 internal prototype to avoid an error. */
4343#ifdef __cplusplus
4344extern "C"
4345#endif
4346/* We use char because int might match the return type of a gcc2
4347 builtin and then its argument prototype would still apply. */
4348char $ac_func ();
4349char (*f) ();
4350
4351#ifdef F77_DUMMY_MAIN
4352# ifdef __cplusplus
4353 extern "C"
4354# endif
4355 int F77_DUMMY_MAIN() { return 1; }
4356#endif
4357int
4358main ()
4359{
4360/* The GNU C library defines this for functions which it implements
4361 to always fail with ENOSYS. Some functions are actually named
4362 something starting with __ and the normal name is an alias. */
4363#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4364choke me
4365#else
4366f = $ac_func;
4367#endif
4368
4369 ;
4370 return 0;
4371}
4372_ACEOF
4373rm -f conftest.$ac_objext conftest$ac_exeext
4374if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4375 (eval $ac_link) 2>&5
4376 ac_status=$?
4377 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4378 (exit $ac_status); } &&
4379 { ac_try='test -s conftest$ac_exeext'
4380 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4381 (eval $ac_try) 2>&5
4382 ac_status=$?
4383 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4384 (exit $ac_status); }; }; then
4385 eval "$as_ac_var=yes"
4386else
4387 echo "$as_me: failed program was:" >&5
4388cat conftest.$ac_ext >&5
4389eval "$as_ac_var=no"
4390fi
4391rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4392fi
4393echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4394echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4395if test `eval echo '${'$as_ac_var'}'` = yes; then
4396 cat >>confdefs.h <<_ACEOF
4397@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4398_ACEOF
4399
4400fi
4401done
4402
4403 cat >>confdefs.h <<\_ACEOF
4404@%:@define PAM_SUN_CODEBASE 1
4405_ACEOF
4406
4407 conf_utmp_location=/etc/utmp
4408 conf_wtmp_location=/var/adm/wtmp
4409 conf_lastlog_location=/var/adm/lastlog
4410 cat >>confdefs.h <<\_ACEOF
4411@%:@define USE_PIPES 1
4412_ACEOF
4413
4414 ;;
4415*-ncr-sysv*)
4416 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4417 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4418 LIBS="$LIBS -lc89"
4419 cat >>confdefs.h <<\_ACEOF
4420@%:@define USE_PIPES 1
4421_ACEOF
4422
4423 ;;
4424*-sni-sysv*)
4425 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4426 # /usr/ucblib MUST NOT be searched on ReliantUNIX
4427 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4428 IPADDR_IN_DISPLAY=yes
4429 cat >>confdefs.h <<\_ACEOF
4430@%:@define USE_PIPES 1
4431_ACEOF
4432
4433 cat >>confdefs.h <<\_ACEOF
4434@%:@define IP_TOS_IS_BROKEN 1
4435_ACEOF
4436
4437 # /usr/ucblib/libucb.a no longer needed on ReliantUNIX
4438 # Attention: always take care to bind libsocket and libnsl before libc,
4439 # otherwise you will find lots of "SIOCGPGRP errno 22" on syslog
4440 ;;
4441*-*-sysv4.2*)
4442 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4443 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4444 cat >>confdefs.h <<\_ACEOF
4445@%:@define USE_PIPES 1
4446_ACEOF
4447
4448 ;;
4449*-*-sysv5*)
4450 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4451 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4452 cat >>confdefs.h <<\_ACEOF
4453@%:@define USE_PIPES 1
4454_ACEOF
4455
4456 ;;
4457*-*-sysv*)
4458 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4459 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4460 ;;
4461*-*-sco3.2v4*)
4462 CPPFLAGS="$CPPFLAGS -Dftruncate=chsize -I/usr/local/include"
4463 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4464 LIBS="$LIBS -los -lprot -lx -ltinfo -lm"
4465 RANLIB=true
4466 no_dev_ptmx=1
4467 cat >>confdefs.h <<\_ACEOF
4468@%:@define BROKEN_SYS_TERMIO_H 1
4469_ACEOF
4470
4471 cat >>confdefs.h <<\_ACEOF
4472@%:@define USE_PIPES 1
4473_ACEOF
4474
4475 cat >>confdefs.h <<\_ACEOF
4476@%:@define HAVE_SECUREWARE 1
4477_ACEOF
4478
4479 cat >>confdefs.h <<\_ACEOF
4480@%:@define DISABLE_SHADOW 1
4481_ACEOF
4482
4483 cat >>confdefs.h <<\_ACEOF
4484@%:@define BROKEN_SAVED_UIDS 1
4485_ACEOF
4486
4487
4488
4489for ac_func in getluid setluid
4490do
4491as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4492echo "$as_me:$LINENO: checking for $ac_func" >&5
4493echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4494if eval "test \"\${$as_ac_var+set}\" = set"; then
4495 echo $ECHO_N "(cached) $ECHO_C" >&6
4496else
4497 cat >conftest.$ac_ext <<_ACEOF
4498#line $LINENO "configure"
4499#include "confdefs.h"
4500/* System header to define __stub macros and hopefully few prototypes,
4501 which can conflict with char $ac_func (); below. */
4502#include <assert.h>
4503/* Override any gcc2 internal prototype to avoid an error. */
4504#ifdef __cplusplus
4505extern "C"
4506#endif
4507/* We use char because int might match the return type of a gcc2
4508 builtin and then its argument prototype would still apply. */
4509char $ac_func ();
4510char (*f) ();
4511
4512#ifdef F77_DUMMY_MAIN
4513# ifdef __cplusplus
4514 extern "C"
4515# endif
4516 int F77_DUMMY_MAIN() { return 1; }
4517#endif
4518int
4519main ()
4520{
4521/* The GNU C library defines this for functions which it implements
4522 to always fail with ENOSYS. Some functions are actually named
4523 something starting with __ and the normal name is an alias. */
4524#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4525choke me
4526#else
4527f = $ac_func;
4528#endif
4529
4530 ;
4531 return 0;
4532}
4533_ACEOF
4534rm -f conftest.$ac_objext conftest$ac_exeext
4535if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4536 (eval $ac_link) 2>&5
4537 ac_status=$?
4538 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4539 (exit $ac_status); } &&
4540 { ac_try='test -s conftest$ac_exeext'
4541 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4542 (eval $ac_try) 2>&5
4543 ac_status=$?
4544 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4545 (exit $ac_status); }; }; then
4546 eval "$as_ac_var=yes"
4547else
4548 echo "$as_me: failed program was:" >&5
4549cat conftest.$ac_ext >&5
4550eval "$as_ac_var=no"
4551fi
4552rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4553fi
4554echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4555echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4556if test `eval echo '${'$as_ac_var'}'` = yes; then
4557 cat >>confdefs.h <<_ACEOF
4558@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4559_ACEOF
4560
4561fi
4562done
4563
4564 MANTYPE=man
4565 do_sco3_extra_lib_check=yes
4566 ;;
4567*-*-sco3.2v5*)
4568 if test -z "$GCC"; then
4569 CFLAGS="$CFLAGS -belf"
4570 fi
4571 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4572 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4573 LIBS="$LIBS -lprot -lx -ltinfo -lm"
4574 no_dev_ptmx=1
4575 cat >>confdefs.h <<\_ACEOF
4576@%:@define USE_PIPES 1
4577_ACEOF
4578
4579 cat >>confdefs.h <<\_ACEOF
4580@%:@define HAVE_SECUREWARE 1
4581_ACEOF
4582
4583 cat >>confdefs.h <<\_ACEOF
4584@%:@define DISABLE_SHADOW 1
4585_ACEOF
4586
4587 cat >>confdefs.h <<\_ACEOF
4588@%:@define DISABLE_FD_PASSING 1
4589_ACEOF
4590
4591
4592
4593for ac_func in getluid setluid
4594do
4595as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4596echo "$as_me:$LINENO: checking for $ac_func" >&5
4597echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4598if eval "test \"\${$as_ac_var+set}\" = set"; then
4599 echo $ECHO_N "(cached) $ECHO_C" >&6
4600else
4601 cat >conftest.$ac_ext <<_ACEOF
4602#line $LINENO "configure"
4603#include "confdefs.h"
4604/* System header to define __stub macros and hopefully few prototypes,
4605 which can conflict with char $ac_func (); below. */
4606#include <assert.h>
4607/* Override any gcc2 internal prototype to avoid an error. */
4608#ifdef __cplusplus
4609extern "C"
4610#endif
4611/* We use char because int might match the return type of a gcc2
4612 builtin and then its argument prototype would still apply. */
4613char $ac_func ();
4614char (*f) ();
4615
4616#ifdef F77_DUMMY_MAIN
4617# ifdef __cplusplus
4618 extern "C"
4619# endif
4620 int F77_DUMMY_MAIN() { return 1; }
4621#endif
4622int
4623main ()
4624{
4625/* The GNU C library defines this for functions which it implements
4626 to always fail with ENOSYS. Some functions are actually named
4627 something starting with __ and the normal name is an alias. */
4628#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4629choke me
4630#else
4631f = $ac_func;
4632#endif
4633
4634 ;
4635 return 0;
4636}
4637_ACEOF
4638rm -f conftest.$ac_objext conftest$ac_exeext
4639if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4640 (eval $ac_link) 2>&5
4641 ac_status=$?
4642 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4643 (exit $ac_status); } &&
4644 { ac_try='test -s conftest$ac_exeext'
4645 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4646 (eval $ac_try) 2>&5
4647 ac_status=$?
4648 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4649 (exit $ac_status); }; }; then
4650 eval "$as_ac_var=yes"
4651else
4652 echo "$as_me: failed program was:" >&5
4653cat conftest.$ac_ext >&5
4654eval "$as_ac_var=no"
4655fi
4656rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4657fi
4658echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4659echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4660if test `eval echo '${'$as_ac_var'}'` = yes; then
4661 cat >>confdefs.h <<_ACEOF
4662@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4663_ACEOF
4664
4665fi
4666done
4667
4668 MANTYPE=man
4669 ;;
4670*-*-unicosmk*)
4671 cat >>confdefs.h <<\_ACEOF
4672@%:@define USE_PIPES 1
4673_ACEOF
4674
4675 cat >>confdefs.h <<\_ACEOF
4676@%:@define DISABLE_FD_PASSING 1
4677_ACEOF
4678
4679 LDFLAGS="$LDFLAGS"
4680 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
4681 MANTYPE=cat
4682 ;;
4683*-*-unicos*)
4684 cat >>confdefs.h <<\_ACEOF
4685@%:@define USE_PIPES 1
4686_ACEOF
4687
4688 cat >>confdefs.h <<\_ACEOF
4689@%:@define DISABLE_FD_PASSING 1
4690_ACEOF
4691
4692 cat >>confdefs.h <<\_ACEOF
4693@%:@define NO_SSH_LASTLOG 1
4694_ACEOF
4695
4696 LDFLAGS="$LDFLAGS -Wl,-Dmsglevel=334:fatal"
4697 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
4698 MANTYPE=cat
4699 ;;
4700*-dec-osf*)
4701 echo "$as_me:$LINENO: checking for Digital Unix SIA" >&5
4702echo $ECHO_N "checking for Digital Unix SIA... $ECHO_C" >&6
4703 no_osfsia=""
4704
4705# Check whether --with-osfsia or --without-osfsia was given.
4706if test "${with_osfsia+set}" = set; then
4707 withval="$with_osfsia"
4708
4709 if test "x$withval" = "xno" ; then
4710 echo "$as_me:$LINENO: result: disabled" >&5
4711echo "${ECHO_T}disabled" >&6
4712 no_osfsia=1
4713 fi
4714
4715fi;
4716 if test -z "$no_osfsia" ; then
4717 if test -f /etc/sia/matrix.conf; then
4718 echo "$as_me:$LINENO: result: yes" >&5
4719echo "${ECHO_T}yes" >&6
4720 cat >>confdefs.h <<\_ACEOF
4721@%:@define HAVE_OSF_SIA 1
4722_ACEOF
4723
4724 cat >>confdefs.h <<\_ACEOF
4725@%:@define DISABLE_LOGIN 1
4726_ACEOF
4727
4728 cat >>confdefs.h <<\_ACEOF
4729@%:@define DISABLE_FD_PASSING 1
4730_ACEOF
4731
4732 LIBS="$LIBS -lsecurity -ldb -lm -laud"
4733 else
4734 echo "$as_me:$LINENO: result: no" >&5
4735echo "${ECHO_T}no" >&6
4736 fi
4737 fi
4738 cat >>confdefs.h <<\_ACEOF
4739@%:@define DISABLE_FD_PASSING 1
4740_ACEOF
4741
4742 ;;
4743
4744*-*-nto-qnx)
4745 cat >>confdefs.h <<\_ACEOF
4746@%:@define USE_PIPES 1
4747_ACEOF
4748
4749 cat >>confdefs.h <<\_ACEOF
4750@%:@define NO_X11_UNIX_SOCKETS 1
4751_ACEOF
4752
4753 cat >>confdefs.h <<\_ACEOF
4754@%:@define MISSING_NFDBITS 1
4755_ACEOF
4756
4757 cat >>confdefs.h <<\_ACEOF
4758@%:@define MISSING_HOWMANY 1
4759_ACEOF
4760
4761 cat >>confdefs.h <<\_ACEOF
4762@%:@define MISSING_FD_MASK 1
4763_ACEOF
4764
4765 ;;
4766esac
4767
4768# Allow user to specify flags
4769
4770# Check whether --with-cflags or --without-cflags was given.
4771if test "${with_cflags+set}" = set; then
4772 withval="$with_cflags"
4773
4774 if test "x$withval" != "xno" ; then
4775 CFLAGS="$CFLAGS $withval"
4776 fi
4777
4778
4779fi;
4780
4781# Check whether --with-cppflags or --without-cppflags was given.
4782if test "${with_cppflags+set}" = set; then
4783 withval="$with_cppflags"
4784
4785 if test "x$withval" != "xno"; then
4786 CPPFLAGS="$CPPFLAGS $withval"
4787 fi
4788
4789
4790fi;
4791
4792# Check whether --with-ldflags or --without-ldflags was given.
4793if test "${with_ldflags+set}" = set; then
4794 withval="$with_ldflags"
4795
4796 if test "x$withval" != "xno" ; then
4797 LDFLAGS="$LDFLAGS $withval"
4798 fi
4799
4800
4801fi;
4802
4803# Check whether --with-libs or --without-libs was given.
4804if test "${with_libs+set}" = set; then
4805 withval="$with_libs"
4806
4807 if test "x$withval" != "xno" ; then
4808 LIBS="$LIBS $withval"
4809 fi
4810
4811
4812fi;
4813
4814# Checks for header files.
4815
4816echo "$as_me:$LINENO: checking for ANSI C header files" >&5
4817echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
4818if test "${ac_cv_header_stdc+set}" = set; then
4819 echo $ECHO_N "(cached) $ECHO_C" >&6
4820else
4821 cat >conftest.$ac_ext <<_ACEOF
4822#line $LINENO "configure"
4823#include "confdefs.h"
4824#include <stdlib.h>
4825#include <stdarg.h>
4826#include <string.h>
4827#include <float.h>
4828
4829_ACEOF
4830if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4831 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4832 ac_status=$?
4833 egrep -v '^ *\+' conftest.er1 >conftest.err
4834 rm -f conftest.er1
4835 cat conftest.err >&5
4836 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4837 (exit $ac_status); } >/dev/null; then
4838 if test -s conftest.err; then
4839 ac_cpp_err=$ac_c_preproc_warn_flag
4840 else
4841 ac_cpp_err=
4842 fi
4843else
4844 ac_cpp_err=yes
4845fi
4846if test -z "$ac_cpp_err"; then
4847 ac_cv_header_stdc=yes
4848else
4849 echo "$as_me: failed program was:" >&5
4850 cat conftest.$ac_ext >&5
4851 ac_cv_header_stdc=no
4852fi
4853rm -f conftest.err conftest.$ac_ext
4854
4855if test $ac_cv_header_stdc = yes; then
4856 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
4857 cat >conftest.$ac_ext <<_ACEOF
4858#line $LINENO "configure"
4859#include "confdefs.h"
4860#include <string.h>
4861
4862_ACEOF
4863if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
4864 egrep "memchr" >/dev/null 2>&1; then
4865 :
4866else
4867 ac_cv_header_stdc=no
4868fi
4869rm -f conftest*
4870
4871fi
4872
4873if test $ac_cv_header_stdc = yes; then
4874 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
4875 cat >conftest.$ac_ext <<_ACEOF
4876#line $LINENO "configure"
4877#include "confdefs.h"
4878#include <stdlib.h>
4879
4880_ACEOF
4881if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
4882 egrep "free" >/dev/null 2>&1; then
4883 :
4884else
4885 ac_cv_header_stdc=no
4886fi
4887rm -f conftest*
4888
4889fi
4890
4891if test $ac_cv_header_stdc = yes; then
4892 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
4893 if test "$cross_compiling" = yes; then
4894 :
4895else
4896 cat >conftest.$ac_ext <<_ACEOF
4897#line $LINENO "configure"
4898#include "confdefs.h"
4899#include <ctype.h>
4900#if ((' ' & 0x0FF) == 0x020)
4901# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
4902# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
4903#else
4904# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
4905 || ('j' <= (c) && (c) <= 'r') \
4906 || ('s' <= (c) && (c) <= 'z'))
4907# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
4908#endif
4909
4910#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
4911int
4912main ()
4913{
4914 int i;
4915 for (i = 0; i < 256; i++)
4916 if (XOR (islower (i), ISLOWER (i))
4917 || toupper (i) != TOUPPER (i))
4918 exit(2);
4919 exit (0);
4920}
4921_ACEOF
4922rm -f conftest$ac_exeext
4923if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4924 (eval $ac_link) 2>&5
4925 ac_status=$?
4926 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4927 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
4928 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4929 (eval $ac_try) 2>&5
4930 ac_status=$?
4931 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4932 (exit $ac_status); }; }; then
4933 :
4934else
4935 echo "$as_me: program exited with status $ac_status" >&5
4936echo "$as_me: failed program was:" >&5
4937cat conftest.$ac_ext >&5
4938( exit $ac_status )
4939ac_cv_header_stdc=no
4940fi
4941rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
4942fi
4943fi
4944fi
4945echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
4946echo "${ECHO_T}$ac_cv_header_stdc" >&6
4947if test $ac_cv_header_stdc = yes; then
4948
4949cat >>confdefs.h <<\_ACEOF
4950@%:@define STDC_HEADERS 1
4951_ACEOF
4952
4953fi
4954
4955# On IRIX 5.3, sys/types and inttypes.h are conflicting.
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
4966 inttypes.h stdint.h unistd.h
4967do
4968as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
4969echo "$as_me:$LINENO: checking for $ac_header" >&5
4970echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
4971if eval "test \"\${$as_ac_Header+set}\" = set"; then
4972 echo $ECHO_N "(cached) $ECHO_C" >&6
4973else
4974 cat >conftest.$ac_ext <<_ACEOF
4975#line $LINENO "configure"
4976#include "confdefs.h"
4977$ac_includes_default
4978
4979@%:@include <$ac_header>
4980_ACEOF
4981rm -f conftest.$ac_objext
4982if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4983 (eval $ac_compile) 2>&5
4984 ac_status=$?
4985 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4986 (exit $ac_status); } &&
4987 { ac_try='test -s conftest.$ac_objext'
4988 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4989 (eval $ac_try) 2>&5
4990 ac_status=$?
4991 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4992 (exit $ac_status); }; }; then
4993 eval "$as_ac_Header=yes"
4994else
4995 echo "$as_me: failed program was:" >&5
4996cat conftest.$ac_ext >&5
4997eval "$as_ac_Header=no"
4998fi
4999rm -f conftest.$ac_objext conftest.$ac_ext
5000fi
5001echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5002echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5003if test `eval echo '${'$as_ac_Header'}'` = yes; then
5004 cat >>confdefs.h <<_ACEOF
5005@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
5006_ACEOF
5007
5008fi
5009
5010done
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058for ac_header in bstring.h crypt.h endian.h floatingpoint.h \
5059 getopt.h glob.h ia.h lastlog.h libgen.h limits.h login.h \
5060 login_cap.h maillock.h netdb.h netgroup.h \
5061 netinet/in_systm.h paths.h pty.h readpassphrase.h \
5062 rpc/types.h security/pam_appl.h shadow.h stddef.h stdint.h \
5063 strings.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h \
5064 sys/mman.h sys/pstat.h sys/select.h sys/stat.h \
5065 sys/stropts.h sys/sysmacros.h sys/time.h sys/timers.h \
5066 sys/un.h time.h tmpdir.h ttyent.h usersec.h \
5067 util.h utime.h utmp.h utmpx.h
5068do
5069as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
5070if eval "test \"\${$as_ac_Header+set}\" = set"; then
5071 echo "$as_me:$LINENO: checking for $ac_header" >&5
5072echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5073if eval "test \"\${$as_ac_Header+set}\" = set"; then
5074 echo $ECHO_N "(cached) $ECHO_C" >&6
5075fi
5076echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5077echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5078else
5079 # Is the header compilable?
5080echo "$as_me:$LINENO: checking $ac_header usability" >&5
5081echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5082cat >conftest.$ac_ext <<_ACEOF
5083#line $LINENO "configure"
5084#include "confdefs.h"
5085$ac_includes_default
5086@%:@include <$ac_header>
5087_ACEOF
5088rm -f conftest.$ac_objext
5089if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5090 (eval $ac_compile) 2>&5
5091 ac_status=$?
5092 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5093 (exit $ac_status); } &&
5094 { ac_try='test -s conftest.$ac_objext'
5095 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5096 (eval $ac_try) 2>&5
5097 ac_status=$?
5098 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5099 (exit $ac_status); }; }; then
5100 ac_header_compiler=yes
5101else
5102 echo "$as_me: failed program was:" >&5
5103cat conftest.$ac_ext >&5
5104ac_header_compiler=no
5105fi
5106rm -f conftest.$ac_objext conftest.$ac_ext
5107echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5108echo "${ECHO_T}$ac_header_compiler" >&6
5109
5110# Is the header present?
5111echo "$as_me:$LINENO: checking $ac_header presence" >&5
5112echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5113cat >conftest.$ac_ext <<_ACEOF
5114#line $LINENO "configure"
5115#include "confdefs.h"
5116@%:@include <$ac_header>
5117_ACEOF
5118if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
5119 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
5120 ac_status=$?
5121 egrep -v '^ *\+' conftest.er1 >conftest.err
5122 rm -f conftest.er1
5123 cat conftest.err >&5
5124 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5125 (exit $ac_status); } >/dev/null; then
5126 if test -s conftest.err; then
5127 ac_cpp_err=$ac_c_preproc_warn_flag
5128 else
5129 ac_cpp_err=
5130 fi
5131else
5132 ac_cpp_err=yes
5133fi
5134if test -z "$ac_cpp_err"; then
5135 ac_header_preproc=yes
5136else
5137 echo "$as_me: failed program was:" >&5
5138 cat conftest.$ac_ext >&5
5139 ac_header_preproc=no
5140fi
5141rm -f conftest.err conftest.$ac_ext
5142echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
5143echo "${ECHO_T}$ac_header_preproc" >&6
5144
5145# So? What about this header?
5146case $ac_header_compiler:$ac_header_preproc in
5147 yes:no )
5148 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5149echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5150 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5151echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
5152 no:yes )
5153 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5154echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5155 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5156echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5157 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5158echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
5159esac
5160echo "$as_me:$LINENO: checking for $ac_header" >&5
5161echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5162if eval "test \"\${$as_ac_Header+set}\" = set"; then
5163 echo $ECHO_N "(cached) $ECHO_C" >&6
5164else
5165 eval "$as_ac_Header=$ac_header_preproc"
5166fi
5167echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5168echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5169
5170fi
5171if test `eval echo '${'$as_ac_Header'}'` = yes; then
5172 cat >>confdefs.h <<_ACEOF
5173@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
5174_ACEOF
5175
5176fi
5177
5178done
5179
5180
5181# Checks for libraries.
5182echo "$as_me:$LINENO: checking for yp_match" >&5
5183echo $ECHO_N "checking for yp_match... $ECHO_C" >&6
5184if test "${ac_cv_func_yp_match+set}" = set; then
5185 echo $ECHO_N "(cached) $ECHO_C" >&6
5186else
5187 cat >conftest.$ac_ext <<_ACEOF
5188#line $LINENO "configure"
5189#include "confdefs.h"
5190/* System header to define __stub macros and hopefully few prototypes,
5191 which can conflict with char yp_match (); below. */
5192#include <assert.h>
5193/* Override any gcc2 internal prototype to avoid an error. */
5194#ifdef __cplusplus
5195extern "C"
5196#endif
5197/* We use char because int might match the return type of a gcc2
5198 builtin and then its argument prototype would still apply. */
5199char yp_match ();
5200char (*f) ();
5201
5202#ifdef F77_DUMMY_MAIN
5203# ifdef __cplusplus
5204 extern "C"
5205# endif
5206 int F77_DUMMY_MAIN() { return 1; }
5207#endif
5208int
5209main ()
5210{
5211/* The GNU C library defines this for functions which it implements
5212 to always fail with ENOSYS. Some functions are actually named
5213 something starting with __ and the normal name is an alias. */
5214#if defined (__stub_yp_match) || defined (__stub___yp_match)
5215choke me
5216#else
5217f = yp_match;
5218#endif
5219
5220 ;
5221 return 0;
5222}
5223_ACEOF
5224rm -f conftest.$ac_objext conftest$ac_exeext
5225if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5226 (eval $ac_link) 2>&5
5227 ac_status=$?
5228 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5229 (exit $ac_status); } &&
5230 { ac_try='test -s conftest$ac_exeext'
5231 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5232 (eval $ac_try) 2>&5
5233 ac_status=$?
5234 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5235 (exit $ac_status); }; }; then
5236 ac_cv_func_yp_match=yes
5237else
5238 echo "$as_me: failed program was:" >&5
5239cat conftest.$ac_ext >&5
5240ac_cv_func_yp_match=no
5241fi
5242rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5243fi
5244echo "$as_me:$LINENO: result: $ac_cv_func_yp_match" >&5
5245echo "${ECHO_T}$ac_cv_func_yp_match" >&6
5246if test $ac_cv_func_yp_match = yes; then
5247 :
5248else
5249
5250echo "$as_me:$LINENO: checking for yp_match in -lnsl" >&5
5251echo $ECHO_N "checking for yp_match in -lnsl... $ECHO_C" >&6
5252if test "${ac_cv_lib_nsl_yp_match+set}" = set; then
5253 echo $ECHO_N "(cached) $ECHO_C" >&6
5254else
5255 ac_check_lib_save_LIBS=$LIBS
5256LIBS="-lnsl $LIBS"
5257cat >conftest.$ac_ext <<_ACEOF
5258#line $LINENO "configure"
5259#include "confdefs.h"
5260
5261/* Override any gcc2 internal prototype to avoid an error. */
5262#ifdef __cplusplus
5263extern "C"
5264#endif
5265/* We use char because int might match the return type of a gcc2
5266 builtin and then its argument prototype would still apply. */
5267char yp_match ();
5268#ifdef F77_DUMMY_MAIN
5269# ifdef __cplusplus
5270 extern "C"
5271# endif
5272 int F77_DUMMY_MAIN() { return 1; }
5273#endif
5274int
5275main ()
5276{
5277yp_match ();
5278 ;
5279 return 0;
5280}
5281_ACEOF
5282rm -f conftest.$ac_objext conftest$ac_exeext
5283if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5284 (eval $ac_link) 2>&5
5285 ac_status=$?
5286 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5287 (exit $ac_status); } &&
5288 { ac_try='test -s conftest$ac_exeext'
5289 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5290 (eval $ac_try) 2>&5
5291 ac_status=$?
5292 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5293 (exit $ac_status); }; }; then
5294 ac_cv_lib_nsl_yp_match=yes
5295else
5296 echo "$as_me: failed program was:" >&5
5297cat conftest.$ac_ext >&5
5298ac_cv_lib_nsl_yp_match=no
5299fi
5300rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5301LIBS=$ac_check_lib_save_LIBS
5302fi
5303echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_yp_match" >&5
5304echo "${ECHO_T}$ac_cv_lib_nsl_yp_match" >&6
5305if test $ac_cv_lib_nsl_yp_match = yes; then
5306 cat >>confdefs.h <<_ACEOF
5307@%:@define HAVE_LIBNSL 1
5308_ACEOF
5309
5310 LIBS="-lnsl $LIBS"
5311
5312fi
5313
5314fi
5315
5316echo "$as_me:$LINENO: checking for setsockopt" >&5
5317echo $ECHO_N "checking for setsockopt... $ECHO_C" >&6
5318if test "${ac_cv_func_setsockopt+set}" = set; then
5319 echo $ECHO_N "(cached) $ECHO_C" >&6
5320else
5321 cat >conftest.$ac_ext <<_ACEOF
5322#line $LINENO "configure"
5323#include "confdefs.h"
5324/* System header to define __stub macros and hopefully few prototypes,
5325 which can conflict with char setsockopt (); below. */
5326#include <assert.h>
5327/* Override any gcc2 internal prototype to avoid an error. */
5328#ifdef __cplusplus
5329extern "C"
5330#endif
5331/* We use char because int might match the return type of a gcc2
5332 builtin and then its argument prototype would still apply. */
5333char setsockopt ();
5334char (*f) ();
5335
5336#ifdef F77_DUMMY_MAIN
5337# ifdef __cplusplus
5338 extern "C"
5339# endif
5340 int F77_DUMMY_MAIN() { return 1; }
5341#endif
5342int
5343main ()
5344{
5345/* The GNU C library defines this for functions which it implements
5346 to always fail with ENOSYS. Some functions are actually named
5347 something starting with __ and the normal name is an alias. */
5348#if defined (__stub_setsockopt) || defined (__stub___setsockopt)
5349choke me
5350#else
5351f = setsockopt;
5352#endif
5353
5354 ;
5355 return 0;
5356}
5357_ACEOF
5358rm -f conftest.$ac_objext conftest$ac_exeext
5359if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5360 (eval $ac_link) 2>&5
5361 ac_status=$?
5362 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5363 (exit $ac_status); } &&
5364 { ac_try='test -s conftest$ac_exeext'
5365 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5366 (eval $ac_try) 2>&5
5367 ac_status=$?
5368 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5369 (exit $ac_status); }; }; then
5370 ac_cv_func_setsockopt=yes
5371else
5372 echo "$as_me: failed program was:" >&5
5373cat conftest.$ac_ext >&5
5374ac_cv_func_setsockopt=no
5375fi
5376rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5377fi
5378echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5
5379echo "${ECHO_T}$ac_cv_func_setsockopt" >&6
5380if test $ac_cv_func_setsockopt = yes; then
5381 :
5382else
5383
5384echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5
5385echo $ECHO_N "checking for setsockopt in -lsocket... $ECHO_C" >&6
5386if test "${ac_cv_lib_socket_setsockopt+set}" = set; then
5387 echo $ECHO_N "(cached) $ECHO_C" >&6
5388else
5389 ac_check_lib_save_LIBS=$LIBS
5390LIBS="-lsocket $LIBS"
5391cat >conftest.$ac_ext <<_ACEOF
5392#line $LINENO "configure"
5393#include "confdefs.h"
5394
5395/* Override any gcc2 internal prototype to avoid an error. */
5396#ifdef __cplusplus
5397extern "C"
5398#endif
5399/* We use char because int might match the return type of a gcc2
5400 builtin and then its argument prototype would still apply. */
5401char setsockopt ();
5402#ifdef F77_DUMMY_MAIN
5403# ifdef __cplusplus
5404 extern "C"
5405# endif
5406 int F77_DUMMY_MAIN() { return 1; }
5407#endif
5408int
5409main ()
5410{
5411setsockopt ();
5412 ;
5413 return 0;
5414}
5415_ACEOF
5416rm -f conftest.$ac_objext conftest$ac_exeext
5417if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5418 (eval $ac_link) 2>&5
5419 ac_status=$?
5420 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5421 (exit $ac_status); } &&
5422 { ac_try='test -s conftest$ac_exeext'
5423 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5424 (eval $ac_try) 2>&5
5425 ac_status=$?
5426 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5427 (exit $ac_status); }; }; then
5428 ac_cv_lib_socket_setsockopt=yes
5429else
5430 echo "$as_me: failed program was:" >&5
5431cat conftest.$ac_ext >&5
5432ac_cv_lib_socket_setsockopt=no
5433fi
5434rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5435LIBS=$ac_check_lib_save_LIBS
5436fi
5437echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5
5438echo "${ECHO_T}$ac_cv_lib_socket_setsockopt" >&6
5439if test $ac_cv_lib_socket_setsockopt = yes; then
5440 cat >>confdefs.h <<_ACEOF
5441@%:@define HAVE_LIBSOCKET 1
5442_ACEOF
5443
5444 LIBS="-lsocket $LIBS"
5445
5446fi
5447
5448fi
5449
5450
5451if test "x$with_tcp_wrappers" != "xno" ; then
5452 if test "x$do_sco3_extra_lib_check" = "xyes" ; then
5453 echo "$as_me:$LINENO: checking for innetgr in -lrpc" >&5
5454echo $ECHO_N "checking for innetgr in -lrpc... $ECHO_C" >&6
5455if test "${ac_cv_lib_rpc_innetgr+set}" = set; then
5456 echo $ECHO_N "(cached) $ECHO_C" >&6
5457else
5458 ac_check_lib_save_LIBS=$LIBS
5459LIBS="-lrpc -lyp -lrpc $LIBS"
5460cat >conftest.$ac_ext <<_ACEOF
5461#line $LINENO "configure"
5462#include "confdefs.h"
5463
5464/* Override any gcc2 internal prototype to avoid an error. */
5465#ifdef __cplusplus
5466extern "C"
5467#endif
5468/* We use char because int might match the return type of a gcc2
5469 builtin and then its argument prototype would still apply. */
5470char innetgr ();
5471#ifdef F77_DUMMY_MAIN
5472# ifdef __cplusplus
5473 extern "C"
5474# endif
5475 int F77_DUMMY_MAIN() { return 1; }
5476#endif
5477int
5478main ()
5479{
5480innetgr ();
5481 ;
5482 return 0;
5483}
5484_ACEOF
5485rm -f conftest.$ac_objext conftest$ac_exeext
5486if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5487 (eval $ac_link) 2>&5
5488 ac_status=$?
5489 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5490 (exit $ac_status); } &&
5491 { ac_try='test -s conftest$ac_exeext'
5492 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5493 (eval $ac_try) 2>&5
5494 ac_status=$?
5495 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5496 (exit $ac_status); }; }; then
5497 ac_cv_lib_rpc_innetgr=yes
5498else
5499 echo "$as_me: failed program was:" >&5
5500cat conftest.$ac_ext >&5
5501ac_cv_lib_rpc_innetgr=no
5502fi
5503rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5504LIBS=$ac_check_lib_save_LIBS
5505fi
5506echo "$as_me:$LINENO: result: $ac_cv_lib_rpc_innetgr" >&5
5507echo "${ECHO_T}$ac_cv_lib_rpc_innetgr" >&6
5508if test $ac_cv_lib_rpc_innetgr = yes; then
5509 LIBS="-lrpc -lyp -lrpc $LIBS"
5510fi
5511
5512 fi
5513fi
5514
5515echo "$as_me:$LINENO: checking for getspnam" >&5
5516echo $ECHO_N "checking for getspnam... $ECHO_C" >&6
5517if test "${ac_cv_func_getspnam+set}" = set; then
5518 echo $ECHO_N "(cached) $ECHO_C" >&6
5519else
5520 cat >conftest.$ac_ext <<_ACEOF
5521#line $LINENO "configure"
5522#include "confdefs.h"
5523/* System header to define __stub macros and hopefully few prototypes,
5524 which can conflict with char getspnam (); below. */
5525#include <assert.h>
5526/* Override any gcc2 internal prototype to avoid an error. */
5527#ifdef __cplusplus
5528extern "C"
5529#endif
5530/* We use char because int might match the return type of a gcc2
5531 builtin and then its argument prototype would still apply. */
5532char getspnam ();
5533char (*f) ();
5534
5535#ifdef F77_DUMMY_MAIN
5536# ifdef __cplusplus
5537 extern "C"
5538# endif
5539 int F77_DUMMY_MAIN() { return 1; }
5540#endif
5541int
5542main ()
5543{
5544/* The GNU C library defines this for functions which it implements
5545 to always fail with ENOSYS. Some functions are actually named
5546 something starting with __ and the normal name is an alias. */
5547#if defined (__stub_getspnam) || defined (__stub___getspnam)
5548choke me
5549#else
5550f = getspnam;
5551#endif
5552
5553 ;
5554 return 0;
5555}
5556_ACEOF
5557rm -f conftest.$ac_objext conftest$ac_exeext
5558if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5559 (eval $ac_link) 2>&5
5560 ac_status=$?
5561 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5562 (exit $ac_status); } &&
5563 { ac_try='test -s conftest$ac_exeext'
5564 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5565 (eval $ac_try) 2>&5
5566 ac_status=$?
5567 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5568 (exit $ac_status); }; }; then
5569 ac_cv_func_getspnam=yes
5570else
5571 echo "$as_me: failed program was:" >&5
5572cat conftest.$ac_ext >&5
5573ac_cv_func_getspnam=no
5574fi
5575rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5576fi
5577echo "$as_me:$LINENO: result: $ac_cv_func_getspnam" >&5
5578echo "${ECHO_T}$ac_cv_func_getspnam" >&6
5579if test $ac_cv_func_getspnam = yes; then
5580 :
5581else
5582 echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5
5583echo $ECHO_N "checking for getspnam in -lgen... $ECHO_C" >&6
5584if test "${ac_cv_lib_gen_getspnam+set}" = set; then
5585 echo $ECHO_N "(cached) $ECHO_C" >&6
5586else
5587 ac_check_lib_save_LIBS=$LIBS
5588LIBS="-lgen $LIBS"
5589cat >conftest.$ac_ext <<_ACEOF
5590#line $LINENO "configure"
5591#include "confdefs.h"
5592
5593/* Override any gcc2 internal prototype to avoid an error. */
5594#ifdef __cplusplus
5595extern "C"
5596#endif
5597/* We use char because int might match the return type of a gcc2
5598 builtin and then its argument prototype would still apply. */
5599char getspnam ();
5600#ifdef F77_DUMMY_MAIN
5601# ifdef __cplusplus
5602 extern "C"
5603# endif
5604 int F77_DUMMY_MAIN() { return 1; }
5605#endif
5606int
5607main ()
5608{
5609getspnam ();
5610 ;
5611 return 0;
5612}
5613_ACEOF
5614rm -f conftest.$ac_objext conftest$ac_exeext
5615if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5616 (eval $ac_link) 2>&5
5617 ac_status=$?
5618 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5619 (exit $ac_status); } &&
5620 { ac_try='test -s conftest$ac_exeext'
5621 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5622 (eval $ac_try) 2>&5
5623 ac_status=$?
5624 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5625 (exit $ac_status); }; }; then
5626 ac_cv_lib_gen_getspnam=yes
5627else
5628 echo "$as_me: failed program was:" >&5
5629cat conftest.$ac_ext >&5
5630ac_cv_lib_gen_getspnam=no
5631fi
5632rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5633LIBS=$ac_check_lib_save_LIBS
5634fi
5635echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5
5636echo "${ECHO_T}$ac_cv_lib_gen_getspnam" >&6
5637if test $ac_cv_lib_gen_getspnam = yes; then
5638 LIBS="$LIBS -lgen"
5639fi
5640
5641fi
5642
5643
5644
5645# Check whether --with-rpath or --without-rpath was given.
5646if test "${with_rpath+set}" = set; then
5647 withval="$with_rpath"
5648
5649 if test "x$withval" = "xno" ; then
5650 need_dash_r=""
5651 fi
5652 if test "x$withval" = "xyes" ; then
5653 need_dash_r=1
5654 fi
5655
5656
5657fi;
5658
5659
5660# Check whether --with-zlib or --without-zlib was given.
5661if test "${with_zlib+set}" = set; then
5662 withval="$with_zlib"
5663
5664 if test "x$withval" = "xno" ; then
5665 { { echo "$as_me:$LINENO: error: *** zlib is required ***" >&5
5666echo "$as_me: error: *** zlib is required ***" >&2;}
5667 { (exit 1); exit 1; }; }
5668 fi
5669 if test -d "$withval/lib"; then
5670 if test -n "${need_dash_r}"; then
5671 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
5672 else
5673 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
5674 fi
5675 else
5676 if test -n "${need_dash_r}"; then
5677 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
5678 else
5679 LDFLAGS="-L${withval} ${LDFLAGS}"
5680 fi
5681 fi
5682 if test -d "$withval/include"; then
5683 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
5684 else
5685 CPPFLAGS="-I${withval} ${CPPFLAGS}"
5686 fi
5687
5688
5689fi;
5690
5691
5692echo "$as_me:$LINENO: checking for deflate in -lz" >&5
5693echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6
5694if test "${ac_cv_lib_z_deflate+set}" = set; then
5695 echo $ECHO_N "(cached) $ECHO_C" >&6
5696else
5697 ac_check_lib_save_LIBS=$LIBS
5698LIBS="-lz $LIBS"
5699cat >conftest.$ac_ext <<_ACEOF
5700#line $LINENO "configure"
5701#include "confdefs.h"
5702
5703/* Override any gcc2 internal prototype to avoid an error. */
5704#ifdef __cplusplus
5705extern "C"
5706#endif
5707/* We use char because int might match the return type of a gcc2
5708 builtin and then its argument prototype would still apply. */
5709char deflate ();
5710#ifdef F77_DUMMY_MAIN
5711# ifdef __cplusplus
5712 extern "C"
5713# endif
5714 int F77_DUMMY_MAIN() { return 1; }
5715#endif
5716int
5717main ()
5718{
5719deflate ();
5720 ;
5721 return 0;
5722}
5723_ACEOF
5724rm -f conftest.$ac_objext conftest$ac_exeext
5725if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5726 (eval $ac_link) 2>&5
5727 ac_status=$?
5728 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5729 (exit $ac_status); } &&
5730 { ac_try='test -s conftest$ac_exeext'
5731 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5732 (eval $ac_try) 2>&5
5733 ac_status=$?
5734 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5735 (exit $ac_status); }; }; then
5736 ac_cv_lib_z_deflate=yes
5737else
5738 echo "$as_me: failed program was:" >&5
5739cat conftest.$ac_ext >&5
5740ac_cv_lib_z_deflate=no
5741fi
5742rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5743LIBS=$ac_check_lib_save_LIBS
5744fi
5745echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5
5746echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6
5747if test $ac_cv_lib_z_deflate = yes; then
5748 cat >>confdefs.h <<_ACEOF
5749@%:@define HAVE_LIBZ 1
5750_ACEOF
5751
5752 LIBS="-lz $LIBS"
5753
5754else
5755 { { echo "$as_me:$LINENO: error: *** zlib missing - please install first or check config.log ***" >&5
5756echo "$as_me: error: *** zlib missing - please install first or check config.log ***" >&2;}
5757 { (exit 1); exit 1; }; }
5758fi
5759
5760
5761echo "$as_me:$LINENO: checking for strcasecmp" >&5
5762echo $ECHO_N "checking for strcasecmp... $ECHO_C" >&6
5763if test "${ac_cv_func_strcasecmp+set}" = set; then
5764 echo $ECHO_N "(cached) $ECHO_C" >&6
5765else
5766 cat >conftest.$ac_ext <<_ACEOF
5767#line $LINENO "configure"
5768#include "confdefs.h"
5769/* System header to define __stub macros and hopefully few prototypes,
5770 which can conflict with char strcasecmp (); below. */
5771#include <assert.h>
5772/* Override any gcc2 internal prototype to avoid an error. */
5773#ifdef __cplusplus
5774extern "C"
5775#endif
5776/* We use char because int might match the return type of a gcc2
5777 builtin and then its argument prototype would still apply. */
5778char strcasecmp ();
5779char (*f) ();
5780
5781#ifdef F77_DUMMY_MAIN
5782# ifdef __cplusplus
5783 extern "C"
5784# endif
5785 int F77_DUMMY_MAIN() { return 1; }
5786#endif
5787int
5788main ()
5789{
5790/* The GNU C library defines this for functions which it implements
5791 to always fail with ENOSYS. Some functions are actually named
5792 something starting with __ and the normal name is an alias. */
5793#if defined (__stub_strcasecmp) || defined (__stub___strcasecmp)
5794choke me
5795#else
5796f = strcasecmp;
5797#endif
5798
5799 ;
5800 return 0;
5801}
5802_ACEOF
5803rm -f conftest.$ac_objext conftest$ac_exeext
5804if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5805 (eval $ac_link) 2>&5
5806 ac_status=$?
5807 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5808 (exit $ac_status); } &&
5809 { ac_try='test -s conftest$ac_exeext'
5810 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5811 (eval $ac_try) 2>&5
5812 ac_status=$?
5813 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5814 (exit $ac_status); }; }; then
5815 ac_cv_func_strcasecmp=yes
5816else
5817 echo "$as_me: failed program was:" >&5
5818cat conftest.$ac_ext >&5
5819ac_cv_func_strcasecmp=no
5820fi
5821rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5822fi
5823echo "$as_me:$LINENO: result: $ac_cv_func_strcasecmp" >&5
5824echo "${ECHO_T}$ac_cv_func_strcasecmp" >&6
5825if test $ac_cv_func_strcasecmp = yes; then
5826 :
5827else
5828 echo "$as_me:$LINENO: checking for strcasecmp in -lresolv" >&5
5829echo $ECHO_N "checking for strcasecmp in -lresolv... $ECHO_C" >&6
5830if test "${ac_cv_lib_resolv_strcasecmp+set}" = set; then
5831 echo $ECHO_N "(cached) $ECHO_C" >&6
5832else
5833 ac_check_lib_save_LIBS=$LIBS
5834LIBS="-lresolv $LIBS"
5835cat >conftest.$ac_ext <<_ACEOF
5836#line $LINENO "configure"
5837#include "confdefs.h"
5838
5839/* Override any gcc2 internal prototype to avoid an error. */
5840#ifdef __cplusplus
5841extern "C"
5842#endif
5843/* We use char because int might match the return type of a gcc2
5844 builtin and then its argument prototype would still apply. */
5845char strcasecmp ();
5846#ifdef F77_DUMMY_MAIN
5847# ifdef __cplusplus
5848 extern "C"
5849# endif
5850 int F77_DUMMY_MAIN() { return 1; }
5851#endif
5852int
5853main ()
5854{
5855strcasecmp ();
5856 ;
5857 return 0;
5858}
5859_ACEOF
5860rm -f conftest.$ac_objext conftest$ac_exeext
5861if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5862 (eval $ac_link) 2>&5
5863 ac_status=$?
5864 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5865 (exit $ac_status); } &&
5866 { ac_try='test -s conftest$ac_exeext'
5867 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5868 (eval $ac_try) 2>&5
5869 ac_status=$?
5870 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5871 (exit $ac_status); }; }; then
5872 ac_cv_lib_resolv_strcasecmp=yes
5873else
5874 echo "$as_me: failed program was:" >&5
5875cat conftest.$ac_ext >&5
5876ac_cv_lib_resolv_strcasecmp=no
5877fi
5878rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5879LIBS=$ac_check_lib_save_LIBS
5880fi
5881echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_strcasecmp" >&5
5882echo "${ECHO_T}$ac_cv_lib_resolv_strcasecmp" >&6
5883if test $ac_cv_lib_resolv_strcasecmp = yes; then
5884 LIBS="$LIBS -lresolv"
5885fi
5886
5887
5888fi
5889
5890echo "$as_me:$LINENO: checking for utimes" >&5
5891echo $ECHO_N "checking for utimes... $ECHO_C" >&6
5892if test "${ac_cv_func_utimes+set}" = set; then
5893 echo $ECHO_N "(cached) $ECHO_C" >&6
5894else
5895 cat >conftest.$ac_ext <<_ACEOF
5896#line $LINENO "configure"
5897#include "confdefs.h"
5898/* System header to define __stub macros and hopefully few prototypes,
5899 which can conflict with char utimes (); below. */
5900#include <assert.h>
5901/* Override any gcc2 internal prototype to avoid an error. */
5902#ifdef __cplusplus
5903extern "C"
5904#endif
5905/* We use char because int might match the return type of a gcc2
5906 builtin and then its argument prototype would still apply. */
5907char utimes ();
5908char (*f) ();
5909
5910#ifdef F77_DUMMY_MAIN
5911# ifdef __cplusplus
5912 extern "C"
5913# endif
5914 int F77_DUMMY_MAIN() { return 1; }
5915#endif
5916int
5917main ()
5918{
5919/* The GNU C library defines this for functions which it implements
5920 to always fail with ENOSYS. Some functions are actually named
5921 something starting with __ and the normal name is an alias. */
5922#if defined (__stub_utimes) || defined (__stub___utimes)
5923choke me
5924#else
5925f = utimes;
5926#endif
5927
5928 ;
5929 return 0;
5930}
5931_ACEOF
5932rm -f conftest.$ac_objext conftest$ac_exeext
5933if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5934 (eval $ac_link) 2>&5
5935 ac_status=$?
5936 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5937 (exit $ac_status); } &&
5938 { ac_try='test -s conftest$ac_exeext'
5939 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5940 (eval $ac_try) 2>&5
5941 ac_status=$?
5942 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5943 (exit $ac_status); }; }; then
5944 ac_cv_func_utimes=yes
5945else
5946 echo "$as_me: failed program was:" >&5
5947cat conftest.$ac_ext >&5
5948ac_cv_func_utimes=no
5949fi
5950rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5951fi
5952echo "$as_me:$LINENO: result: $ac_cv_func_utimes" >&5
5953echo "${ECHO_T}$ac_cv_func_utimes" >&6
5954if test $ac_cv_func_utimes = yes; then
5955 :
5956else
5957 echo "$as_me:$LINENO: checking for utimes in -lc89" >&5
5958echo $ECHO_N "checking for utimes in -lc89... $ECHO_C" >&6
5959if test "${ac_cv_lib_c89_utimes+set}" = set; then
5960 echo $ECHO_N "(cached) $ECHO_C" >&6
5961else
5962 ac_check_lib_save_LIBS=$LIBS
5963LIBS="-lc89 $LIBS"
5964cat >conftest.$ac_ext <<_ACEOF
5965#line $LINENO "configure"
5966#include "confdefs.h"
5967
5968/* Override any gcc2 internal prototype to avoid an error. */
5969#ifdef __cplusplus
5970extern "C"
5971#endif
5972/* We use char because int might match the return type of a gcc2
5973 builtin and then its argument prototype would still apply. */
5974char utimes ();
5975#ifdef F77_DUMMY_MAIN
5976# ifdef __cplusplus
5977 extern "C"
5978# endif
5979 int F77_DUMMY_MAIN() { return 1; }
5980#endif
5981int
5982main ()
5983{
5984utimes ();
5985 ;
5986 return 0;
5987}
5988_ACEOF
5989rm -f conftest.$ac_objext conftest$ac_exeext
5990if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5991 (eval $ac_link) 2>&5
5992 ac_status=$?
5993 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5994 (exit $ac_status); } &&
5995 { ac_try='test -s conftest$ac_exeext'
5996 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5997 (eval $ac_try) 2>&5
5998 ac_status=$?
5999 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6000 (exit $ac_status); }; }; then
6001 ac_cv_lib_c89_utimes=yes
6002else
6003 echo "$as_me: failed program was:" >&5
6004cat conftest.$ac_ext >&5
6005ac_cv_lib_c89_utimes=no
6006fi
6007rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6008LIBS=$ac_check_lib_save_LIBS
6009fi
6010echo "$as_me:$LINENO: result: $ac_cv_lib_c89_utimes" >&5
6011echo "${ECHO_T}$ac_cv_lib_c89_utimes" >&6
6012if test $ac_cv_lib_c89_utimes = yes; then
6013 cat >>confdefs.h <<\_ACEOF
6014@%:@define HAVE_UTIMES 1
6015_ACEOF
6016
6017 LIBS="$LIBS -lc89"
6018fi
6019
6020
6021fi
6022
6023
6024
6025for ac_header in libutil.h
6026do
6027as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
6028if eval "test \"\${$as_ac_Header+set}\" = set"; then
6029 echo "$as_me:$LINENO: checking for $ac_header" >&5
6030echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6031if eval "test \"\${$as_ac_Header+set}\" = set"; then
6032 echo $ECHO_N "(cached) $ECHO_C" >&6
6033fi
6034echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6035echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6036else
6037 # Is the header compilable?
6038echo "$as_me:$LINENO: checking $ac_header usability" >&5
6039echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6040cat >conftest.$ac_ext <<_ACEOF
6041#line $LINENO "configure"
6042#include "confdefs.h"
6043$ac_includes_default
6044@%:@include <$ac_header>
6045_ACEOF
6046rm -f conftest.$ac_objext
6047if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6048 (eval $ac_compile) 2>&5
6049 ac_status=$?
6050 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6051 (exit $ac_status); } &&
6052 { ac_try='test -s conftest.$ac_objext'
6053 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6054 (eval $ac_try) 2>&5
6055 ac_status=$?
6056 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6057 (exit $ac_status); }; }; then
6058 ac_header_compiler=yes
6059else
6060 echo "$as_me: failed program was:" >&5
6061cat conftest.$ac_ext >&5
6062ac_header_compiler=no
6063fi
6064rm -f conftest.$ac_objext conftest.$ac_ext
6065echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6066echo "${ECHO_T}$ac_header_compiler" >&6
6067
6068# Is the header present?
6069echo "$as_me:$LINENO: checking $ac_header presence" >&5
6070echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6071cat >conftest.$ac_ext <<_ACEOF
6072#line $LINENO "configure"
6073#include "confdefs.h"
6074@%:@include <$ac_header>
6075_ACEOF
6076if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6077 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6078 ac_status=$?
6079 egrep -v '^ *\+' conftest.er1 >conftest.err
6080 rm -f conftest.er1
6081 cat conftest.err >&5
6082 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6083 (exit $ac_status); } >/dev/null; then
6084 if test -s conftest.err; then
6085 ac_cpp_err=$ac_c_preproc_warn_flag
6086 else
6087 ac_cpp_err=
6088 fi
6089else
6090 ac_cpp_err=yes
6091fi
6092if test -z "$ac_cpp_err"; then
6093 ac_header_preproc=yes
6094else
6095 echo "$as_me: failed program was:" >&5
6096 cat conftest.$ac_ext >&5
6097 ac_header_preproc=no
6098fi
6099rm -f conftest.err conftest.$ac_ext
6100echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
6101echo "${ECHO_T}$ac_header_preproc" >&6
6102
6103# So? What about this header?
6104case $ac_header_compiler:$ac_header_preproc in
6105 yes:no )
6106 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6107echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6108 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6109echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
6110 no:yes )
6111 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6112echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6113 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6114echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6115 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6116echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
6117esac
6118echo "$as_me:$LINENO: checking for $ac_header" >&5
6119echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6120if eval "test \"\${$as_ac_Header+set}\" = set"; then
6121 echo $ECHO_N "(cached) $ECHO_C" >&6
6122else
6123 eval "$as_ac_Header=$ac_header_preproc"
6124fi
6125echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6126echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6127
6128fi
6129if test `eval echo '${'$as_ac_Header'}'` = yes; then
6130 cat >>confdefs.h <<_ACEOF
6131@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
6132_ACEOF
6133
6134fi
6135
6136done
6137
6138echo "$as_me:$LINENO: checking for library containing login" >&5
6139echo $ECHO_N "checking for library containing login... $ECHO_C" >&6
6140if test "${ac_cv_search_login+set}" = set; then
6141 echo $ECHO_N "(cached) $ECHO_C" >&6
6142else
6143 ac_func_search_save_LIBS=$LIBS
6144ac_cv_search_login=no
6145cat >conftest.$ac_ext <<_ACEOF
6146#line $LINENO "configure"
6147#include "confdefs.h"
6148
6149/* Override any gcc2 internal prototype to avoid an error. */
6150#ifdef __cplusplus
6151extern "C"
6152#endif
6153/* We use char because int might match the return type of a gcc2
6154 builtin and then its argument prototype would still apply. */
6155char login ();
6156#ifdef F77_DUMMY_MAIN
6157# ifdef __cplusplus
6158 extern "C"
6159# endif
6160 int F77_DUMMY_MAIN() { return 1; }
6161#endif
6162int
6163main ()
6164{
6165login ();
6166 ;
6167 return 0;
6168}
6169_ACEOF
6170rm -f conftest.$ac_objext conftest$ac_exeext
6171if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6172 (eval $ac_link) 2>&5
6173 ac_status=$?
6174 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6175 (exit $ac_status); } &&
6176 { ac_try='test -s conftest$ac_exeext'
6177 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6178 (eval $ac_try) 2>&5
6179 ac_status=$?
6180 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6181 (exit $ac_status); }; }; then
6182 ac_cv_search_login="none required"
6183else
6184 echo "$as_me: failed program was:" >&5
6185cat conftest.$ac_ext >&5
6186fi
6187rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6188if test "$ac_cv_search_login" = no; then
6189 for ac_lib in util bsd; do
6190 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
6191 cat >conftest.$ac_ext <<_ACEOF
6192#line $LINENO "configure"
6193#include "confdefs.h"
6194
6195/* Override any gcc2 internal prototype to avoid an error. */
6196#ifdef __cplusplus
6197extern "C"
6198#endif
6199/* We use char because int might match the return type of a gcc2
6200 builtin and then its argument prototype would still apply. */
6201char login ();
6202#ifdef F77_DUMMY_MAIN
6203# ifdef __cplusplus
6204 extern "C"
6205# endif
6206 int F77_DUMMY_MAIN() { return 1; }
6207#endif
6208int
6209main ()
6210{
6211login ();
6212 ;
6213 return 0;
6214}
6215_ACEOF
6216rm -f conftest.$ac_objext conftest$ac_exeext
6217if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6218 (eval $ac_link) 2>&5
6219 ac_status=$?
6220 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6221 (exit $ac_status); } &&
6222 { ac_try='test -s conftest$ac_exeext'
6223 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6224 (eval $ac_try) 2>&5
6225 ac_status=$?
6226 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6227 (exit $ac_status); }; }; then
6228 ac_cv_search_login="-l$ac_lib"
6229break
6230else
6231 echo "$as_me: failed program was:" >&5
6232cat conftest.$ac_ext >&5
6233fi
6234rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6235 done
6236fi
6237LIBS=$ac_func_search_save_LIBS
6238fi
6239echo "$as_me:$LINENO: result: $ac_cv_search_login" >&5
6240echo "${ECHO_T}$ac_cv_search_login" >&6
6241if test "$ac_cv_search_login" != no; then
6242 test "$ac_cv_search_login" = "none required" || LIBS="$ac_cv_search_login $LIBS"
6243 cat >>confdefs.h <<\_ACEOF
6244@%:@define HAVE_LOGIN 1
6245_ACEOF
6246
6247fi
6248
6249
6250
6251
6252for ac_func in logout updwtmp logwtmp
6253do
6254as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6255echo "$as_me:$LINENO: checking for $ac_func" >&5
6256echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6257if eval "test \"\${$as_ac_var+set}\" = set"; then
6258 echo $ECHO_N "(cached) $ECHO_C" >&6
6259else
6260 cat >conftest.$ac_ext <<_ACEOF
6261#line $LINENO "configure"
6262#include "confdefs.h"
6263/* System header to define __stub macros and hopefully few prototypes,
6264 which can conflict with char $ac_func (); below. */
6265#include <assert.h>
6266/* Override any gcc2 internal prototype to avoid an error. */
6267#ifdef __cplusplus
6268extern "C"
6269#endif
6270/* We use char because int might match the return type of a gcc2
6271 builtin and then its argument prototype would still apply. */
6272char $ac_func ();
6273char (*f) ();
6274
6275#ifdef F77_DUMMY_MAIN
6276# ifdef __cplusplus
6277 extern "C"
6278# endif
6279 int F77_DUMMY_MAIN() { return 1; }
6280#endif
6281int
6282main ()
6283{
6284/* The GNU C library defines this for functions which it implements
6285 to always fail with ENOSYS. Some functions are actually named
6286 something starting with __ and the normal name is an alias. */
6287#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6288choke me
6289#else
6290f = $ac_func;
6291#endif
6292
6293 ;
6294 return 0;
6295}
6296_ACEOF
6297rm -f conftest.$ac_objext conftest$ac_exeext
6298if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6299 (eval $ac_link) 2>&5
6300 ac_status=$?
6301 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6302 (exit $ac_status); } &&
6303 { ac_try='test -s conftest$ac_exeext'
6304 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6305 (eval $ac_try) 2>&5
6306 ac_status=$?
6307 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6308 (exit $ac_status); }; }; then
6309 eval "$as_ac_var=yes"
6310else
6311 echo "$as_me: failed program was:" >&5
6312cat conftest.$ac_ext >&5
6313eval "$as_ac_var=no"
6314fi
6315rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6316fi
6317echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6318echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6319if test `eval echo '${'$as_ac_var'}'` = yes; then
6320 cat >>confdefs.h <<_ACEOF
6321@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6322_ACEOF
6323
6324fi
6325done
6326
6327
6328
6329for ac_func in strftime
6330do
6331as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6332echo "$as_me:$LINENO: checking for $ac_func" >&5
6333echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6334if eval "test \"\${$as_ac_var+set}\" = set"; then
6335 echo $ECHO_N "(cached) $ECHO_C" >&6
6336else
6337 cat >conftest.$ac_ext <<_ACEOF
6338#line $LINENO "configure"
6339#include "confdefs.h"
6340/* System header to define __stub macros and hopefully few prototypes,
6341 which can conflict with char $ac_func (); below. */
6342#include <assert.h>
6343/* Override any gcc2 internal prototype to avoid an error. */
6344#ifdef __cplusplus
6345extern "C"
6346#endif
6347/* We use char because int might match the return type of a gcc2
6348 builtin and then its argument prototype would still apply. */
6349char $ac_func ();
6350char (*f) ();
6351
6352#ifdef F77_DUMMY_MAIN
6353# ifdef __cplusplus
6354 extern "C"
6355# endif
6356 int F77_DUMMY_MAIN() { return 1; }
6357#endif
6358int
6359main ()
6360{
6361/* The GNU C library defines this for functions which it implements
6362 to always fail with ENOSYS. Some functions are actually named
6363 something starting with __ and the normal name is an alias. */
6364#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6365choke me
6366#else
6367f = $ac_func;
6368#endif
6369
6370 ;
6371 return 0;
6372}
6373_ACEOF
6374rm -f conftest.$ac_objext conftest$ac_exeext
6375if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6376 (eval $ac_link) 2>&5
6377 ac_status=$?
6378 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6379 (exit $ac_status); } &&
6380 { ac_try='test -s conftest$ac_exeext'
6381 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6382 (eval $ac_try) 2>&5
6383 ac_status=$?
6384 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6385 (exit $ac_status); }; }; then
6386 eval "$as_ac_var=yes"
6387else
6388 echo "$as_me: failed program was:" >&5
6389cat conftest.$ac_ext >&5
6390eval "$as_ac_var=no"
6391fi
6392rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6393fi
6394echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6395echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6396if test `eval echo '${'$as_ac_var'}'` = yes; then
6397 cat >>confdefs.h <<_ACEOF
6398@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6399_ACEOF
6400
6401else
6402 # strftime is in -lintl on SCO UNIX.
6403echo "$as_me:$LINENO: checking for strftime in -lintl" >&5
6404echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6
6405if test "${ac_cv_lib_intl_strftime+set}" = set; then
6406 echo $ECHO_N "(cached) $ECHO_C" >&6
6407else
6408 ac_check_lib_save_LIBS=$LIBS
6409LIBS="-lintl $LIBS"
6410cat >conftest.$ac_ext <<_ACEOF
6411#line $LINENO "configure"
6412#include "confdefs.h"
6413
6414/* Override any gcc2 internal prototype to avoid an error. */
6415#ifdef __cplusplus
6416extern "C"
6417#endif
6418/* We use char because int might match the return type of a gcc2
6419 builtin and then its argument prototype would still apply. */
6420char strftime ();
6421#ifdef F77_DUMMY_MAIN
6422# ifdef __cplusplus
6423 extern "C"
6424# endif
6425 int F77_DUMMY_MAIN() { return 1; }
6426#endif
6427int
6428main ()
6429{
6430strftime ();
6431 ;
6432 return 0;
6433}
6434_ACEOF
6435rm -f conftest.$ac_objext conftest$ac_exeext
6436if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6437 (eval $ac_link) 2>&5
6438 ac_status=$?
6439 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6440 (exit $ac_status); } &&
6441 { ac_try='test -s conftest$ac_exeext'
6442 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6443 (eval $ac_try) 2>&5
6444 ac_status=$?
6445 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6446 (exit $ac_status); }; }; then
6447 ac_cv_lib_intl_strftime=yes
6448else
6449 echo "$as_me: failed program was:" >&5
6450cat conftest.$ac_ext >&5
6451ac_cv_lib_intl_strftime=no
6452fi
6453rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6454LIBS=$ac_check_lib_save_LIBS
6455fi
6456echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5
6457echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6
6458if test $ac_cv_lib_intl_strftime = yes; then
6459 cat >>confdefs.h <<\_ACEOF
6460@%:@define HAVE_STRFTIME 1
6461_ACEOF
6462
6463LIBS="-lintl $LIBS"
6464fi
6465
6466fi
6467done
6468
6469
6470# Check for ALTDIRFUNC glob() extension
6471echo "$as_me:$LINENO: checking for GLOB_ALTDIRFUNC support" >&5
6472echo $ECHO_N "checking for GLOB_ALTDIRFUNC support... $ECHO_C" >&6
6473cat >conftest.$ac_ext <<_ACEOF
6474#line $LINENO "configure"
6475#include "confdefs.h"
6476
6477 #include <glob.h>
6478 #ifdef GLOB_ALTDIRFUNC
6479 FOUNDIT
6480 #endif
6481
6482_ACEOF
6483if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6484 egrep "FOUNDIT" >/dev/null 2>&1; then
6485
6486 cat >>confdefs.h <<\_ACEOF
6487@%:@define GLOB_HAS_ALTDIRFUNC 1
6488_ACEOF
6489
6490 echo "$as_me:$LINENO: result: yes" >&5
6491echo "${ECHO_T}yes" >&6
6492
6493else
6494
6495 echo "$as_me:$LINENO: result: no" >&5
6496echo "${ECHO_T}no" >&6
6497
6498
6499fi
6500rm -f conftest*
6501
6502
6503# Check for g.gl_matchc glob() extension
6504echo "$as_me:$LINENO: checking for gl_matchc field in glob_t" >&5
6505echo $ECHO_N "checking for gl_matchc field in glob_t... $ECHO_C" >&6
6506cat >conftest.$ac_ext <<_ACEOF
6507#line $LINENO "configure"
6508#include "confdefs.h"
6509
6510 #include <glob.h>
6511 int main(void){glob_t g; g.gl_matchc = 1;}
6512
6513_ACEOF
6514if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6515 egrep "FOUNDIT" >/dev/null 2>&1; then
6516
6517 cat >>confdefs.h <<\_ACEOF
6518@%:@define GLOB_HAS_GL_MATCHC 1
6519_ACEOF
6520
6521 echo "$as_me:$LINENO: result: yes" >&5
6522echo "${ECHO_T}yes" >&6
6523
6524else
6525
6526 echo "$as_me:$LINENO: result: no" >&5
6527echo "${ECHO_T}no" >&6
6528
6529
6530fi
6531rm -f conftest*
6532
6533
6534echo "$as_me:$LINENO: checking whether struct dirent allocates space for d_name" >&5
6535echo $ECHO_N "checking whether struct dirent allocates space for d_name... $ECHO_C" >&6
6536if test "$cross_compiling" = yes; then
6537 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
6538echo "$as_me: error: cannot run test program while cross compiling" >&2;}
6539 { (exit 1); exit 1; }; }
6540else
6541 cat >conftest.$ac_ext <<_ACEOF
6542#line $LINENO "configure"
6543#include "confdefs.h"
6544
6545#include <sys/types.h>
6546#include <dirent.h>
6547int main(void){struct dirent d;exit(sizeof(d.d_name)<=sizeof(char));}
6548
6549_ACEOF
6550rm -f conftest$ac_exeext
6551if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6552 (eval $ac_link) 2>&5
6553 ac_status=$?
6554 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6555 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6556 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6557 (eval $ac_try) 2>&5
6558 ac_status=$?
6559 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6560 (exit $ac_status); }; }; then
6561 echo "$as_me:$LINENO: result: yes" >&5
6562echo "${ECHO_T}yes" >&6
6563else
6564 echo "$as_me: program exited with status $ac_status" >&5
6565echo "$as_me: failed program was:" >&5
6566cat conftest.$ac_ext >&5
6567( exit $ac_status )
6568
6569 echo "$as_me:$LINENO: result: no" >&5
6570echo "${ECHO_T}no" >&6
6571 cat >>confdefs.h <<\_ACEOF
6572@%:@define BROKEN_ONE_BYTE_DIRENT_D_NAME 1
6573_ACEOF
6574
6575
6576
6577fi
6578rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6579fi
6580
6581# Check whether user wants S/Key support
6582SKEY_MSG="no"
6583
6584# Check whether --with-skey or --without-skey was given.
6585if test "${with_skey+set}" = set; then
6586 withval="$with_skey"
6587
6588 if test "x$withval" != "xno" ; then
6589
6590 if test "x$withval" != "xyes" ; then
6591 CPPFLAGS="$CPPFLAGS -I${withval}/include"
6592 LDFLAGS="$LDFLAGS -L${withval}/lib"
6593 fi
6594
6595 cat >>confdefs.h <<\_ACEOF
6596@%:@define SKEY 1
6597_ACEOF
6598
6599 LIBS="-lskey $LIBS"
6600 SKEY_MSG="yes"
6601
6602 echo "$as_me:$LINENO: checking for s/key support" >&5
6603echo $ECHO_N "checking for s/key support... $ECHO_C" >&6
6604 if test "$cross_compiling" = yes; then
6605 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
6606echo "$as_me: error: cannot run test program while cross compiling" >&2;}
6607 { (exit 1); exit 1; }; }
6608else
6609 cat >conftest.$ac_ext <<_ACEOF
6610#line $LINENO "configure"
6611#include "confdefs.h"
6612
6613#include <stdio.h>
6614#include <skey.h>
6615int main() { char *ff = skey_keyinfo(""); ff=""; exit(0); }
6616
6617_ACEOF
6618rm -f conftest$ac_exeext
6619if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6620 (eval $ac_link) 2>&5
6621 ac_status=$?
6622 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6623 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6624 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6625 (eval $ac_try) 2>&5
6626 ac_status=$?
6627 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6628 (exit $ac_status); }; }; then
6629 echo "$as_me:$LINENO: result: yes" >&5
6630echo "${ECHO_T}yes" >&6
6631else
6632 echo "$as_me: program exited with status $ac_status" >&5
6633echo "$as_me: failed program was:" >&5
6634cat conftest.$ac_ext >&5
6635( exit $ac_status )
6636
6637 echo "$as_me:$LINENO: result: no" >&5
6638echo "${ECHO_T}no" >&6
6639 { { echo "$as_me:$LINENO: error: ** Incomplete or missing s/key libraries." >&5
6640echo "$as_me: error: ** Incomplete or missing s/key libraries." >&2;}
6641 { (exit 1); exit 1; }; }
6642
6643fi
6644rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6645fi
6646 fi
6647
6648
6649fi;
6650
6651# Check whether user wants TCP wrappers support
6652TCPW_MSG="no"
6653
6654# Check whether --with-tcp-wrappers or --without-tcp-wrappers was given.
6655if test "${with_tcp_wrappers+set}" = set; then
6656 withval="$with_tcp_wrappers"
6657
6658 if test "x$withval" != "xno" ; then
6659 saved_LIBS="$LIBS"
6660 saved_LDFLAGS="$LDFLAGS"
6661 saved_CPPFLAGS="$CPPFLAGS"
6662 if test -n "${withval}" -a "${withval}" != "yes"; then
6663 if test -d "${withval}/lib"; then
6664 if test -n "${need_dash_r}"; then
6665 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
6666 else
6667 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
6668 fi
6669 else
6670 if test -n "${need_dash_r}"; then
6671 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
6672 else
6673 LDFLAGS="-L${withval} ${LDFLAGS}"
6674 fi
6675 fi
6676 if test -d "${withval}/include"; then
6677 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
6678 else
6679 CPPFLAGS="-I${withval} ${CPPFLAGS}"
6680 fi
6681 fi
6682 LIBWRAP="-lwrap"
6683 LIBS="$LIBWRAP $LIBS"
6684 echo "$as_me:$LINENO: checking for libwrap" >&5
6685echo $ECHO_N "checking for libwrap... $ECHO_C" >&6
6686 cat >conftest.$ac_ext <<_ACEOF
6687#line $LINENO "configure"
6688#include "confdefs.h"
6689
6690#include <tcpd.h>
6691 int deny_severity = 0, allow_severity = 0;
6692
6693#ifdef F77_DUMMY_MAIN
6694# ifdef __cplusplus
6695 extern "C"
6696# endif
6697 int F77_DUMMY_MAIN() { return 1; }
6698#endif
6699int
6700main ()
6701{
6702hosts_access(0);
6703 ;
6704 return 0;
6705}
6706_ACEOF
6707rm -f conftest.$ac_objext conftest$ac_exeext
6708if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6709 (eval $ac_link) 2>&5
6710 ac_status=$?
6711 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6712 (exit $ac_status); } &&
6713 { ac_try='test -s conftest$ac_exeext'
6714 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6715 (eval $ac_try) 2>&5
6716 ac_status=$?
6717 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6718 (exit $ac_status); }; }; then
6719
6720 echo "$as_me:$LINENO: result: yes" >&5
6721echo "${ECHO_T}yes" >&6
6722 cat >>confdefs.h <<\_ACEOF
6723@%:@define LIBWRAP 1
6724_ACEOF
6725
6726
6727 TCPW_MSG="yes"
6728
6729else
6730 echo "$as_me: failed program was:" >&5
6731cat conftest.$ac_ext >&5
6732
6733 { { echo "$as_me:$LINENO: error: *** libwrap missing" >&5
6734echo "$as_me: error: *** libwrap missing" >&2;}
6735 { (exit 1); exit 1; }; }
6736
6737
6738fi
6739rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6740 LIBS="$saved_LIBS"
6741 fi
6742
6743
6744fi;
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819for ac_func in \
6820 arc4random __b64_ntop b64_ntop __b64_pton b64_pton basename bcopy \
6821 bindresvport_sa clock fchmod fchown freeaddrinfo futimes \
6822 gai_strerror getaddrinfo getcwd getgrouplist getnameinfo getopt \
6823 getpeereid _getpty getrlimit getrusage getttyent glob inet_aton \
6824 inet_ntoa inet_ntop innetgr login_getcapbool md5_crypt memmove \
6825 mkdtemp mmap ngetaddrinfo nsleep ogetaddrinfo openpty pstat \
6826 readpassphrase realpath recvmsg rresvport_af sendmsg setdtablesize \
6827 setegid setenv seteuid setgroups setlogin setpcred setproctitle \
6828 setresgid setreuid setrlimit setsid setvbuf sigaction sigvec \
6829 snprintf socketpair strerror strlcat strlcpy strmode strnvis \
6830 sysconf tcgetpgrp truncate utimes vhangup vsnprintf waitpid \
6831
6832do
6833as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6834echo "$as_me:$LINENO: checking for $ac_func" >&5
6835echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6836if eval "test \"\${$as_ac_var+set}\" = set"; then
6837 echo $ECHO_N "(cached) $ECHO_C" >&6
6838else
6839 cat >conftest.$ac_ext <<_ACEOF
6840#line $LINENO "configure"
6841#include "confdefs.h"
6842/* System header to define __stub macros and hopefully few prototypes,
6843 which can conflict with char $ac_func (); below. */
6844#include <assert.h>
6845/* Override any gcc2 internal prototype to avoid an error. */
6846#ifdef __cplusplus
6847extern "C"
6848#endif
6849/* We use char because int might match the return type of a gcc2
6850 builtin and then its argument prototype would still apply. */
6851char $ac_func ();
6852char (*f) ();
6853
6854#ifdef F77_DUMMY_MAIN
6855# ifdef __cplusplus
6856 extern "C"
6857# endif
6858 int F77_DUMMY_MAIN() { return 1; }
6859#endif
6860int
6861main ()
6862{
6863/* The GNU C library defines this for functions which it implements
6864 to always fail with ENOSYS. Some functions are actually named
6865 something starting with __ and the normal name is an alias. */
6866#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6867choke me
6868#else
6869f = $ac_func;
6870#endif
6871
6872 ;
6873 return 0;
6874}
6875_ACEOF
6876rm -f conftest.$ac_objext conftest$ac_exeext
6877if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6878 (eval $ac_link) 2>&5
6879 ac_status=$?
6880 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6881 (exit $ac_status); } &&
6882 { ac_try='test -s conftest$ac_exeext'
6883 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6884 (eval $ac_try) 2>&5
6885 ac_status=$?
6886 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6887 (exit $ac_status); }; }; then
6888 eval "$as_ac_var=yes"
6889else
6890 echo "$as_me: failed program was:" >&5
6891cat conftest.$ac_ext >&5
6892eval "$as_ac_var=no"
6893fi
6894rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6895fi
6896echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6897echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6898if test `eval echo '${'$as_ac_var'}'` = yes; then
6899 cat >>confdefs.h <<_ACEOF
6900@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6901_ACEOF
6902
6903fi
6904done
6905
6906
6907echo "$as_me:$LINENO: checking for library containing nanosleep" >&5
6908echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6
6909if test "${ac_cv_search_nanosleep+set}" = set; then
6910 echo $ECHO_N "(cached) $ECHO_C" >&6
6911else
6912 ac_func_search_save_LIBS=$LIBS
6913ac_cv_search_nanosleep=no
6914cat >conftest.$ac_ext <<_ACEOF
6915#line $LINENO "configure"
6916#include "confdefs.h"
6917
6918/* Override any gcc2 internal prototype to avoid an error. */
6919#ifdef __cplusplus
6920extern "C"
6921#endif
6922/* We use char because int might match the return type of a gcc2
6923 builtin and then its argument prototype would still apply. */
6924char nanosleep ();
6925#ifdef F77_DUMMY_MAIN
6926# ifdef __cplusplus
6927 extern "C"
6928# endif
6929 int F77_DUMMY_MAIN() { return 1; }
6930#endif
6931int
6932main ()
6933{
6934nanosleep ();
6935 ;
6936 return 0;
6937}
6938_ACEOF
6939rm -f conftest.$ac_objext conftest$ac_exeext
6940if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6941 (eval $ac_link) 2>&5
6942 ac_status=$?
6943 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6944 (exit $ac_status); } &&
6945 { ac_try='test -s conftest$ac_exeext'
6946 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6947 (eval $ac_try) 2>&5
6948 ac_status=$?
6949 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6950 (exit $ac_status); }; }; then
6951 ac_cv_search_nanosleep="none required"
6952else
6953 echo "$as_me: failed program was:" >&5
6954cat conftest.$ac_ext >&5
6955fi
6956rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6957if test "$ac_cv_search_nanosleep" = no; then
6958 for ac_lib in rt posix4; do
6959 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
6960 cat >conftest.$ac_ext <<_ACEOF
6961#line $LINENO "configure"
6962#include "confdefs.h"
6963
6964/* Override any gcc2 internal prototype to avoid an error. */
6965#ifdef __cplusplus
6966extern "C"
6967#endif
6968/* We use char because int might match the return type of a gcc2
6969 builtin and then its argument prototype would still apply. */
6970char nanosleep ();
6971#ifdef F77_DUMMY_MAIN
6972# ifdef __cplusplus
6973 extern "C"
6974# endif
6975 int F77_DUMMY_MAIN() { return 1; }
6976#endif
6977int
6978main ()
6979{
6980nanosleep ();
6981 ;
6982 return 0;
6983}
6984_ACEOF
6985rm -f conftest.$ac_objext conftest$ac_exeext
6986if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6987 (eval $ac_link) 2>&5
6988 ac_status=$?
6989 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6990 (exit $ac_status); } &&
6991 { ac_try='test -s conftest$ac_exeext'
6992 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6993 (eval $ac_try) 2>&5
6994 ac_status=$?
6995 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6996 (exit $ac_status); }; }; then
6997 ac_cv_search_nanosleep="-l$ac_lib"
6998break
6999else
7000 echo "$as_me: failed program was:" >&5
7001cat conftest.$ac_ext >&5
7002fi
7003rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7004 done
7005fi
7006LIBS=$ac_func_search_save_LIBS
7007fi
7008echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5
7009echo "${ECHO_T}$ac_cv_search_nanosleep" >&6
7010if test "$ac_cv_search_nanosleep" != no; then
7011 test "$ac_cv_search_nanosleep" = "none required" || LIBS="$ac_cv_search_nanosleep $LIBS"
7012 cat >>confdefs.h <<\_ACEOF
7013@%:@define HAVE_NANOSLEEP 1
7014_ACEOF
7015
7016fi
7017
7018
7019echo "$as_me:$LINENO: checking whether strsep is declared" >&5
7020echo $ECHO_N "checking whether strsep is declared... $ECHO_C" >&6
7021if test "${ac_cv_have_decl_strsep+set}" = set; then
7022 echo $ECHO_N "(cached) $ECHO_C" >&6
7023else
7024 cat >conftest.$ac_ext <<_ACEOF
7025#line $LINENO "configure"
7026#include "confdefs.h"
7027$ac_includes_default
7028#ifdef F77_DUMMY_MAIN
7029# ifdef __cplusplus
7030 extern "C"
7031# endif
7032 int F77_DUMMY_MAIN() { return 1; }
7033#endif
7034int
7035main ()
7036{
7037#ifndef strsep
7038 char *p = (char *) strsep;
7039#endif
7040
7041 ;
7042 return 0;
7043}
7044_ACEOF
7045rm -f conftest.$ac_objext
7046if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7047 (eval $ac_compile) 2>&5
7048 ac_status=$?
7049 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7050 (exit $ac_status); } &&
7051 { ac_try='test -s conftest.$ac_objext'
7052 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7053 (eval $ac_try) 2>&5
7054 ac_status=$?
7055 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7056 (exit $ac_status); }; }; then
7057 ac_cv_have_decl_strsep=yes
7058else
7059 echo "$as_me: failed program was:" >&5
7060cat conftest.$ac_ext >&5
7061ac_cv_have_decl_strsep=no
7062fi
7063rm -f conftest.$ac_objext conftest.$ac_ext
7064fi
7065echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsep" >&5
7066echo "${ECHO_T}$ac_cv_have_decl_strsep" >&6
7067if test $ac_cv_have_decl_strsep = yes; then
7068
7069for ac_func in strsep
7070do
7071as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7072echo "$as_me:$LINENO: checking for $ac_func" >&5
7073echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7074if eval "test \"\${$as_ac_var+set}\" = set"; then
7075 echo $ECHO_N "(cached) $ECHO_C" >&6
7076else
7077 cat >conftest.$ac_ext <<_ACEOF
7078#line $LINENO "configure"
7079#include "confdefs.h"
7080/* System header to define __stub macros and hopefully few prototypes,
7081 which can conflict with char $ac_func (); below. */
7082#include <assert.h>
7083/* Override any gcc2 internal prototype to avoid an error. */
7084#ifdef __cplusplus
7085extern "C"
7086#endif
7087/* We use char because int might match the return type of a gcc2
7088 builtin and then its argument prototype would still apply. */
7089char $ac_func ();
7090char (*f) ();
7091
7092#ifdef F77_DUMMY_MAIN
7093# ifdef __cplusplus
7094 extern "C"
7095# endif
7096 int F77_DUMMY_MAIN() { return 1; }
7097#endif
7098int
7099main ()
7100{
7101/* The GNU C library defines this for functions which it implements
7102 to always fail with ENOSYS. Some functions are actually named
7103 something starting with __ and the normal name is an alias. */
7104#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7105choke me
7106#else
7107f = $ac_func;
7108#endif
7109
7110 ;
7111 return 0;
7112}
7113_ACEOF
7114rm -f conftest.$ac_objext conftest$ac_exeext
7115if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7116 (eval $ac_link) 2>&5
7117 ac_status=$?
7118 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7119 (exit $ac_status); } &&
7120 { ac_try='test -s conftest$ac_exeext'
7121 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7122 (eval $ac_try) 2>&5
7123 ac_status=$?
7124 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7125 (exit $ac_status); }; }; then
7126 eval "$as_ac_var=yes"
7127else
7128 echo "$as_me: failed program was:" >&5
7129cat conftest.$ac_ext >&5
7130eval "$as_ac_var=no"
7131fi
7132rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7133fi
7134echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7135echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7136if test `eval echo '${'$as_ac_var'}'` = yes; then
7137 cat >>confdefs.h <<_ACEOF
7138@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7139_ACEOF
7140
7141fi
7142done
7143
7144fi
7145
7146
7147
7148for ac_func in dirname
7149do
7150as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7151echo "$as_me:$LINENO: checking for $ac_func" >&5
7152echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7153if eval "test \"\${$as_ac_var+set}\" = set"; then
7154 echo $ECHO_N "(cached) $ECHO_C" >&6
7155else
7156 cat >conftest.$ac_ext <<_ACEOF
7157#line $LINENO "configure"
7158#include "confdefs.h"
7159/* System header to define __stub macros and hopefully few prototypes,
7160 which can conflict with char $ac_func (); below. */
7161#include <assert.h>
7162/* Override any gcc2 internal prototype to avoid an error. */
7163#ifdef __cplusplus
7164extern "C"
7165#endif
7166/* We use char because int might match the return type of a gcc2
7167 builtin and then its argument prototype would still apply. */
7168char $ac_func ();
7169char (*f) ();
7170
7171#ifdef F77_DUMMY_MAIN
7172# ifdef __cplusplus
7173 extern "C"
7174# endif
7175 int F77_DUMMY_MAIN() { return 1; }
7176#endif
7177int
7178main ()
7179{
7180/* The GNU C library defines this for functions which it implements
7181 to always fail with ENOSYS. Some functions are actually named
7182 something starting with __ and the normal name is an alias. */
7183#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7184choke me
7185#else
7186f = $ac_func;
7187#endif
7188
7189 ;
7190 return 0;
7191}
7192_ACEOF
7193rm -f conftest.$ac_objext conftest$ac_exeext
7194if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7195 (eval $ac_link) 2>&5
7196 ac_status=$?
7197 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7198 (exit $ac_status); } &&
7199 { ac_try='test -s conftest$ac_exeext'
7200 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7201 (eval $ac_try) 2>&5
7202 ac_status=$?
7203 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7204 (exit $ac_status); }; }; then
7205 eval "$as_ac_var=yes"
7206else
7207 echo "$as_me: failed program was:" >&5
7208cat conftest.$ac_ext >&5
7209eval "$as_ac_var=no"
7210fi
7211rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7212fi
7213echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7214echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7215if test `eval echo '${'$as_ac_var'}'` = yes; then
7216 cat >>confdefs.h <<_ACEOF
7217@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7218_ACEOF
7219
7220for ac_header in libgen.h
7221do
7222as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7223if eval "test \"\${$as_ac_Header+set}\" = set"; then
7224 echo "$as_me:$LINENO: checking for $ac_header" >&5
7225echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7226if eval "test \"\${$as_ac_Header+set}\" = set"; then
7227 echo $ECHO_N "(cached) $ECHO_C" >&6
7228fi
7229echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7230echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7231else
7232 # Is the header compilable?
7233echo "$as_me:$LINENO: checking $ac_header usability" >&5
7234echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7235cat >conftest.$ac_ext <<_ACEOF
7236#line $LINENO "configure"
7237#include "confdefs.h"
7238$ac_includes_default
7239@%:@include <$ac_header>
7240_ACEOF
7241rm -f conftest.$ac_objext
7242if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7243 (eval $ac_compile) 2>&5
7244 ac_status=$?
7245 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7246 (exit $ac_status); } &&
7247 { ac_try='test -s conftest.$ac_objext'
7248 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7249 (eval $ac_try) 2>&5
7250 ac_status=$?
7251 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7252 (exit $ac_status); }; }; then
7253 ac_header_compiler=yes
7254else
7255 echo "$as_me: failed program was:" >&5
7256cat conftest.$ac_ext >&5
7257ac_header_compiler=no
7258fi
7259rm -f conftest.$ac_objext conftest.$ac_ext
7260echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
7261echo "${ECHO_T}$ac_header_compiler" >&6
7262
7263# Is the header present?
7264echo "$as_me:$LINENO: checking $ac_header presence" >&5
7265echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
7266cat >conftest.$ac_ext <<_ACEOF
7267#line $LINENO "configure"
7268#include "confdefs.h"
7269@%:@include <$ac_header>
7270_ACEOF
7271if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7272 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7273 ac_status=$?
7274 egrep -v '^ *\+' conftest.er1 >conftest.err
7275 rm -f conftest.er1
7276 cat conftest.err >&5
7277 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7278 (exit $ac_status); } >/dev/null; then
7279 if test -s conftest.err; then
7280 ac_cpp_err=$ac_c_preproc_warn_flag
7281 else
7282 ac_cpp_err=
7283 fi
7284else
7285 ac_cpp_err=yes
7286fi
7287if test -z "$ac_cpp_err"; then
7288 ac_header_preproc=yes
7289else
7290 echo "$as_me: failed program was:" >&5
7291 cat conftest.$ac_ext >&5
7292 ac_header_preproc=no
7293fi
7294rm -f conftest.err conftest.$ac_ext
7295echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
7296echo "${ECHO_T}$ac_header_preproc" >&6
7297
7298# So? What about this header?
7299case $ac_header_compiler:$ac_header_preproc in
7300 yes:no )
7301 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
7302echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
7303 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7304echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
7305 no:yes )
7306 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
7307echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
7308 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7309echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7310 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7311echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
7312esac
7313echo "$as_me:$LINENO: checking for $ac_header" >&5
7314echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7315if eval "test \"\${$as_ac_Header+set}\" = set"; then
7316 echo $ECHO_N "(cached) $ECHO_C" >&6
7317else
7318 eval "$as_ac_Header=$ac_header_preproc"
7319fi
7320echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7321echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7322
7323fi
7324if test `eval echo '${'$as_ac_Header'}'` = yes; then
7325 cat >>confdefs.h <<_ACEOF
7326@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
7327_ACEOF
7328
7329fi
7330
7331done
7332
7333else
7334
7335 echo "$as_me:$LINENO: checking for dirname in -lgen" >&5
7336echo $ECHO_N "checking for dirname in -lgen... $ECHO_C" >&6
7337if test "${ac_cv_lib_gen_dirname+set}" = set; then
7338 echo $ECHO_N "(cached) $ECHO_C" >&6
7339else
7340 ac_check_lib_save_LIBS=$LIBS
7341LIBS="-lgen $LIBS"
7342cat >conftest.$ac_ext <<_ACEOF
7343#line $LINENO "configure"
7344#include "confdefs.h"
7345
7346/* Override any gcc2 internal prototype to avoid an error. */
7347#ifdef __cplusplus
7348extern "C"
7349#endif
7350/* We use char because int might match the return type of a gcc2
7351 builtin and then its argument prototype would still apply. */
7352char dirname ();
7353#ifdef F77_DUMMY_MAIN
7354# ifdef __cplusplus
7355 extern "C"
7356# endif
7357 int F77_DUMMY_MAIN() { return 1; }
7358#endif
7359int
7360main ()
7361{
7362dirname ();
7363 ;
7364 return 0;
7365}
7366_ACEOF
7367rm -f conftest.$ac_objext conftest$ac_exeext
7368if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7369 (eval $ac_link) 2>&5
7370 ac_status=$?
7371 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7372 (exit $ac_status); } &&
7373 { ac_try='test -s conftest$ac_exeext'
7374 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7375 (eval $ac_try) 2>&5
7376 ac_status=$?
7377 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7378 (exit $ac_status); }; }; then
7379 ac_cv_lib_gen_dirname=yes
7380else
7381 echo "$as_me: failed program was:" >&5
7382cat conftest.$ac_ext >&5
7383ac_cv_lib_gen_dirname=no
7384fi
7385rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7386LIBS=$ac_check_lib_save_LIBS
7387fi
7388echo "$as_me:$LINENO: result: $ac_cv_lib_gen_dirname" >&5
7389echo "${ECHO_T}$ac_cv_lib_gen_dirname" >&6
7390if test $ac_cv_lib_gen_dirname = yes; then
7391
7392 echo "$as_me:$LINENO: checking for broken dirname" >&5
7393echo $ECHO_N "checking for broken dirname... $ECHO_C" >&6
7394if test "${ac_cv_have_broken_dirname+set}" = set; then
7395 echo $ECHO_N "(cached) $ECHO_C" >&6
7396else
7397
7398 save_LIBS="$LIBS"
7399 LIBS="$LIBS -lgen"
7400 if test "$cross_compiling" = yes; then
7401 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
7402echo "$as_me: error: cannot run test program while cross compiling" >&2;}
7403 { (exit 1); exit 1; }; }
7404else
7405 cat >conftest.$ac_ext <<_ACEOF
7406#line $LINENO "configure"
7407#include "confdefs.h"
7408
7409#include <libgen.h>
7410#include <string.h>
7411
7412int main(int argc, char **argv) {
7413 char *s, buf[32];
7414
7415 strncpy(buf,"/etc", 32);
7416 s = dirname(buf);
7417 if (!s || strncmp(s, "/", 32) != 0) {
7418 exit(1);
7419 } else {
7420 exit(0);
7421 }
7422}
7423
7424_ACEOF
7425rm -f conftest$ac_exeext
7426if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7427 (eval $ac_link) 2>&5
7428 ac_status=$?
7429 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7430 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
7431 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7432 (eval $ac_try) 2>&5
7433 ac_status=$?
7434 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7435 (exit $ac_status); }; }; then
7436 ac_cv_have_broken_dirname="no"
7437else
7438 echo "$as_me: program exited with status $ac_status" >&5
7439echo "$as_me: failed program was:" >&5
7440cat conftest.$ac_ext >&5
7441( exit $ac_status )
7442 ac_cv_have_broken_dirname="yes"
7443
7444fi
7445rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
7446fi
7447 LIBS="$save_LIBS"
7448
7449fi
7450echo "$as_me:$LINENO: result: $ac_cv_have_broken_dirname" >&5
7451echo "${ECHO_T}$ac_cv_have_broken_dirname" >&6
7452 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
7453 LIBS="$LIBS -lgen"
7454 cat >>confdefs.h <<\_ACEOF
7455@%:@define HAVE_DIRNAME 1
7456_ACEOF
7457
7458
7459for ac_header in libgen.h
7460do
7461as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7462if eval "test \"\${$as_ac_Header+set}\" = set"; then
7463 echo "$as_me:$LINENO: checking for $ac_header" >&5
7464echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7465if eval "test \"\${$as_ac_Header+set}\" = set"; then
7466 echo $ECHO_N "(cached) $ECHO_C" >&6
7467fi
7468echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7469echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7470else
7471 # Is the header compilable?
7472echo "$as_me:$LINENO: checking $ac_header usability" >&5
7473echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7474cat >conftest.$ac_ext <<_ACEOF
7475#line $LINENO "configure"
7476#include "confdefs.h"
7477$ac_includes_default
7478@%:@include <$ac_header>
7479_ACEOF
7480rm -f conftest.$ac_objext
7481if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7482 (eval $ac_compile) 2>&5
7483 ac_status=$?
7484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7485 (exit $ac_status); } &&
7486 { ac_try='test -s conftest.$ac_objext'
7487 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7488 (eval $ac_try) 2>&5
7489 ac_status=$?
7490 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7491 (exit $ac_status); }; }; then
7492 ac_header_compiler=yes
7493else
7494 echo "$as_me: failed program was:" >&5
7495cat conftest.$ac_ext >&5
7496ac_header_compiler=no
7497fi
7498rm -f conftest.$ac_objext conftest.$ac_ext
7499echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
7500echo "${ECHO_T}$ac_header_compiler" >&6
7501
7502# Is the header present?
7503echo "$as_me:$LINENO: checking $ac_header presence" >&5
7504echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
7505cat >conftest.$ac_ext <<_ACEOF
7506#line $LINENO "configure"
7507#include "confdefs.h"
7508@%:@include <$ac_header>
7509_ACEOF
7510if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7511 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7512 ac_status=$?
7513 egrep -v '^ *\+' conftest.er1 >conftest.err
7514 rm -f conftest.er1
7515 cat conftest.err >&5
7516 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7517 (exit $ac_status); } >/dev/null; then
7518 if test -s conftest.err; then
7519 ac_cpp_err=$ac_c_preproc_warn_flag
7520 else
7521 ac_cpp_err=
7522 fi
7523else
7524 ac_cpp_err=yes
7525fi
7526if test -z "$ac_cpp_err"; then
7527 ac_header_preproc=yes
7528else
7529 echo "$as_me: failed program was:" >&5
7530 cat conftest.$ac_ext >&5
7531 ac_header_preproc=no
7532fi
7533rm -f conftest.err conftest.$ac_ext
7534echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
7535echo "${ECHO_T}$ac_header_preproc" >&6
7536
7537# So? What about this header?
7538case $ac_header_compiler:$ac_header_preproc in
7539 yes:no )
7540 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
7541echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
7542 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7543echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
7544 no:yes )
7545 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
7546echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
7547 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7548echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7549 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7550echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
7551esac
7552echo "$as_me:$LINENO: checking for $ac_header" >&5
7553echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7554if eval "test \"\${$as_ac_Header+set}\" = set"; then
7555 echo $ECHO_N "(cached) $ECHO_C" >&6
7556else
7557 eval "$as_ac_Header=$ac_header_preproc"
7558fi
7559echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7560echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7561
7562fi
7563if test `eval echo '${'$as_ac_Header'}'` = yes; then
7564 cat >>confdefs.h <<_ACEOF
7565@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
7566_ACEOF
7567
7568fi
7569
7570done
7571
7572 fi
7573
7574fi
7575
7576
7577fi
7578done
7579
7580
7581
7582
7583for ac_func in gettimeofday time
7584do
7585as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7586echo "$as_me:$LINENO: checking for $ac_func" >&5
7587echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7588if eval "test \"\${$as_ac_var+set}\" = set"; then
7589 echo $ECHO_N "(cached) $ECHO_C" >&6
7590else
7591 cat >conftest.$ac_ext <<_ACEOF
7592#line $LINENO "configure"
7593#include "confdefs.h"
7594/* System header to define __stub macros and hopefully few prototypes,
7595 which can conflict with char $ac_func (); below. */
7596#include <assert.h>
7597/* Override any gcc2 internal prototype to avoid an error. */
7598#ifdef __cplusplus
7599extern "C"
7600#endif
7601/* We use char because int might match the return type of a gcc2
7602 builtin and then its argument prototype would still apply. */
7603char $ac_func ();
7604char (*f) ();
7605
7606#ifdef F77_DUMMY_MAIN
7607# ifdef __cplusplus
7608 extern "C"
7609# endif
7610 int F77_DUMMY_MAIN() { return 1; }
7611#endif
7612int
7613main ()
7614{
7615/* The GNU C library defines this for functions which it implements
7616 to always fail with ENOSYS. Some functions are actually named
7617 something starting with __ and the normal name is an alias. */
7618#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7619choke me
7620#else
7621f = $ac_func;
7622#endif
7623
7624 ;
7625 return 0;
7626}
7627_ACEOF
7628rm -f conftest.$ac_objext conftest$ac_exeext
7629if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7630 (eval $ac_link) 2>&5
7631 ac_status=$?
7632 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7633 (exit $ac_status); } &&
7634 { ac_try='test -s conftest$ac_exeext'
7635 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7636 (eval $ac_try) 2>&5
7637 ac_status=$?
7638 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7639 (exit $ac_status); }; }; then
7640 eval "$as_ac_var=yes"
7641else
7642 echo "$as_me: failed program was:" >&5
7643cat conftest.$ac_ext >&5
7644eval "$as_ac_var=no"
7645fi
7646rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7647fi
7648echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7649echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7650if test `eval echo '${'$as_ac_var'}'` = yes; then
7651 cat >>confdefs.h <<_ACEOF
7652@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7653_ACEOF
7654
7655fi
7656done
7657
7658
7659
7660
7661
7662
7663
7664for ac_func in endutent getutent getutid getutline pututline setutent
7665do
7666as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7667echo "$as_me:$LINENO: checking for $ac_func" >&5
7668echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7669if eval "test \"\${$as_ac_var+set}\" = set"; then
7670 echo $ECHO_N "(cached) $ECHO_C" >&6
7671else
7672 cat >conftest.$ac_ext <<_ACEOF
7673#line $LINENO "configure"
7674#include "confdefs.h"
7675/* System header to define __stub macros and hopefully few prototypes,
7676 which can conflict with char $ac_func (); below. */
7677#include <assert.h>
7678/* Override any gcc2 internal prototype to avoid an error. */
7679#ifdef __cplusplus
7680extern "C"
7681#endif
7682/* We use char because int might match the return type of a gcc2
7683 builtin and then its argument prototype would still apply. */
7684char $ac_func ();
7685char (*f) ();
7686
7687#ifdef F77_DUMMY_MAIN
7688# ifdef __cplusplus
7689 extern "C"
7690# endif
7691 int F77_DUMMY_MAIN() { return 1; }
7692#endif
7693int
7694main ()
7695{
7696/* The GNU C library defines this for functions which it implements
7697 to always fail with ENOSYS. Some functions are actually named
7698 something starting with __ and the normal name is an alias. */
7699#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7700choke me
7701#else
7702f = $ac_func;
7703#endif
7704
7705 ;
7706 return 0;
7707}
7708_ACEOF
7709rm -f conftest.$ac_objext conftest$ac_exeext
7710if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7711 (eval $ac_link) 2>&5
7712 ac_status=$?
7713 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7714 (exit $ac_status); } &&
7715 { ac_try='test -s conftest$ac_exeext'
7716 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7717 (eval $ac_try) 2>&5
7718 ac_status=$?
7719 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7720 (exit $ac_status); }; }; then
7721 eval "$as_ac_var=yes"
7722else
7723 echo "$as_me: failed program was:" >&5
7724cat conftest.$ac_ext >&5
7725eval "$as_ac_var=no"
7726fi
7727rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7728fi
7729echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7730echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7731if test `eval echo '${'$as_ac_var'}'` = yes; then
7732 cat >>confdefs.h <<_ACEOF
7733@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7734_ACEOF
7735
7736fi
7737done
7738
7739
7740for ac_func in utmpname
7741do
7742as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7743echo "$as_me:$LINENO: checking for $ac_func" >&5
7744echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7745if eval "test \"\${$as_ac_var+set}\" = set"; then
7746 echo $ECHO_N "(cached) $ECHO_C" >&6
7747else
7748 cat >conftest.$ac_ext <<_ACEOF
7749#line $LINENO "configure"
7750#include "confdefs.h"
7751/* System header to define __stub macros and hopefully few prototypes,
7752 which can conflict with char $ac_func (); below. */
7753#include <assert.h>
7754/* Override any gcc2 internal prototype to avoid an error. */
7755#ifdef __cplusplus
7756extern "C"
7757#endif
7758/* We use char because int might match the return type of a gcc2
7759 builtin and then its argument prototype would still apply. */
7760char $ac_func ();
7761char (*f) ();
7762
7763#ifdef F77_DUMMY_MAIN
7764# ifdef __cplusplus
7765 extern "C"
7766# endif
7767 int F77_DUMMY_MAIN() { return 1; }
7768#endif
7769int
7770main ()
7771{
7772/* The GNU C library defines this for functions which it implements
7773 to always fail with ENOSYS. Some functions are actually named
7774 something starting with __ and the normal name is an alias. */
7775#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7776choke me
7777#else
7778f = $ac_func;
7779#endif
7780
7781 ;
7782 return 0;
7783}
7784_ACEOF
7785rm -f conftest.$ac_objext conftest$ac_exeext
7786if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7787 (eval $ac_link) 2>&5
7788 ac_status=$?
7789 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7790 (exit $ac_status); } &&
7791 { ac_try='test -s conftest$ac_exeext'
7792 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7793 (eval $ac_try) 2>&5
7794 ac_status=$?
7795 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7796 (exit $ac_status); }; }; then
7797 eval "$as_ac_var=yes"
7798else
7799 echo "$as_me: failed program was:" >&5
7800cat conftest.$ac_ext >&5
7801eval "$as_ac_var=no"
7802fi
7803rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7804fi
7805echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7806echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7807if test `eval echo '${'$as_ac_var'}'` = yes; then
7808 cat >>confdefs.h <<_ACEOF
7809@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7810_ACEOF
7811
7812fi
7813done
7814
7815
7816
7817
7818
7819
7820for ac_func in endutxent getutxent getutxid getutxline pututxline
7821do
7822as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7823echo "$as_me:$LINENO: checking for $ac_func" >&5
7824echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7825if eval "test \"\${$as_ac_var+set}\" = set"; then
7826 echo $ECHO_N "(cached) $ECHO_C" >&6
7827else
7828 cat >conftest.$ac_ext <<_ACEOF
7829#line $LINENO "configure"
7830#include "confdefs.h"
7831/* System header to define __stub macros and hopefully few prototypes,
7832 which can conflict with char $ac_func (); below. */
7833#include <assert.h>
7834/* Override any gcc2 internal prototype to avoid an error. */
7835#ifdef __cplusplus
7836extern "C"
7837#endif
7838/* We use char because int might match the return type of a gcc2
7839 builtin and then its argument prototype would still apply. */
7840char $ac_func ();
7841char (*f) ();
7842
7843#ifdef F77_DUMMY_MAIN
7844# ifdef __cplusplus
7845 extern "C"
7846# endif
7847 int F77_DUMMY_MAIN() { return 1; }
7848#endif
7849int
7850main ()
7851{
7852/* The GNU C library defines this for functions which it implements
7853 to always fail with ENOSYS. Some functions are actually named
7854 something starting with __ and the normal name is an alias. */
7855#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7856choke me
7857#else
7858f = $ac_func;
7859#endif
7860
7861 ;
7862 return 0;
7863}
7864_ACEOF
7865rm -f conftest.$ac_objext conftest$ac_exeext
7866if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7867 (eval $ac_link) 2>&5
7868 ac_status=$?
7869 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7870 (exit $ac_status); } &&
7871 { ac_try='test -s conftest$ac_exeext'
7872 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7873 (eval $ac_try) 2>&5
7874 ac_status=$?
7875 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7876 (exit $ac_status); }; }; then
7877 eval "$as_ac_var=yes"
7878else
7879 echo "$as_me: failed program was:" >&5
7880cat conftest.$ac_ext >&5
7881eval "$as_ac_var=no"
7882fi
7883rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7884fi
7885echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7886echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7887if test `eval echo '${'$as_ac_var'}'` = yes; then
7888 cat >>confdefs.h <<_ACEOF
7889@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7890_ACEOF
7891
7892fi
7893done
7894
7895
7896
7897for ac_func in setutxent utmpxname
7898do
7899as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7900echo "$as_me:$LINENO: checking for $ac_func" >&5
7901echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7902if eval "test \"\${$as_ac_var+set}\" = set"; then
7903 echo $ECHO_N "(cached) $ECHO_C" >&6
7904else
7905 cat >conftest.$ac_ext <<_ACEOF
7906#line $LINENO "configure"
7907#include "confdefs.h"
7908/* System header to define __stub macros and hopefully few prototypes,
7909 which can conflict with char $ac_func (); below. */
7910#include <assert.h>
7911/* Override any gcc2 internal prototype to avoid an error. */
7912#ifdef __cplusplus
7913extern "C"
7914#endif
7915/* We use char because int might match the return type of a gcc2
7916 builtin and then its argument prototype would still apply. */
7917char $ac_func ();
7918char (*f) ();
7919
7920#ifdef F77_DUMMY_MAIN
7921# ifdef __cplusplus
7922 extern "C"
7923# endif
7924 int F77_DUMMY_MAIN() { return 1; }
7925#endif
7926int
7927main ()
7928{
7929/* The GNU C library defines this for functions which it implements
7930 to always fail with ENOSYS. Some functions are actually named
7931 something starting with __ and the normal name is an alias. */
7932#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7933choke me
7934#else
7935f = $ac_func;
7936#endif
7937
7938 ;
7939 return 0;
7940}
7941_ACEOF
7942rm -f conftest.$ac_objext conftest$ac_exeext
7943if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7944 (eval $ac_link) 2>&5
7945 ac_status=$?
7946 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7947 (exit $ac_status); } &&
7948 { ac_try='test -s conftest$ac_exeext'
7949 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7950 (eval $ac_try) 2>&5
7951 ac_status=$?
7952 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7953 (exit $ac_status); }; }; then
7954 eval "$as_ac_var=yes"
7955else
7956 echo "$as_me: failed program was:" >&5
7957cat conftest.$ac_ext >&5
7958eval "$as_ac_var=no"
7959fi
7960rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7961fi
7962echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7963echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7964if test `eval echo '${'$as_ac_var'}'` = yes; then
7965 cat >>confdefs.h <<_ACEOF
7966@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7967_ACEOF
7968
7969fi
7970done
7971
7972
7973echo "$as_me:$LINENO: checking for daemon" >&5
7974echo $ECHO_N "checking for daemon... $ECHO_C" >&6
7975if test "${ac_cv_func_daemon+set}" = set; then
7976 echo $ECHO_N "(cached) $ECHO_C" >&6
7977else
7978 cat >conftest.$ac_ext <<_ACEOF
7979#line $LINENO "configure"
7980#include "confdefs.h"
7981/* System header to define __stub macros and hopefully few prototypes,
7982 which can conflict with char daemon (); below. */
7983#include <assert.h>
7984/* Override any gcc2 internal prototype to avoid an error. */
7985#ifdef __cplusplus
7986extern "C"
7987#endif
7988/* We use char because int might match the return type of a gcc2
7989 builtin and then its argument prototype would still apply. */
7990char daemon ();
7991char (*f) ();
7992
7993#ifdef F77_DUMMY_MAIN
7994# ifdef __cplusplus
7995 extern "C"
7996# endif
7997 int F77_DUMMY_MAIN() { return 1; }
7998#endif
7999int
8000main ()
8001{
8002/* The GNU C library defines this for functions which it implements
8003 to always fail with ENOSYS. Some functions are actually named
8004 something starting with __ and the normal name is an alias. */
8005#if defined (__stub_daemon) || defined (__stub___daemon)
8006choke me
8007#else
8008f = daemon;
8009#endif
8010
8011 ;
8012 return 0;
8013}
8014_ACEOF
8015rm -f conftest.$ac_objext conftest$ac_exeext
8016if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8017 (eval $ac_link) 2>&5
8018 ac_status=$?
8019 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8020 (exit $ac_status); } &&
8021 { ac_try='test -s conftest$ac_exeext'
8022 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8023 (eval $ac_try) 2>&5
8024 ac_status=$?
8025 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8026 (exit $ac_status); }; }; then
8027 ac_cv_func_daemon=yes
8028else
8029 echo "$as_me: failed program was:" >&5
8030cat conftest.$ac_ext >&5
8031ac_cv_func_daemon=no
8032fi
8033rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8034fi
8035echo "$as_me:$LINENO: result: $ac_cv_func_daemon" >&5
8036echo "${ECHO_T}$ac_cv_func_daemon" >&6
8037if test $ac_cv_func_daemon = yes; then
8038 cat >>confdefs.h <<\_ACEOF
8039@%:@define HAVE_DAEMON 1
8040_ACEOF
8041
8042else
8043 echo "$as_me:$LINENO: checking for daemon in -lbsd" >&5
8044echo $ECHO_N "checking for daemon in -lbsd... $ECHO_C" >&6
8045if test "${ac_cv_lib_bsd_daemon+set}" = set; then
8046 echo $ECHO_N "(cached) $ECHO_C" >&6
8047else
8048 ac_check_lib_save_LIBS=$LIBS
8049LIBS="-lbsd $LIBS"
8050cat >conftest.$ac_ext <<_ACEOF
8051#line $LINENO "configure"
8052#include "confdefs.h"
8053
8054/* Override any gcc2 internal prototype to avoid an error. */
8055#ifdef __cplusplus
8056extern "C"
8057#endif
8058/* We use char because int might match the return type of a gcc2
8059 builtin and then its argument prototype would still apply. */
8060char daemon ();
8061#ifdef F77_DUMMY_MAIN
8062# ifdef __cplusplus
8063 extern "C"
8064# endif
8065 int F77_DUMMY_MAIN() { return 1; }
8066#endif
8067int
8068main ()
8069{
8070daemon ();
8071 ;
8072 return 0;
8073}
8074_ACEOF
8075rm -f conftest.$ac_objext conftest$ac_exeext
8076if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8077 (eval $ac_link) 2>&5
8078 ac_status=$?
8079 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8080 (exit $ac_status); } &&
8081 { ac_try='test -s conftest$ac_exeext'
8082 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8083 (eval $ac_try) 2>&5
8084 ac_status=$?
8085 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8086 (exit $ac_status); }; }; then
8087 ac_cv_lib_bsd_daemon=yes
8088else
8089 echo "$as_me: failed program was:" >&5
8090cat conftest.$ac_ext >&5
8091ac_cv_lib_bsd_daemon=no
8092fi
8093rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8094LIBS=$ac_check_lib_save_LIBS
8095fi
8096echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_daemon" >&5
8097echo "${ECHO_T}$ac_cv_lib_bsd_daemon" >&6
8098if test $ac_cv_lib_bsd_daemon = yes; then
8099 LIBS="$LIBS -lbsd"; cat >>confdefs.h <<\_ACEOF
8100@%:@define HAVE_DAEMON 1
8101_ACEOF
8102
8103fi
8104
8105
8106fi
8107
8108
8109echo "$as_me:$LINENO: checking for getpagesize" >&5
8110echo $ECHO_N "checking for getpagesize... $ECHO_C" >&6
8111if test "${ac_cv_func_getpagesize+set}" = set; then
8112 echo $ECHO_N "(cached) $ECHO_C" >&6
8113else
8114 cat >conftest.$ac_ext <<_ACEOF
8115#line $LINENO "configure"
8116#include "confdefs.h"
8117/* System header to define __stub macros and hopefully few prototypes,
8118 which can conflict with char getpagesize (); below. */
8119#include <assert.h>
8120/* Override any gcc2 internal prototype to avoid an error. */
8121#ifdef __cplusplus
8122extern "C"
8123#endif
8124/* We use char because int might match the return type of a gcc2
8125 builtin and then its argument prototype would still apply. */
8126char getpagesize ();
8127char (*f) ();
8128
8129#ifdef F77_DUMMY_MAIN
8130# ifdef __cplusplus
8131 extern "C"
8132# endif
8133 int F77_DUMMY_MAIN() { return 1; }
8134#endif
8135int
8136main ()
8137{
8138/* The GNU C library defines this for functions which it implements
8139 to always fail with ENOSYS. Some functions are actually named
8140 something starting with __ and the normal name is an alias. */
8141#if defined (__stub_getpagesize) || defined (__stub___getpagesize)
8142choke me
8143#else
8144f = getpagesize;
8145#endif
8146
8147 ;
8148 return 0;
8149}
8150_ACEOF
8151rm -f conftest.$ac_objext conftest$ac_exeext
8152if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8153 (eval $ac_link) 2>&5
8154 ac_status=$?
8155 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8156 (exit $ac_status); } &&
8157 { ac_try='test -s conftest$ac_exeext'
8158 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8159 (eval $ac_try) 2>&5
8160 ac_status=$?
8161 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8162 (exit $ac_status); }; }; then
8163 ac_cv_func_getpagesize=yes
8164else
8165 echo "$as_me: failed program was:" >&5
8166cat conftest.$ac_ext >&5
8167ac_cv_func_getpagesize=no
8168fi
8169rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8170fi
8171echo "$as_me:$LINENO: result: $ac_cv_func_getpagesize" >&5
8172echo "${ECHO_T}$ac_cv_func_getpagesize" >&6
8173if test $ac_cv_func_getpagesize = yes; then
8174 cat >>confdefs.h <<\_ACEOF
8175@%:@define HAVE_GETPAGESIZE 1
8176_ACEOF
8177
8178else
8179 echo "$as_me:$LINENO: checking for getpagesize in -lucb" >&5
8180echo $ECHO_N "checking for getpagesize in -lucb... $ECHO_C" >&6
8181if test "${ac_cv_lib_ucb_getpagesize+set}" = set; then
8182 echo $ECHO_N "(cached) $ECHO_C" >&6
8183else
8184 ac_check_lib_save_LIBS=$LIBS
8185LIBS="-lucb $LIBS"
8186cat >conftest.$ac_ext <<_ACEOF
8187#line $LINENO "configure"
8188#include "confdefs.h"
8189
8190/* Override any gcc2 internal prototype to avoid an error. */
8191#ifdef __cplusplus
8192extern "C"
8193#endif
8194/* We use char because int might match the return type of a gcc2
8195 builtin and then its argument prototype would still apply. */
8196char getpagesize ();
8197#ifdef F77_DUMMY_MAIN
8198# ifdef __cplusplus
8199 extern "C"
8200# endif
8201 int F77_DUMMY_MAIN() { return 1; }
8202#endif
8203int
8204main ()
8205{
8206getpagesize ();
8207 ;
8208 return 0;
8209}
8210_ACEOF
8211rm -f conftest.$ac_objext conftest$ac_exeext
8212if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8213 (eval $ac_link) 2>&5
8214 ac_status=$?
8215 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8216 (exit $ac_status); } &&
8217 { ac_try='test -s conftest$ac_exeext'
8218 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8219 (eval $ac_try) 2>&5
8220 ac_status=$?
8221 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8222 (exit $ac_status); }; }; then
8223 ac_cv_lib_ucb_getpagesize=yes
8224else
8225 echo "$as_me: failed program was:" >&5
8226cat conftest.$ac_ext >&5
8227ac_cv_lib_ucb_getpagesize=no
8228fi
8229rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8230LIBS=$ac_check_lib_save_LIBS
8231fi
8232echo "$as_me:$LINENO: result: $ac_cv_lib_ucb_getpagesize" >&5
8233echo "${ECHO_T}$ac_cv_lib_ucb_getpagesize" >&6
8234if test $ac_cv_lib_ucb_getpagesize = yes; then
8235 LIBS="$LIBS -lucb"; cat >>confdefs.h <<\_ACEOF
8236@%:@define HAVE_GETPAGESIZE 1
8237_ACEOF
8238
8239fi
8240
8241
8242fi
8243
8244
8245# Check for broken snprintf
8246if test "x$ac_cv_func_snprintf" = "xyes" ; then
8247 echo "$as_me:$LINENO: checking whether snprintf correctly terminates long strings" >&5
8248echo $ECHO_N "checking whether snprintf correctly terminates long strings... $ECHO_C" >&6
8249 if test "$cross_compiling" = yes; then
8250 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
8251echo "$as_me: error: cannot run test program while cross compiling" >&2;}
8252 { (exit 1); exit 1; }; }
8253else
8254 cat >conftest.$ac_ext <<_ACEOF
8255#line $LINENO "configure"
8256#include "confdefs.h"
8257
8258#include <stdio.h>
8259int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');}
8260
8261_ACEOF
8262rm -f conftest$ac_exeext
8263if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8264 (eval $ac_link) 2>&5
8265 ac_status=$?
8266 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8267 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
8268 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8269 (eval $ac_try) 2>&5
8270 ac_status=$?
8271 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8272 (exit $ac_status); }; }; then
8273 echo "$as_me:$LINENO: result: yes" >&5
8274echo "${ECHO_T}yes" >&6
8275else
8276 echo "$as_me: program exited with status $ac_status" >&5
8277echo "$as_me: failed program was:" >&5
8278cat conftest.$ac_ext >&5
8279( exit $ac_status )
8280
8281 echo "$as_me:$LINENO: result: no" >&5
8282echo "${ECHO_T}no" >&6
8283 cat >>confdefs.h <<\_ACEOF
8284@%:@define BROKEN_SNPRINTF 1
8285_ACEOF
8286
8287 { echo "$as_me:$LINENO: WARNING: ****** Your snprintf() function is broken, complain to your vendor" >&5
8288echo "$as_me: WARNING: ****** Your snprintf() function is broken, complain to your vendor" >&2;}
8289
8290
8291fi
8292rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8293fi
8294fi
8295
8296if test "x$ac_cv_func_mkdtemp" = "xyes" ; then
8297echo "$as_me:$LINENO: checking for (overly) strict mkstemp" >&5
8298echo $ECHO_N "checking for (overly) strict mkstemp... $ECHO_C" >&6
8299if test "$cross_compiling" = yes; then
8300
8301 echo "$as_me:$LINENO: result: yes" >&5
8302echo "${ECHO_T}yes" >&6
8303 cat >>confdefs.h <<\_ACEOF
8304@%:@define HAVE_STRICT_MKSTEMP 1
8305_ACEOF
8306
8307
8308
8309else
8310 cat >conftest.$ac_ext <<_ACEOF
8311#line $LINENO "configure"
8312#include "confdefs.h"
8313
8314#include <stdlib.h>
8315main() { char template[]="conftest.mkstemp-test";
8316if (mkstemp(template) == -1)
8317 exit(1);
8318unlink(template); exit(0);
8319}
8320
8321_ACEOF
8322rm -f conftest$ac_exeext
8323if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8324 (eval $ac_link) 2>&5
8325 ac_status=$?
8326 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8327 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
8328 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8329 (eval $ac_try) 2>&5
8330 ac_status=$?
8331 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8332 (exit $ac_status); }; }; then
8333
8334 echo "$as_me:$LINENO: result: no" >&5
8335echo "${ECHO_T}no" >&6
8336
8337else
8338 echo "$as_me: program exited with status $ac_status" >&5
8339echo "$as_me: failed program was:" >&5
8340cat conftest.$ac_ext >&5
8341( exit $ac_status )
8342
8343 echo "$as_me:$LINENO: result: yes" >&5
8344echo "${ECHO_T}yes" >&6
8345 cat >>confdefs.h <<\_ACEOF
8346@%:@define HAVE_STRICT_MKSTEMP 1
8347_ACEOF
8348
8349
8350fi
8351rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8352fi
8353fi
8354
8355echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
8356echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6
8357if test "${ac_cv_func_getpgrp_void+set}" = set; then
8358 echo $ECHO_N "(cached) $ECHO_C" >&6
8359else
8360 # Use it with a single arg.
8361cat >conftest.$ac_ext <<_ACEOF
8362#line $LINENO "configure"
8363#include "confdefs.h"
8364$ac_includes_default
8365#ifdef F77_DUMMY_MAIN
8366# ifdef __cplusplus
8367 extern "C"
8368# endif
8369 int F77_DUMMY_MAIN() { return 1; }
8370#endif
8371int
8372main ()
8373{
8374getpgrp (0);
8375 ;
8376 return 0;
8377}
8378_ACEOF
8379rm -f conftest.$ac_objext
8380if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8381 (eval $ac_compile) 2>&5
8382 ac_status=$?
8383 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8384 (exit $ac_status); } &&
8385 { ac_try='test -s conftest.$ac_objext'
8386 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8387 (eval $ac_try) 2>&5
8388 ac_status=$?
8389 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8390 (exit $ac_status); }; }; then
8391 ac_cv_func_getpgrp_void=no
8392else
8393 echo "$as_me: failed program was:" >&5
8394cat conftest.$ac_ext >&5
8395ac_cv_func_getpgrp_void=yes
8396fi
8397rm -f conftest.$ac_objext conftest.$ac_ext
8398
8399fi
8400echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5
8401echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6
8402if test $ac_cv_func_getpgrp_void = yes; then
8403
8404cat >>confdefs.h <<\_ACEOF
8405@%:@define GETPGRP_VOID 1
8406_ACEOF
8407
8408fi
8409
8410
8411# Check for PAM libs
8412PAM_MSG="no"
8413
8414# Check whether --with-pam or --without-pam was given.
8415if test "${with_pam+set}" = set; then
8416 withval="$with_pam"
8417
8418 if test "x$withval" != "xno" ; then
8419 if test "x$ac_cv_header_security_pam_appl_h" != "xyes" ; then
8420 { { echo "$as_me:$LINENO: error: PAM headers not found" >&5
8421echo "$as_me: error: PAM headers not found" >&2;}
8422 { (exit 1); exit 1; }; }
8423 fi
8424
8425
8426echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
8427echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
8428if test "${ac_cv_lib_dl_dlopen+set}" = set; then
8429 echo $ECHO_N "(cached) $ECHO_C" >&6
8430else
8431 ac_check_lib_save_LIBS=$LIBS
8432LIBS="-ldl $LIBS"
8433cat >conftest.$ac_ext <<_ACEOF
8434#line $LINENO "configure"
8435#include "confdefs.h"
8436
8437/* Override any gcc2 internal prototype to avoid an error. */
8438#ifdef __cplusplus
8439extern "C"
8440#endif
8441/* We use char because int might match the return type of a gcc2
8442 builtin and then its argument prototype would still apply. */
8443char dlopen ();
8444#ifdef F77_DUMMY_MAIN
8445# ifdef __cplusplus
8446 extern "C"
8447# endif
8448 int F77_DUMMY_MAIN() { return 1; }
8449#endif
8450int
8451main ()
8452{
8453dlopen ();
8454 ;
8455 return 0;
8456}
8457_ACEOF
8458rm -f conftest.$ac_objext conftest$ac_exeext
8459if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8460 (eval $ac_link) 2>&5
8461 ac_status=$?
8462 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8463 (exit $ac_status); } &&
8464 { ac_try='test -s conftest$ac_exeext'
8465 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8466 (eval $ac_try) 2>&5
8467 ac_status=$?
8468 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8469 (exit $ac_status); }; }; then
8470 ac_cv_lib_dl_dlopen=yes
8471else
8472 echo "$as_me: failed program was:" >&5
8473cat conftest.$ac_ext >&5
8474ac_cv_lib_dl_dlopen=no
8475fi
8476rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8477LIBS=$ac_check_lib_save_LIBS
8478fi
8479echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
8480echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
8481if test $ac_cv_lib_dl_dlopen = yes; then
8482 cat >>confdefs.h <<_ACEOF
8483@%:@define HAVE_LIBDL 1
8484_ACEOF
8485
8486 LIBS="-ldl $LIBS"
8487
8488fi
8489
8490
8491echo "$as_me:$LINENO: checking for pam_set_item in -lpam" >&5
8492echo $ECHO_N "checking for pam_set_item in -lpam... $ECHO_C" >&6
8493if test "${ac_cv_lib_pam_pam_set_item+set}" = set; then
8494 echo $ECHO_N "(cached) $ECHO_C" >&6
8495else
8496 ac_check_lib_save_LIBS=$LIBS
8497LIBS="-lpam $LIBS"
8498cat >conftest.$ac_ext <<_ACEOF
8499#line $LINENO "configure"
8500#include "confdefs.h"
8501
8502/* Override any gcc2 internal prototype to avoid an error. */
8503#ifdef __cplusplus
8504extern "C"
8505#endif
8506/* We use char because int might match the return type of a gcc2
8507 builtin and then its argument prototype would still apply. */
8508char pam_set_item ();
8509#ifdef F77_DUMMY_MAIN
8510# ifdef __cplusplus
8511 extern "C"
8512# endif
8513 int F77_DUMMY_MAIN() { return 1; }
8514#endif
8515int
8516main ()
8517{
8518pam_set_item ();
8519 ;
8520 return 0;
8521}
8522_ACEOF
8523rm -f conftest.$ac_objext conftest$ac_exeext
8524if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8525 (eval $ac_link) 2>&5
8526 ac_status=$?
8527 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8528 (exit $ac_status); } &&
8529 { ac_try='test -s conftest$ac_exeext'
8530 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8531 (eval $ac_try) 2>&5
8532 ac_status=$?
8533 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8534 (exit $ac_status); }; }; then
8535 ac_cv_lib_pam_pam_set_item=yes
8536else
8537 echo "$as_me: failed program was:" >&5
8538cat conftest.$ac_ext >&5
8539ac_cv_lib_pam_pam_set_item=no
8540fi
8541rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8542LIBS=$ac_check_lib_save_LIBS
8543fi
8544echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_set_item" >&5
8545echo "${ECHO_T}$ac_cv_lib_pam_pam_set_item" >&6
8546if test $ac_cv_lib_pam_pam_set_item = yes; then
8547 cat >>confdefs.h <<_ACEOF
8548@%:@define HAVE_LIBPAM 1
8549_ACEOF
8550
8551 LIBS="-lpam $LIBS"
8552
8553else
8554 { { echo "$as_me:$LINENO: error: *** libpam missing" >&5
8555echo "$as_me: error: *** libpam missing" >&2;}
8556 { (exit 1); exit 1; }; }
8557fi
8558
8559
8560for ac_func in pam_getenvlist
8561do
8562as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8563echo "$as_me:$LINENO: checking for $ac_func" >&5
8564echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8565if eval "test \"\${$as_ac_var+set}\" = set"; then
8566 echo $ECHO_N "(cached) $ECHO_C" >&6
8567else
8568 cat >conftest.$ac_ext <<_ACEOF
8569#line $LINENO "configure"
8570#include "confdefs.h"
8571/* System header to define __stub macros and hopefully few prototypes,
8572 which can conflict with char $ac_func (); below. */
8573#include <assert.h>
8574/* Override any gcc2 internal prototype to avoid an error. */
8575#ifdef __cplusplus
8576extern "C"
8577#endif
8578/* We use char because int might match the return type of a gcc2
8579 builtin and then its argument prototype would still apply. */
8580char $ac_func ();
8581char (*f) ();
8582
8583#ifdef F77_DUMMY_MAIN
8584# ifdef __cplusplus
8585 extern "C"
8586# endif
8587 int F77_DUMMY_MAIN() { return 1; }
8588#endif
8589int
8590main ()
8591{
8592/* The GNU C library defines this for functions which it implements
8593 to always fail with ENOSYS. Some functions are actually named
8594 something starting with __ and the normal name is an alias. */
8595#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8596choke me
8597#else
8598f = $ac_func;
8599#endif
8600
8601 ;
8602 return 0;
8603}
8604_ACEOF
8605rm -f conftest.$ac_objext conftest$ac_exeext
8606if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8607 (eval $ac_link) 2>&5
8608 ac_status=$?
8609 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8610 (exit $ac_status); } &&
8611 { ac_try='test -s conftest$ac_exeext'
8612 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8613 (eval $ac_try) 2>&5
8614 ac_status=$?
8615 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8616 (exit $ac_status); }; }; then
8617 eval "$as_ac_var=yes"
8618else
8619 echo "$as_me: failed program was:" >&5
8620cat conftest.$ac_ext >&5
8621eval "$as_ac_var=no"
8622fi
8623rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8624fi
8625echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8626echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8627if test `eval echo '${'$as_ac_var'}'` = yes; then
8628 cat >>confdefs.h <<_ACEOF
8629@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8630_ACEOF
8631
8632fi
8633done
8634
8635
8636 disable_shadow=yes
8637 PAM_MSG="yes"
8638
8639 cat >>confdefs.h <<\_ACEOF
8640@%:@define USE_PAM 1
8641_ACEOF
8642
8643 if test $ac_cv_lib_dl_dlopen = yes; then
8644 LIBPAM="-lpam -ldl"
8645 else
8646 LIBPAM="-lpam"
8647 fi
8648
8649 fi
8650
8651
8652fi;
8653
8654# Check for older PAM
8655if test "x$PAM_MSG" = "xyes" ; then
8656 # Check PAM strerror arguments (old PAM)
8657 echo "$as_me:$LINENO: checking whether pam_strerror takes only one argument" >&5
8658echo $ECHO_N "checking whether pam_strerror takes only one argument... $ECHO_C" >&6
8659 cat >conftest.$ac_ext <<_ACEOF
8660#line $LINENO "configure"
8661#include "confdefs.h"
8662
8663#include <stdlib.h>
8664#include <security/pam_appl.h>
8665
8666#ifdef F77_DUMMY_MAIN
8667# ifdef __cplusplus
8668 extern "C"
8669# endif
8670 int F77_DUMMY_MAIN() { return 1; }
8671#endif
8672int
8673main ()
8674{
8675(void)pam_strerror((pam_handle_t *)NULL, -1);
8676 ;
8677 return 0;
8678}
8679_ACEOF
8680rm -f conftest.$ac_objext
8681if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8682 (eval $ac_compile) 2>&5
8683 ac_status=$?
8684 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8685 (exit $ac_status); } &&
8686 { ac_try='test -s conftest.$ac_objext'
8687 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8688 (eval $ac_try) 2>&5
8689 ac_status=$?
8690 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8691 (exit $ac_status); }; }; then
8692 echo "$as_me:$LINENO: result: no" >&5
8693echo "${ECHO_T}no" >&6
8694else
8695 echo "$as_me: failed program was:" >&5
8696cat conftest.$ac_ext >&5
8697
8698 cat >>confdefs.h <<\_ACEOF
8699@%:@define HAVE_OLD_PAM 1
8700_ACEOF
8701
8702 echo "$as_me:$LINENO: result: yes" >&5
8703echo "${ECHO_T}yes" >&6
8704 PAM_MSG="yes (old library)"
8705
8706
8707fi
8708rm -f conftest.$ac_objext conftest.$ac_ext
8709fi
8710
8711# Some systems want crypt() from libcrypt, *not* the version in OpenSSL,
8712# because the system crypt() is more featureful.
8713if test "x$check_for_libcrypt_before" = "x1"; then
8714
8715echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
8716echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
8717if test "${ac_cv_lib_crypt_crypt+set}" = set; then
8718 echo $ECHO_N "(cached) $ECHO_C" >&6
8719else
8720 ac_check_lib_save_LIBS=$LIBS
8721LIBS="-lcrypt $LIBS"
8722cat >conftest.$ac_ext <<_ACEOF
8723#line $LINENO "configure"
8724#include "confdefs.h"
8725
8726/* Override any gcc2 internal prototype to avoid an error. */
8727#ifdef __cplusplus
8728extern "C"
8729#endif
8730/* We use char because int might match the return type of a gcc2
8731 builtin and then its argument prototype would still apply. */
8732char crypt ();
8733#ifdef F77_DUMMY_MAIN
8734# ifdef __cplusplus
8735 extern "C"
8736# endif
8737 int F77_DUMMY_MAIN() { return 1; }
8738#endif
8739int
8740main ()
8741{
8742crypt ();
8743 ;
8744 return 0;
8745}
8746_ACEOF
8747rm -f conftest.$ac_objext conftest$ac_exeext
8748if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8749 (eval $ac_link) 2>&5
8750 ac_status=$?
8751 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8752 (exit $ac_status); } &&
8753 { ac_try='test -s conftest$ac_exeext'
8754 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8755 (eval $ac_try) 2>&5
8756 ac_status=$?
8757 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8758 (exit $ac_status); }; }; then
8759 ac_cv_lib_crypt_crypt=yes
8760else
8761 echo "$as_me: failed program was:" >&5
8762cat conftest.$ac_ext >&5
8763ac_cv_lib_crypt_crypt=no
8764fi
8765rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8766LIBS=$ac_check_lib_save_LIBS
8767fi
8768echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
8769echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
8770if test $ac_cv_lib_crypt_crypt = yes; then
8771 cat >>confdefs.h <<_ACEOF
8772@%:@define HAVE_LIBCRYPT 1
8773_ACEOF
8774
8775 LIBS="-lcrypt $LIBS"
8776
8777fi
8778
8779fi
8780
8781# Search for OpenSSL
8782saved_CPPFLAGS="$CPPFLAGS"
8783saved_LDFLAGS="$LDFLAGS"
8784
8785# Check whether --with-ssl-dir or --without-ssl-dir was given.
8786if test "${with_ssl_dir+set}" = set; then
8787 withval="$with_ssl_dir"
8788
8789 if test "x$withval" != "xno" ; then
8790 if test -d "$withval/lib"; then
8791 if test -n "${need_dash_r}"; then
8792 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
8793 else
8794 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
8795 fi
8796 else
8797 if test -n "${need_dash_r}"; then
8798 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
8799 else
8800 LDFLAGS="-L${withval} ${LDFLAGS}"
8801 fi
8802 fi
8803 if test -d "$withval/include"; then
8804 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
8805 else
8806 CPPFLAGS="-I${withval} ${CPPFLAGS}"
8807 fi
8808 fi
8809
8810
8811fi;
8812LIBS="$LIBS -lcrypto"
8813cat >conftest.$ac_ext <<_ACEOF
8814#line $LINENO "configure"
8815#include "confdefs.h"
8816
8817/* Override any gcc2 internal prototype to avoid an error. */
8818#ifdef __cplusplus
8819extern "C"
8820#endif
8821/* We use char because int might match the return type of a gcc2
8822 builtin and then its argument prototype would still apply. */
8823char RAND_add ();
8824#ifdef F77_DUMMY_MAIN
8825# ifdef __cplusplus
8826 extern "C"
8827# endif
8828 int F77_DUMMY_MAIN() { return 1; }
8829#endif
8830int
8831main ()
8832{
8833RAND_add ();
8834 ;
8835 return 0;
8836}
8837_ACEOF
8838rm -f conftest.$ac_objext conftest$ac_exeext
8839if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8840 (eval $ac_link) 2>&5
8841 ac_status=$?
8842 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8843 (exit $ac_status); } &&
8844 { ac_try='test -s conftest$ac_exeext'
8845 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8846 (eval $ac_try) 2>&5
8847 ac_status=$?
8848 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8849 (exit $ac_status); }; }; then
8850 cat >>confdefs.h <<\_ACEOF
8851@%:@define HAVE_OPENSSL 1
8852_ACEOF
8853
8854else
8855 echo "$as_me: failed program was:" >&5
8856cat conftest.$ac_ext >&5
8857
8858 if test -n "${need_dash_r}"; then
8859 LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib ${saved_LDFLAGS}"
8860 else
8861 LDFLAGS="-L/usr/local/ssl/lib ${saved_LDFLAGS}"
8862 fi
8863 CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}"
8864 cat >conftest.$ac_ext <<_ACEOF
8865#line $LINENO "configure"
8866#include "confdefs.h"
8867
8868/* Override any gcc2 internal prototype to avoid an error. */
8869#ifdef __cplusplus
8870extern "C"
8871#endif
8872/* We use char because int might match the return type of a gcc2
8873 builtin and then its argument prototype would still apply. */
8874char RAND_add ();
8875#ifdef F77_DUMMY_MAIN
8876# ifdef __cplusplus
8877 extern "C"
8878# endif
8879 int F77_DUMMY_MAIN() { return 1; }
8880#endif
8881int
8882main ()
8883{
8884RAND_add ();
8885 ;
8886 return 0;
8887}
8888_ACEOF
8889rm -f conftest.$ac_objext conftest$ac_exeext
8890if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8891 (eval $ac_link) 2>&5
8892 ac_status=$?
8893 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8894 (exit $ac_status); } &&
8895 { ac_try='test -s conftest$ac_exeext'
8896 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8897 (eval $ac_try) 2>&5
8898 ac_status=$?
8899 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8900 (exit $ac_status); }; }; then
8901 cat >>confdefs.h <<\_ACEOF
8902@%:@define HAVE_OPENSSL 1
8903_ACEOF
8904
8905else
8906 echo "$as_me: failed program was:" >&5
8907cat conftest.$ac_ext >&5
8908
8909 { { echo "$as_me:$LINENO: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***" >&5
8910echo "$as_me: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***" >&2;}
8911 { (exit 1); exit 1; }; }
8912
8913
8914fi
8915rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8916
8917
8918fi
8919rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8920
8921# Determine OpenSSL header version
8922echo "$as_me:$LINENO: checking OpenSSL header version" >&5
8923echo $ECHO_N "checking OpenSSL header version... $ECHO_C" >&6
8924if test "$cross_compiling" = yes; then
8925 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
8926echo "$as_me: error: cannot run test program while cross compiling" >&2;}
8927 { (exit 1); exit 1; }; }
8928else
8929 cat >conftest.$ac_ext <<_ACEOF
8930#line $LINENO "configure"
8931#include "confdefs.h"
8932
8933#include <stdio.h>
8934#include <string.h>
8935#include <openssl/opensslv.h>
8936#define DATA "conftest.sslincver"
8937int main(void) {
8938 FILE *fd;
8939 int rc;
8940
8941 fd = fopen(DATA,"w");
8942 if(fd == NULL)
8943 exit(1);
8944
8945 if ((rc = fprintf(fd ,"%x (%s)\n", OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT)) <0)
8946 exit(1);
8947
8948 exit(0);
8949}
8950
8951_ACEOF
8952rm -f conftest$ac_exeext
8953if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8954 (eval $ac_link) 2>&5
8955 ac_status=$?
8956 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8957 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
8958 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8959 (eval $ac_try) 2>&5
8960 ac_status=$?
8961 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8962 (exit $ac_status); }; }; then
8963
8964 ssl_header_ver=`cat conftest.sslincver`
8965 echo "$as_me:$LINENO: result: $ssl_header_ver" >&5
8966echo "${ECHO_T}$ssl_header_ver" >&6
8967
8968else
8969 echo "$as_me: program exited with status $ac_status" >&5
8970echo "$as_me: failed program was:" >&5
8971cat conftest.$ac_ext >&5
8972( exit $ac_status )
8973
8974 echo "$as_me:$LINENO: result: not found" >&5
8975echo "${ECHO_T}not found" >&6
8976 { { echo "$as_me:$LINENO: error: OpenSSL version header not found." >&5
8977echo "$as_me: error: OpenSSL version header not found." >&2;}
8978 { (exit 1); exit 1; }; }
8979
8980
8981fi
8982rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8983fi
8984
8985# Determine OpenSSL library version
8986echo "$as_me:$LINENO: checking OpenSSL library version" >&5
8987echo $ECHO_N "checking OpenSSL library version... $ECHO_C" >&6
8988if test "$cross_compiling" = yes; then
8989 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
8990echo "$as_me: error: cannot run test program while cross compiling" >&2;}
8991 { (exit 1); exit 1; }; }
8992else
8993 cat >conftest.$ac_ext <<_ACEOF
8994#line $LINENO "configure"
8995#include "confdefs.h"
8996
8997#include <stdio.h>
8998#include <string.h>
8999#include <openssl/opensslv.h>
9000#include <openssl/crypto.h>
9001#define DATA "conftest.ssllibver"
9002int main(void) {
9003 FILE *fd;
9004 int rc;
9005
9006 fd = fopen(DATA,"w");
9007 if(fd == NULL)
9008 exit(1);
9009
9010 if ((rc = fprintf(fd ,"%x (%s)\n", SSLeay(), SSLeay_version(SSLEAY_VERSION))) <0)
9011 exit(1);
9012
9013 exit(0);
9014}
9015
9016_ACEOF
9017rm -f conftest$ac_exeext
9018if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9019 (eval $ac_link) 2>&5
9020 ac_status=$?
9021 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9022 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9023 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9024 (eval $ac_try) 2>&5
9025 ac_status=$?
9026 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9027 (exit $ac_status); }; }; then
9028
9029 ssl_library_ver=`cat conftest.ssllibver`
9030 echo "$as_me:$LINENO: result: $ssl_library_ver" >&5
9031echo "${ECHO_T}$ssl_library_ver" >&6
9032
9033else
9034 echo "$as_me: program exited with status $ac_status" >&5
9035echo "$as_me: failed program was:" >&5
9036cat conftest.$ac_ext >&5
9037( exit $ac_status )
9038
9039 echo "$as_me:$LINENO: result: not found" >&5
9040echo "${ECHO_T}not found" >&6
9041 { { echo "$as_me:$LINENO: error: OpenSSL library not found." >&5
9042echo "$as_me: error: OpenSSL library not found." >&2;}
9043 { (exit 1); exit 1; }; }
9044
9045
9046fi
9047rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9048fi
9049
9050# Sanity check OpenSSL headers
9051echo "$as_me:$LINENO: checking whether OpenSSL's headers match the library" >&5
9052echo $ECHO_N "checking whether OpenSSL's headers match the library... $ECHO_C" >&6
9053if test "$cross_compiling" = yes; then
9054 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
9055echo "$as_me: error: cannot run test program while cross compiling" >&2;}
9056 { (exit 1); exit 1; }; }
9057else
9058 cat >conftest.$ac_ext <<_ACEOF
9059#line $LINENO "configure"
9060#include "confdefs.h"
9061
9062#include <string.h>
9063#include <openssl/opensslv.h>
9064int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }
9065
9066_ACEOF
9067rm -f conftest$ac_exeext
9068if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9069 (eval $ac_link) 2>&5
9070 ac_status=$?
9071 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9072 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9073 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9074 (eval $ac_try) 2>&5
9075 ac_status=$?
9076 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9077 (exit $ac_status); }; }; then
9078
9079 echo "$as_me:$LINENO: result: yes" >&5
9080echo "${ECHO_T}yes" >&6
9081
9082else
9083 echo "$as_me: program exited with status $ac_status" >&5
9084echo "$as_me: failed program was:" >&5
9085cat conftest.$ac_ext >&5
9086( exit $ac_status )
9087
9088 echo "$as_me:$LINENO: result: no" >&5
9089echo "${ECHO_T}no" >&6
9090 { { echo "$as_me:$LINENO: error: Your OpenSSL headers do not match your library" >&5
9091echo "$as_me: error: Your OpenSSL headers do not match your library" >&2;}
9092 { (exit 1); exit 1; }; }
9093
9094
9095fi
9096rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9097fi
9098
9099# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the
9100# version in OpenSSL. Skip this for PAM
9101if test "x$PAM_MSG" = "xno" -a "x$check_for_libcrypt_later" = "x1"; then
9102 echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
9103echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
9104if test "${ac_cv_lib_crypt_crypt+set}" = set; then
9105 echo $ECHO_N "(cached) $ECHO_C" >&6
9106else
9107 ac_check_lib_save_LIBS=$LIBS
9108LIBS="-lcrypt $LIBS"
9109cat >conftest.$ac_ext <<_ACEOF
9110#line $LINENO "configure"
9111#include "confdefs.h"
9112
9113/* Override any gcc2 internal prototype to avoid an error. */
9114#ifdef __cplusplus
9115extern "C"
9116#endif
9117/* We use char because int might match the return type of a gcc2
9118 builtin and then its argument prototype would still apply. */
9119char crypt ();
9120#ifdef F77_DUMMY_MAIN
9121# ifdef __cplusplus
9122 extern "C"
9123# endif
9124 int F77_DUMMY_MAIN() { return 1; }
9125#endif
9126int
9127main ()
9128{
9129crypt ();
9130 ;
9131 return 0;
9132}
9133_ACEOF
9134rm -f conftest.$ac_objext conftest$ac_exeext
9135if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9136 (eval $ac_link) 2>&5
9137 ac_status=$?
9138 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9139 (exit $ac_status); } &&
9140 { ac_try='test -s conftest$ac_exeext'
9141 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9142 (eval $ac_try) 2>&5
9143 ac_status=$?
9144 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9145 (exit $ac_status); }; }; then
9146 ac_cv_lib_crypt_crypt=yes
9147else
9148 echo "$as_me: failed program was:" >&5
9149cat conftest.$ac_ext >&5
9150ac_cv_lib_crypt_crypt=no
9151fi
9152rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9153LIBS=$ac_check_lib_save_LIBS
9154fi
9155echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
9156echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
9157if test $ac_cv_lib_crypt_crypt = yes; then
9158 LIBS="$LIBS -lcrypt"
9159fi
9160
9161fi
9162
9163
9164### Configure cryptographic random number support
9165
9166# Check wheter OpenSSL seeds itself
9167echo "$as_me:$LINENO: checking whether OpenSSL's PRNG is internally seeded" >&5
9168echo $ECHO_N "checking whether OpenSSL's PRNG is internally seeded... $ECHO_C" >&6
9169if test "$cross_compiling" = yes; then
9170 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
9171echo "$as_me: error: cannot run test program while cross compiling" >&2;}
9172 { (exit 1); exit 1; }; }
9173else
9174 cat >conftest.$ac_ext <<_ACEOF
9175#line $LINENO "configure"
9176#include "confdefs.h"
9177
9178#include <string.h>
9179#include <openssl/rand.h>
9180int main(void) { exit(RAND_status() == 1 ? 0 : 1); }
9181
9182_ACEOF
9183rm -f conftest$ac_exeext
9184if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9185 (eval $ac_link) 2>&5
9186 ac_status=$?
9187 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9188 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9189 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9190 (eval $ac_try) 2>&5
9191 ac_status=$?
9192 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9193 (exit $ac_status); }; }; then
9194
9195 OPENSSL_SEEDS_ITSELF=yes
9196 echo "$as_me:$LINENO: result: yes" >&5
9197echo "${ECHO_T}yes" >&6
9198
9199else
9200 echo "$as_me: program exited with status $ac_status" >&5
9201echo "$as_me: failed program was:" >&5
9202cat conftest.$ac_ext >&5
9203( exit $ac_status )
9204
9205 echo "$as_me:$LINENO: result: no" >&5
9206echo "${ECHO_T}no" >&6
9207 # Default to use of the rand helper if OpenSSL doesn't
9208 # seed itself
9209 USE_RAND_HELPER=yes
9210
9211
9212fi
9213rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9214fi
9215
9216
9217# Do we want to force the use of the rand helper?
9218
9219# Check whether --with-rand-helper or --without-rand-helper was given.
9220if test "${with_rand_helper+set}" = set; then
9221 withval="$with_rand_helper"
9222
9223 if test "x$withval" = "xno" ; then
9224 # Force use of OpenSSL's internal RNG, even if
9225 # the previous test showed it to be unseeded.
9226 if test -z "$OPENSSL_SEEDS_ITSELF" ; then
9227 { echo "$as_me:$LINENO: WARNING: *** Forcing use of OpenSSL's non-self-seeding PRNG" >&5
9228echo "$as_me: WARNING: *** Forcing use of OpenSSL's non-self-seeding PRNG" >&2;}
9229 OPENSSL_SEEDS_ITSELF=yes
9230 USE_RAND_HELPER=""
9231 fi
9232 else
9233 USE_RAND_HELPER=yes
9234 fi
9235
9236fi;
9237
9238# Which randomness source do we use?
9239if test ! -z "$OPENSSL_SEEDS_ITSELF" -a -z "$USE_RAND_HELPER" ; then
9240 # OpenSSL only
9241 cat >>confdefs.h <<\_ACEOF
9242@%:@define OPENSSL_PRNG_ONLY 1
9243_ACEOF
9244
9245 RAND_MSG="OpenSSL internal ONLY"
9246 INSTALL_SSH_RAND_HELPER=""
9247elif test ! -z "$USE_RAND_HELPER" ; then
9248 # install rand helper
9249 RAND_MSG="ssh-rand-helper"
9250 INSTALL_SSH_RAND_HELPER="yes"
9251fi
9252
9253
9254### Configuration of ssh-rand-helper
9255
9256# PRNGD TCP socket
9257
9258# Check whether --with-prngd-port or --without-prngd-port was given.
9259if test "${with_prngd_port+set}" = set; then
9260 withval="$with_prngd_port"
9261
9262 case "$withval" in
9263 no)
9264 withval=""
9265 ;;
9266 [0-9]*)
9267 ;;
9268 *)
9269 { { echo "$as_me:$LINENO: error: You must specify a numeric port number for --with-prngd-port" >&5
9270echo "$as_me: error: You must specify a numeric port number for --with-prngd-port" >&2;}
9271 { (exit 1); exit 1; }; }
9272 ;;
9273 esac
9274 if test ! -z "$withval" ; then
9275 PRNGD_PORT="$withval"
9276 cat >>confdefs.h <<_ACEOF
9277@%:@define PRNGD_PORT $PRNGD_PORT
9278_ACEOF
9279
9280 fi
9281
9282
9283fi;
9284
9285# PRNGD Unix domain socket
9286
9287# Check whether --with-prngd-socket or --without-prngd-socket was given.
9288if test "${with_prngd_socket+set}" = set; then
9289 withval="$with_prngd_socket"
9290
9291 case "$withval" in
9292 yes)
9293 withval="/var/run/egd-pool"
9294 ;;
9295 no)
9296 withval=""
9297 ;;
9298 /*)
9299 ;;
9300 *)
9301 { { echo "$as_me:$LINENO: error: You must specify an absolute path to the entropy socket" >&5
9302echo "$as_me: error: You must specify an absolute path to the entropy socket" >&2;}
9303 { (exit 1); exit 1; }; }
9304 ;;
9305 esac
9306
9307 if test ! -z "$withval" ; then
9308 if test ! -z "$PRNGD_PORT" ; then
9309 { { echo "$as_me:$LINENO: error: You may not specify both a PRNGD/EGD port and socket" >&5
9310echo "$as_me: error: You may not specify both a PRNGD/EGD port and socket" >&2;}
9311 { (exit 1); exit 1; }; }
9312 fi
9313 if test ! -r "$withval" ; then
9314 { echo "$as_me:$LINENO: WARNING: Entropy socket is not readable" >&5
9315echo "$as_me: WARNING: Entropy socket is not readable" >&2;}
9316 fi
9317 PRNGD_SOCKET="$withval"
9318 cat >>confdefs.h <<_ACEOF
9319@%:@define PRNGD_SOCKET "$PRNGD_SOCKET"
9320_ACEOF
9321
9322 fi
9323
9324else
9325
9326 # Check for existing socket only if we don't have a random device already
9327 if test "$USE_RAND_HELPER" = yes ; then
9328 echo "$as_me:$LINENO: checking for PRNGD/EGD socket" >&5
9329echo $ECHO_N "checking for PRNGD/EGD socket... $ECHO_C" >&6
9330 # Insert other locations here
9331 for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do
9332 if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then
9333 PRNGD_SOCKET="$sock"
9334 cat >>confdefs.h <<_ACEOF
9335@%:@define PRNGD_SOCKET "$PRNGD_SOCKET"
9336_ACEOF
9337
9338 break;
9339 fi
9340 done
9341 if test ! -z "$PRNGD_SOCKET" ; then
9342 echo "$as_me:$LINENO: result: $PRNGD_SOCKET" >&5
9343echo "${ECHO_T}$PRNGD_SOCKET" >&6
9344 else
9345 echo "$as_me:$LINENO: result: not found" >&5
9346echo "${ECHO_T}not found" >&6
9347 fi
9348 fi
9349
9350
9351fi;
9352
9353# Change default command timeout for hashing entropy source
9354entropy_timeout=200
9355
9356# Check whether --with-entropy-timeout or --without-entropy-timeout was given.
9357if test "${with_entropy_timeout+set}" = set; then
9358 withval="$with_entropy_timeout"
9359
9360 if test "x$withval" != "xno" ; then
9361 entropy_timeout=$withval
9362 fi
9363
9364
9365fi;
9366cat >>confdefs.h <<_ACEOF
9367@%:@define ENTROPY_TIMEOUT_MSEC $entropy_timeout
9368_ACEOF
9369
9370
9371SSH_PRIVSEP_USER=sshd
9372
9373# Check whether --with-privsep-user or --without-privsep-user was given.
9374if test "${with_privsep_user+set}" = set; then
9375 withval="$with_privsep_user"
9376
9377 if test -n "$withval"; then
9378 SSH_PRIVSEP_USER=$withval
9379 fi
9380
9381
9382fi;
9383cat >>confdefs.h <<_ACEOF
9384@%:@define SSH_PRIVSEP_USER "$SSH_PRIVSEP_USER"
9385_ACEOF
9386
9387
9388
9389# We do this little dance with the search path to insure
9390# that programs that we select for use by installed programs
9391# (which may be run by the super-user) come from trusted
9392# locations before they come from the user's private area.
9393# This should help avoid accidentally configuring some
9394# random version of a program in someone's personal bin.
9395
9396OPATH=$PATH
9397PATH=/bin:/usr/bin
9398test -h /bin 2> /dev/null && PATH=/usr/bin
9399test -d /sbin && PATH=$PATH:/sbin
9400test -d /usr/sbin && PATH=$PATH:/usr/sbin
9401PATH=$PATH:/etc:$OPATH
9402
9403# These programs are used by the command hashing source to gather entropy
9404
9405 # Extract the first word of "ls", so it can be a program name with args.
9406set dummy ls; ac_word=$2
9407echo "$as_me:$LINENO: checking for $ac_word" >&5
9408echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9409if test "${ac_cv_path_PROG_LS+set}" = set; then
9410 echo $ECHO_N "(cached) $ECHO_C" >&6
9411else
9412 case $PROG_LS in
9413 [\\/]* | ?:[\\/]*)
9414 ac_cv_path_PROG_LS="$PROG_LS" # Let the user override the test with a path.
9415 ;;
9416 *)
9417 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9418for as_dir in $PATH
9419do
9420 IFS=$as_save_IFS
9421 test -z "$as_dir" && as_dir=.
9422 for ac_exec_ext in '' $ac_executable_extensions; do
9423 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9424 ac_cv_path_PROG_LS="$as_dir/$ac_word$ac_exec_ext"
9425 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9426 break 2
9427 fi
9428done
9429done
9430
9431 ;;
9432esac
9433fi
9434PROG_LS=$ac_cv_path_PROG_LS
9435
9436if test -n "$PROG_LS"; then
9437 echo "$as_me:$LINENO: result: $PROG_LS" >&5
9438echo "${ECHO_T}$PROG_LS" >&6
9439else
9440 echo "$as_me:$LINENO: result: no" >&5
9441echo "${ECHO_T}no" >&6
9442fi
9443
9444 if test -z "$PROG_LS" ; then
9445 PROG_LS="undef"
9446 fi
9447
9448
9449
9450 # Extract the first word of "netstat", so it can be a program name with args.
9451set dummy netstat; ac_word=$2
9452echo "$as_me:$LINENO: checking for $ac_word" >&5
9453echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9454if test "${ac_cv_path_PROG_NETSTAT+set}" = set; then
9455 echo $ECHO_N "(cached) $ECHO_C" >&6
9456else
9457 case $PROG_NETSTAT in
9458 [\\/]* | ?:[\\/]*)
9459 ac_cv_path_PROG_NETSTAT="$PROG_NETSTAT" # Let the user override the test with a path.
9460 ;;
9461 *)
9462 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9463for as_dir in $PATH
9464do
9465 IFS=$as_save_IFS
9466 test -z "$as_dir" && as_dir=.
9467 for ac_exec_ext in '' $ac_executable_extensions; do
9468 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9469 ac_cv_path_PROG_NETSTAT="$as_dir/$ac_word$ac_exec_ext"
9470 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9471 break 2
9472 fi
9473done
9474done
9475
9476 ;;
9477esac
9478fi
9479PROG_NETSTAT=$ac_cv_path_PROG_NETSTAT
9480
9481if test -n "$PROG_NETSTAT"; then
9482 echo "$as_me:$LINENO: result: $PROG_NETSTAT" >&5
9483echo "${ECHO_T}$PROG_NETSTAT" >&6
9484else
9485 echo "$as_me:$LINENO: result: no" >&5
9486echo "${ECHO_T}no" >&6
9487fi
9488
9489 if test -z "$PROG_NETSTAT" ; then
9490 PROG_NETSTAT="undef"
9491 fi
9492
9493
9494
9495 # Extract the first word of "arp", so it can be a program name with args.
9496set dummy arp; ac_word=$2
9497echo "$as_me:$LINENO: checking for $ac_word" >&5
9498echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9499if test "${ac_cv_path_PROG_ARP+set}" = set; then
9500 echo $ECHO_N "(cached) $ECHO_C" >&6
9501else
9502 case $PROG_ARP in
9503 [\\/]* | ?:[\\/]*)
9504 ac_cv_path_PROG_ARP="$PROG_ARP" # Let the user override the test with a path.
9505 ;;
9506 *)
9507 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9508for as_dir in $PATH
9509do
9510 IFS=$as_save_IFS
9511 test -z "$as_dir" && as_dir=.
9512 for ac_exec_ext in '' $ac_executable_extensions; do
9513 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9514 ac_cv_path_PROG_ARP="$as_dir/$ac_word$ac_exec_ext"
9515 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9516 break 2
9517 fi
9518done
9519done
9520
9521 ;;
9522esac
9523fi
9524PROG_ARP=$ac_cv_path_PROG_ARP
9525
9526if test -n "$PROG_ARP"; then
9527 echo "$as_me:$LINENO: result: $PROG_ARP" >&5
9528echo "${ECHO_T}$PROG_ARP" >&6
9529else
9530 echo "$as_me:$LINENO: result: no" >&5
9531echo "${ECHO_T}no" >&6
9532fi
9533
9534 if test -z "$PROG_ARP" ; then
9535 PROG_ARP="undef"
9536 fi
9537
9538
9539
9540 # Extract the first word of "ifconfig", so it can be a program name with args.
9541set dummy ifconfig; ac_word=$2
9542echo "$as_me:$LINENO: checking for $ac_word" >&5
9543echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9544if test "${ac_cv_path_PROG_IFCONFIG+set}" = set; then
9545 echo $ECHO_N "(cached) $ECHO_C" >&6
9546else
9547 case $PROG_IFCONFIG in
9548 [\\/]* | ?:[\\/]*)
9549 ac_cv_path_PROG_IFCONFIG="$PROG_IFCONFIG" # Let the user override the test with a path.
9550 ;;
9551 *)
9552 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9553for as_dir in $PATH
9554do
9555 IFS=$as_save_IFS
9556 test -z "$as_dir" && as_dir=.
9557 for ac_exec_ext in '' $ac_executable_extensions; do
9558 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9559 ac_cv_path_PROG_IFCONFIG="$as_dir/$ac_word$ac_exec_ext"
9560 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9561 break 2
9562 fi
9563done
9564done
9565
9566 ;;
9567esac
9568fi
9569PROG_IFCONFIG=$ac_cv_path_PROG_IFCONFIG
9570
9571if test -n "$PROG_IFCONFIG"; then
9572 echo "$as_me:$LINENO: result: $PROG_IFCONFIG" >&5
9573echo "${ECHO_T}$PROG_IFCONFIG" >&6
9574else
9575 echo "$as_me:$LINENO: result: no" >&5
9576echo "${ECHO_T}no" >&6
9577fi
9578
9579 if test -z "$PROG_IFCONFIG" ; then
9580 PROG_IFCONFIG="undef"
9581 fi
9582
9583
9584
9585 # Extract the first word of "jstat", so it can be a program name with args.
9586set dummy jstat; ac_word=$2
9587echo "$as_me:$LINENO: checking for $ac_word" >&5
9588echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9589if test "${ac_cv_path_PROG_JSTAT+set}" = set; then
9590 echo $ECHO_N "(cached) $ECHO_C" >&6
9591else
9592 case $PROG_JSTAT in
9593 [\\/]* | ?:[\\/]*)
9594 ac_cv_path_PROG_JSTAT="$PROG_JSTAT" # Let the user override the test with a path.
9595 ;;
9596 *)
9597 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9598for as_dir in $PATH
9599do
9600 IFS=$as_save_IFS
9601 test -z "$as_dir" && as_dir=.
9602 for ac_exec_ext in '' $ac_executable_extensions; do
9603 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9604 ac_cv_path_PROG_JSTAT="$as_dir/$ac_word$ac_exec_ext"
9605 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9606 break 2
9607 fi
9608done
9609done
9610
9611 ;;
9612esac
9613fi
9614PROG_JSTAT=$ac_cv_path_PROG_JSTAT
9615
9616if test -n "$PROG_JSTAT"; then
9617 echo "$as_me:$LINENO: result: $PROG_JSTAT" >&5
9618echo "${ECHO_T}$PROG_JSTAT" >&6
9619else
9620 echo "$as_me:$LINENO: result: no" >&5
9621echo "${ECHO_T}no" >&6
9622fi
9623
9624 if test -z "$PROG_JSTAT" ; then
9625 PROG_JSTAT="undef"
9626 fi
9627
9628
9629
9630 # Extract the first word of "ps", so it can be a program name with args.
9631set dummy ps; ac_word=$2
9632echo "$as_me:$LINENO: checking for $ac_word" >&5
9633echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9634if test "${ac_cv_path_PROG_PS+set}" = set; then
9635 echo $ECHO_N "(cached) $ECHO_C" >&6
9636else
9637 case $PROG_PS in
9638 [\\/]* | ?:[\\/]*)
9639 ac_cv_path_PROG_PS="$PROG_PS" # Let the user override the test with a path.
9640 ;;
9641 *)
9642 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9643for as_dir in $PATH
9644do
9645 IFS=$as_save_IFS
9646 test -z "$as_dir" && as_dir=.
9647 for ac_exec_ext in '' $ac_executable_extensions; do
9648 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9649 ac_cv_path_PROG_PS="$as_dir/$ac_word$ac_exec_ext"
9650 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9651 break 2
9652 fi
9653done
9654done
9655
9656 ;;
9657esac
9658fi
9659PROG_PS=$ac_cv_path_PROG_PS
9660
9661if test -n "$PROG_PS"; then
9662 echo "$as_me:$LINENO: result: $PROG_PS" >&5
9663echo "${ECHO_T}$PROG_PS" >&6
9664else
9665 echo "$as_me:$LINENO: result: no" >&5
9666echo "${ECHO_T}no" >&6
9667fi
9668
9669 if test -z "$PROG_PS" ; then
9670 PROG_PS="undef"
9671 fi
9672
9673
9674
9675 # Extract the first word of "sar", so it can be a program name with args.
9676set dummy sar; ac_word=$2
9677echo "$as_me:$LINENO: checking for $ac_word" >&5
9678echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9679if test "${ac_cv_path_PROG_SAR+set}" = set; then
9680 echo $ECHO_N "(cached) $ECHO_C" >&6
9681else
9682 case $PROG_SAR in
9683 [\\/]* | ?:[\\/]*)
9684 ac_cv_path_PROG_SAR="$PROG_SAR" # Let the user override the test with a path.
9685 ;;
9686 *)
9687 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9688for as_dir in $PATH
9689do
9690 IFS=$as_save_IFS
9691 test -z "$as_dir" && as_dir=.
9692 for ac_exec_ext in '' $ac_executable_extensions; do
9693 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9694 ac_cv_path_PROG_SAR="$as_dir/$ac_word$ac_exec_ext"
9695 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9696 break 2
9697 fi
9698done
9699done
9700
9701 ;;
9702esac
9703fi
9704PROG_SAR=$ac_cv_path_PROG_SAR
9705
9706if test -n "$PROG_SAR"; then
9707 echo "$as_me:$LINENO: result: $PROG_SAR" >&5
9708echo "${ECHO_T}$PROG_SAR" >&6
9709else
9710 echo "$as_me:$LINENO: result: no" >&5
9711echo "${ECHO_T}no" >&6
9712fi
9713
9714 if test -z "$PROG_SAR" ; then
9715 PROG_SAR="undef"
9716 fi
9717
9718
9719
9720 # Extract the first word of "w", so it can be a program name with args.
9721set dummy w; ac_word=$2
9722echo "$as_me:$LINENO: checking for $ac_word" >&5
9723echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9724if test "${ac_cv_path_PROG_W+set}" = set; then
9725 echo $ECHO_N "(cached) $ECHO_C" >&6
9726else
9727 case $PROG_W in
9728 [\\/]* | ?:[\\/]*)
9729 ac_cv_path_PROG_W="$PROG_W" # Let the user override the test with a path.
9730 ;;
9731 *)
9732 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9733for as_dir in $PATH
9734do
9735 IFS=$as_save_IFS
9736 test -z "$as_dir" && as_dir=.
9737 for ac_exec_ext in '' $ac_executable_extensions; do
9738 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9739 ac_cv_path_PROG_W="$as_dir/$ac_word$ac_exec_ext"
9740 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9741 break 2
9742 fi
9743done
9744done
9745
9746 ;;
9747esac
9748fi
9749PROG_W=$ac_cv_path_PROG_W
9750
9751if test -n "$PROG_W"; then
9752 echo "$as_me:$LINENO: result: $PROG_W" >&5
9753echo "${ECHO_T}$PROG_W" >&6
9754else
9755 echo "$as_me:$LINENO: result: no" >&5
9756echo "${ECHO_T}no" >&6
9757fi
9758
9759 if test -z "$PROG_W" ; then
9760 PROG_W="undef"
9761 fi
9762
9763
9764
9765 # Extract the first word of "who", so it can be a program name with args.
9766set dummy who; ac_word=$2
9767echo "$as_me:$LINENO: checking for $ac_word" >&5
9768echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9769if test "${ac_cv_path_PROG_WHO+set}" = set; then
9770 echo $ECHO_N "(cached) $ECHO_C" >&6
9771else
9772 case $PROG_WHO in
9773 [\\/]* | ?:[\\/]*)
9774 ac_cv_path_PROG_WHO="$PROG_WHO" # Let the user override the test with a path.
9775 ;;
9776 *)
9777 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9778for as_dir in $PATH
9779do
9780 IFS=$as_save_IFS
9781 test -z "$as_dir" && as_dir=.
9782 for ac_exec_ext in '' $ac_executable_extensions; do
9783 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9784 ac_cv_path_PROG_WHO="$as_dir/$ac_word$ac_exec_ext"
9785 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9786 break 2
9787 fi
9788done
9789done
9790
9791 ;;
9792esac
9793fi
9794PROG_WHO=$ac_cv_path_PROG_WHO
9795
9796if test -n "$PROG_WHO"; then
9797 echo "$as_me:$LINENO: result: $PROG_WHO" >&5
9798echo "${ECHO_T}$PROG_WHO" >&6
9799else
9800 echo "$as_me:$LINENO: result: no" >&5
9801echo "${ECHO_T}no" >&6
9802fi
9803
9804 if test -z "$PROG_WHO" ; then
9805 PROG_WHO="undef"
9806 fi
9807
9808
9809
9810 # Extract the first word of "last", so it can be a program name with args.
9811set dummy last; ac_word=$2
9812echo "$as_me:$LINENO: checking for $ac_word" >&5
9813echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9814if test "${ac_cv_path_PROG_LAST+set}" = set; then
9815 echo $ECHO_N "(cached) $ECHO_C" >&6
9816else
9817 case $PROG_LAST in
9818 [\\/]* | ?:[\\/]*)
9819 ac_cv_path_PROG_LAST="$PROG_LAST" # Let the user override the test with a path.
9820 ;;
9821 *)
9822 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9823for as_dir in $PATH
9824do
9825 IFS=$as_save_IFS
9826 test -z "$as_dir" && as_dir=.
9827 for ac_exec_ext in '' $ac_executable_extensions; do
9828 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9829 ac_cv_path_PROG_LAST="$as_dir/$ac_word$ac_exec_ext"
9830 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9831 break 2
9832 fi
9833done
9834done
9835
9836 ;;
9837esac
9838fi
9839PROG_LAST=$ac_cv_path_PROG_LAST
9840
9841if test -n "$PROG_LAST"; then
9842 echo "$as_me:$LINENO: result: $PROG_LAST" >&5
9843echo "${ECHO_T}$PROG_LAST" >&6
9844else
9845 echo "$as_me:$LINENO: result: no" >&5
9846echo "${ECHO_T}no" >&6
9847fi
9848
9849 if test -z "$PROG_LAST" ; then
9850 PROG_LAST="undef"
9851 fi
9852
9853
9854
9855 # Extract the first word of "lastlog", so it can be a program name with args.
9856set dummy lastlog; ac_word=$2
9857echo "$as_me:$LINENO: checking for $ac_word" >&5
9858echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9859if test "${ac_cv_path_PROG_LASTLOG+set}" = set; then
9860 echo $ECHO_N "(cached) $ECHO_C" >&6
9861else
9862 case $PROG_LASTLOG in
9863 [\\/]* | ?:[\\/]*)
9864 ac_cv_path_PROG_LASTLOG="$PROG_LASTLOG" # Let the user override the test with a path.
9865 ;;
9866 *)
9867 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9868for as_dir in $PATH
9869do
9870 IFS=$as_save_IFS
9871 test -z "$as_dir" && as_dir=.
9872 for ac_exec_ext in '' $ac_executable_extensions; do
9873 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9874 ac_cv_path_PROG_LASTLOG="$as_dir/$ac_word$ac_exec_ext"
9875 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9876 break 2
9877 fi
9878done
9879done
9880
9881 ;;
9882esac
9883fi
9884PROG_LASTLOG=$ac_cv_path_PROG_LASTLOG
9885
9886if test -n "$PROG_LASTLOG"; then
9887 echo "$as_me:$LINENO: result: $PROG_LASTLOG" >&5
9888echo "${ECHO_T}$PROG_LASTLOG" >&6
9889else
9890 echo "$as_me:$LINENO: result: no" >&5
9891echo "${ECHO_T}no" >&6
9892fi
9893
9894 if test -z "$PROG_LASTLOG" ; then
9895 PROG_LASTLOG="undef"
9896 fi
9897
9898
9899
9900 # Extract the first word of "df", so it can be a program name with args.
9901set dummy df; ac_word=$2
9902echo "$as_me:$LINENO: checking for $ac_word" >&5
9903echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9904if test "${ac_cv_path_PROG_DF+set}" = set; then
9905 echo $ECHO_N "(cached) $ECHO_C" >&6
9906else
9907 case $PROG_DF in
9908 [\\/]* | ?:[\\/]*)
9909 ac_cv_path_PROG_DF="$PROG_DF" # Let the user override the test with a path.
9910 ;;
9911 *)
9912 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9913for as_dir in $PATH
9914do
9915 IFS=$as_save_IFS
9916 test -z "$as_dir" && as_dir=.
9917 for ac_exec_ext in '' $ac_executable_extensions; do
9918 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9919 ac_cv_path_PROG_DF="$as_dir/$ac_word$ac_exec_ext"
9920 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9921 break 2
9922 fi
9923done
9924done
9925
9926 ;;
9927esac
9928fi
9929PROG_DF=$ac_cv_path_PROG_DF
9930
9931if test -n "$PROG_DF"; then
9932 echo "$as_me:$LINENO: result: $PROG_DF" >&5
9933echo "${ECHO_T}$PROG_DF" >&6
9934else
9935 echo "$as_me:$LINENO: result: no" >&5
9936echo "${ECHO_T}no" >&6
9937fi
9938
9939 if test -z "$PROG_DF" ; then
9940 PROG_DF="undef"
9941 fi
9942
9943
9944
9945 # Extract the first word of "vmstat", so it can be a program name with args.
9946set dummy vmstat; ac_word=$2
9947echo "$as_me:$LINENO: checking for $ac_word" >&5
9948echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9949if test "${ac_cv_path_PROG_VMSTAT+set}" = set; then
9950 echo $ECHO_N "(cached) $ECHO_C" >&6
9951else
9952 case $PROG_VMSTAT in
9953 [\\/]* | ?:[\\/]*)
9954 ac_cv_path_PROG_VMSTAT="$PROG_VMSTAT" # Let the user override the test with a path.
9955 ;;
9956 *)
9957 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9958for as_dir in $PATH
9959do
9960 IFS=$as_save_IFS
9961 test -z "$as_dir" && as_dir=.
9962 for ac_exec_ext in '' $ac_executable_extensions; do
9963 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9964 ac_cv_path_PROG_VMSTAT="$as_dir/$ac_word$ac_exec_ext"
9965 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9966 break 2
9967 fi
9968done
9969done
9970
9971 ;;
9972esac
9973fi
9974PROG_VMSTAT=$ac_cv_path_PROG_VMSTAT
9975
9976if test -n "$PROG_VMSTAT"; then
9977 echo "$as_me:$LINENO: result: $PROG_VMSTAT" >&5
9978echo "${ECHO_T}$PROG_VMSTAT" >&6
9979else
9980 echo "$as_me:$LINENO: result: no" >&5
9981echo "${ECHO_T}no" >&6
9982fi
9983
9984 if test -z "$PROG_VMSTAT" ; then
9985 PROG_VMSTAT="undef"
9986 fi
9987
9988
9989
9990 # Extract the first word of "uptime", so it can be a program name with args.
9991set dummy uptime; ac_word=$2
9992echo "$as_me:$LINENO: checking for $ac_word" >&5
9993echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9994if test "${ac_cv_path_PROG_UPTIME+set}" = set; then
9995 echo $ECHO_N "(cached) $ECHO_C" >&6
9996else
9997 case $PROG_UPTIME in
9998 [\\/]* | ?:[\\/]*)
9999 ac_cv_path_PROG_UPTIME="$PROG_UPTIME" # Let the user override the test with a path.
10000 ;;
10001 *)
10002 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10003for as_dir in $PATH
10004do
10005 IFS=$as_save_IFS
10006 test -z "$as_dir" && as_dir=.
10007 for ac_exec_ext in '' $ac_executable_extensions; do
10008 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10009 ac_cv_path_PROG_UPTIME="$as_dir/$ac_word$ac_exec_ext"
10010 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10011 break 2
10012 fi
10013done
10014done
10015
10016 ;;
10017esac
10018fi
10019PROG_UPTIME=$ac_cv_path_PROG_UPTIME
10020
10021if test -n "$PROG_UPTIME"; then
10022 echo "$as_me:$LINENO: result: $PROG_UPTIME" >&5
10023echo "${ECHO_T}$PROG_UPTIME" >&6
10024else
10025 echo "$as_me:$LINENO: result: no" >&5
10026echo "${ECHO_T}no" >&6
10027fi
10028
10029 if test -z "$PROG_UPTIME" ; then
10030 PROG_UPTIME="undef"
10031 fi
10032
10033
10034
10035 # Extract the first word of "ipcs", so it can be a program name with args.
10036set dummy ipcs; ac_word=$2
10037echo "$as_me:$LINENO: checking for $ac_word" >&5
10038echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10039if test "${ac_cv_path_PROG_IPCS+set}" = set; then
10040 echo $ECHO_N "(cached) $ECHO_C" >&6
10041else
10042 case $PROG_IPCS in
10043 [\\/]* | ?:[\\/]*)
10044 ac_cv_path_PROG_IPCS="$PROG_IPCS" # Let the user override the test with a path.
10045 ;;
10046 *)
10047 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10048for as_dir in $PATH
10049do
10050 IFS=$as_save_IFS
10051 test -z "$as_dir" && as_dir=.
10052 for ac_exec_ext in '' $ac_executable_extensions; do
10053 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10054 ac_cv_path_PROG_IPCS="$as_dir/$ac_word$ac_exec_ext"
10055 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10056 break 2
10057 fi
10058done
10059done
10060
10061 ;;
10062esac
10063fi
10064PROG_IPCS=$ac_cv_path_PROG_IPCS
10065
10066if test -n "$PROG_IPCS"; then
10067 echo "$as_me:$LINENO: result: $PROG_IPCS" >&5
10068echo "${ECHO_T}$PROG_IPCS" >&6
10069else
10070 echo "$as_me:$LINENO: result: no" >&5
10071echo "${ECHO_T}no" >&6
10072fi
10073
10074 if test -z "$PROG_IPCS" ; then
10075 PROG_IPCS="undef"
10076 fi
10077
10078
10079
10080 # Extract the first word of "tail", so it can be a program name with args.
10081set dummy tail; ac_word=$2
10082echo "$as_me:$LINENO: checking for $ac_word" >&5
10083echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10084if test "${ac_cv_path_PROG_TAIL+set}" = set; then
10085 echo $ECHO_N "(cached) $ECHO_C" >&6
10086else
10087 case $PROG_TAIL in
10088 [\\/]* | ?:[\\/]*)
10089 ac_cv_path_PROG_TAIL="$PROG_TAIL" # Let the user override the test with a path.
10090 ;;
10091 *)
10092 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10093for as_dir in $PATH
10094do
10095 IFS=$as_save_IFS
10096 test -z "$as_dir" && as_dir=.
10097 for ac_exec_ext in '' $ac_executable_extensions; do
10098 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10099 ac_cv_path_PROG_TAIL="$as_dir/$ac_word$ac_exec_ext"
10100 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10101 break 2
10102 fi
10103done
10104done
10105
10106 ;;
10107esac
10108fi
10109PROG_TAIL=$ac_cv_path_PROG_TAIL
10110
10111if test -n "$PROG_TAIL"; then
10112 echo "$as_me:$LINENO: result: $PROG_TAIL" >&5
10113echo "${ECHO_T}$PROG_TAIL" >&6
10114else
10115 echo "$as_me:$LINENO: result: no" >&5
10116echo "${ECHO_T}no" >&6
10117fi
10118
10119 if test -z "$PROG_TAIL" ; then
10120 PROG_TAIL="undef"
10121 fi
10122
10123
10124# restore PATH
10125PATH=$OPATH
10126
10127# Where does ssh-rand-helper get its randomness from?
10128INSTALL_SSH_PRNG_CMDS=""
10129if test ! -z "$INSTALL_SSH_RAND_HELPER" ; then
10130 if test ! -z "$PRNGD_PORT" ; then
10131 RAND_HELPER_MSG="TCP localhost:$PRNGD_PORT"
10132 elif test ! -z "$PRNGD_SOCKET" ; then
10133 RAND_HELPER_MSG="Unix domain socket \"$PRNGD_SOCKET\""
10134 else
10135 RAND_HELPER_MSG="Command hashing (timeout $entropy_timeout)"
10136 RAND_HELPER_CMDHASH=yes
10137 INSTALL_SSH_PRNG_CMDS="yes"
10138 fi
10139fi
10140
10141
10142
10143# Cheap hack to ensure NEWS-OS libraries are arranged right.
10144if test ! -z "$SONY" ; then
10145 LIBS="$LIBS -liberty";
10146fi
10147
10148# Checks for data types
10149echo "$as_me:$LINENO: checking for char" >&5
10150echo $ECHO_N "checking for char... $ECHO_C" >&6
10151if test "${ac_cv_type_char+set}" = set; then
10152 echo $ECHO_N "(cached) $ECHO_C" >&6
10153else
10154 cat >conftest.$ac_ext <<_ACEOF
10155#line $LINENO "configure"
10156#include "confdefs.h"
10157$ac_includes_default
10158#ifdef F77_DUMMY_MAIN
10159# ifdef __cplusplus
10160 extern "C"
10161# endif
10162 int F77_DUMMY_MAIN() { return 1; }
10163#endif
10164int
10165main ()
10166{
10167if ((char *) 0)
10168 return 0;
10169if (sizeof (char))
10170 return 0;
10171 ;
10172 return 0;
10173}
10174_ACEOF
10175rm -f conftest.$ac_objext
10176if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10177 (eval $ac_compile) 2>&5
10178 ac_status=$?
10179 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10180 (exit $ac_status); } &&
10181 { ac_try='test -s conftest.$ac_objext'
10182 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10183 (eval $ac_try) 2>&5
10184 ac_status=$?
10185 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10186 (exit $ac_status); }; }; then
10187 ac_cv_type_char=yes
10188else
10189 echo "$as_me: failed program was:" >&5
10190cat conftest.$ac_ext >&5
10191ac_cv_type_char=no
10192fi
10193rm -f conftest.$ac_objext conftest.$ac_ext
10194fi
10195echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5
10196echo "${ECHO_T}$ac_cv_type_char" >&6
10197
10198echo "$as_me:$LINENO: checking size of char" >&5
10199echo $ECHO_N "checking size of char... $ECHO_C" >&6
10200if test "${ac_cv_sizeof_char+set}" = set; then
10201 echo $ECHO_N "(cached) $ECHO_C" >&6
10202else
10203 if test "$ac_cv_type_char" = yes; then
10204 # The cast to unsigned long works around a bug in the HP C Compiler
10205 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
10206 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
10207 # This bug is HP SR number 8606223364.
10208 if test "$cross_compiling" = yes; then
10209 # Depending upon the size, compute the lo and hi bounds.
10210cat >conftest.$ac_ext <<_ACEOF
10211#line $LINENO "configure"
10212#include "confdefs.h"
10213$ac_includes_default
10214#ifdef F77_DUMMY_MAIN
10215# ifdef __cplusplus
10216 extern "C"
10217# endif
10218 int F77_DUMMY_MAIN() { return 1; }
10219#endif
10220int
10221main ()
10222{
10223static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) >= 0)@:>@;
10224test_array @<:@0@:>@ = 0
10225
10226 ;
10227 return 0;
10228}
10229_ACEOF
10230rm -f conftest.$ac_objext
10231if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10232 (eval $ac_compile) 2>&5
10233 ac_status=$?
10234 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10235 (exit $ac_status); } &&
10236 { ac_try='test -s conftest.$ac_objext'
10237 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10238 (eval $ac_try) 2>&5
10239 ac_status=$?
10240 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10241 (exit $ac_status); }; }; then
10242 ac_lo=0 ac_mid=0
10243 while :; do
10244 cat >conftest.$ac_ext <<_ACEOF
10245#line $LINENO "configure"
10246#include "confdefs.h"
10247$ac_includes_default
10248#ifdef F77_DUMMY_MAIN
10249# ifdef __cplusplus
10250 extern "C"
10251# endif
10252 int F77_DUMMY_MAIN() { return 1; }
10253#endif
10254int
10255main ()
10256{
10257static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)@:>@;
10258test_array @<:@0@:>@ = 0
10259
10260 ;
10261 return 0;
10262}
10263_ACEOF
10264rm -f conftest.$ac_objext
10265if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10266 (eval $ac_compile) 2>&5
10267 ac_status=$?
10268 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10269 (exit $ac_status); } &&
10270 { ac_try='test -s conftest.$ac_objext'
10271 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10272 (eval $ac_try) 2>&5
10273 ac_status=$?
10274 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10275 (exit $ac_status); }; }; then
10276 ac_hi=$ac_mid; break
10277else
10278 echo "$as_me: failed program was:" >&5
10279cat conftest.$ac_ext >&5
10280ac_lo=`expr $ac_mid + 1`
10281 if test $ac_lo -le $ac_mid; then
10282 ac_lo= ac_hi=
10283 break
10284 fi
10285 ac_mid=`expr 2 '*' $ac_mid + 1`
10286fi
10287rm -f conftest.$ac_objext conftest.$ac_ext
10288 done
10289else
10290 echo "$as_me: failed program was:" >&5
10291cat conftest.$ac_ext >&5
10292cat >conftest.$ac_ext <<_ACEOF
10293#line $LINENO "configure"
10294#include "confdefs.h"
10295$ac_includes_default
10296#ifdef F77_DUMMY_MAIN
10297# ifdef __cplusplus
10298 extern "C"
10299# endif
10300 int F77_DUMMY_MAIN() { return 1; }
10301#endif
10302int
10303main ()
10304{
10305static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) < 0)@:>@;
10306test_array @<:@0@:>@ = 0
10307
10308 ;
10309 return 0;
10310}
10311_ACEOF
10312rm -f conftest.$ac_objext
10313if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10314 (eval $ac_compile) 2>&5
10315 ac_status=$?
10316 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10317 (exit $ac_status); } &&
10318 { ac_try='test -s conftest.$ac_objext'
10319 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10320 (eval $ac_try) 2>&5
10321 ac_status=$?
10322 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10323 (exit $ac_status); }; }; then
10324 ac_hi=-1 ac_mid=-1
10325 while :; do
10326 cat >conftest.$ac_ext <<_ACEOF
10327#line $LINENO "configure"
10328#include "confdefs.h"
10329$ac_includes_default
10330#ifdef F77_DUMMY_MAIN
10331# ifdef __cplusplus
10332 extern "C"
10333# endif
10334 int F77_DUMMY_MAIN() { return 1; }
10335#endif
10336int
10337main ()
10338{
10339static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)@:>@;
10340test_array @<:@0@:>@ = 0
10341
10342 ;
10343 return 0;
10344}
10345_ACEOF
10346rm -f conftest.$ac_objext
10347if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10348 (eval $ac_compile) 2>&5
10349 ac_status=$?
10350 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10351 (exit $ac_status); } &&
10352 { ac_try='test -s conftest.$ac_objext'
10353 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10354 (eval $ac_try) 2>&5
10355 ac_status=$?
10356 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10357 (exit $ac_status); }; }; then
10358 ac_lo=$ac_mid; break
10359else
10360 echo "$as_me: failed program was:" >&5
10361cat conftest.$ac_ext >&5
10362ac_hi=`expr '(' $ac_mid ')' - 1`
10363 if test $ac_mid -le $ac_hi; then
10364 ac_lo= ac_hi=
10365 break
10366 fi
10367 ac_mid=`expr 2 '*' $ac_mid`
10368fi
10369rm -f conftest.$ac_objext conftest.$ac_ext
10370 done
10371else
10372 echo "$as_me: failed program was:" >&5
10373cat conftest.$ac_ext >&5
10374ac_lo= ac_hi=
10375fi
10376rm -f conftest.$ac_objext conftest.$ac_ext
10377fi
10378rm -f conftest.$ac_objext conftest.$ac_ext
10379# Binary search between lo and hi bounds.
10380while test "x$ac_lo" != "x$ac_hi"; do
10381 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
10382 cat >conftest.$ac_ext <<_ACEOF
10383#line $LINENO "configure"
10384#include "confdefs.h"
10385$ac_includes_default
10386#ifdef F77_DUMMY_MAIN
10387# ifdef __cplusplus
10388 extern "C"
10389# endif
10390 int F77_DUMMY_MAIN() { return 1; }
10391#endif
10392int
10393main ()
10394{
10395static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)@:>@;
10396test_array @<:@0@:>@ = 0
10397
10398 ;
10399 return 0;
10400}
10401_ACEOF
10402rm -f conftest.$ac_objext
10403if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10404 (eval $ac_compile) 2>&5
10405 ac_status=$?
10406 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10407 (exit $ac_status); } &&
10408 { ac_try='test -s conftest.$ac_objext'
10409 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10410 (eval $ac_try) 2>&5
10411 ac_status=$?
10412 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10413 (exit $ac_status); }; }; then
10414 ac_hi=$ac_mid
10415else
10416 echo "$as_me: failed program was:" >&5
10417cat conftest.$ac_ext >&5
10418ac_lo=`expr '(' $ac_mid ')' + 1`
10419fi
10420rm -f conftest.$ac_objext conftest.$ac_ext
10421done
10422case $ac_lo in
10423?*) ac_cv_sizeof_char=$ac_lo;;
10424'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77" >&5
10425echo "$as_me: error: cannot compute sizeof (char), 77" >&2;}
10426 { (exit 1); exit 1; }; } ;;
10427esac
10428else
10429 if test "$cross_compiling" = yes; then
10430 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
10431echo "$as_me: error: cannot run test program while cross compiling" >&2;}
10432 { (exit 1); exit 1; }; }
10433else
10434 cat >conftest.$ac_ext <<_ACEOF
10435#line $LINENO "configure"
10436#include "confdefs.h"
10437$ac_includes_default
10438long longval () { return (long) (sizeof (char)); }
10439unsigned long ulongval () { return (long) (sizeof (char)); }
10440@%:@include <stdio.h>
10441@%:@include <stdlib.h>
10442#ifdef F77_DUMMY_MAIN
10443# ifdef __cplusplus
10444 extern "C"
10445# endif
10446 int F77_DUMMY_MAIN() { return 1; }
10447#endif
10448int
10449main ()
10450{
10451
10452 FILE *f = fopen ("conftest.val", "w");
10453 if (! f)
10454 exit (1);
10455 if (((long) (sizeof (char))) < 0)
10456 {
10457 long i = longval ();
10458 if (i != ((long) (sizeof (char))))
10459 exit (1);
10460 fprintf (f, "%ld\n", i);
10461 }
10462 else
10463 {
10464 unsigned long i = ulongval ();
10465 if (i != ((long) (sizeof (char))))
10466 exit (1);
10467 fprintf (f, "%lu\n", i);
10468 }
10469 exit (ferror (f) || fclose (f) != 0);
10470
10471 ;
10472 return 0;
10473}
10474_ACEOF
10475rm -f conftest$ac_exeext
10476if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10477 (eval $ac_link) 2>&5
10478 ac_status=$?
10479 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10480 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
10481 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10482 (eval $ac_try) 2>&5
10483 ac_status=$?
10484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10485 (exit $ac_status); }; }; then
10486 ac_cv_sizeof_char=`cat conftest.val`
10487else
10488 echo "$as_me: program exited with status $ac_status" >&5
10489echo "$as_me: failed program was:" >&5
10490cat conftest.$ac_ext >&5
10491( exit $ac_status )
10492{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77" >&5
10493echo "$as_me: error: cannot compute sizeof (char), 77" >&2;}
10494 { (exit 1); exit 1; }; }
10495fi
10496rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
10497fi
10498fi
10499rm -f conftest.val
10500else
10501 ac_cv_sizeof_char=0
10502fi
10503fi
10504echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5
10505echo "${ECHO_T}$ac_cv_sizeof_char" >&6
10506cat >>confdefs.h <<_ACEOF
10507@%:@define SIZEOF_CHAR $ac_cv_sizeof_char
10508_ACEOF
10509
10510
10511echo "$as_me:$LINENO: checking for short int" >&5
10512echo $ECHO_N "checking for short int... $ECHO_C" >&6
10513if test "${ac_cv_type_short_int+set}" = set; then
10514 echo $ECHO_N "(cached) $ECHO_C" >&6
10515else
10516 cat >conftest.$ac_ext <<_ACEOF
10517#line $LINENO "configure"
10518#include "confdefs.h"
10519$ac_includes_default
10520#ifdef F77_DUMMY_MAIN
10521# ifdef __cplusplus
10522 extern "C"
10523# endif
10524 int F77_DUMMY_MAIN() { return 1; }
10525#endif
10526int
10527main ()
10528{
10529if ((short int *) 0)
10530 return 0;
10531if (sizeof (short int))
10532 return 0;
10533 ;
10534 return 0;
10535}
10536_ACEOF
10537rm -f conftest.$ac_objext
10538if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10539 (eval $ac_compile) 2>&5
10540 ac_status=$?
10541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10542 (exit $ac_status); } &&
10543 { ac_try='test -s conftest.$ac_objext'
10544 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10545 (eval $ac_try) 2>&5
10546 ac_status=$?
10547 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10548 (exit $ac_status); }; }; then
10549 ac_cv_type_short_int=yes
10550else
10551 echo "$as_me: failed program was:" >&5
10552cat conftest.$ac_ext >&5
10553ac_cv_type_short_int=no
10554fi
10555rm -f conftest.$ac_objext conftest.$ac_ext
10556fi
10557echo "$as_me:$LINENO: result: $ac_cv_type_short_int" >&5
10558echo "${ECHO_T}$ac_cv_type_short_int" >&6
10559
10560echo "$as_me:$LINENO: checking size of short int" >&5
10561echo $ECHO_N "checking size of short int... $ECHO_C" >&6
10562if test "${ac_cv_sizeof_short_int+set}" = set; then
10563 echo $ECHO_N "(cached) $ECHO_C" >&6
10564else
10565 if test "$ac_cv_type_short_int" = yes; then
10566 # The cast to unsigned long works around a bug in the HP C Compiler
10567 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
10568 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
10569 # This bug is HP SR number 8606223364.
10570 if test "$cross_compiling" = yes; then
10571 # Depending upon the size, compute the lo and hi bounds.
10572cat >conftest.$ac_ext <<_ACEOF
10573#line $LINENO "configure"
10574#include "confdefs.h"
10575$ac_includes_default
10576#ifdef F77_DUMMY_MAIN
10577# ifdef __cplusplus
10578 extern "C"
10579# endif
10580 int F77_DUMMY_MAIN() { return 1; }
10581#endif
10582int
10583main ()
10584{
10585static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) >= 0)@:>@;
10586test_array @<:@0@:>@ = 0
10587
10588 ;
10589 return 0;
10590}
10591_ACEOF
10592rm -f conftest.$ac_objext
10593if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10594 (eval $ac_compile) 2>&5
10595 ac_status=$?
10596 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10597 (exit $ac_status); } &&
10598 { ac_try='test -s conftest.$ac_objext'
10599 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10600 (eval $ac_try) 2>&5
10601 ac_status=$?
10602 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10603 (exit $ac_status); }; }; then
10604 ac_lo=0 ac_mid=0
10605 while :; do
10606 cat >conftest.$ac_ext <<_ACEOF
10607#line $LINENO "configure"
10608#include "confdefs.h"
10609$ac_includes_default
10610#ifdef F77_DUMMY_MAIN
10611# ifdef __cplusplus
10612 extern "C"
10613# endif
10614 int F77_DUMMY_MAIN() { return 1; }
10615#endif
10616int
10617main ()
10618{
10619static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)@:>@;
10620test_array @<:@0@:>@ = 0
10621
10622 ;
10623 return 0;
10624}
10625_ACEOF
10626rm -f conftest.$ac_objext
10627if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10628 (eval $ac_compile) 2>&5
10629 ac_status=$?
10630 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10631 (exit $ac_status); } &&
10632 { ac_try='test -s conftest.$ac_objext'
10633 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10634 (eval $ac_try) 2>&5
10635 ac_status=$?
10636 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10637 (exit $ac_status); }; }; then
10638 ac_hi=$ac_mid; break
10639else
10640 echo "$as_me: failed program was:" >&5
10641cat conftest.$ac_ext >&5
10642ac_lo=`expr $ac_mid + 1`
10643 if test $ac_lo -le $ac_mid; then
10644 ac_lo= ac_hi=
10645 break
10646 fi
10647 ac_mid=`expr 2 '*' $ac_mid + 1`
10648fi
10649rm -f conftest.$ac_objext conftest.$ac_ext
10650 done
10651else
10652 echo "$as_me: failed program was:" >&5
10653cat conftest.$ac_ext >&5
10654cat >conftest.$ac_ext <<_ACEOF
10655#line $LINENO "configure"
10656#include "confdefs.h"
10657$ac_includes_default
10658#ifdef F77_DUMMY_MAIN
10659# ifdef __cplusplus
10660 extern "C"
10661# endif
10662 int F77_DUMMY_MAIN() { return 1; }
10663#endif
10664int
10665main ()
10666{
10667static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) < 0)@:>@;
10668test_array @<:@0@:>@ = 0
10669
10670 ;
10671 return 0;
10672}
10673_ACEOF
10674rm -f conftest.$ac_objext
10675if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10676 (eval $ac_compile) 2>&5
10677 ac_status=$?
10678 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10679 (exit $ac_status); } &&
10680 { ac_try='test -s conftest.$ac_objext'
10681 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10682 (eval $ac_try) 2>&5
10683 ac_status=$?
10684 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10685 (exit $ac_status); }; }; then
10686 ac_hi=-1 ac_mid=-1
10687 while :; do
10688 cat >conftest.$ac_ext <<_ACEOF
10689#line $LINENO "configure"
10690#include "confdefs.h"
10691$ac_includes_default
10692#ifdef F77_DUMMY_MAIN
10693# ifdef __cplusplus
10694 extern "C"
10695# endif
10696 int F77_DUMMY_MAIN() { return 1; }
10697#endif
10698int
10699main ()
10700{
10701static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) >= $ac_mid)@:>@;
10702test_array @<:@0@:>@ = 0
10703
10704 ;
10705 return 0;
10706}
10707_ACEOF
10708rm -f conftest.$ac_objext
10709if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10710 (eval $ac_compile) 2>&5
10711 ac_status=$?
10712 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10713 (exit $ac_status); } &&
10714 { ac_try='test -s conftest.$ac_objext'
10715 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10716 (eval $ac_try) 2>&5
10717 ac_status=$?
10718 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10719 (exit $ac_status); }; }; then
10720 ac_lo=$ac_mid; break
10721else
10722 echo "$as_me: failed program was:" >&5
10723cat conftest.$ac_ext >&5
10724ac_hi=`expr '(' $ac_mid ')' - 1`
10725 if test $ac_mid -le $ac_hi; then
10726 ac_lo= ac_hi=
10727 break
10728 fi
10729 ac_mid=`expr 2 '*' $ac_mid`
10730fi
10731rm -f conftest.$ac_objext conftest.$ac_ext
10732 done
10733else
10734 echo "$as_me: failed program was:" >&5
10735cat conftest.$ac_ext >&5
10736ac_lo= ac_hi=
10737fi
10738rm -f conftest.$ac_objext conftest.$ac_ext
10739fi
10740rm -f conftest.$ac_objext conftest.$ac_ext
10741# Binary search between lo and hi bounds.
10742while test "x$ac_lo" != "x$ac_hi"; do
10743 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
10744 cat >conftest.$ac_ext <<_ACEOF
10745#line $LINENO "configure"
10746#include "confdefs.h"
10747$ac_includes_default
10748#ifdef F77_DUMMY_MAIN
10749# ifdef __cplusplus
10750 extern "C"
10751# endif
10752 int F77_DUMMY_MAIN() { return 1; }
10753#endif
10754int
10755main ()
10756{
10757static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)@:>@;
10758test_array @<:@0@:>@ = 0
10759
10760 ;
10761 return 0;
10762}
10763_ACEOF
10764rm -f conftest.$ac_objext
10765if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10766 (eval $ac_compile) 2>&5
10767 ac_status=$?
10768 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10769 (exit $ac_status); } &&
10770 { ac_try='test -s conftest.$ac_objext'
10771 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10772 (eval $ac_try) 2>&5
10773 ac_status=$?
10774 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10775 (exit $ac_status); }; }; then
10776 ac_hi=$ac_mid
10777else
10778 echo "$as_me: failed program was:" >&5
10779cat conftest.$ac_ext >&5
10780ac_lo=`expr '(' $ac_mid ')' + 1`
10781fi
10782rm -f conftest.$ac_objext conftest.$ac_ext
10783done
10784case $ac_lo in
10785?*) ac_cv_sizeof_short_int=$ac_lo;;
10786'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77" >&5
10787echo "$as_me: error: cannot compute sizeof (short int), 77" >&2;}
10788 { (exit 1); exit 1; }; } ;;
10789esac
10790else
10791 if test "$cross_compiling" = yes; then
10792 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
10793echo "$as_me: error: cannot run test program while cross compiling" >&2;}
10794 { (exit 1); exit 1; }; }
10795else
10796 cat >conftest.$ac_ext <<_ACEOF
10797#line $LINENO "configure"
10798#include "confdefs.h"
10799$ac_includes_default
10800long longval () { return (long) (sizeof (short int)); }
10801unsigned long ulongval () { return (long) (sizeof (short int)); }
10802@%:@include <stdio.h>
10803@%:@include <stdlib.h>
10804#ifdef F77_DUMMY_MAIN
10805# ifdef __cplusplus
10806 extern "C"
10807# endif
10808 int F77_DUMMY_MAIN() { return 1; }
10809#endif
10810int
10811main ()
10812{
10813
10814 FILE *f = fopen ("conftest.val", "w");
10815 if (! f)
10816 exit (1);
10817 if (((long) (sizeof (short int))) < 0)
10818 {
10819 long i = longval ();
10820 if (i != ((long) (sizeof (short int))))
10821 exit (1);
10822 fprintf (f, "%ld\n", i);
10823 }
10824 else
10825 {
10826 unsigned long i = ulongval ();
10827 if (i != ((long) (sizeof (short int))))
10828 exit (1);
10829 fprintf (f, "%lu\n", i);
10830 }
10831 exit (ferror (f) || fclose (f) != 0);
10832
10833 ;
10834 return 0;
10835}
10836_ACEOF
10837rm -f conftest$ac_exeext
10838if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10839 (eval $ac_link) 2>&5
10840 ac_status=$?
10841 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10842 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
10843 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10844 (eval $ac_try) 2>&5
10845 ac_status=$?
10846 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10847 (exit $ac_status); }; }; then
10848 ac_cv_sizeof_short_int=`cat conftest.val`
10849else
10850 echo "$as_me: program exited with status $ac_status" >&5
10851echo "$as_me: failed program was:" >&5
10852cat conftest.$ac_ext >&5
10853( exit $ac_status )
10854{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77" >&5
10855echo "$as_me: error: cannot compute sizeof (short int), 77" >&2;}
10856 { (exit 1); exit 1; }; }
10857fi
10858rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
10859fi
10860fi
10861rm -f conftest.val
10862else
10863 ac_cv_sizeof_short_int=0
10864fi
10865fi
10866echo "$as_me:$LINENO: result: $ac_cv_sizeof_short_int" >&5
10867echo "${ECHO_T}$ac_cv_sizeof_short_int" >&6
10868cat >>confdefs.h <<_ACEOF
10869@%:@define SIZEOF_SHORT_INT $ac_cv_sizeof_short_int
10870_ACEOF
10871
10872
10873echo "$as_me:$LINENO: checking for int" >&5
10874echo $ECHO_N "checking for int... $ECHO_C" >&6
10875if test "${ac_cv_type_int+set}" = set; then
10876 echo $ECHO_N "(cached) $ECHO_C" >&6
10877else
10878 cat >conftest.$ac_ext <<_ACEOF
10879#line $LINENO "configure"
10880#include "confdefs.h"
10881$ac_includes_default
10882#ifdef F77_DUMMY_MAIN
10883# ifdef __cplusplus
10884 extern "C"
10885# endif
10886 int F77_DUMMY_MAIN() { return 1; }
10887#endif
10888int
10889main ()
10890{
10891if ((int *) 0)
10892 return 0;
10893if (sizeof (int))
10894 return 0;
10895 ;
10896 return 0;
10897}
10898_ACEOF
10899rm -f conftest.$ac_objext
10900if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10901 (eval $ac_compile) 2>&5
10902 ac_status=$?
10903 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10904 (exit $ac_status); } &&
10905 { ac_try='test -s conftest.$ac_objext'
10906 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10907 (eval $ac_try) 2>&5
10908 ac_status=$?
10909 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10910 (exit $ac_status); }; }; then
10911 ac_cv_type_int=yes
10912else
10913 echo "$as_me: failed program was:" >&5
10914cat conftest.$ac_ext >&5
10915ac_cv_type_int=no
10916fi
10917rm -f conftest.$ac_objext conftest.$ac_ext
10918fi
10919echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
10920echo "${ECHO_T}$ac_cv_type_int" >&6
10921
10922echo "$as_me:$LINENO: checking size of int" >&5
10923echo $ECHO_N "checking size of int... $ECHO_C" >&6
10924if test "${ac_cv_sizeof_int+set}" = set; then
10925 echo $ECHO_N "(cached) $ECHO_C" >&6
10926else
10927 if test "$ac_cv_type_int" = yes; then
10928 # The cast to unsigned long works around a bug in the HP C Compiler
10929 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
10930 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
10931 # This bug is HP SR number 8606223364.
10932 if test "$cross_compiling" = yes; then
10933 # Depending upon the size, compute the lo and hi bounds.
10934cat >conftest.$ac_ext <<_ACEOF
10935#line $LINENO "configure"
10936#include "confdefs.h"
10937$ac_includes_default
10938#ifdef F77_DUMMY_MAIN
10939# ifdef __cplusplus
10940 extern "C"
10941# endif
10942 int F77_DUMMY_MAIN() { return 1; }
10943#endif
10944int
10945main ()
10946{
10947static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= 0)@:>@;
10948test_array @<:@0@:>@ = 0
10949
10950 ;
10951 return 0;
10952}
10953_ACEOF
10954rm -f conftest.$ac_objext
10955if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10956 (eval $ac_compile) 2>&5
10957 ac_status=$?
10958 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10959 (exit $ac_status); } &&
10960 { ac_try='test -s conftest.$ac_objext'
10961 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10962 (eval $ac_try) 2>&5
10963 ac_status=$?
10964 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10965 (exit $ac_status); }; }; then
10966 ac_lo=0 ac_mid=0
10967 while :; do
10968 cat >conftest.$ac_ext <<_ACEOF
10969#line $LINENO "configure"
10970#include "confdefs.h"
10971$ac_includes_default
10972#ifdef F77_DUMMY_MAIN
10973# ifdef __cplusplus
10974 extern "C"
10975# endif
10976 int F77_DUMMY_MAIN() { return 1; }
10977#endif
10978int
10979main ()
10980{
10981static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@;
10982test_array @<:@0@:>@ = 0
10983
10984 ;
10985 return 0;
10986}
10987_ACEOF
10988rm -f conftest.$ac_objext
10989if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10990 (eval $ac_compile) 2>&5
10991 ac_status=$?
10992 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10993 (exit $ac_status); } &&
10994 { ac_try='test -s conftest.$ac_objext'
10995 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10996 (eval $ac_try) 2>&5
10997 ac_status=$?
10998 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10999 (exit $ac_status); }; }; then
11000 ac_hi=$ac_mid; break
11001else
11002 echo "$as_me: failed program was:" >&5
11003cat conftest.$ac_ext >&5
11004ac_lo=`expr $ac_mid + 1`
11005 if test $ac_lo -le $ac_mid; then
11006 ac_lo= ac_hi=
11007 break
11008 fi
11009 ac_mid=`expr 2 '*' $ac_mid + 1`
11010fi
11011rm -f conftest.$ac_objext conftest.$ac_ext
11012 done
11013else
11014 echo "$as_me: failed program was:" >&5
11015cat conftest.$ac_ext >&5
11016cat >conftest.$ac_ext <<_ACEOF
11017#line $LINENO "configure"
11018#include "confdefs.h"
11019$ac_includes_default
11020#ifdef F77_DUMMY_MAIN
11021# ifdef __cplusplus
11022 extern "C"
11023# endif
11024 int F77_DUMMY_MAIN() { return 1; }
11025#endif
11026int
11027main ()
11028{
11029static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) < 0)@:>@;
11030test_array @<:@0@:>@ = 0
11031
11032 ;
11033 return 0;
11034}
11035_ACEOF
11036rm -f conftest.$ac_objext
11037if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11038 (eval $ac_compile) 2>&5
11039 ac_status=$?
11040 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11041 (exit $ac_status); } &&
11042 { ac_try='test -s conftest.$ac_objext'
11043 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11044 (eval $ac_try) 2>&5
11045 ac_status=$?
11046 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11047 (exit $ac_status); }; }; then
11048 ac_hi=-1 ac_mid=-1
11049 while :; do
11050 cat >conftest.$ac_ext <<_ACEOF
11051#line $LINENO "configure"
11052#include "confdefs.h"
11053$ac_includes_default
11054#ifdef F77_DUMMY_MAIN
11055# ifdef __cplusplus
11056 extern "C"
11057# endif
11058 int F77_DUMMY_MAIN() { return 1; }
11059#endif
11060int
11061main ()
11062{
11063static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)@:>@;
11064test_array @<:@0@:>@ = 0
11065
11066 ;
11067 return 0;
11068}
11069_ACEOF
11070rm -f conftest.$ac_objext
11071if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11072 (eval $ac_compile) 2>&5
11073 ac_status=$?
11074 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11075 (exit $ac_status); } &&
11076 { ac_try='test -s conftest.$ac_objext'
11077 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11078 (eval $ac_try) 2>&5
11079 ac_status=$?
11080 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11081 (exit $ac_status); }; }; then
11082 ac_lo=$ac_mid; break
11083else
11084 echo "$as_me: failed program was:" >&5
11085cat conftest.$ac_ext >&5
11086ac_hi=`expr '(' $ac_mid ')' - 1`
11087 if test $ac_mid -le $ac_hi; then
11088 ac_lo= ac_hi=
11089 break
11090 fi
11091 ac_mid=`expr 2 '*' $ac_mid`
11092fi
11093rm -f conftest.$ac_objext conftest.$ac_ext
11094 done
11095else
11096 echo "$as_me: failed program was:" >&5
11097cat conftest.$ac_ext >&5
11098ac_lo= ac_hi=
11099fi
11100rm -f conftest.$ac_objext conftest.$ac_ext
11101fi
11102rm -f conftest.$ac_objext conftest.$ac_ext
11103# Binary search between lo and hi bounds.
11104while test "x$ac_lo" != "x$ac_hi"; do
11105 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11106 cat >conftest.$ac_ext <<_ACEOF
11107#line $LINENO "configure"
11108#include "confdefs.h"
11109$ac_includes_default
11110#ifdef F77_DUMMY_MAIN
11111# ifdef __cplusplus
11112 extern "C"
11113# endif
11114 int F77_DUMMY_MAIN() { return 1; }
11115#endif
11116int
11117main ()
11118{
11119static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@;
11120test_array @<:@0@:>@ = 0
11121
11122 ;
11123 return 0;
11124}
11125_ACEOF
11126rm -f conftest.$ac_objext
11127if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11128 (eval $ac_compile) 2>&5
11129 ac_status=$?
11130 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11131 (exit $ac_status); } &&
11132 { ac_try='test -s conftest.$ac_objext'
11133 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11134 (eval $ac_try) 2>&5
11135 ac_status=$?
11136 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11137 (exit $ac_status); }; }; then
11138 ac_hi=$ac_mid
11139else
11140 echo "$as_me: failed program was:" >&5
11141cat conftest.$ac_ext >&5
11142ac_lo=`expr '(' $ac_mid ')' + 1`
11143fi
11144rm -f conftest.$ac_objext conftest.$ac_ext
11145done
11146case $ac_lo in
11147?*) ac_cv_sizeof_int=$ac_lo;;
11148'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77" >&5
11149echo "$as_me: error: cannot compute sizeof (int), 77" >&2;}
11150 { (exit 1); exit 1; }; } ;;
11151esac
11152else
11153 if test "$cross_compiling" = yes; then
11154 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
11155echo "$as_me: error: cannot run test program while cross compiling" >&2;}
11156 { (exit 1); exit 1; }; }
11157else
11158 cat >conftest.$ac_ext <<_ACEOF
11159#line $LINENO "configure"
11160#include "confdefs.h"
11161$ac_includes_default
11162long longval () { return (long) (sizeof (int)); }
11163unsigned long ulongval () { return (long) (sizeof (int)); }
11164@%:@include <stdio.h>
11165@%:@include <stdlib.h>
11166#ifdef F77_DUMMY_MAIN
11167# ifdef __cplusplus
11168 extern "C"
11169# endif
11170 int F77_DUMMY_MAIN() { return 1; }
11171#endif
11172int
11173main ()
11174{
11175
11176 FILE *f = fopen ("conftest.val", "w");
11177 if (! f)
11178 exit (1);
11179 if (((long) (sizeof (int))) < 0)
11180 {
11181 long i = longval ();
11182 if (i != ((long) (sizeof (int))))
11183 exit (1);
11184 fprintf (f, "%ld\n", i);
11185 }
11186 else
11187 {
11188 unsigned long i = ulongval ();
11189 if (i != ((long) (sizeof (int))))
11190 exit (1);
11191 fprintf (f, "%lu\n", i);
11192 }
11193 exit (ferror (f) || fclose (f) != 0);
11194
11195 ;
11196 return 0;
11197}
11198_ACEOF
11199rm -f conftest$ac_exeext
11200if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11201 (eval $ac_link) 2>&5
11202 ac_status=$?
11203 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11204 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11205 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11206 (eval $ac_try) 2>&5
11207 ac_status=$?
11208 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11209 (exit $ac_status); }; }; then
11210 ac_cv_sizeof_int=`cat conftest.val`
11211else
11212 echo "$as_me: program exited with status $ac_status" >&5
11213echo "$as_me: failed program was:" >&5
11214cat conftest.$ac_ext >&5
11215( exit $ac_status )
11216{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77" >&5
11217echo "$as_me: error: cannot compute sizeof (int), 77" >&2;}
11218 { (exit 1); exit 1; }; }
11219fi
11220rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11221fi
11222fi
11223rm -f conftest.val
11224else
11225 ac_cv_sizeof_int=0
11226fi
11227fi
11228echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
11229echo "${ECHO_T}$ac_cv_sizeof_int" >&6
11230cat >>confdefs.h <<_ACEOF
11231@%:@define SIZEOF_INT $ac_cv_sizeof_int
11232_ACEOF
11233
11234
11235echo "$as_me:$LINENO: checking for long int" >&5
11236echo $ECHO_N "checking for long int... $ECHO_C" >&6
11237if test "${ac_cv_type_long_int+set}" = set; then
11238 echo $ECHO_N "(cached) $ECHO_C" >&6
11239else
11240 cat >conftest.$ac_ext <<_ACEOF
11241#line $LINENO "configure"
11242#include "confdefs.h"
11243$ac_includes_default
11244#ifdef F77_DUMMY_MAIN
11245# ifdef __cplusplus
11246 extern "C"
11247# endif
11248 int F77_DUMMY_MAIN() { return 1; }
11249#endif
11250int
11251main ()
11252{
11253if ((long int *) 0)
11254 return 0;
11255if (sizeof (long int))
11256 return 0;
11257 ;
11258 return 0;
11259}
11260_ACEOF
11261rm -f conftest.$ac_objext
11262if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11263 (eval $ac_compile) 2>&5
11264 ac_status=$?
11265 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11266 (exit $ac_status); } &&
11267 { ac_try='test -s conftest.$ac_objext'
11268 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11269 (eval $ac_try) 2>&5
11270 ac_status=$?
11271 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11272 (exit $ac_status); }; }; then
11273 ac_cv_type_long_int=yes
11274else
11275 echo "$as_me: failed program was:" >&5
11276cat conftest.$ac_ext >&5
11277ac_cv_type_long_int=no
11278fi
11279rm -f conftest.$ac_objext conftest.$ac_ext
11280fi
11281echo "$as_me:$LINENO: result: $ac_cv_type_long_int" >&5
11282echo "${ECHO_T}$ac_cv_type_long_int" >&6
11283
11284echo "$as_me:$LINENO: checking size of long int" >&5
11285echo $ECHO_N "checking size of long int... $ECHO_C" >&6
11286if test "${ac_cv_sizeof_long_int+set}" = set; then
11287 echo $ECHO_N "(cached) $ECHO_C" >&6
11288else
11289 if test "$ac_cv_type_long_int" = yes; then
11290 # The cast to unsigned long works around a bug in the HP C Compiler
11291 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
11292 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
11293 # This bug is HP SR number 8606223364.
11294 if test "$cross_compiling" = yes; then
11295 # Depending upon the size, compute the lo and hi bounds.
11296cat >conftest.$ac_ext <<_ACEOF
11297#line $LINENO "configure"
11298#include "confdefs.h"
11299$ac_includes_default
11300#ifdef F77_DUMMY_MAIN
11301# ifdef __cplusplus
11302 extern "C"
11303# endif
11304 int F77_DUMMY_MAIN() { return 1; }
11305#endif
11306int
11307main ()
11308{
11309static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) >= 0)@:>@;
11310test_array @<:@0@:>@ = 0
11311
11312 ;
11313 return 0;
11314}
11315_ACEOF
11316rm -f conftest.$ac_objext
11317if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11318 (eval $ac_compile) 2>&5
11319 ac_status=$?
11320 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11321 (exit $ac_status); } &&
11322 { ac_try='test -s conftest.$ac_objext'
11323 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11324 (eval $ac_try) 2>&5
11325 ac_status=$?
11326 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11327 (exit $ac_status); }; }; then
11328 ac_lo=0 ac_mid=0
11329 while :; do
11330 cat >conftest.$ac_ext <<_ACEOF
11331#line $LINENO "configure"
11332#include "confdefs.h"
11333$ac_includes_default
11334#ifdef F77_DUMMY_MAIN
11335# ifdef __cplusplus
11336 extern "C"
11337# endif
11338 int F77_DUMMY_MAIN() { return 1; }
11339#endif
11340int
11341main ()
11342{
11343static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)@:>@;
11344test_array @<:@0@:>@ = 0
11345
11346 ;
11347 return 0;
11348}
11349_ACEOF
11350rm -f conftest.$ac_objext
11351if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11352 (eval $ac_compile) 2>&5
11353 ac_status=$?
11354 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11355 (exit $ac_status); } &&
11356 { ac_try='test -s conftest.$ac_objext'
11357 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11358 (eval $ac_try) 2>&5
11359 ac_status=$?
11360 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11361 (exit $ac_status); }; }; then
11362 ac_hi=$ac_mid; break
11363else
11364 echo "$as_me: failed program was:" >&5
11365cat conftest.$ac_ext >&5
11366ac_lo=`expr $ac_mid + 1`
11367 if test $ac_lo -le $ac_mid; then
11368 ac_lo= ac_hi=
11369 break
11370 fi
11371 ac_mid=`expr 2 '*' $ac_mid + 1`
11372fi
11373rm -f conftest.$ac_objext conftest.$ac_ext
11374 done
11375else
11376 echo "$as_me: failed program was:" >&5
11377cat conftest.$ac_ext >&5
11378cat >conftest.$ac_ext <<_ACEOF
11379#line $LINENO "configure"
11380#include "confdefs.h"
11381$ac_includes_default
11382#ifdef F77_DUMMY_MAIN
11383# ifdef __cplusplus
11384 extern "C"
11385# endif
11386 int F77_DUMMY_MAIN() { return 1; }
11387#endif
11388int
11389main ()
11390{
11391static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) < 0)@:>@;
11392test_array @<:@0@:>@ = 0
11393
11394 ;
11395 return 0;
11396}
11397_ACEOF
11398rm -f conftest.$ac_objext
11399if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11400 (eval $ac_compile) 2>&5
11401 ac_status=$?
11402 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11403 (exit $ac_status); } &&
11404 { ac_try='test -s conftest.$ac_objext'
11405 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11406 (eval $ac_try) 2>&5
11407 ac_status=$?
11408 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11409 (exit $ac_status); }; }; then
11410 ac_hi=-1 ac_mid=-1
11411 while :; do
11412 cat >conftest.$ac_ext <<_ACEOF
11413#line $LINENO "configure"
11414#include "confdefs.h"
11415$ac_includes_default
11416#ifdef F77_DUMMY_MAIN
11417# ifdef __cplusplus
11418 extern "C"
11419# endif
11420 int F77_DUMMY_MAIN() { return 1; }
11421#endif
11422int
11423main ()
11424{
11425static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) >= $ac_mid)@:>@;
11426test_array @<:@0@:>@ = 0
11427
11428 ;
11429 return 0;
11430}
11431_ACEOF
11432rm -f conftest.$ac_objext
11433if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11434 (eval $ac_compile) 2>&5
11435 ac_status=$?
11436 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11437 (exit $ac_status); } &&
11438 { ac_try='test -s conftest.$ac_objext'
11439 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11440 (eval $ac_try) 2>&5
11441 ac_status=$?
11442 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11443 (exit $ac_status); }; }; then
11444 ac_lo=$ac_mid; break
11445else
11446 echo "$as_me: failed program was:" >&5
11447cat conftest.$ac_ext >&5
11448ac_hi=`expr '(' $ac_mid ')' - 1`
11449 if test $ac_mid -le $ac_hi; then
11450 ac_lo= ac_hi=
11451 break
11452 fi
11453 ac_mid=`expr 2 '*' $ac_mid`
11454fi
11455rm -f conftest.$ac_objext conftest.$ac_ext
11456 done
11457else
11458 echo "$as_me: failed program was:" >&5
11459cat conftest.$ac_ext >&5
11460ac_lo= ac_hi=
11461fi
11462rm -f conftest.$ac_objext conftest.$ac_ext
11463fi
11464rm -f conftest.$ac_objext conftest.$ac_ext
11465# Binary search between lo and hi bounds.
11466while test "x$ac_lo" != "x$ac_hi"; do
11467 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11468 cat >conftest.$ac_ext <<_ACEOF
11469#line $LINENO "configure"
11470#include "confdefs.h"
11471$ac_includes_default
11472#ifdef F77_DUMMY_MAIN
11473# ifdef __cplusplus
11474 extern "C"
11475# endif
11476 int F77_DUMMY_MAIN() { return 1; }
11477#endif
11478int
11479main ()
11480{
11481static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)@:>@;
11482test_array @<:@0@:>@ = 0
11483
11484 ;
11485 return 0;
11486}
11487_ACEOF
11488rm -f conftest.$ac_objext
11489if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11490 (eval $ac_compile) 2>&5
11491 ac_status=$?
11492 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11493 (exit $ac_status); } &&
11494 { ac_try='test -s conftest.$ac_objext'
11495 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11496 (eval $ac_try) 2>&5
11497 ac_status=$?
11498 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11499 (exit $ac_status); }; }; then
11500 ac_hi=$ac_mid
11501else
11502 echo "$as_me: failed program was:" >&5
11503cat conftest.$ac_ext >&5
11504ac_lo=`expr '(' $ac_mid ')' + 1`
11505fi
11506rm -f conftest.$ac_objext conftest.$ac_ext
11507done
11508case $ac_lo in
11509?*) ac_cv_sizeof_long_int=$ac_lo;;
11510'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77" >&5
11511echo "$as_me: error: cannot compute sizeof (long int), 77" >&2;}
11512 { (exit 1); exit 1; }; } ;;
11513esac
11514else
11515 if test "$cross_compiling" = yes; then
11516 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
11517echo "$as_me: error: cannot run test program while cross compiling" >&2;}
11518 { (exit 1); exit 1; }; }
11519else
11520 cat >conftest.$ac_ext <<_ACEOF
11521#line $LINENO "configure"
11522#include "confdefs.h"
11523$ac_includes_default
11524long longval () { return (long) (sizeof (long int)); }
11525unsigned long ulongval () { return (long) (sizeof (long int)); }
11526@%:@include <stdio.h>
11527@%:@include <stdlib.h>
11528#ifdef F77_DUMMY_MAIN
11529# ifdef __cplusplus
11530 extern "C"
11531# endif
11532 int F77_DUMMY_MAIN() { return 1; }
11533#endif
11534int
11535main ()
11536{
11537
11538 FILE *f = fopen ("conftest.val", "w");
11539 if (! f)
11540 exit (1);
11541 if (((long) (sizeof (long int))) < 0)
11542 {
11543 long i = longval ();
11544 if (i != ((long) (sizeof (long int))))
11545 exit (1);
11546 fprintf (f, "%ld\n", i);
11547 }
11548 else
11549 {
11550 unsigned long i = ulongval ();
11551 if (i != ((long) (sizeof (long int))))
11552 exit (1);
11553 fprintf (f, "%lu\n", i);
11554 }
11555 exit (ferror (f) || fclose (f) != 0);
11556
11557 ;
11558 return 0;
11559}
11560_ACEOF
11561rm -f conftest$ac_exeext
11562if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11563 (eval $ac_link) 2>&5
11564 ac_status=$?
11565 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11566 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11567 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11568 (eval $ac_try) 2>&5
11569 ac_status=$?
11570 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11571 (exit $ac_status); }; }; then
11572 ac_cv_sizeof_long_int=`cat conftest.val`
11573else
11574 echo "$as_me: program exited with status $ac_status" >&5
11575echo "$as_me: failed program was:" >&5
11576cat conftest.$ac_ext >&5
11577( exit $ac_status )
11578{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77" >&5
11579echo "$as_me: error: cannot compute sizeof (long int), 77" >&2;}
11580 { (exit 1); exit 1; }; }
11581fi
11582rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11583fi
11584fi
11585rm -f conftest.val
11586else
11587 ac_cv_sizeof_long_int=0
11588fi
11589fi
11590echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_int" >&5
11591echo "${ECHO_T}$ac_cv_sizeof_long_int" >&6
11592cat >>confdefs.h <<_ACEOF
11593@%:@define SIZEOF_LONG_INT $ac_cv_sizeof_long_int
11594_ACEOF
11595
11596
11597echo "$as_me:$LINENO: checking for long long int" >&5
11598echo $ECHO_N "checking for long long int... $ECHO_C" >&6
11599if test "${ac_cv_type_long_long_int+set}" = set; then
11600 echo $ECHO_N "(cached) $ECHO_C" >&6
11601else
11602 cat >conftest.$ac_ext <<_ACEOF
11603#line $LINENO "configure"
11604#include "confdefs.h"
11605$ac_includes_default
11606#ifdef F77_DUMMY_MAIN
11607# ifdef __cplusplus
11608 extern "C"
11609# endif
11610 int F77_DUMMY_MAIN() { return 1; }
11611#endif
11612int
11613main ()
11614{
11615if ((long long int *) 0)
11616 return 0;
11617if (sizeof (long long int))
11618 return 0;
11619 ;
11620 return 0;
11621}
11622_ACEOF
11623rm -f conftest.$ac_objext
11624if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11625 (eval $ac_compile) 2>&5
11626 ac_status=$?
11627 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11628 (exit $ac_status); } &&
11629 { ac_try='test -s conftest.$ac_objext'
11630 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11631 (eval $ac_try) 2>&5
11632 ac_status=$?
11633 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11634 (exit $ac_status); }; }; then
11635 ac_cv_type_long_long_int=yes
11636else
11637 echo "$as_me: failed program was:" >&5
11638cat conftest.$ac_ext >&5
11639ac_cv_type_long_long_int=no
11640fi
11641rm -f conftest.$ac_objext conftest.$ac_ext
11642fi
11643echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
11644echo "${ECHO_T}$ac_cv_type_long_long_int" >&6
11645
11646echo "$as_me:$LINENO: checking size of long long int" >&5
11647echo $ECHO_N "checking size of long long int... $ECHO_C" >&6
11648if test "${ac_cv_sizeof_long_long_int+set}" = set; then
11649 echo $ECHO_N "(cached) $ECHO_C" >&6
11650else
11651 if test "$ac_cv_type_long_long_int" = yes; then
11652 # The cast to unsigned long works around a bug in the HP C Compiler
11653 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
11654 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
11655 # This bug is HP SR number 8606223364.
11656 if test "$cross_compiling" = yes; then
11657 # Depending upon the size, compute the lo and hi bounds.
11658cat >conftest.$ac_ext <<_ACEOF
11659#line $LINENO "configure"
11660#include "confdefs.h"
11661$ac_includes_default
11662#ifdef F77_DUMMY_MAIN
11663# ifdef __cplusplus
11664 extern "C"
11665# endif
11666 int F77_DUMMY_MAIN() { return 1; }
11667#endif
11668int
11669main ()
11670{
11671static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) >= 0)@:>@;
11672test_array @<:@0@:>@ = 0
11673
11674 ;
11675 return 0;
11676}
11677_ACEOF
11678rm -f conftest.$ac_objext
11679if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11680 (eval $ac_compile) 2>&5
11681 ac_status=$?
11682 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11683 (exit $ac_status); } &&
11684 { ac_try='test -s conftest.$ac_objext'
11685 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11686 (eval $ac_try) 2>&5
11687 ac_status=$?
11688 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11689 (exit $ac_status); }; }; then
11690 ac_lo=0 ac_mid=0
11691 while :; do
11692 cat >conftest.$ac_ext <<_ACEOF
11693#line $LINENO "configure"
11694#include "confdefs.h"
11695$ac_includes_default
11696#ifdef F77_DUMMY_MAIN
11697# ifdef __cplusplus
11698 extern "C"
11699# endif
11700 int F77_DUMMY_MAIN() { return 1; }
11701#endif
11702int
11703main ()
11704{
11705static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)@:>@;
11706test_array @<:@0@:>@ = 0
11707
11708 ;
11709 return 0;
11710}
11711_ACEOF
11712rm -f conftest.$ac_objext
11713if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11714 (eval $ac_compile) 2>&5
11715 ac_status=$?
11716 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11717 (exit $ac_status); } &&
11718 { ac_try='test -s conftest.$ac_objext'
11719 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11720 (eval $ac_try) 2>&5
11721 ac_status=$?
11722 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11723 (exit $ac_status); }; }; then
11724 ac_hi=$ac_mid; break
11725else
11726 echo "$as_me: failed program was:" >&5
11727cat conftest.$ac_ext >&5
11728ac_lo=`expr $ac_mid + 1`
11729 if test $ac_lo -le $ac_mid; then
11730 ac_lo= ac_hi=
11731 break
11732 fi
11733 ac_mid=`expr 2 '*' $ac_mid + 1`
11734fi
11735rm -f conftest.$ac_objext conftest.$ac_ext
11736 done
11737else
11738 echo "$as_me: failed program was:" >&5
11739cat conftest.$ac_ext >&5
11740cat >conftest.$ac_ext <<_ACEOF
11741#line $LINENO "configure"
11742#include "confdefs.h"
11743$ac_includes_default
11744#ifdef F77_DUMMY_MAIN
11745# ifdef __cplusplus
11746 extern "C"
11747# endif
11748 int F77_DUMMY_MAIN() { return 1; }
11749#endif
11750int
11751main ()
11752{
11753static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) < 0)@:>@;
11754test_array @<:@0@:>@ = 0
11755
11756 ;
11757 return 0;
11758}
11759_ACEOF
11760rm -f conftest.$ac_objext
11761if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11762 (eval $ac_compile) 2>&5
11763 ac_status=$?
11764 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11765 (exit $ac_status); } &&
11766 { ac_try='test -s conftest.$ac_objext'
11767 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11768 (eval $ac_try) 2>&5
11769 ac_status=$?
11770 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11771 (exit $ac_status); }; }; then
11772 ac_hi=-1 ac_mid=-1
11773 while :; do
11774 cat >conftest.$ac_ext <<_ACEOF
11775#line $LINENO "configure"
11776#include "confdefs.h"
11777$ac_includes_default
11778#ifdef F77_DUMMY_MAIN
11779# ifdef __cplusplus
11780 extern "C"
11781# endif
11782 int F77_DUMMY_MAIN() { return 1; }
11783#endif
11784int
11785main ()
11786{
11787static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) >= $ac_mid)@:>@;
11788test_array @<:@0@:>@ = 0
11789
11790 ;
11791 return 0;
11792}
11793_ACEOF
11794rm -f conftest.$ac_objext
11795if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11796 (eval $ac_compile) 2>&5
11797 ac_status=$?
11798 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11799 (exit $ac_status); } &&
11800 { ac_try='test -s conftest.$ac_objext'
11801 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11802 (eval $ac_try) 2>&5
11803 ac_status=$?
11804 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11805 (exit $ac_status); }; }; then
11806 ac_lo=$ac_mid; break
11807else
11808 echo "$as_me: failed program was:" >&5
11809cat conftest.$ac_ext >&5
11810ac_hi=`expr '(' $ac_mid ')' - 1`
11811 if test $ac_mid -le $ac_hi; then
11812 ac_lo= ac_hi=
11813 break
11814 fi
11815 ac_mid=`expr 2 '*' $ac_mid`
11816fi
11817rm -f conftest.$ac_objext conftest.$ac_ext
11818 done
11819else
11820 echo "$as_me: failed program was:" >&5
11821cat conftest.$ac_ext >&5
11822ac_lo= ac_hi=
11823fi
11824rm -f conftest.$ac_objext conftest.$ac_ext
11825fi
11826rm -f conftest.$ac_objext conftest.$ac_ext
11827# Binary search between lo and hi bounds.
11828while test "x$ac_lo" != "x$ac_hi"; do
11829 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11830 cat >conftest.$ac_ext <<_ACEOF
11831#line $LINENO "configure"
11832#include "confdefs.h"
11833$ac_includes_default
11834#ifdef F77_DUMMY_MAIN
11835# ifdef __cplusplus
11836 extern "C"
11837# endif
11838 int F77_DUMMY_MAIN() { return 1; }
11839#endif
11840int
11841main ()
11842{
11843static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)@:>@;
11844test_array @<:@0@:>@ = 0
11845
11846 ;
11847 return 0;
11848}
11849_ACEOF
11850rm -f conftest.$ac_objext
11851if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11852 (eval $ac_compile) 2>&5
11853 ac_status=$?
11854 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11855 (exit $ac_status); } &&
11856 { ac_try='test -s conftest.$ac_objext'
11857 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11858 (eval $ac_try) 2>&5
11859 ac_status=$?
11860 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11861 (exit $ac_status); }; }; then
11862 ac_hi=$ac_mid
11863else
11864 echo "$as_me: failed program was:" >&5
11865cat conftest.$ac_ext >&5
11866ac_lo=`expr '(' $ac_mid ')' + 1`
11867fi
11868rm -f conftest.$ac_objext conftest.$ac_ext
11869done
11870case $ac_lo in
11871?*) ac_cv_sizeof_long_long_int=$ac_lo;;
11872'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77" >&5
11873echo "$as_me: error: cannot compute sizeof (long long int), 77" >&2;}
11874 { (exit 1); exit 1; }; } ;;
11875esac
11876else
11877 if test "$cross_compiling" = yes; then
11878 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
11879echo "$as_me: error: cannot run test program while cross compiling" >&2;}
11880 { (exit 1); exit 1; }; }
11881else
11882 cat >conftest.$ac_ext <<_ACEOF
11883#line $LINENO "configure"
11884#include "confdefs.h"
11885$ac_includes_default
11886long longval () { return (long) (sizeof (long long int)); }
11887unsigned long ulongval () { return (long) (sizeof (long long int)); }
11888@%:@include <stdio.h>
11889@%:@include <stdlib.h>
11890#ifdef F77_DUMMY_MAIN
11891# ifdef __cplusplus
11892 extern "C"
11893# endif
11894 int F77_DUMMY_MAIN() { return 1; }
11895#endif
11896int
11897main ()
11898{
11899
11900 FILE *f = fopen ("conftest.val", "w");
11901 if (! f)
11902 exit (1);
11903 if (((long) (sizeof (long long int))) < 0)
11904 {
11905 long i = longval ();
11906 if (i != ((long) (sizeof (long long int))))
11907 exit (1);
11908 fprintf (f, "%ld\n", i);
11909 }
11910 else
11911 {
11912 unsigned long i = ulongval ();
11913 if (i != ((long) (sizeof (long long int))))
11914 exit (1);
11915 fprintf (f, "%lu\n", i);
11916 }
11917 exit (ferror (f) || fclose (f) != 0);
11918
11919 ;
11920 return 0;
11921}
11922_ACEOF
11923rm -f conftest$ac_exeext
11924if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11925 (eval $ac_link) 2>&5
11926 ac_status=$?
11927 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11928 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11929 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11930 (eval $ac_try) 2>&5
11931 ac_status=$?
11932 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11933 (exit $ac_status); }; }; then
11934 ac_cv_sizeof_long_long_int=`cat conftest.val`
11935else
11936 echo "$as_me: program exited with status $ac_status" >&5
11937echo "$as_me: failed program was:" >&5
11938cat conftest.$ac_ext >&5
11939( exit $ac_status )
11940{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77" >&5
11941echo "$as_me: error: cannot compute sizeof (long long int), 77" >&2;}
11942 { (exit 1); exit 1; }; }
11943fi
11944rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11945fi
11946fi
11947rm -f conftest.val
11948else
11949 ac_cv_sizeof_long_long_int=0
11950fi
11951fi
11952echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long_int" >&5
11953echo "${ECHO_T}$ac_cv_sizeof_long_long_int" >&6
11954cat >>confdefs.h <<_ACEOF
11955@%:@define SIZEOF_LONG_LONG_INT $ac_cv_sizeof_long_long_int
11956_ACEOF
11957
11958
11959
11960# Sanity check long long for some platforms (AIX)
11961if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then
11962 ac_cv_sizeof_long_long_int=0
11963fi
11964
11965# More checks for data types
11966echo "$as_me:$LINENO: checking for u_int type" >&5
11967echo $ECHO_N "checking for u_int type... $ECHO_C" >&6
11968if test "${ac_cv_have_u_int+set}" = set; then
11969 echo $ECHO_N "(cached) $ECHO_C" >&6
11970else
11971
11972 cat >conftest.$ac_ext <<_ACEOF
11973#line $LINENO "configure"
11974#include "confdefs.h"
11975 #include <sys/types.h>
11976#ifdef F77_DUMMY_MAIN
11977# ifdef __cplusplus
11978 extern "C"
11979# endif
11980 int F77_DUMMY_MAIN() { return 1; }
11981#endif
11982int
11983main ()
11984{
11985 u_int a; a = 1;
11986 ;
11987 return 0;
11988}
11989_ACEOF
11990rm -f conftest.$ac_objext
11991if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11992 (eval $ac_compile) 2>&5
11993 ac_status=$?
11994 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11995 (exit $ac_status); } &&
11996 { ac_try='test -s conftest.$ac_objext'
11997 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11998 (eval $ac_try) 2>&5
11999 ac_status=$?
12000 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12001 (exit $ac_status); }; }; then
12002 ac_cv_have_u_int="yes"
12003else
12004 echo "$as_me: failed program was:" >&5
12005cat conftest.$ac_ext >&5
12006 ac_cv_have_u_int="no"
12007
12008fi
12009rm -f conftest.$ac_objext conftest.$ac_ext
12010
12011fi
12012echo "$as_me:$LINENO: result: $ac_cv_have_u_int" >&5
12013echo "${ECHO_T}$ac_cv_have_u_int" >&6
12014if test "x$ac_cv_have_u_int" = "xyes" ; then
12015 cat >>confdefs.h <<\_ACEOF
12016@%:@define HAVE_U_INT 1
12017_ACEOF
12018
12019 have_u_int=1
12020fi
12021
12022echo "$as_me:$LINENO: checking for intXX_t types" >&5
12023echo $ECHO_N "checking for intXX_t types... $ECHO_C" >&6
12024if test "${ac_cv_have_intxx_t+set}" = set; then
12025 echo $ECHO_N "(cached) $ECHO_C" >&6
12026else
12027
12028 cat >conftest.$ac_ext <<_ACEOF
12029#line $LINENO "configure"
12030#include "confdefs.h"
12031 #include <sys/types.h>
12032#ifdef F77_DUMMY_MAIN
12033# ifdef __cplusplus
12034 extern "C"
12035# endif
12036 int F77_DUMMY_MAIN() { return 1; }
12037#endif
12038int
12039main ()
12040{
12041 int8_t a; int16_t b; int32_t c; a = b = c = 1;
12042 ;
12043 return 0;
12044}
12045_ACEOF
12046rm -f conftest.$ac_objext
12047if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12048 (eval $ac_compile) 2>&5
12049 ac_status=$?
12050 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12051 (exit $ac_status); } &&
12052 { ac_try='test -s conftest.$ac_objext'
12053 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12054 (eval $ac_try) 2>&5
12055 ac_status=$?
12056 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12057 (exit $ac_status); }; }; then
12058 ac_cv_have_intxx_t="yes"
12059else
12060 echo "$as_me: failed program was:" >&5
12061cat conftest.$ac_ext >&5
12062 ac_cv_have_intxx_t="no"
12063
12064fi
12065rm -f conftest.$ac_objext conftest.$ac_ext
12066
12067fi
12068echo "$as_me:$LINENO: result: $ac_cv_have_intxx_t" >&5
12069echo "${ECHO_T}$ac_cv_have_intxx_t" >&6
12070if test "x$ac_cv_have_intxx_t" = "xyes" ; then
12071 cat >>confdefs.h <<\_ACEOF
12072@%:@define HAVE_INTXX_T 1
12073_ACEOF
12074
12075 have_intxx_t=1
12076fi
12077
12078if (test -z "$have_intxx_t" && \
12079 test "x$ac_cv_header_stdint_h" = "xyes")
12080then
12081 echo "$as_me:$LINENO: checking for intXX_t types in stdint.h" >&5
12082echo $ECHO_N "checking for intXX_t types in stdint.h... $ECHO_C" >&6
12083 cat >conftest.$ac_ext <<_ACEOF
12084#line $LINENO "configure"
12085#include "confdefs.h"
12086 #include <stdint.h>
12087#ifdef F77_DUMMY_MAIN
12088# ifdef __cplusplus
12089 extern "C"
12090# endif
12091 int F77_DUMMY_MAIN() { return 1; }
12092#endif
12093int
12094main ()
12095{
12096 int8_t a; int16_t b; int32_t c; a = b = c = 1;
12097 ;
12098 return 0;
12099}
12100_ACEOF
12101rm -f conftest.$ac_objext
12102if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12103 (eval $ac_compile) 2>&5
12104 ac_status=$?
12105 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12106 (exit $ac_status); } &&
12107 { ac_try='test -s conftest.$ac_objext'
12108 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12109 (eval $ac_try) 2>&5
12110 ac_status=$?
12111 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12112 (exit $ac_status); }; }; then
12113
12114 cat >>confdefs.h <<\_ACEOF
12115@%:@define HAVE_INTXX_T 1
12116_ACEOF
12117
12118 echo "$as_me:$LINENO: result: yes" >&5
12119echo "${ECHO_T}yes" >&6
12120
12121else
12122 echo "$as_me: failed program was:" >&5
12123cat conftest.$ac_ext >&5
12124 echo "$as_me:$LINENO: result: no" >&5
12125echo "${ECHO_T}no" >&6
12126
12127fi
12128rm -f conftest.$ac_objext conftest.$ac_ext
12129fi
12130
12131echo "$as_me:$LINENO: checking for int64_t type" >&5
12132echo $ECHO_N "checking for int64_t type... $ECHO_C" >&6
12133if test "${ac_cv_have_int64_t+set}" = set; then
12134 echo $ECHO_N "(cached) $ECHO_C" >&6
12135else
12136
12137 cat >conftest.$ac_ext <<_ACEOF
12138#line $LINENO "configure"
12139#include "confdefs.h"
12140
12141#include <sys/types.h>
12142#ifdef HAVE_STDINT_H
12143# include <stdint.h>
12144#endif
12145#include <sys/socket.h>
12146#ifdef HAVE_SYS_BITYPES_H
12147# include <sys/bitypes.h>
12148#endif
12149
12150#ifdef F77_DUMMY_MAIN
12151# ifdef __cplusplus
12152 extern "C"
12153# endif
12154 int F77_DUMMY_MAIN() { return 1; }
12155#endif
12156int
12157main ()
12158{
12159 int64_t a; a = 1;
12160 ;
12161 return 0;
12162}
12163_ACEOF
12164rm -f conftest.$ac_objext
12165if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12166 (eval $ac_compile) 2>&5
12167 ac_status=$?
12168 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12169 (exit $ac_status); } &&
12170 { ac_try='test -s conftest.$ac_objext'
12171 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12172 (eval $ac_try) 2>&5
12173 ac_status=$?
12174 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12175 (exit $ac_status); }; }; then
12176 ac_cv_have_int64_t="yes"
12177else
12178 echo "$as_me: failed program was:" >&5
12179cat conftest.$ac_ext >&5
12180 ac_cv_have_int64_t="no"
12181
12182fi
12183rm -f conftest.$ac_objext conftest.$ac_ext
12184
12185fi
12186echo "$as_me:$LINENO: result: $ac_cv_have_int64_t" >&5
12187echo "${ECHO_T}$ac_cv_have_int64_t" >&6
12188if test "x$ac_cv_have_int64_t" = "xyes" ; then
12189 cat >>confdefs.h <<\_ACEOF
12190@%:@define HAVE_INT64_T 1
12191_ACEOF
12192
12193fi
12194
12195echo "$as_me:$LINENO: checking for u_intXX_t types" >&5
12196echo $ECHO_N "checking for u_intXX_t types... $ECHO_C" >&6
12197if test "${ac_cv_have_u_intxx_t+set}" = set; then
12198 echo $ECHO_N "(cached) $ECHO_C" >&6
12199else
12200
12201 cat >conftest.$ac_ext <<_ACEOF
12202#line $LINENO "configure"
12203#include "confdefs.h"
12204 #include <sys/types.h>
12205#ifdef F77_DUMMY_MAIN
12206# ifdef __cplusplus
12207 extern "C"
12208# endif
12209 int F77_DUMMY_MAIN() { return 1; }
12210#endif
12211int
12212main ()
12213{
12214 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
12215 ;
12216 return 0;
12217}
12218_ACEOF
12219rm -f conftest.$ac_objext
12220if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12221 (eval $ac_compile) 2>&5
12222 ac_status=$?
12223 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12224 (exit $ac_status); } &&
12225 { ac_try='test -s conftest.$ac_objext'
12226 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12227 (eval $ac_try) 2>&5
12228 ac_status=$?
12229 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12230 (exit $ac_status); }; }; then
12231 ac_cv_have_u_intxx_t="yes"
12232else
12233 echo "$as_me: failed program was:" >&5
12234cat conftest.$ac_ext >&5
12235 ac_cv_have_u_intxx_t="no"
12236
12237fi
12238rm -f conftest.$ac_objext conftest.$ac_ext
12239
12240fi
12241echo "$as_me:$LINENO: result: $ac_cv_have_u_intxx_t" >&5
12242echo "${ECHO_T}$ac_cv_have_u_intxx_t" >&6
12243if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
12244 cat >>confdefs.h <<\_ACEOF
12245@%:@define HAVE_U_INTXX_T 1
12246_ACEOF
12247
12248 have_u_intxx_t=1
12249fi
12250
12251if test -z "$have_u_intxx_t" ; then
12252 echo "$as_me:$LINENO: checking for u_intXX_t types in sys/socket.h" >&5
12253echo $ECHO_N "checking for u_intXX_t types in sys/socket.h... $ECHO_C" >&6
12254 cat >conftest.$ac_ext <<_ACEOF
12255#line $LINENO "configure"
12256#include "confdefs.h"
12257 #include <sys/socket.h>
12258#ifdef F77_DUMMY_MAIN
12259# ifdef __cplusplus
12260 extern "C"
12261# endif
12262 int F77_DUMMY_MAIN() { return 1; }
12263#endif
12264int
12265main ()
12266{
12267 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
12268 ;
12269 return 0;
12270}
12271_ACEOF
12272rm -f conftest.$ac_objext
12273if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12274 (eval $ac_compile) 2>&5
12275 ac_status=$?
12276 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12277 (exit $ac_status); } &&
12278 { ac_try='test -s conftest.$ac_objext'
12279 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12280 (eval $ac_try) 2>&5
12281 ac_status=$?
12282 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12283 (exit $ac_status); }; }; then
12284
12285 cat >>confdefs.h <<\_ACEOF
12286@%:@define HAVE_U_INTXX_T 1
12287_ACEOF
12288
12289 echo "$as_me:$LINENO: result: yes" >&5
12290echo "${ECHO_T}yes" >&6
12291
12292else
12293 echo "$as_me: failed program was:" >&5
12294cat conftest.$ac_ext >&5
12295 echo "$as_me:$LINENO: result: no" >&5
12296echo "${ECHO_T}no" >&6
12297
12298fi
12299rm -f conftest.$ac_objext conftest.$ac_ext
12300fi
12301
12302echo "$as_me:$LINENO: checking for u_int64_t types" >&5
12303echo $ECHO_N "checking for u_int64_t types... $ECHO_C" >&6
12304if test "${ac_cv_have_u_int64_t+set}" = set; then
12305 echo $ECHO_N "(cached) $ECHO_C" >&6
12306else
12307
12308 cat >conftest.$ac_ext <<_ACEOF
12309#line $LINENO "configure"
12310#include "confdefs.h"
12311 #include <sys/types.h>
12312#ifdef F77_DUMMY_MAIN
12313# ifdef __cplusplus
12314 extern "C"
12315# endif
12316 int F77_DUMMY_MAIN() { return 1; }
12317#endif
12318int
12319main ()
12320{
12321 u_int64_t a; a = 1;
12322 ;
12323 return 0;
12324}
12325_ACEOF
12326rm -f conftest.$ac_objext
12327if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12328 (eval $ac_compile) 2>&5
12329 ac_status=$?
12330 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12331 (exit $ac_status); } &&
12332 { ac_try='test -s conftest.$ac_objext'
12333 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12334 (eval $ac_try) 2>&5
12335 ac_status=$?
12336 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12337 (exit $ac_status); }; }; then
12338 ac_cv_have_u_int64_t="yes"
12339else
12340 echo "$as_me: failed program was:" >&5
12341cat conftest.$ac_ext >&5
12342 ac_cv_have_u_int64_t="no"
12343
12344fi
12345rm -f conftest.$ac_objext conftest.$ac_ext
12346
12347fi
12348echo "$as_me:$LINENO: result: $ac_cv_have_u_int64_t" >&5
12349echo "${ECHO_T}$ac_cv_have_u_int64_t" >&6
12350if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
12351 cat >>confdefs.h <<\_ACEOF
12352@%:@define HAVE_U_INT64_T 1
12353_ACEOF
12354
12355 have_u_int64_t=1
12356fi
12357
12358if test -z "$have_u_int64_t" ; then
12359 echo "$as_me:$LINENO: checking for u_int64_t type in sys/bitypes.h" >&5
12360echo $ECHO_N "checking for u_int64_t type in sys/bitypes.h... $ECHO_C" >&6
12361 cat >conftest.$ac_ext <<_ACEOF
12362#line $LINENO "configure"
12363#include "confdefs.h"
12364 #include <sys/bitypes.h>
12365#ifdef F77_DUMMY_MAIN
12366# ifdef __cplusplus
12367 extern "C"
12368# endif
12369 int F77_DUMMY_MAIN() { return 1; }
12370#endif
12371int
12372main ()
12373{
12374 u_int64_t a; a = 1
12375 ;
12376 return 0;
12377}
12378_ACEOF
12379rm -f conftest.$ac_objext
12380if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12381 (eval $ac_compile) 2>&5
12382 ac_status=$?
12383 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12384 (exit $ac_status); } &&
12385 { ac_try='test -s conftest.$ac_objext'
12386 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12387 (eval $ac_try) 2>&5
12388 ac_status=$?
12389 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12390 (exit $ac_status); }; }; then
12391
12392 cat >>confdefs.h <<\_ACEOF
12393@%:@define HAVE_U_INT64_T 1
12394_ACEOF
12395
12396 echo "$as_me:$LINENO: result: yes" >&5
12397echo "${ECHO_T}yes" >&6
12398
12399else
12400 echo "$as_me: failed program was:" >&5
12401cat conftest.$ac_ext >&5
12402 echo "$as_me:$LINENO: result: no" >&5
12403echo "${ECHO_T}no" >&6
12404
12405fi
12406rm -f conftest.$ac_objext conftest.$ac_ext
12407fi
12408
12409if test -z "$have_u_intxx_t" ; then
12410 echo "$as_me:$LINENO: checking for uintXX_t types" >&5
12411echo $ECHO_N "checking for uintXX_t types... $ECHO_C" >&6
12412if test "${ac_cv_have_uintxx_t+set}" = set; then
12413 echo $ECHO_N "(cached) $ECHO_C" >&6
12414else
12415
12416 cat >conftest.$ac_ext <<_ACEOF
12417#line $LINENO "configure"
12418#include "confdefs.h"
12419
12420#include <sys/types.h>
12421
12422#ifdef F77_DUMMY_MAIN
12423# ifdef __cplusplus
12424 extern "C"
12425# endif
12426 int F77_DUMMY_MAIN() { return 1; }
12427#endif
12428int
12429main ()
12430{
12431 uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;
12432 ;
12433 return 0;
12434}
12435_ACEOF
12436rm -f conftest.$ac_objext
12437if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12438 (eval $ac_compile) 2>&5
12439 ac_status=$?
12440 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12441 (exit $ac_status); } &&
12442 { ac_try='test -s conftest.$ac_objext'
12443 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12444 (eval $ac_try) 2>&5
12445 ac_status=$?
12446 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12447 (exit $ac_status); }; }; then
12448 ac_cv_have_uintxx_t="yes"
12449else
12450 echo "$as_me: failed program was:" >&5
12451cat conftest.$ac_ext >&5
12452 ac_cv_have_uintxx_t="no"
12453
12454fi
12455rm -f conftest.$ac_objext conftest.$ac_ext
12456
12457fi
12458echo "$as_me:$LINENO: result: $ac_cv_have_uintxx_t" >&5
12459echo "${ECHO_T}$ac_cv_have_uintxx_t" >&6
12460 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
12461 cat >>confdefs.h <<\_ACEOF
12462@%:@define HAVE_UINTXX_T 1
12463_ACEOF
12464
12465 fi
12466fi
12467
12468if test -z "$have_uintxx_t" ; then
12469 echo "$as_me:$LINENO: checking for uintXX_t types in stdint.h" >&5
12470echo $ECHO_N "checking for uintXX_t types in stdint.h... $ECHO_C" >&6
12471 cat >conftest.$ac_ext <<_ACEOF
12472#line $LINENO "configure"
12473#include "confdefs.h"
12474 #include <stdint.h>
12475#ifdef F77_DUMMY_MAIN
12476# ifdef __cplusplus
12477 extern "C"
12478# endif
12479 int F77_DUMMY_MAIN() { return 1; }
12480#endif
12481int
12482main ()
12483{
12484 uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;
12485 ;
12486 return 0;
12487}
12488_ACEOF
12489rm -f conftest.$ac_objext
12490if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12491 (eval $ac_compile) 2>&5
12492 ac_status=$?
12493 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12494 (exit $ac_status); } &&
12495 { ac_try='test -s conftest.$ac_objext'
12496 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12497 (eval $ac_try) 2>&5
12498 ac_status=$?
12499 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12500 (exit $ac_status); }; }; then
12501
12502 cat >>confdefs.h <<\_ACEOF
12503@%:@define HAVE_UINTXX_T 1
12504_ACEOF
12505
12506 echo "$as_me:$LINENO: result: yes" >&5
12507echo "${ECHO_T}yes" >&6
12508
12509else
12510 echo "$as_me: failed program was:" >&5
12511cat conftest.$ac_ext >&5
12512 echo "$as_me:$LINENO: result: no" >&5
12513echo "${ECHO_T}no" >&6
12514
12515fi
12516rm -f conftest.$ac_objext conftest.$ac_ext
12517fi
12518
12519if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
12520 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
12521then
12522 echo "$as_me:$LINENO: checking for intXX_t and u_intXX_t types in sys/bitypes.h" >&5
12523echo $ECHO_N "checking for intXX_t and u_intXX_t types in sys/bitypes.h... $ECHO_C" >&6
12524 cat >conftest.$ac_ext <<_ACEOF
12525#line $LINENO "configure"
12526#include "confdefs.h"
12527
12528#include <sys/bitypes.h>
12529
12530#ifdef F77_DUMMY_MAIN
12531# ifdef __cplusplus
12532 extern "C"
12533# endif
12534 int F77_DUMMY_MAIN() { return 1; }
12535#endif
12536int
12537main ()
12538{
12539
12540 int8_t a; int16_t b; int32_t c;
12541 u_int8_t e; u_int16_t f; u_int32_t g;
12542 a = b = c = e = f = g = 1;
12543
12544 ;
12545 return 0;
12546}
12547_ACEOF
12548rm -f conftest.$ac_objext
12549if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12550 (eval $ac_compile) 2>&5
12551 ac_status=$?
12552 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12553 (exit $ac_status); } &&
12554 { ac_try='test -s conftest.$ac_objext'
12555 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12556 (eval $ac_try) 2>&5
12557 ac_status=$?
12558 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12559 (exit $ac_status); }; }; then
12560
12561 cat >>confdefs.h <<\_ACEOF
12562@%:@define HAVE_U_INTXX_T 1
12563_ACEOF
12564
12565 cat >>confdefs.h <<\_ACEOF
12566@%:@define HAVE_INTXX_T 1
12567_ACEOF
12568
12569 echo "$as_me:$LINENO: result: yes" >&5
12570echo "${ECHO_T}yes" >&6
12571
12572else
12573 echo "$as_me: failed program was:" >&5
12574cat conftest.$ac_ext >&5
12575echo "$as_me:$LINENO: result: no" >&5
12576echo "${ECHO_T}no" >&6
12577
12578fi
12579rm -f conftest.$ac_objext conftest.$ac_ext
12580fi
12581
12582
12583echo "$as_me:$LINENO: checking for u_char" >&5
12584echo $ECHO_N "checking for u_char... $ECHO_C" >&6
12585if test "${ac_cv_have_u_char+set}" = set; then
12586 echo $ECHO_N "(cached) $ECHO_C" >&6
12587else
12588
12589 cat >conftest.$ac_ext <<_ACEOF
12590#line $LINENO "configure"
12591#include "confdefs.h"
12592
12593#include <sys/types.h>
12594
12595#ifdef F77_DUMMY_MAIN
12596# ifdef __cplusplus
12597 extern "C"
12598# endif
12599 int F77_DUMMY_MAIN() { return 1; }
12600#endif
12601int
12602main ()
12603{
12604 u_char foo; foo = 125;
12605 ;
12606 return 0;
12607}
12608_ACEOF
12609rm -f conftest.$ac_objext
12610if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12611 (eval $ac_compile) 2>&5
12612 ac_status=$?
12613 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12614 (exit $ac_status); } &&
12615 { ac_try='test -s conftest.$ac_objext'
12616 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12617 (eval $ac_try) 2>&5
12618 ac_status=$?
12619 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12620 (exit $ac_status); }; }; then
12621 ac_cv_have_u_char="yes"
12622else
12623 echo "$as_me: failed program was:" >&5
12624cat conftest.$ac_ext >&5
12625 ac_cv_have_u_char="no"
12626
12627fi
12628rm -f conftest.$ac_objext conftest.$ac_ext
12629
12630fi
12631echo "$as_me:$LINENO: result: $ac_cv_have_u_char" >&5
12632echo "${ECHO_T}$ac_cv_have_u_char" >&6
12633if test "x$ac_cv_have_u_char" = "xyes" ; then
12634 cat >>confdefs.h <<\_ACEOF
12635@%:@define HAVE_U_CHAR 1
12636_ACEOF
12637
12638fi
12639
12640
12641 echo "$as_me:$LINENO: checking for socklen_t" >&5
12642echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
12643if test "${ac_cv_type_socklen_t+set}" = set; then
12644 echo $ECHO_N "(cached) $ECHO_C" >&6
12645else
12646 cat >conftest.$ac_ext <<_ACEOF
12647#line $LINENO "configure"
12648#include "confdefs.h"
12649#include <sys/types.h>
12650#include <sys/socket.h>
12651
12652#ifdef F77_DUMMY_MAIN
12653# ifdef __cplusplus
12654 extern "C"
12655# endif
12656 int F77_DUMMY_MAIN() { return 1; }
12657#endif
12658int
12659main ()
12660{
12661if ((socklen_t *) 0)
12662 return 0;
12663if (sizeof (socklen_t))
12664 return 0;
12665 ;
12666 return 0;
12667}
12668_ACEOF
12669rm -f conftest.$ac_objext
12670if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12671 (eval $ac_compile) 2>&5
12672 ac_status=$?
12673 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12674 (exit $ac_status); } &&
12675 { ac_try='test -s conftest.$ac_objext'
12676 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12677 (eval $ac_try) 2>&5
12678 ac_status=$?
12679 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12680 (exit $ac_status); }; }; then
12681 ac_cv_type_socklen_t=yes
12682else
12683 echo "$as_me: failed program was:" >&5
12684cat conftest.$ac_ext >&5
12685ac_cv_type_socklen_t=no
12686fi
12687rm -f conftest.$ac_objext conftest.$ac_ext
12688fi
12689echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5
12690echo "${ECHO_T}$ac_cv_type_socklen_t" >&6
12691if test $ac_cv_type_socklen_t = yes; then
12692 :
12693else
12694
12695 echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5
12696echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6
12697 if test "${curl_cv_socklen_t_equiv+set}" = set; then
12698 echo $ECHO_N "(cached) $ECHO_C" >&6
12699else
12700
12701 # Systems have either "struct sockaddr *" or
12702 # "void *" as the second argument to getpeername
12703 curl_cv_socklen_t_equiv=
12704 for arg2 in "struct sockaddr" void; do
12705 for t in int size_t unsigned long "unsigned long"; do
12706 cat >conftest.$ac_ext <<_ACEOF
12707#line $LINENO "configure"
12708#include "confdefs.h"
12709
12710 #include <sys/types.h>
12711 #include <sys/socket.h>
12712
12713 int getpeername (int, $arg2 *, $t *);
12714
12715#ifdef F77_DUMMY_MAIN
12716# ifdef __cplusplus
12717 extern "C"
12718# endif
12719 int F77_DUMMY_MAIN() { return 1; }
12720#endif
12721int
12722main ()
12723{
12724
12725 $t len;
12726 getpeername(0,0,&len);
12727
12728 ;
12729 return 0;
12730}
12731_ACEOF
12732rm -f conftest.$ac_objext
12733if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12734 (eval $ac_compile) 2>&5
12735 ac_status=$?
12736 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12737 (exit $ac_status); } &&
12738 { ac_try='test -s conftest.$ac_objext'
12739 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12740 (eval $ac_try) 2>&5
12741 ac_status=$?
12742 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12743 (exit $ac_status); }; }; then
12744
12745 curl_cv_socklen_t_equiv="$t"
12746 break
12747
12748else
12749 echo "$as_me: failed program was:" >&5
12750cat conftest.$ac_ext >&5
12751fi
12752rm -f conftest.$ac_objext conftest.$ac_ext
12753 done
12754 done
12755
12756 if test "x$curl_cv_socklen_t_equiv" = x; then
12757 { { echo "$as_me:$LINENO: error: Cannot find a type to use in place of socklen_t" >&5
12758echo "$as_me: error: Cannot find a type to use in place of socklen_t" >&2;}
12759 { (exit 1); exit 1; }; }
12760 fi
12761
12762fi
12763
12764 echo "$as_me:$LINENO: result: $curl_cv_socklen_t_equiv" >&5
12765echo "${ECHO_T}$curl_cv_socklen_t_equiv" >&6
12766
12767cat >>confdefs.h <<_ACEOF
12768@%:@define socklen_t $curl_cv_socklen_t_equiv
12769_ACEOF
12770
12771fi
12772
12773
12774
12775echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
12776echo $ECHO_N "checking for sig_atomic_t... $ECHO_C" >&6
12777if test "${ac_cv_type_sig_atomic_t+set}" = set; then
12778 echo $ECHO_N "(cached) $ECHO_C" >&6
12779else
12780 cat >conftest.$ac_ext <<_ACEOF
12781#line $LINENO "configure"
12782#include "confdefs.h"
12783#include <signal.h>
12784
12785#ifdef F77_DUMMY_MAIN
12786# ifdef __cplusplus
12787 extern "C"
12788# endif
12789 int F77_DUMMY_MAIN() { return 1; }
12790#endif
12791int
12792main ()
12793{
12794if ((sig_atomic_t *) 0)
12795 return 0;
12796if (sizeof (sig_atomic_t))
12797 return 0;
12798 ;
12799 return 0;
12800}
12801_ACEOF
12802rm -f conftest.$ac_objext
12803if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12804 (eval $ac_compile) 2>&5
12805 ac_status=$?
12806 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12807 (exit $ac_status); } &&
12808 { ac_try='test -s conftest.$ac_objext'
12809 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12810 (eval $ac_try) 2>&5
12811 ac_status=$?
12812 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12813 (exit $ac_status); }; }; then
12814 ac_cv_type_sig_atomic_t=yes
12815else
12816 echo "$as_me: failed program was:" >&5
12817cat conftest.$ac_ext >&5
12818ac_cv_type_sig_atomic_t=no
12819fi
12820rm -f conftest.$ac_objext conftest.$ac_ext
12821fi
12822echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
12823echo "${ECHO_T}$ac_cv_type_sig_atomic_t" >&6
12824if test $ac_cv_type_sig_atomic_t = yes; then
12825
12826cat >>confdefs.h <<_ACEOF
12827@%:@define HAVE_SIG_ATOMIC_T 1
12828_ACEOF
12829
12830
12831fi
12832
12833
12834echo "$as_me:$LINENO: checking for size_t" >&5
12835echo $ECHO_N "checking for size_t... $ECHO_C" >&6
12836if test "${ac_cv_have_size_t+set}" = set; then
12837 echo $ECHO_N "(cached) $ECHO_C" >&6
12838else
12839
12840 cat >conftest.$ac_ext <<_ACEOF
12841#line $LINENO "configure"
12842#include "confdefs.h"
12843
12844#include <sys/types.h>
12845
12846#ifdef F77_DUMMY_MAIN
12847# ifdef __cplusplus
12848 extern "C"
12849# endif
12850 int F77_DUMMY_MAIN() { return 1; }
12851#endif
12852int
12853main ()
12854{
12855 size_t foo; foo = 1235;
12856 ;
12857 return 0;
12858}
12859_ACEOF
12860rm -f conftest.$ac_objext
12861if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12862 (eval $ac_compile) 2>&5
12863 ac_status=$?
12864 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12865 (exit $ac_status); } &&
12866 { ac_try='test -s conftest.$ac_objext'
12867 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12868 (eval $ac_try) 2>&5
12869 ac_status=$?
12870 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12871 (exit $ac_status); }; }; then
12872 ac_cv_have_size_t="yes"
12873else
12874 echo "$as_me: failed program was:" >&5
12875cat conftest.$ac_ext >&5
12876 ac_cv_have_size_t="no"
12877
12878fi
12879rm -f conftest.$ac_objext conftest.$ac_ext
12880
12881fi
12882echo "$as_me:$LINENO: result: $ac_cv_have_size_t" >&5
12883echo "${ECHO_T}$ac_cv_have_size_t" >&6
12884if test "x$ac_cv_have_size_t" = "xyes" ; then
12885 cat >>confdefs.h <<\_ACEOF
12886@%:@define HAVE_SIZE_T 1
12887_ACEOF
12888
12889fi
12890
12891echo "$as_me:$LINENO: checking for ssize_t" >&5
12892echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
12893if test "${ac_cv_have_ssize_t+set}" = set; then
12894 echo $ECHO_N "(cached) $ECHO_C" >&6
12895else
12896
12897 cat >conftest.$ac_ext <<_ACEOF
12898#line $LINENO "configure"
12899#include "confdefs.h"
12900
12901#include <sys/types.h>
12902
12903#ifdef F77_DUMMY_MAIN
12904# ifdef __cplusplus
12905 extern "C"
12906# endif
12907 int F77_DUMMY_MAIN() { return 1; }
12908#endif
12909int
12910main ()
12911{
12912 ssize_t foo; foo = 1235;
12913 ;
12914 return 0;
12915}
12916_ACEOF
12917rm -f conftest.$ac_objext
12918if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12919 (eval $ac_compile) 2>&5
12920 ac_status=$?
12921 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12922 (exit $ac_status); } &&
12923 { ac_try='test -s conftest.$ac_objext'
12924 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12925 (eval $ac_try) 2>&5
12926 ac_status=$?
12927 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12928 (exit $ac_status); }; }; then
12929 ac_cv_have_ssize_t="yes"
12930else
12931 echo "$as_me: failed program was:" >&5
12932cat conftest.$ac_ext >&5
12933 ac_cv_have_ssize_t="no"
12934
12935fi
12936rm -f conftest.$ac_objext conftest.$ac_ext
12937
12938fi
12939echo "$as_me:$LINENO: result: $ac_cv_have_ssize_t" >&5
12940echo "${ECHO_T}$ac_cv_have_ssize_t" >&6
12941if test "x$ac_cv_have_ssize_t" = "xyes" ; then
12942 cat >>confdefs.h <<\_ACEOF
12943@%:@define HAVE_SSIZE_T 1
12944_ACEOF
12945
12946fi
12947
12948echo "$as_me:$LINENO: checking for clock_t" >&5
12949echo $ECHO_N "checking for clock_t... $ECHO_C" >&6
12950if test "${ac_cv_have_clock_t+set}" = set; then
12951 echo $ECHO_N "(cached) $ECHO_C" >&6
12952else
12953
12954 cat >conftest.$ac_ext <<_ACEOF
12955#line $LINENO "configure"
12956#include "confdefs.h"
12957
12958#include <time.h>
12959
12960#ifdef F77_DUMMY_MAIN
12961# ifdef __cplusplus
12962 extern "C"
12963# endif
12964 int F77_DUMMY_MAIN() { return 1; }
12965#endif
12966int
12967main ()
12968{
12969 clock_t foo; foo = 1235;
12970 ;
12971 return 0;
12972}
12973_ACEOF
12974rm -f conftest.$ac_objext
12975if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12976 (eval $ac_compile) 2>&5
12977 ac_status=$?
12978 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12979 (exit $ac_status); } &&
12980 { ac_try='test -s conftest.$ac_objext'
12981 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12982 (eval $ac_try) 2>&5
12983 ac_status=$?
12984 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12985 (exit $ac_status); }; }; then
12986 ac_cv_have_clock_t="yes"
12987else
12988 echo "$as_me: failed program was:" >&5
12989cat conftest.$ac_ext >&5
12990 ac_cv_have_clock_t="no"
12991
12992fi
12993rm -f conftest.$ac_objext conftest.$ac_ext
12994
12995fi
12996echo "$as_me:$LINENO: result: $ac_cv_have_clock_t" >&5
12997echo "${ECHO_T}$ac_cv_have_clock_t" >&6
12998if test "x$ac_cv_have_clock_t" = "xyes" ; then
12999 cat >>confdefs.h <<\_ACEOF
13000@%:@define HAVE_CLOCK_T 1
13001_ACEOF
13002
13003fi
13004
13005echo "$as_me:$LINENO: checking for sa_family_t" >&5
13006echo $ECHO_N "checking for sa_family_t... $ECHO_C" >&6
13007if test "${ac_cv_have_sa_family_t+set}" = set; then
13008 echo $ECHO_N "(cached) $ECHO_C" >&6
13009else
13010
13011 cat >conftest.$ac_ext <<_ACEOF
13012#line $LINENO "configure"
13013#include "confdefs.h"
13014
13015#include <sys/types.h>
13016#include <sys/socket.h>
13017
13018#ifdef F77_DUMMY_MAIN
13019# ifdef __cplusplus
13020 extern "C"
13021# endif
13022 int F77_DUMMY_MAIN() { return 1; }
13023#endif
13024int
13025main ()
13026{
13027 sa_family_t foo; foo = 1235;
13028 ;
13029 return 0;
13030}
13031_ACEOF
13032rm -f conftest.$ac_objext
13033if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13034 (eval $ac_compile) 2>&5
13035 ac_status=$?
13036 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13037 (exit $ac_status); } &&
13038 { ac_try='test -s conftest.$ac_objext'
13039 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13040 (eval $ac_try) 2>&5
13041 ac_status=$?
13042 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13043 (exit $ac_status); }; }; then
13044 ac_cv_have_sa_family_t="yes"
13045else
13046 echo "$as_me: failed program was:" >&5
13047cat conftest.$ac_ext >&5
13048 cat >conftest.$ac_ext <<_ACEOF
13049#line $LINENO "configure"
13050#include "confdefs.h"
13051
13052#include <sys/types.h>
13053#include <sys/socket.h>
13054#include <netinet/in.h>
13055
13056#ifdef F77_DUMMY_MAIN
13057# ifdef __cplusplus
13058 extern "C"
13059# endif
13060 int F77_DUMMY_MAIN() { return 1; }
13061#endif
13062int
13063main ()
13064{
13065 sa_family_t foo; foo = 1235;
13066 ;
13067 return 0;
13068}
13069_ACEOF
13070rm -f conftest.$ac_objext
13071if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13072 (eval $ac_compile) 2>&5
13073 ac_status=$?
13074 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13075 (exit $ac_status); } &&
13076 { ac_try='test -s conftest.$ac_objext'
13077 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13078 (eval $ac_try) 2>&5
13079 ac_status=$?
13080 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13081 (exit $ac_status); }; }; then
13082 ac_cv_have_sa_family_t="yes"
13083else
13084 echo "$as_me: failed program was:" >&5
13085cat conftest.$ac_ext >&5
13086 ac_cv_have_sa_family_t="no"
13087
13088fi
13089rm -f conftest.$ac_objext conftest.$ac_ext
13090
13091fi
13092rm -f conftest.$ac_objext conftest.$ac_ext
13093
13094fi
13095echo "$as_me:$LINENO: result: $ac_cv_have_sa_family_t" >&5
13096echo "${ECHO_T}$ac_cv_have_sa_family_t" >&6
13097if test "x$ac_cv_have_sa_family_t" = "xyes" ; then
13098 cat >>confdefs.h <<\_ACEOF
13099@%:@define HAVE_SA_FAMILY_T 1
13100_ACEOF
13101
13102fi
13103
13104echo "$as_me:$LINENO: checking for pid_t" >&5
13105echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
13106if test "${ac_cv_have_pid_t+set}" = set; then
13107 echo $ECHO_N "(cached) $ECHO_C" >&6
13108else
13109
13110 cat >conftest.$ac_ext <<_ACEOF
13111#line $LINENO "configure"
13112#include "confdefs.h"
13113
13114#include <sys/types.h>
13115
13116#ifdef F77_DUMMY_MAIN
13117# ifdef __cplusplus
13118 extern "C"
13119# endif
13120 int F77_DUMMY_MAIN() { return 1; }
13121#endif
13122int
13123main ()
13124{
13125 pid_t foo; foo = 1235;
13126 ;
13127 return 0;
13128}
13129_ACEOF
13130rm -f conftest.$ac_objext
13131if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13132 (eval $ac_compile) 2>&5
13133 ac_status=$?
13134 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13135 (exit $ac_status); } &&
13136 { ac_try='test -s conftest.$ac_objext'
13137 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13138 (eval $ac_try) 2>&5
13139 ac_status=$?
13140 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13141 (exit $ac_status); }; }; then
13142 ac_cv_have_pid_t="yes"
13143else
13144 echo "$as_me: failed program was:" >&5
13145cat conftest.$ac_ext >&5
13146 ac_cv_have_pid_t="no"
13147
13148fi
13149rm -f conftest.$ac_objext conftest.$ac_ext
13150
13151fi
13152echo "$as_me:$LINENO: result: $ac_cv_have_pid_t" >&5
13153echo "${ECHO_T}$ac_cv_have_pid_t" >&6
13154if test "x$ac_cv_have_pid_t" = "xyes" ; then
13155 cat >>confdefs.h <<\_ACEOF
13156@%:@define HAVE_PID_T 1
13157_ACEOF
13158
13159fi
13160
13161echo "$as_me:$LINENO: checking for mode_t" >&5
13162echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
13163if test "${ac_cv_have_mode_t+set}" = set; then
13164 echo $ECHO_N "(cached) $ECHO_C" >&6
13165else
13166
13167 cat >conftest.$ac_ext <<_ACEOF
13168#line $LINENO "configure"
13169#include "confdefs.h"
13170
13171#include <sys/types.h>
13172
13173#ifdef F77_DUMMY_MAIN
13174# ifdef __cplusplus
13175 extern "C"
13176# endif
13177 int F77_DUMMY_MAIN() { return 1; }
13178#endif
13179int
13180main ()
13181{
13182 mode_t foo; foo = 1235;
13183 ;
13184 return 0;
13185}
13186_ACEOF
13187rm -f conftest.$ac_objext
13188if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13189 (eval $ac_compile) 2>&5
13190 ac_status=$?
13191 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13192 (exit $ac_status); } &&
13193 { ac_try='test -s conftest.$ac_objext'
13194 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13195 (eval $ac_try) 2>&5
13196 ac_status=$?
13197 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13198 (exit $ac_status); }; }; then
13199 ac_cv_have_mode_t="yes"
13200else
13201 echo "$as_me: failed program was:" >&5
13202cat conftest.$ac_ext >&5
13203 ac_cv_have_mode_t="no"
13204
13205fi
13206rm -f conftest.$ac_objext conftest.$ac_ext
13207
13208fi
13209echo "$as_me:$LINENO: result: $ac_cv_have_mode_t" >&5
13210echo "${ECHO_T}$ac_cv_have_mode_t" >&6
13211if test "x$ac_cv_have_mode_t" = "xyes" ; then
13212 cat >>confdefs.h <<\_ACEOF
13213@%:@define HAVE_MODE_T 1
13214_ACEOF
13215
13216fi
13217
13218
13219echo "$as_me:$LINENO: checking for struct sockaddr_storage" >&5
13220echo $ECHO_N "checking for struct sockaddr_storage... $ECHO_C" >&6
13221if test "${ac_cv_have_struct_sockaddr_storage+set}" = set; then
13222 echo $ECHO_N "(cached) $ECHO_C" >&6
13223else
13224
13225 cat >conftest.$ac_ext <<_ACEOF
13226#line $LINENO "configure"
13227#include "confdefs.h"
13228
13229#include <sys/types.h>
13230#include <sys/socket.h>
13231
13232#ifdef F77_DUMMY_MAIN
13233# ifdef __cplusplus
13234 extern "C"
13235# endif
13236 int F77_DUMMY_MAIN() { return 1; }
13237#endif
13238int
13239main ()
13240{
13241 struct sockaddr_storage s;
13242 ;
13243 return 0;
13244}
13245_ACEOF
13246rm -f conftest.$ac_objext
13247if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13248 (eval $ac_compile) 2>&5
13249 ac_status=$?
13250 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13251 (exit $ac_status); } &&
13252 { ac_try='test -s conftest.$ac_objext'
13253 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13254 (eval $ac_try) 2>&5
13255 ac_status=$?
13256 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13257 (exit $ac_status); }; }; then
13258 ac_cv_have_struct_sockaddr_storage="yes"
13259else
13260 echo "$as_me: failed program was:" >&5
13261cat conftest.$ac_ext >&5
13262 ac_cv_have_struct_sockaddr_storage="no"
13263
13264fi
13265rm -f conftest.$ac_objext conftest.$ac_ext
13266
13267fi
13268echo "$as_me:$LINENO: result: $ac_cv_have_struct_sockaddr_storage" >&5
13269echo "${ECHO_T}$ac_cv_have_struct_sockaddr_storage" >&6
13270if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then
13271 cat >>confdefs.h <<\_ACEOF
13272@%:@define HAVE_STRUCT_SOCKADDR_STORAGE 1
13273_ACEOF
13274
13275fi
13276
13277echo "$as_me:$LINENO: checking for struct sockaddr_in6" >&5
13278echo $ECHO_N "checking for struct sockaddr_in6... $ECHO_C" >&6
13279if test "${ac_cv_have_struct_sockaddr_in6+set}" = set; then
13280 echo $ECHO_N "(cached) $ECHO_C" >&6
13281else
13282
13283 cat >conftest.$ac_ext <<_ACEOF
13284#line $LINENO "configure"
13285#include "confdefs.h"
13286
13287#include <sys/types.h>
13288#include <netinet/in.h>
13289
13290#ifdef F77_DUMMY_MAIN
13291# ifdef __cplusplus
13292 extern "C"
13293# endif
13294 int F77_DUMMY_MAIN() { return 1; }
13295#endif
13296int
13297main ()
13298{
13299 struct sockaddr_in6 s; s.sin6_family = 0;
13300 ;
13301 return 0;
13302}
13303_ACEOF
13304rm -f conftest.$ac_objext
13305if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13306 (eval $ac_compile) 2>&5
13307 ac_status=$?
13308 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13309 (exit $ac_status); } &&
13310 { ac_try='test -s conftest.$ac_objext'
13311 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13312 (eval $ac_try) 2>&5
13313 ac_status=$?
13314 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13315 (exit $ac_status); }; }; then
13316 ac_cv_have_struct_sockaddr_in6="yes"
13317else
13318 echo "$as_me: failed program was:" >&5
13319cat conftest.$ac_ext >&5
13320 ac_cv_have_struct_sockaddr_in6="no"
13321
13322fi
13323rm -f conftest.$ac_objext conftest.$ac_ext
13324
13325fi
13326echo "$as_me:$LINENO: result: $ac_cv_have_struct_sockaddr_in6" >&5
13327echo "${ECHO_T}$ac_cv_have_struct_sockaddr_in6" >&6
13328if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then
13329 cat >>confdefs.h <<\_ACEOF
13330@%:@define HAVE_STRUCT_SOCKADDR_IN6 1
13331_ACEOF
13332
13333fi
13334
13335echo "$as_me:$LINENO: checking for struct in6_addr" >&5
13336echo $ECHO_N "checking for struct in6_addr... $ECHO_C" >&6
13337if test "${ac_cv_have_struct_in6_addr+set}" = set; then
13338 echo $ECHO_N "(cached) $ECHO_C" >&6
13339else
13340
13341 cat >conftest.$ac_ext <<_ACEOF
13342#line $LINENO "configure"
13343#include "confdefs.h"
13344
13345#include <sys/types.h>
13346#include <netinet/in.h>
13347
13348#ifdef F77_DUMMY_MAIN
13349# ifdef __cplusplus
13350 extern "C"
13351# endif
13352 int F77_DUMMY_MAIN() { return 1; }
13353#endif
13354int
13355main ()
13356{
13357 struct in6_addr s; s.s6_addr[0] = 0;
13358 ;
13359 return 0;
13360}
13361_ACEOF
13362rm -f conftest.$ac_objext
13363if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13364 (eval $ac_compile) 2>&5
13365 ac_status=$?
13366 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13367 (exit $ac_status); } &&
13368 { ac_try='test -s conftest.$ac_objext'
13369 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13370 (eval $ac_try) 2>&5
13371 ac_status=$?
13372 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13373 (exit $ac_status); }; }; then
13374 ac_cv_have_struct_in6_addr="yes"
13375else
13376 echo "$as_me: failed program was:" >&5
13377cat conftest.$ac_ext >&5
13378 ac_cv_have_struct_in6_addr="no"
13379
13380fi
13381rm -f conftest.$ac_objext conftest.$ac_ext
13382
13383fi
13384echo "$as_me:$LINENO: result: $ac_cv_have_struct_in6_addr" >&5
13385echo "${ECHO_T}$ac_cv_have_struct_in6_addr" >&6
13386if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
13387 cat >>confdefs.h <<\_ACEOF
13388@%:@define HAVE_STRUCT_IN6_ADDR 1
13389_ACEOF
13390
13391fi
13392
13393echo "$as_me:$LINENO: checking for struct addrinfo" >&5
13394echo $ECHO_N "checking for struct addrinfo... $ECHO_C" >&6
13395if test "${ac_cv_have_struct_addrinfo+set}" = set; then
13396 echo $ECHO_N "(cached) $ECHO_C" >&6
13397else
13398
13399 cat >conftest.$ac_ext <<_ACEOF
13400#line $LINENO "configure"
13401#include "confdefs.h"
13402
13403#include <sys/types.h>
13404#include <sys/socket.h>
13405#include <netdb.h>
13406
13407#ifdef F77_DUMMY_MAIN
13408# ifdef __cplusplus
13409 extern "C"
13410# endif
13411 int F77_DUMMY_MAIN() { return 1; }
13412#endif
13413int
13414main ()
13415{
13416 struct addrinfo s; s.ai_flags = AI_PASSIVE;
13417 ;
13418 return 0;
13419}
13420_ACEOF
13421rm -f conftest.$ac_objext
13422if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13423 (eval $ac_compile) 2>&5
13424 ac_status=$?
13425 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13426 (exit $ac_status); } &&
13427 { ac_try='test -s conftest.$ac_objext'
13428 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13429 (eval $ac_try) 2>&5
13430 ac_status=$?
13431 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13432 (exit $ac_status); }; }; then
13433 ac_cv_have_struct_addrinfo="yes"
13434else
13435 echo "$as_me: failed program was:" >&5
13436cat conftest.$ac_ext >&5
13437 ac_cv_have_struct_addrinfo="no"
13438
13439fi
13440rm -f conftest.$ac_objext conftest.$ac_ext
13441
13442fi
13443echo "$as_me:$LINENO: result: $ac_cv_have_struct_addrinfo" >&5
13444echo "${ECHO_T}$ac_cv_have_struct_addrinfo" >&6
13445if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then
13446 cat >>confdefs.h <<\_ACEOF
13447@%:@define HAVE_STRUCT_ADDRINFO 1
13448_ACEOF
13449
13450fi
13451
13452echo "$as_me:$LINENO: checking for struct timeval" >&5
13453echo $ECHO_N "checking for struct timeval... $ECHO_C" >&6
13454if test "${ac_cv_have_struct_timeval+set}" = set; then
13455 echo $ECHO_N "(cached) $ECHO_C" >&6
13456else
13457
13458 cat >conftest.$ac_ext <<_ACEOF
13459#line $LINENO "configure"
13460#include "confdefs.h"
13461 #include <sys/time.h>
13462#ifdef F77_DUMMY_MAIN
13463# ifdef __cplusplus
13464 extern "C"
13465# endif
13466 int F77_DUMMY_MAIN() { return 1; }
13467#endif
13468int
13469main ()
13470{
13471 struct timeval tv; tv.tv_sec = 1;
13472 ;
13473 return 0;
13474}
13475_ACEOF
13476rm -f conftest.$ac_objext
13477if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13478 (eval $ac_compile) 2>&5
13479 ac_status=$?
13480 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13481 (exit $ac_status); } &&
13482 { ac_try='test -s conftest.$ac_objext'
13483 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13484 (eval $ac_try) 2>&5
13485 ac_status=$?
13486 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13487 (exit $ac_status); }; }; then
13488 ac_cv_have_struct_timeval="yes"
13489else
13490 echo "$as_me: failed program was:" >&5
13491cat conftest.$ac_ext >&5
13492 ac_cv_have_struct_timeval="no"
13493
13494fi
13495rm -f conftest.$ac_objext conftest.$ac_ext
13496
13497fi
13498echo "$as_me:$LINENO: result: $ac_cv_have_struct_timeval" >&5
13499echo "${ECHO_T}$ac_cv_have_struct_timeval" >&6
13500if test "x$ac_cv_have_struct_timeval" = "xyes" ; then
13501 cat >>confdefs.h <<\_ACEOF
13502@%:@define HAVE_STRUCT_TIMEVAL 1
13503_ACEOF
13504
13505 have_struct_timeval=1
13506fi
13507
13508echo "$as_me:$LINENO: checking for struct timespec" >&5
13509echo $ECHO_N "checking for struct timespec... $ECHO_C" >&6
13510if test "${ac_cv_type_struct_timespec+set}" = set; then
13511 echo $ECHO_N "(cached) $ECHO_C" >&6
13512else
13513 cat >conftest.$ac_ext <<_ACEOF
13514#line $LINENO "configure"
13515#include "confdefs.h"
13516$ac_includes_default
13517#ifdef F77_DUMMY_MAIN
13518# ifdef __cplusplus
13519 extern "C"
13520# endif
13521 int F77_DUMMY_MAIN() { return 1; }
13522#endif
13523int
13524main ()
13525{
13526if ((struct timespec *) 0)
13527 return 0;
13528if (sizeof (struct timespec))
13529 return 0;
13530 ;
13531 return 0;
13532}
13533_ACEOF
13534rm -f conftest.$ac_objext
13535if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13536 (eval $ac_compile) 2>&5
13537 ac_status=$?
13538 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13539 (exit $ac_status); } &&
13540 { ac_try='test -s conftest.$ac_objext'
13541 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13542 (eval $ac_try) 2>&5
13543 ac_status=$?
13544 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13545 (exit $ac_status); }; }; then
13546 ac_cv_type_struct_timespec=yes
13547else
13548 echo "$as_me: failed program was:" >&5
13549cat conftest.$ac_ext >&5
13550ac_cv_type_struct_timespec=no
13551fi
13552rm -f conftest.$ac_objext conftest.$ac_ext
13553fi
13554echo "$as_me:$LINENO: result: $ac_cv_type_struct_timespec" >&5
13555echo "${ECHO_T}$ac_cv_type_struct_timespec" >&6
13556if test $ac_cv_type_struct_timespec = yes; then
13557
13558cat >>confdefs.h <<_ACEOF
13559@%:@define HAVE_STRUCT_TIMESPEC 1
13560_ACEOF
13561
13562
13563fi
13564
13565
13566# We need int64_t or else certian parts of the compile will fail.
13567if test "x$ac_cv_have_int64_t" = "xno" -a \
13568 "x$ac_cv_sizeof_long_int" != "x8" -a \
13569 "x$ac_cv_sizeof_long_long_int" = "x0" ; then
13570 echo "OpenSSH requires int64_t support. Contact your vendor or install"
13571 echo "an alternative compiler (I.E., GCC) before continuing."
13572 echo ""
13573 exit 1;
13574else
13575 if test "$cross_compiling" = yes; then
13576 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
13577echo "$as_me: error: cannot run test program while cross compiling" >&2;}
13578 { (exit 1); exit 1; }; }
13579else
13580 cat >conftest.$ac_ext <<_ACEOF
13581#line $LINENO "configure"
13582#include "confdefs.h"
13583
13584#include <stdio.h>
13585#include <string.h>
13586#ifdef HAVE_SNPRINTF
13587main()
13588{
13589 char buf[50];
13590 char expected_out[50];
13591 int mazsize = 50 ;
13592#if (SIZEOF_LONG_INT == 8)
13593 long int num = 0x7fffffffffffffff;
13594#else
13595 long long num = 0x7fffffffffffffffll;
13596#endif
13597 strcpy(expected_out, "9223372036854775807");
13598 snprintf(buf, mazsize, "%lld", num);
13599 if(strcmp(buf, expected_out) != 0)
13600 exit(1);
13601 exit(0);
13602}
13603#else
13604main() { exit(0); }
13605#endif
13606
13607_ACEOF
13608rm -f conftest$ac_exeext
13609if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13610 (eval $ac_link) 2>&5
13611 ac_status=$?
13612 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13613 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
13614 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13615 (eval $ac_try) 2>&5
13616 ac_status=$?
13617 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13618 (exit $ac_status); }; }; then
13619 true
13620else
13621 echo "$as_me: program exited with status $ac_status" >&5
13622echo "$as_me: failed program was:" >&5
13623cat conftest.$ac_ext >&5
13624( exit $ac_status )
13625 cat >>confdefs.h <<\_ACEOF
13626@%:@define BROKEN_SNPRINTF 1
13627_ACEOF
13628
13629
13630fi
13631rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
13632fi
13633fi
13634
13635
13636# look for field 'ut_host' in header 'utmp.h'
13637 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
13638 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_host
13639 echo "$as_me:$LINENO: checking for ut_host field in utmp.h" >&5
13640echo $ECHO_N "checking for ut_host field in utmp.h... $ECHO_C" >&6
13641 if eval "test \"\${$ossh_varname+set}\" = set"; then
13642 echo $ECHO_N "(cached) $ECHO_C" >&6
13643else
13644
13645 cat >conftest.$ac_ext <<_ACEOF
13646#line $LINENO "configure"
13647#include "confdefs.h"
13648#include <utmp.h>
13649
13650_ACEOF
13651if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13652 egrep "ut_host" >/dev/null 2>&1; then
13653 eval "$ossh_varname=yes"
13654else
13655 eval "$ossh_varname=no"
13656fi
13657rm -f conftest*
13658
13659fi
13660
13661 ossh_result=`eval 'echo $'"$ossh_varname"`
13662 if test -n "`echo $ossh_varname`"; then
13663 echo "$as_me:$LINENO: result: $ossh_result" >&5
13664echo "${ECHO_T}$ossh_result" >&6
13665 if test "x$ossh_result" = "xyes"; then
13666 cat >>confdefs.h <<\_ACEOF
13667@%:@define HAVE_HOST_IN_UTMP 1
13668_ACEOF
13669
13670 fi
13671 else
13672 echo "$as_me:$LINENO: result: no" >&5
13673echo "${ECHO_T}no" >&6
13674 fi
13675
13676
13677# look for field 'ut_host' in header 'utmpx.h'
13678 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
13679 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_host
13680 echo "$as_me:$LINENO: checking for ut_host field in utmpx.h" >&5
13681echo $ECHO_N "checking for ut_host field in utmpx.h... $ECHO_C" >&6
13682 if eval "test \"\${$ossh_varname+set}\" = set"; then
13683 echo $ECHO_N "(cached) $ECHO_C" >&6
13684else
13685
13686 cat >conftest.$ac_ext <<_ACEOF
13687#line $LINENO "configure"
13688#include "confdefs.h"
13689#include <utmpx.h>
13690
13691_ACEOF
13692if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13693 egrep "ut_host" >/dev/null 2>&1; then
13694 eval "$ossh_varname=yes"
13695else
13696 eval "$ossh_varname=no"
13697fi
13698rm -f conftest*
13699
13700fi
13701
13702 ossh_result=`eval 'echo $'"$ossh_varname"`
13703 if test -n "`echo $ossh_varname`"; then
13704 echo "$as_me:$LINENO: result: $ossh_result" >&5
13705echo "${ECHO_T}$ossh_result" >&6
13706 if test "x$ossh_result" = "xyes"; then
13707 cat >>confdefs.h <<\_ACEOF
13708@%:@define HAVE_HOST_IN_UTMPX 1
13709_ACEOF
13710
13711 fi
13712 else
13713 echo "$as_me:$LINENO: result: no" >&5
13714echo "${ECHO_T}no" >&6
13715 fi
13716
13717
13718# look for field 'syslen' in header 'utmpx.h'
13719 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
13720 ossh_varname="ossh_cv_$ossh_safe""_has_"syslen
13721 echo "$as_me:$LINENO: checking for syslen field in utmpx.h" >&5
13722echo $ECHO_N "checking for syslen field in utmpx.h... $ECHO_C" >&6
13723 if eval "test \"\${$ossh_varname+set}\" = set"; then
13724 echo $ECHO_N "(cached) $ECHO_C" >&6
13725else
13726
13727 cat >conftest.$ac_ext <<_ACEOF
13728#line $LINENO "configure"
13729#include "confdefs.h"
13730#include <utmpx.h>
13731
13732_ACEOF
13733if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13734 egrep "syslen" >/dev/null 2>&1; then
13735 eval "$ossh_varname=yes"
13736else
13737 eval "$ossh_varname=no"
13738fi
13739rm -f conftest*
13740
13741fi
13742
13743 ossh_result=`eval 'echo $'"$ossh_varname"`
13744 if test -n "`echo $ossh_varname`"; then
13745 echo "$as_me:$LINENO: result: $ossh_result" >&5
13746echo "${ECHO_T}$ossh_result" >&6
13747 if test "x$ossh_result" = "xyes"; then
13748 cat >>confdefs.h <<\_ACEOF
13749@%:@define HAVE_SYSLEN_IN_UTMPX 1
13750_ACEOF
13751
13752 fi
13753 else
13754 echo "$as_me:$LINENO: result: no" >&5
13755echo "${ECHO_T}no" >&6
13756 fi
13757
13758
13759# look for field 'ut_pid' in header 'utmp.h'
13760 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
13761 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_pid
13762 echo "$as_me:$LINENO: checking for ut_pid field in utmp.h" >&5
13763echo $ECHO_N "checking for ut_pid field in utmp.h... $ECHO_C" >&6
13764 if eval "test \"\${$ossh_varname+set}\" = set"; then
13765 echo $ECHO_N "(cached) $ECHO_C" >&6
13766else
13767
13768 cat >conftest.$ac_ext <<_ACEOF
13769#line $LINENO "configure"
13770#include "confdefs.h"
13771#include <utmp.h>
13772
13773_ACEOF
13774if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13775 egrep "ut_pid" >/dev/null 2>&1; then
13776 eval "$ossh_varname=yes"
13777else
13778 eval "$ossh_varname=no"
13779fi
13780rm -f conftest*
13781
13782fi
13783
13784 ossh_result=`eval 'echo $'"$ossh_varname"`
13785 if test -n "`echo $ossh_varname`"; then
13786 echo "$as_me:$LINENO: result: $ossh_result" >&5
13787echo "${ECHO_T}$ossh_result" >&6
13788 if test "x$ossh_result" = "xyes"; then
13789 cat >>confdefs.h <<\_ACEOF
13790@%:@define HAVE_PID_IN_UTMP 1
13791_ACEOF
13792
13793 fi
13794 else
13795 echo "$as_me:$LINENO: result: no" >&5
13796echo "${ECHO_T}no" >&6
13797 fi
13798
13799
13800# look for field 'ut_type' in header 'utmp.h'
13801 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
13802 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_type
13803 echo "$as_me:$LINENO: checking for ut_type field in utmp.h" >&5
13804echo $ECHO_N "checking for ut_type field in utmp.h... $ECHO_C" >&6
13805 if eval "test \"\${$ossh_varname+set}\" = set"; then
13806 echo $ECHO_N "(cached) $ECHO_C" >&6
13807else
13808
13809 cat >conftest.$ac_ext <<_ACEOF
13810#line $LINENO "configure"
13811#include "confdefs.h"
13812#include <utmp.h>
13813
13814_ACEOF
13815if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13816 egrep "ut_type" >/dev/null 2>&1; then
13817 eval "$ossh_varname=yes"
13818else
13819 eval "$ossh_varname=no"
13820fi
13821rm -f conftest*
13822
13823fi
13824
13825 ossh_result=`eval 'echo $'"$ossh_varname"`
13826 if test -n "`echo $ossh_varname`"; then
13827 echo "$as_me:$LINENO: result: $ossh_result" >&5
13828echo "${ECHO_T}$ossh_result" >&6
13829 if test "x$ossh_result" = "xyes"; then
13830 cat >>confdefs.h <<\_ACEOF
13831@%:@define HAVE_TYPE_IN_UTMP 1
13832_ACEOF
13833
13834 fi
13835 else
13836 echo "$as_me:$LINENO: result: no" >&5
13837echo "${ECHO_T}no" >&6
13838 fi
13839
13840
13841# look for field 'ut_type' in header 'utmpx.h'
13842 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
13843 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_type
13844 echo "$as_me:$LINENO: checking for ut_type field in utmpx.h" >&5
13845echo $ECHO_N "checking for ut_type field in utmpx.h... $ECHO_C" >&6
13846 if eval "test \"\${$ossh_varname+set}\" = set"; then
13847 echo $ECHO_N "(cached) $ECHO_C" >&6
13848else
13849
13850 cat >conftest.$ac_ext <<_ACEOF
13851#line $LINENO "configure"
13852#include "confdefs.h"
13853#include <utmpx.h>
13854
13855_ACEOF
13856if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13857 egrep "ut_type" >/dev/null 2>&1; then
13858 eval "$ossh_varname=yes"
13859else
13860 eval "$ossh_varname=no"
13861fi
13862rm -f conftest*
13863
13864fi
13865
13866 ossh_result=`eval 'echo $'"$ossh_varname"`
13867 if test -n "`echo $ossh_varname`"; then
13868 echo "$as_me:$LINENO: result: $ossh_result" >&5
13869echo "${ECHO_T}$ossh_result" >&6
13870 if test "x$ossh_result" = "xyes"; then
13871 cat >>confdefs.h <<\_ACEOF
13872@%:@define HAVE_TYPE_IN_UTMPX 1
13873_ACEOF
13874
13875 fi
13876 else
13877 echo "$as_me:$LINENO: result: no" >&5
13878echo "${ECHO_T}no" >&6
13879 fi
13880
13881
13882# look for field 'ut_tv' in header 'utmp.h'
13883 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
13884 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_tv
13885 echo "$as_me:$LINENO: checking for ut_tv field in utmp.h" >&5
13886echo $ECHO_N "checking for ut_tv field in utmp.h... $ECHO_C" >&6
13887 if eval "test \"\${$ossh_varname+set}\" = set"; then
13888 echo $ECHO_N "(cached) $ECHO_C" >&6
13889else
13890
13891 cat >conftest.$ac_ext <<_ACEOF
13892#line $LINENO "configure"
13893#include "confdefs.h"
13894#include <utmp.h>
13895
13896_ACEOF
13897if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13898 egrep "ut_tv" >/dev/null 2>&1; then
13899 eval "$ossh_varname=yes"
13900else
13901 eval "$ossh_varname=no"
13902fi
13903rm -f conftest*
13904
13905fi
13906
13907 ossh_result=`eval 'echo $'"$ossh_varname"`
13908 if test -n "`echo $ossh_varname`"; then
13909 echo "$as_me:$LINENO: result: $ossh_result" >&5
13910echo "${ECHO_T}$ossh_result" >&6
13911 if test "x$ossh_result" = "xyes"; then
13912 cat >>confdefs.h <<\_ACEOF
13913@%:@define HAVE_TV_IN_UTMP 1
13914_ACEOF
13915
13916 fi
13917 else
13918 echo "$as_me:$LINENO: result: no" >&5
13919echo "${ECHO_T}no" >&6
13920 fi
13921
13922
13923# look for field 'ut_id' in header 'utmp.h'
13924 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
13925 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_id
13926 echo "$as_me:$LINENO: checking for ut_id field in utmp.h" >&5
13927echo $ECHO_N "checking for ut_id field in utmp.h... $ECHO_C" >&6
13928 if eval "test \"\${$ossh_varname+set}\" = set"; then
13929 echo $ECHO_N "(cached) $ECHO_C" >&6
13930else
13931
13932 cat >conftest.$ac_ext <<_ACEOF
13933#line $LINENO "configure"
13934#include "confdefs.h"
13935#include <utmp.h>
13936
13937_ACEOF
13938if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13939 egrep "ut_id" >/dev/null 2>&1; then
13940 eval "$ossh_varname=yes"
13941else
13942 eval "$ossh_varname=no"
13943fi
13944rm -f conftest*
13945
13946fi
13947
13948 ossh_result=`eval 'echo $'"$ossh_varname"`
13949 if test -n "`echo $ossh_varname`"; then
13950 echo "$as_me:$LINENO: result: $ossh_result" >&5
13951echo "${ECHO_T}$ossh_result" >&6
13952 if test "x$ossh_result" = "xyes"; then
13953 cat >>confdefs.h <<\_ACEOF
13954@%:@define HAVE_ID_IN_UTMP 1
13955_ACEOF
13956
13957 fi
13958 else
13959 echo "$as_me:$LINENO: result: no" >&5
13960echo "${ECHO_T}no" >&6
13961 fi
13962
13963
13964# look for field 'ut_id' in header 'utmpx.h'
13965 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
13966 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_id
13967 echo "$as_me:$LINENO: checking for ut_id field in utmpx.h" >&5
13968echo $ECHO_N "checking for ut_id field in utmpx.h... $ECHO_C" >&6
13969 if eval "test \"\${$ossh_varname+set}\" = set"; then
13970 echo $ECHO_N "(cached) $ECHO_C" >&6
13971else
13972
13973 cat >conftest.$ac_ext <<_ACEOF
13974#line $LINENO "configure"
13975#include "confdefs.h"
13976#include <utmpx.h>
13977
13978_ACEOF
13979if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
13980 egrep "ut_id" >/dev/null 2>&1; then
13981 eval "$ossh_varname=yes"
13982else
13983 eval "$ossh_varname=no"
13984fi
13985rm -f conftest*
13986
13987fi
13988
13989 ossh_result=`eval 'echo $'"$ossh_varname"`
13990 if test -n "`echo $ossh_varname`"; then
13991 echo "$as_me:$LINENO: result: $ossh_result" >&5
13992echo "${ECHO_T}$ossh_result" >&6
13993 if test "x$ossh_result" = "xyes"; then
13994 cat >>confdefs.h <<\_ACEOF
13995@%:@define HAVE_ID_IN_UTMPX 1
13996_ACEOF
13997
13998 fi
13999 else
14000 echo "$as_me:$LINENO: result: no" >&5
14001echo "${ECHO_T}no" >&6
14002 fi
14003
14004
14005# look for field 'ut_addr' in header 'utmp.h'
14006 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14007 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr
14008 echo "$as_me:$LINENO: checking for ut_addr field in utmp.h" >&5
14009echo $ECHO_N "checking for ut_addr field in utmp.h... $ECHO_C" >&6
14010 if eval "test \"\${$ossh_varname+set}\" = set"; then
14011 echo $ECHO_N "(cached) $ECHO_C" >&6
14012else
14013
14014 cat >conftest.$ac_ext <<_ACEOF
14015#line $LINENO "configure"
14016#include "confdefs.h"
14017#include <utmp.h>
14018
14019_ACEOF
14020if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14021 egrep "ut_addr" >/dev/null 2>&1; then
14022 eval "$ossh_varname=yes"
14023else
14024 eval "$ossh_varname=no"
14025fi
14026rm -f conftest*
14027
14028fi
14029
14030 ossh_result=`eval 'echo $'"$ossh_varname"`
14031 if test -n "`echo $ossh_varname`"; then
14032 echo "$as_me:$LINENO: result: $ossh_result" >&5
14033echo "${ECHO_T}$ossh_result" >&6
14034 if test "x$ossh_result" = "xyes"; then
14035 cat >>confdefs.h <<\_ACEOF
14036@%:@define HAVE_ADDR_IN_UTMP 1
14037_ACEOF
14038
14039 fi
14040 else
14041 echo "$as_me:$LINENO: result: no" >&5
14042echo "${ECHO_T}no" >&6
14043 fi
14044
14045
14046# look for field 'ut_addr' in header 'utmpx.h'
14047 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14048 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr
14049 echo "$as_me:$LINENO: checking for ut_addr field in utmpx.h" >&5
14050echo $ECHO_N "checking for ut_addr field in utmpx.h... $ECHO_C" >&6
14051 if eval "test \"\${$ossh_varname+set}\" = set"; then
14052 echo $ECHO_N "(cached) $ECHO_C" >&6
14053else
14054
14055 cat >conftest.$ac_ext <<_ACEOF
14056#line $LINENO "configure"
14057#include "confdefs.h"
14058#include <utmpx.h>
14059
14060_ACEOF
14061if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14062 egrep "ut_addr" >/dev/null 2>&1; then
14063 eval "$ossh_varname=yes"
14064else
14065 eval "$ossh_varname=no"
14066fi
14067rm -f conftest*
14068
14069fi
14070
14071 ossh_result=`eval 'echo $'"$ossh_varname"`
14072 if test -n "`echo $ossh_varname`"; then
14073 echo "$as_me:$LINENO: result: $ossh_result" >&5
14074echo "${ECHO_T}$ossh_result" >&6
14075 if test "x$ossh_result" = "xyes"; then
14076 cat >>confdefs.h <<\_ACEOF
14077@%:@define HAVE_ADDR_IN_UTMPX 1
14078_ACEOF
14079
14080 fi
14081 else
14082 echo "$as_me:$LINENO: result: no" >&5
14083echo "${ECHO_T}no" >&6
14084 fi
14085
14086
14087# look for field 'ut_addr_v6' in header 'utmp.h'
14088 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14089 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr_v6
14090 echo "$as_me:$LINENO: checking for ut_addr_v6 field in utmp.h" >&5
14091echo $ECHO_N "checking for ut_addr_v6 field in utmp.h... $ECHO_C" >&6
14092 if eval "test \"\${$ossh_varname+set}\" = set"; then
14093 echo $ECHO_N "(cached) $ECHO_C" >&6
14094else
14095
14096 cat >conftest.$ac_ext <<_ACEOF
14097#line $LINENO "configure"
14098#include "confdefs.h"
14099#include <utmp.h>
14100
14101_ACEOF
14102if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14103 egrep "ut_addr_v6" >/dev/null 2>&1; then
14104 eval "$ossh_varname=yes"
14105else
14106 eval "$ossh_varname=no"
14107fi
14108rm -f conftest*
14109
14110fi
14111
14112 ossh_result=`eval 'echo $'"$ossh_varname"`
14113 if test -n "`echo $ossh_varname`"; then
14114 echo "$as_me:$LINENO: result: $ossh_result" >&5
14115echo "${ECHO_T}$ossh_result" >&6
14116 if test "x$ossh_result" = "xyes"; then
14117 cat >>confdefs.h <<\_ACEOF
14118@%:@define HAVE_ADDR_V6_IN_UTMP 1
14119_ACEOF
14120
14121 fi
14122 else
14123 echo "$as_me:$LINENO: result: no" >&5
14124echo "${ECHO_T}no" >&6
14125 fi
14126
14127
14128# look for field 'ut_addr_v6' in header 'utmpx.h'
14129 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14130 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr_v6
14131 echo "$as_me:$LINENO: checking for ut_addr_v6 field in utmpx.h" >&5
14132echo $ECHO_N "checking for ut_addr_v6 field in utmpx.h... $ECHO_C" >&6
14133 if eval "test \"\${$ossh_varname+set}\" = set"; then
14134 echo $ECHO_N "(cached) $ECHO_C" >&6
14135else
14136
14137 cat >conftest.$ac_ext <<_ACEOF
14138#line $LINENO "configure"
14139#include "confdefs.h"
14140#include <utmpx.h>
14141
14142_ACEOF
14143if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14144 egrep "ut_addr_v6" >/dev/null 2>&1; then
14145 eval "$ossh_varname=yes"
14146else
14147 eval "$ossh_varname=no"
14148fi
14149rm -f conftest*
14150
14151fi
14152
14153 ossh_result=`eval 'echo $'"$ossh_varname"`
14154 if test -n "`echo $ossh_varname`"; then
14155 echo "$as_me:$LINENO: result: $ossh_result" >&5
14156echo "${ECHO_T}$ossh_result" >&6
14157 if test "x$ossh_result" = "xyes"; then
14158 cat >>confdefs.h <<\_ACEOF
14159@%:@define HAVE_ADDR_V6_IN_UTMPX 1
14160_ACEOF
14161
14162 fi
14163 else
14164 echo "$as_me:$LINENO: result: no" >&5
14165echo "${ECHO_T}no" >&6
14166 fi
14167
14168
14169# look for field 'ut_exit' in header 'utmp.h'
14170 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14171 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_exit
14172 echo "$as_me:$LINENO: checking for ut_exit field in utmp.h" >&5
14173echo $ECHO_N "checking for ut_exit field in utmp.h... $ECHO_C" >&6
14174 if eval "test \"\${$ossh_varname+set}\" = set"; then
14175 echo $ECHO_N "(cached) $ECHO_C" >&6
14176else
14177
14178 cat >conftest.$ac_ext <<_ACEOF
14179#line $LINENO "configure"
14180#include "confdefs.h"
14181#include <utmp.h>
14182
14183_ACEOF
14184if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14185 egrep "ut_exit" >/dev/null 2>&1; then
14186 eval "$ossh_varname=yes"
14187else
14188 eval "$ossh_varname=no"
14189fi
14190rm -f conftest*
14191
14192fi
14193
14194 ossh_result=`eval 'echo $'"$ossh_varname"`
14195 if test -n "`echo $ossh_varname`"; then
14196 echo "$as_me:$LINENO: result: $ossh_result" >&5
14197echo "${ECHO_T}$ossh_result" >&6
14198 if test "x$ossh_result" = "xyes"; then
14199 cat >>confdefs.h <<\_ACEOF
14200@%:@define HAVE_EXIT_IN_UTMP 1
14201_ACEOF
14202
14203 fi
14204 else
14205 echo "$as_me:$LINENO: result: no" >&5
14206echo "${ECHO_T}no" >&6
14207 fi
14208
14209
14210# look for field 'ut_time' in header 'utmp.h'
14211 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14212 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_time
14213 echo "$as_me:$LINENO: checking for ut_time field in utmp.h" >&5
14214echo $ECHO_N "checking for ut_time field in utmp.h... $ECHO_C" >&6
14215 if eval "test \"\${$ossh_varname+set}\" = set"; then
14216 echo $ECHO_N "(cached) $ECHO_C" >&6
14217else
14218
14219 cat >conftest.$ac_ext <<_ACEOF
14220#line $LINENO "configure"
14221#include "confdefs.h"
14222#include <utmp.h>
14223
14224_ACEOF
14225if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14226 egrep "ut_time" >/dev/null 2>&1; then
14227 eval "$ossh_varname=yes"
14228else
14229 eval "$ossh_varname=no"
14230fi
14231rm -f conftest*
14232
14233fi
14234
14235 ossh_result=`eval 'echo $'"$ossh_varname"`
14236 if test -n "`echo $ossh_varname`"; then
14237 echo "$as_me:$LINENO: result: $ossh_result" >&5
14238echo "${ECHO_T}$ossh_result" >&6
14239 if test "x$ossh_result" = "xyes"; then
14240 cat >>confdefs.h <<\_ACEOF
14241@%:@define HAVE_TIME_IN_UTMP 1
14242_ACEOF
14243
14244 fi
14245 else
14246 echo "$as_me:$LINENO: result: no" >&5
14247echo "${ECHO_T}no" >&6
14248 fi
14249
14250
14251# look for field 'ut_time' in header 'utmpx.h'
14252 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14253 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_time
14254 echo "$as_me:$LINENO: checking for ut_time field in utmpx.h" >&5
14255echo $ECHO_N "checking for ut_time field in utmpx.h... $ECHO_C" >&6
14256 if eval "test \"\${$ossh_varname+set}\" = set"; then
14257 echo $ECHO_N "(cached) $ECHO_C" >&6
14258else
14259
14260 cat >conftest.$ac_ext <<_ACEOF
14261#line $LINENO "configure"
14262#include "confdefs.h"
14263#include <utmpx.h>
14264
14265_ACEOF
14266if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14267 egrep "ut_time" >/dev/null 2>&1; then
14268 eval "$ossh_varname=yes"
14269else
14270 eval "$ossh_varname=no"
14271fi
14272rm -f conftest*
14273
14274fi
14275
14276 ossh_result=`eval 'echo $'"$ossh_varname"`
14277 if test -n "`echo $ossh_varname`"; then
14278 echo "$as_me:$LINENO: result: $ossh_result" >&5
14279echo "${ECHO_T}$ossh_result" >&6
14280 if test "x$ossh_result" = "xyes"; then
14281 cat >>confdefs.h <<\_ACEOF
14282@%:@define HAVE_TIME_IN_UTMPX 1
14283_ACEOF
14284
14285 fi
14286 else
14287 echo "$as_me:$LINENO: result: no" >&5
14288echo "${ECHO_T}no" >&6
14289 fi
14290
14291
14292# look for field 'ut_tv' in header 'utmpx.h'
14293 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14294 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_tv
14295 echo "$as_me:$LINENO: checking for ut_tv field in utmpx.h" >&5
14296echo $ECHO_N "checking for ut_tv field in utmpx.h... $ECHO_C" >&6
14297 if eval "test \"\${$ossh_varname+set}\" = set"; then
14298 echo $ECHO_N "(cached) $ECHO_C" >&6
14299else
14300
14301 cat >conftest.$ac_ext <<_ACEOF
14302#line $LINENO "configure"
14303#include "confdefs.h"
14304#include <utmpx.h>
14305
14306_ACEOF
14307if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14308 egrep "ut_tv" >/dev/null 2>&1; then
14309 eval "$ossh_varname=yes"
14310else
14311 eval "$ossh_varname=no"
14312fi
14313rm -f conftest*
14314
14315fi
14316
14317 ossh_result=`eval 'echo $'"$ossh_varname"`
14318 if test -n "`echo $ossh_varname`"; then
14319 echo "$as_me:$LINENO: result: $ossh_result" >&5
14320echo "${ECHO_T}$ossh_result" >&6
14321 if test "x$ossh_result" = "xyes"; then
14322 cat >>confdefs.h <<\_ACEOF
14323@%:@define HAVE_TV_IN_UTMPX 1
14324_ACEOF
14325
14326 fi
14327 else
14328 echo "$as_me:$LINENO: result: no" >&5
14329echo "${ECHO_T}no" >&6
14330 fi
14331
14332
14333echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
14334echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6
14335if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
14336 echo $ECHO_N "(cached) $ECHO_C" >&6
14337else
14338 cat >conftest.$ac_ext <<_ACEOF
14339#line $LINENO "configure"
14340#include "confdefs.h"
14341$ac_includes_default
14342#ifdef F77_DUMMY_MAIN
14343# ifdef __cplusplus
14344 extern "C"
14345# endif
14346 int F77_DUMMY_MAIN() { return 1; }
14347#endif
14348int
14349main ()
14350{
14351static struct stat ac_aggr;
14352if (ac_aggr.st_blksize)
14353return 0;
14354 ;
14355 return 0;
14356}
14357_ACEOF
14358rm -f conftest.$ac_objext
14359if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14360 (eval $ac_compile) 2>&5
14361 ac_status=$?
14362 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14363 (exit $ac_status); } &&
14364 { ac_try='test -s conftest.$ac_objext'
14365 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14366 (eval $ac_try) 2>&5
14367 ac_status=$?
14368 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14369 (exit $ac_status); }; }; then
14370 ac_cv_member_struct_stat_st_blksize=yes
14371else
14372 echo "$as_me: failed program was:" >&5
14373cat conftest.$ac_ext >&5
14374ac_cv_member_struct_stat_st_blksize=no
14375fi
14376rm -f conftest.$ac_objext conftest.$ac_ext
14377fi
14378echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5
14379echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6
14380if test $ac_cv_member_struct_stat_st_blksize = yes; then
14381
14382cat >>confdefs.h <<_ACEOF
14383@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
14384_ACEOF
14385
14386
14387fi
14388
14389
14390echo "$as_me:$LINENO: checking for ss_family field in struct sockaddr_storage" >&5
14391echo $ECHO_N "checking for ss_family field in struct sockaddr_storage... $ECHO_C" >&6
14392if test "${ac_cv_have_ss_family_in_struct_ss+set}" = set; then
14393 echo $ECHO_N "(cached) $ECHO_C" >&6
14394else
14395
14396 cat >conftest.$ac_ext <<_ACEOF
14397#line $LINENO "configure"
14398#include "confdefs.h"
14399
14400#include <sys/types.h>
14401#include <sys/socket.h>
14402
14403#ifdef F77_DUMMY_MAIN
14404# ifdef __cplusplus
14405 extern "C"
14406# endif
14407 int F77_DUMMY_MAIN() { return 1; }
14408#endif
14409int
14410main ()
14411{
14412 struct sockaddr_storage s; s.ss_family = 1;
14413 ;
14414 return 0;
14415}
14416_ACEOF
14417rm -f conftest.$ac_objext
14418if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14419 (eval $ac_compile) 2>&5
14420 ac_status=$?
14421 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14422 (exit $ac_status); } &&
14423 { ac_try='test -s conftest.$ac_objext'
14424 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14425 (eval $ac_try) 2>&5
14426 ac_status=$?
14427 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14428 (exit $ac_status); }; }; then
14429 ac_cv_have_ss_family_in_struct_ss="yes"
14430else
14431 echo "$as_me: failed program was:" >&5
14432cat conftest.$ac_ext >&5
14433 ac_cv_have_ss_family_in_struct_ss="no"
14434fi
14435rm -f conftest.$ac_objext conftest.$ac_ext
14436
14437fi
14438echo "$as_me:$LINENO: result: $ac_cv_have_ss_family_in_struct_ss" >&5
14439echo "${ECHO_T}$ac_cv_have_ss_family_in_struct_ss" >&6
14440if test "x$ac_cv_have_ss_family_in_struct_ss" = "xyes" ; then
14441 cat >>confdefs.h <<\_ACEOF
14442@%:@define HAVE_SS_FAMILY_IN_SS 1
14443_ACEOF
14444
14445fi
14446
14447echo "$as_me:$LINENO: checking for __ss_family field in struct sockaddr_storage" >&5
14448echo $ECHO_N "checking for __ss_family field in struct sockaddr_storage... $ECHO_C" >&6
14449if test "${ac_cv_have___ss_family_in_struct_ss+set}" = set; then
14450 echo $ECHO_N "(cached) $ECHO_C" >&6
14451else
14452
14453 cat >conftest.$ac_ext <<_ACEOF
14454#line $LINENO "configure"
14455#include "confdefs.h"
14456
14457#include <sys/types.h>
14458#include <sys/socket.h>
14459
14460#ifdef F77_DUMMY_MAIN
14461# ifdef __cplusplus
14462 extern "C"
14463# endif
14464 int F77_DUMMY_MAIN() { return 1; }
14465#endif
14466int
14467main ()
14468{
14469 struct sockaddr_storage s; s.__ss_family = 1;
14470 ;
14471 return 0;
14472}
14473_ACEOF
14474rm -f conftest.$ac_objext
14475if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14476 (eval $ac_compile) 2>&5
14477 ac_status=$?
14478 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14479 (exit $ac_status); } &&
14480 { ac_try='test -s conftest.$ac_objext'
14481 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14482 (eval $ac_try) 2>&5
14483 ac_status=$?
14484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14485 (exit $ac_status); }; }; then
14486 ac_cv_have___ss_family_in_struct_ss="yes"
14487else
14488 echo "$as_me: failed program was:" >&5
14489cat conftest.$ac_ext >&5
14490 ac_cv_have___ss_family_in_struct_ss="no"
14491
14492fi
14493rm -f conftest.$ac_objext conftest.$ac_ext
14494
14495fi
14496echo "$as_me:$LINENO: result: $ac_cv_have___ss_family_in_struct_ss" >&5
14497echo "${ECHO_T}$ac_cv_have___ss_family_in_struct_ss" >&6
14498if test "x$ac_cv_have___ss_family_in_struct_ss" = "xyes" ; then
14499 cat >>confdefs.h <<\_ACEOF
14500@%:@define HAVE___SS_FAMILY_IN_SS 1
14501_ACEOF
14502
14503fi
14504
14505echo "$as_me:$LINENO: checking for pw_class field in struct passwd" >&5
14506echo $ECHO_N "checking for pw_class field in struct passwd... $ECHO_C" >&6
14507if test "${ac_cv_have_pw_class_in_struct_passwd+set}" = set; then
14508 echo $ECHO_N "(cached) $ECHO_C" >&6
14509else
14510
14511 cat >conftest.$ac_ext <<_ACEOF
14512#line $LINENO "configure"
14513#include "confdefs.h"
14514
14515#include <pwd.h>
14516
14517#ifdef F77_DUMMY_MAIN
14518# ifdef __cplusplus
14519 extern "C"
14520# endif
14521 int F77_DUMMY_MAIN() { return 1; }
14522#endif
14523int
14524main ()
14525{
14526 struct passwd p; p.pw_class = 0;
14527 ;
14528 return 0;
14529}
14530_ACEOF
14531rm -f conftest.$ac_objext
14532if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14533 (eval $ac_compile) 2>&5
14534 ac_status=$?
14535 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14536 (exit $ac_status); } &&
14537 { ac_try='test -s conftest.$ac_objext'
14538 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14539 (eval $ac_try) 2>&5
14540 ac_status=$?
14541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14542 (exit $ac_status); }; }; then
14543 ac_cv_have_pw_class_in_struct_passwd="yes"
14544else
14545 echo "$as_me: failed program was:" >&5
14546cat conftest.$ac_ext >&5
14547 ac_cv_have_pw_class_in_struct_passwd="no"
14548
14549fi
14550rm -f conftest.$ac_objext conftest.$ac_ext
14551
14552fi
14553echo "$as_me:$LINENO: result: $ac_cv_have_pw_class_in_struct_passwd" >&5
14554echo "${ECHO_T}$ac_cv_have_pw_class_in_struct_passwd" >&6
14555if test "x$ac_cv_have_pw_class_in_struct_passwd" = "xyes" ; then
14556 cat >>confdefs.h <<\_ACEOF
14557@%:@define HAVE_PW_CLASS_IN_PASSWD 1
14558_ACEOF
14559
14560fi
14561
14562echo "$as_me:$LINENO: checking for pw_expire field in struct passwd" >&5
14563echo $ECHO_N "checking for pw_expire field in struct passwd... $ECHO_C" >&6
14564if test "${ac_cv_have_pw_expire_in_struct_passwd+set}" = set; then
14565 echo $ECHO_N "(cached) $ECHO_C" >&6
14566else
14567
14568 cat >conftest.$ac_ext <<_ACEOF
14569#line $LINENO "configure"
14570#include "confdefs.h"
14571
14572#include <pwd.h>
14573
14574#ifdef F77_DUMMY_MAIN
14575# ifdef __cplusplus
14576 extern "C"
14577# endif
14578 int F77_DUMMY_MAIN() { return 1; }
14579#endif
14580int
14581main ()
14582{
14583 struct passwd p; p.pw_expire = 0;
14584 ;
14585 return 0;
14586}
14587_ACEOF
14588rm -f conftest.$ac_objext
14589if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14590 (eval $ac_compile) 2>&5
14591 ac_status=$?
14592 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14593 (exit $ac_status); } &&
14594 { ac_try='test -s conftest.$ac_objext'
14595 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14596 (eval $ac_try) 2>&5
14597 ac_status=$?
14598 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14599 (exit $ac_status); }; }; then
14600 ac_cv_have_pw_expire_in_struct_passwd="yes"
14601else
14602 echo "$as_me: failed program was:" >&5
14603cat conftest.$ac_ext >&5
14604 ac_cv_have_pw_expire_in_struct_passwd="no"
14605
14606fi
14607rm -f conftest.$ac_objext conftest.$ac_ext
14608
14609fi
14610echo "$as_me:$LINENO: result: $ac_cv_have_pw_expire_in_struct_passwd" >&5
14611echo "${ECHO_T}$ac_cv_have_pw_expire_in_struct_passwd" >&6
14612if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then
14613 cat >>confdefs.h <<\_ACEOF
14614@%:@define HAVE_PW_EXPIRE_IN_PASSWD 1
14615_ACEOF
14616
14617fi
14618
14619echo "$as_me:$LINENO: checking for pw_change field in struct passwd" >&5
14620echo $ECHO_N "checking for pw_change field in struct passwd... $ECHO_C" >&6
14621if test "${ac_cv_have_pw_change_in_struct_passwd+set}" = set; then
14622 echo $ECHO_N "(cached) $ECHO_C" >&6
14623else
14624
14625 cat >conftest.$ac_ext <<_ACEOF
14626#line $LINENO "configure"
14627#include "confdefs.h"
14628
14629#include <pwd.h>
14630
14631#ifdef F77_DUMMY_MAIN
14632# ifdef __cplusplus
14633 extern "C"
14634# endif
14635 int F77_DUMMY_MAIN() { return 1; }
14636#endif
14637int
14638main ()
14639{
14640 struct passwd p; p.pw_change = 0;
14641 ;
14642 return 0;
14643}
14644_ACEOF
14645rm -f conftest.$ac_objext
14646if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14647 (eval $ac_compile) 2>&5
14648 ac_status=$?
14649 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14650 (exit $ac_status); } &&
14651 { ac_try='test -s conftest.$ac_objext'
14652 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14653 (eval $ac_try) 2>&5
14654 ac_status=$?
14655 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14656 (exit $ac_status); }; }; then
14657 ac_cv_have_pw_change_in_struct_passwd="yes"
14658else
14659 echo "$as_me: failed program was:" >&5
14660cat conftest.$ac_ext >&5
14661 ac_cv_have_pw_change_in_struct_passwd="no"
14662
14663fi
14664rm -f conftest.$ac_objext conftest.$ac_ext
14665
14666fi
14667echo "$as_me:$LINENO: result: $ac_cv_have_pw_change_in_struct_passwd" >&5
14668echo "${ECHO_T}$ac_cv_have_pw_change_in_struct_passwd" >&6
14669if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then
14670 cat >>confdefs.h <<\_ACEOF
14671@%:@define HAVE_PW_CHANGE_IN_PASSWD 1
14672_ACEOF
14673
14674fi
14675
14676echo "$as_me:$LINENO: checking for msg_accrights field in struct msghdr" >&5
14677echo $ECHO_N "checking for msg_accrights field in struct msghdr... $ECHO_C" >&6
14678if test "${ac_cv_have_accrights_in_msghdr+set}" = set; then
14679 echo $ECHO_N "(cached) $ECHO_C" >&6
14680else
14681
14682 if test "$cross_compiling" = yes; then
14683 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
14684echo "$as_me: error: cannot run test program while cross compiling" >&2;}
14685 { (exit 1); exit 1; }; }
14686else
14687 cat >conftest.$ac_ext <<_ACEOF
14688#line $LINENO "configure"
14689#include "confdefs.h"
14690
14691#include <sys/types.h>
14692#include <sys/socket.h>
14693#include <sys/uio.h>
14694int main() {
14695#ifdef msg_accrights
14696exit(1);
14697#endif
14698struct msghdr m;
14699m.msg_accrights = 0;
14700exit(0);
14701}
14702
14703_ACEOF
14704rm -f conftest$ac_exeext
14705if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14706 (eval $ac_link) 2>&5
14707 ac_status=$?
14708 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14709 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
14710 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14711 (eval $ac_try) 2>&5
14712 ac_status=$?
14713 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14714 (exit $ac_status); }; }; then
14715 ac_cv_have_accrights_in_msghdr="yes"
14716else
14717 echo "$as_me: program exited with status $ac_status" >&5
14718echo "$as_me: failed program was:" >&5
14719cat conftest.$ac_ext >&5
14720( exit $ac_status )
14721 ac_cv_have_accrights_in_msghdr="no"
14722
14723fi
14724rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
14725fi
14726
14727fi
14728echo "$as_me:$LINENO: result: $ac_cv_have_accrights_in_msghdr" >&5
14729echo "${ECHO_T}$ac_cv_have_accrights_in_msghdr" >&6
14730if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
14731 cat >>confdefs.h <<\_ACEOF
14732@%:@define HAVE_ACCRIGHTS_IN_MSGHDR 1
14733_ACEOF
14734
14735fi
14736
14737echo "$as_me:$LINENO: checking for msg_control field in struct msghdr" >&5
14738echo $ECHO_N "checking for msg_control field in struct msghdr... $ECHO_C" >&6
14739if test "${ac_cv_have_control_in_msghdr+set}" = set; then
14740 echo $ECHO_N "(cached) $ECHO_C" >&6
14741else
14742
14743 if test "$cross_compiling" = yes; then
14744 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
14745echo "$as_me: error: cannot run test program while cross compiling" >&2;}
14746 { (exit 1); exit 1; }; }
14747else
14748 cat >conftest.$ac_ext <<_ACEOF
14749#line $LINENO "configure"
14750#include "confdefs.h"
14751
14752#include <sys/types.h>
14753#include <sys/socket.h>
14754#include <sys/uio.h>
14755int main() {
14756#ifdef msg_control
14757exit(1);
14758#endif
14759struct msghdr m;
14760m.msg_control = 0;
14761exit(0);
14762}
14763
14764_ACEOF
14765rm -f conftest$ac_exeext
14766if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14767 (eval $ac_link) 2>&5
14768 ac_status=$?
14769 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14770 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
14771 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14772 (eval $ac_try) 2>&5
14773 ac_status=$?
14774 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14775 (exit $ac_status); }; }; then
14776 ac_cv_have_control_in_msghdr="yes"
14777else
14778 echo "$as_me: program exited with status $ac_status" >&5
14779echo "$as_me: failed program was:" >&5
14780cat conftest.$ac_ext >&5
14781( exit $ac_status )
14782 ac_cv_have_control_in_msghdr="no"
14783
14784fi
14785rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
14786fi
14787
14788fi
14789echo "$as_me:$LINENO: result: $ac_cv_have_control_in_msghdr" >&5
14790echo "${ECHO_T}$ac_cv_have_control_in_msghdr" >&6
14791if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then
14792 cat >>confdefs.h <<\_ACEOF
14793@%:@define HAVE_CONTROL_IN_MSGHDR 1
14794_ACEOF
14795
14796fi
14797
14798echo "$as_me:$LINENO: checking if libc defines __progname" >&5
14799echo $ECHO_N "checking if libc defines __progname... $ECHO_C" >&6
14800if test "${ac_cv_libc_defines___progname+set}" = set; then
14801 echo $ECHO_N "(cached) $ECHO_C" >&6
14802else
14803
14804 cat >conftest.$ac_ext <<_ACEOF
14805#line $LINENO "configure"
14806#include "confdefs.h"
14807
14808#ifdef F77_DUMMY_MAIN
14809# ifdef __cplusplus
14810 extern "C"
14811# endif
14812 int F77_DUMMY_MAIN() { return 1; }
14813#endif
14814int
14815main ()
14816{
14817 extern char *__progname; printf("%s", __progname);
14818 ;
14819 return 0;
14820}
14821_ACEOF
14822rm -f conftest.$ac_objext conftest$ac_exeext
14823if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14824 (eval $ac_link) 2>&5
14825 ac_status=$?
14826 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14827 (exit $ac_status); } &&
14828 { ac_try='test -s conftest$ac_exeext'
14829 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14830 (eval $ac_try) 2>&5
14831 ac_status=$?
14832 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14833 (exit $ac_status); }; }; then
14834 ac_cv_libc_defines___progname="yes"
14835else
14836 echo "$as_me: failed program was:" >&5
14837cat conftest.$ac_ext >&5
14838 ac_cv_libc_defines___progname="no"
14839
14840fi
14841rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14842
14843fi
14844echo "$as_me:$LINENO: result: $ac_cv_libc_defines___progname" >&5
14845echo "${ECHO_T}$ac_cv_libc_defines___progname" >&6
14846if test "x$ac_cv_libc_defines___progname" = "xyes" ; then
14847 cat >>confdefs.h <<\_ACEOF
14848@%:@define HAVE___PROGNAME 1
14849_ACEOF
14850
14851fi
14852
14853echo "$as_me:$LINENO: checking whether $CC implements __FUNCTION__" >&5
14854echo $ECHO_N "checking whether $CC implements __FUNCTION__... $ECHO_C" >&6
14855if test "${ac_cv_cc_implements___FUNCTION__+set}" = set; then
14856 echo $ECHO_N "(cached) $ECHO_C" >&6
14857else
14858
14859 cat >conftest.$ac_ext <<_ACEOF
14860#line $LINENO "configure"
14861#include "confdefs.h"
14862
14863#include <stdio.h>
14864
14865#ifdef F77_DUMMY_MAIN
14866# ifdef __cplusplus
14867 extern "C"
14868# endif
14869 int F77_DUMMY_MAIN() { return 1; }
14870#endif
14871int
14872main ()
14873{
14874 printf("%s", __FUNCTION__);
14875 ;
14876 return 0;
14877}
14878_ACEOF
14879rm -f conftest.$ac_objext conftest$ac_exeext
14880if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14881 (eval $ac_link) 2>&5
14882 ac_status=$?
14883 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14884 (exit $ac_status); } &&
14885 { ac_try='test -s conftest$ac_exeext'
14886 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14887 (eval $ac_try) 2>&5
14888 ac_status=$?
14889 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14890 (exit $ac_status); }; }; then
14891 ac_cv_cc_implements___FUNCTION__="yes"
14892else
14893 echo "$as_me: failed program was:" >&5
14894cat conftest.$ac_ext >&5
14895 ac_cv_cc_implements___FUNCTION__="no"
14896
14897fi
14898rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14899
14900fi
14901echo "$as_me:$LINENO: result: $ac_cv_cc_implements___FUNCTION__" >&5
14902echo "${ECHO_T}$ac_cv_cc_implements___FUNCTION__" >&6
14903if test "x$ac_cv_cc_implements___FUNCTION__" = "xyes" ; then
14904 cat >>confdefs.h <<\_ACEOF
14905@%:@define HAVE___FUNCTION__ 1
14906_ACEOF
14907
14908fi
14909
14910echo "$as_me:$LINENO: checking whether $CC implements __func__" >&5
14911echo $ECHO_N "checking whether $CC implements __func__... $ECHO_C" >&6
14912if test "${ac_cv_cc_implements___func__+set}" = set; then
14913 echo $ECHO_N "(cached) $ECHO_C" >&6
14914else
14915
14916 cat >conftest.$ac_ext <<_ACEOF
14917#line $LINENO "configure"
14918#include "confdefs.h"
14919
14920#include <stdio.h>
14921
14922#ifdef F77_DUMMY_MAIN
14923# ifdef __cplusplus
14924 extern "C"
14925# endif
14926 int F77_DUMMY_MAIN() { return 1; }
14927#endif
14928int
14929main ()
14930{
14931 printf("%s", __func__);
14932 ;
14933 return 0;
14934}
14935_ACEOF
14936rm -f conftest.$ac_objext conftest$ac_exeext
14937if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14938 (eval $ac_link) 2>&5
14939 ac_status=$?
14940 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14941 (exit $ac_status); } &&
14942 { ac_try='test -s conftest$ac_exeext'
14943 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14944 (eval $ac_try) 2>&5
14945 ac_status=$?
14946 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14947 (exit $ac_status); }; }; then
14948 ac_cv_cc_implements___func__="yes"
14949else
14950 echo "$as_me: failed program was:" >&5
14951cat conftest.$ac_ext >&5
14952 ac_cv_cc_implements___func__="no"
14953
14954fi
14955rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14956
14957fi
14958echo "$as_me:$LINENO: result: $ac_cv_cc_implements___func__" >&5
14959echo "${ECHO_T}$ac_cv_cc_implements___func__" >&6
14960if test "x$ac_cv_cc_implements___func__" = "xyes" ; then
14961 cat >>confdefs.h <<\_ACEOF
14962@%:@define HAVE___func__ 1
14963_ACEOF
14964
14965fi
14966
14967echo "$as_me:$LINENO: checking whether getopt has optreset support" >&5
14968echo $ECHO_N "checking whether getopt has optreset support... $ECHO_C" >&6
14969if test "${ac_cv_have_getopt_optreset+set}" = set; then
14970 echo $ECHO_N "(cached) $ECHO_C" >&6
14971else
14972
14973 cat >conftest.$ac_ext <<_ACEOF
14974#line $LINENO "configure"
14975#include "confdefs.h"
14976
14977#include <getopt.h>
14978
14979#ifdef F77_DUMMY_MAIN
14980# ifdef __cplusplus
14981 extern "C"
14982# endif
14983 int F77_DUMMY_MAIN() { return 1; }
14984#endif
14985int
14986main ()
14987{
14988 extern int optreset; optreset = 0;
14989 ;
14990 return 0;
14991}
14992_ACEOF
14993rm -f conftest.$ac_objext conftest$ac_exeext
14994if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14995 (eval $ac_link) 2>&5
14996 ac_status=$?
14997 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14998 (exit $ac_status); } &&
14999 { ac_try='test -s conftest$ac_exeext'
15000 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15001 (eval $ac_try) 2>&5
15002 ac_status=$?
15003 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15004 (exit $ac_status); }; }; then
15005 ac_cv_have_getopt_optreset="yes"
15006else
15007 echo "$as_me: failed program was:" >&5
15008cat conftest.$ac_ext >&5
15009 ac_cv_have_getopt_optreset="no"
15010
15011fi
15012rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15013
15014fi
15015echo "$as_me:$LINENO: result: $ac_cv_have_getopt_optreset" >&5
15016echo "${ECHO_T}$ac_cv_have_getopt_optreset" >&6
15017if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then
15018 cat >>confdefs.h <<\_ACEOF
15019@%:@define HAVE_GETOPT_OPTRESET 1
15020_ACEOF
15021
15022fi
15023
15024echo "$as_me:$LINENO: checking if libc defines sys_errlist" >&5
15025echo $ECHO_N "checking if libc defines sys_errlist... $ECHO_C" >&6
15026if test "${ac_cv_libc_defines_sys_errlist+set}" = set; then
15027 echo $ECHO_N "(cached) $ECHO_C" >&6
15028else
15029
15030 cat >conftest.$ac_ext <<_ACEOF
15031#line $LINENO "configure"
15032#include "confdefs.h"
15033
15034#ifdef F77_DUMMY_MAIN
15035# ifdef __cplusplus
15036 extern "C"
15037# endif
15038 int F77_DUMMY_MAIN() { return 1; }
15039#endif
15040int
15041main ()
15042{
15043 extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);
15044 ;
15045 return 0;
15046}
15047_ACEOF
15048rm -f conftest.$ac_objext conftest$ac_exeext
15049if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15050 (eval $ac_link) 2>&5
15051 ac_status=$?
15052 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15053 (exit $ac_status); } &&
15054 { ac_try='test -s conftest$ac_exeext'
15055 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15056 (eval $ac_try) 2>&5
15057 ac_status=$?
15058 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15059 (exit $ac_status); }; }; then
15060 ac_cv_libc_defines_sys_errlist="yes"
15061else
15062 echo "$as_me: failed program was:" >&5
15063cat conftest.$ac_ext >&5
15064 ac_cv_libc_defines_sys_errlist="no"
15065
15066fi
15067rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15068
15069fi
15070echo "$as_me:$LINENO: result: $ac_cv_libc_defines_sys_errlist" >&5
15071echo "${ECHO_T}$ac_cv_libc_defines_sys_errlist" >&6
15072if test "x$ac_cv_libc_defines_sys_errlist" = "xyes" ; then
15073 cat >>confdefs.h <<\_ACEOF
15074@%:@define HAVE_SYS_ERRLIST 1
15075_ACEOF
15076
15077fi
15078
15079
15080echo "$as_me:$LINENO: checking if libc defines sys_nerr" >&5
15081echo $ECHO_N "checking if libc defines sys_nerr... $ECHO_C" >&6
15082if test "${ac_cv_libc_defines_sys_nerr+set}" = set; then
15083 echo $ECHO_N "(cached) $ECHO_C" >&6
15084else
15085
15086 cat >conftest.$ac_ext <<_ACEOF
15087#line $LINENO "configure"
15088#include "confdefs.h"
15089
15090#ifdef F77_DUMMY_MAIN
15091# ifdef __cplusplus
15092 extern "C"
15093# endif
15094 int F77_DUMMY_MAIN() { return 1; }
15095#endif
15096int
15097main ()
15098{
15099 extern int sys_nerr; printf("%i", sys_nerr);
15100 ;
15101 return 0;
15102}
15103_ACEOF
15104rm -f conftest.$ac_objext conftest$ac_exeext
15105if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15106 (eval $ac_link) 2>&5
15107 ac_status=$?
15108 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15109 (exit $ac_status); } &&
15110 { ac_try='test -s conftest$ac_exeext'
15111 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15112 (eval $ac_try) 2>&5
15113 ac_status=$?
15114 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15115 (exit $ac_status); }; }; then
15116 ac_cv_libc_defines_sys_nerr="yes"
15117else
15118 echo "$as_me: failed program was:" >&5
15119cat conftest.$ac_ext >&5
15120 ac_cv_libc_defines_sys_nerr="no"
15121
15122fi
15123rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15124
15125fi
15126echo "$as_me:$LINENO: result: $ac_cv_libc_defines_sys_nerr" >&5
15127echo "${ECHO_T}$ac_cv_libc_defines_sys_nerr" >&6
15128if test "x$ac_cv_libc_defines_sys_nerr" = "xyes" ; then
15129 cat >>confdefs.h <<\_ACEOF
15130@%:@define HAVE_SYS_NERR 1
15131_ACEOF
15132
15133fi
15134
15135SCARD_MSG="no"
15136
15137# Check whether user wants sectok support
15138
15139# Check whether --with-sectok or --without-sectok was given.
15140if test "${with_sectok+set}" = set; then
15141 withval="$with_sectok"
15142
15143 if test "x$withval" != "xno" ; then
15144 if test "x$withval" != "xyes" ; then
15145 CPPFLAGS="$CPPFLAGS -I${withval}"
15146 LDFLAGS="$LDFLAGS -L${withval}"
15147 if test ! -z "$need_dash_r" ; then
15148 LDFLAGS="$LDFLAGS -R${withval}"
15149 fi
15150 if test ! -z "$blibpath" ; then
15151 blibpath="$blibpath:${withval}"
15152 fi
15153 fi
15154
15155for ac_header in sectok.h
15156do
15157as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
15158if eval "test \"\${$as_ac_Header+set}\" = set"; then
15159 echo "$as_me:$LINENO: checking for $ac_header" >&5
15160echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15161if eval "test \"\${$as_ac_Header+set}\" = set"; then
15162 echo $ECHO_N "(cached) $ECHO_C" >&6
15163fi
15164echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15165echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15166else
15167 # Is the header compilable?
15168echo "$as_me:$LINENO: checking $ac_header usability" >&5
15169echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
15170cat >conftest.$ac_ext <<_ACEOF
15171#line $LINENO "configure"
15172#include "confdefs.h"
15173$ac_includes_default
15174@%:@include <$ac_header>
15175_ACEOF
15176rm -f conftest.$ac_objext
15177if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15178 (eval $ac_compile) 2>&5
15179 ac_status=$?
15180 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15181 (exit $ac_status); } &&
15182 { ac_try='test -s conftest.$ac_objext'
15183 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15184 (eval $ac_try) 2>&5
15185 ac_status=$?
15186 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15187 (exit $ac_status); }; }; then
15188 ac_header_compiler=yes
15189else
15190 echo "$as_me: failed program was:" >&5
15191cat conftest.$ac_ext >&5
15192ac_header_compiler=no
15193fi
15194rm -f conftest.$ac_objext conftest.$ac_ext
15195echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
15196echo "${ECHO_T}$ac_header_compiler" >&6
15197
15198# Is the header present?
15199echo "$as_me:$LINENO: checking $ac_header presence" >&5
15200echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
15201cat >conftest.$ac_ext <<_ACEOF
15202#line $LINENO "configure"
15203#include "confdefs.h"
15204@%:@include <$ac_header>
15205_ACEOF
15206if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
15207 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
15208 ac_status=$?
15209 egrep -v '^ *\+' conftest.er1 >conftest.err
15210 rm -f conftest.er1
15211 cat conftest.err >&5
15212 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15213 (exit $ac_status); } >/dev/null; then
15214 if test -s conftest.err; then
15215 ac_cpp_err=$ac_c_preproc_warn_flag
15216 else
15217 ac_cpp_err=
15218 fi
15219else
15220 ac_cpp_err=yes
15221fi
15222if test -z "$ac_cpp_err"; then
15223 ac_header_preproc=yes
15224else
15225 echo "$as_me: failed program was:" >&5
15226 cat conftest.$ac_ext >&5
15227 ac_header_preproc=no
15228fi
15229rm -f conftest.err conftest.$ac_ext
15230echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
15231echo "${ECHO_T}$ac_header_preproc" >&6
15232
15233# So? What about this header?
15234case $ac_header_compiler:$ac_header_preproc in
15235 yes:no )
15236 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
15237echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
15238 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15239echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
15240 no:yes )
15241 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
15242echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
15243 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
15244echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
15245 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15246echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
15247esac
15248echo "$as_me:$LINENO: checking for $ac_header" >&5
15249echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15250if eval "test \"\${$as_ac_Header+set}\" = set"; then
15251 echo $ECHO_N "(cached) $ECHO_C" >&6
15252else
15253 eval "$as_ac_Header=$ac_header_preproc"
15254fi
15255echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15256echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15257
15258fi
15259if test `eval echo '${'$as_ac_Header'}'` = yes; then
15260 cat >>confdefs.h <<_ACEOF
15261@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
15262_ACEOF
15263
15264fi
15265
15266done
15267
15268 if test "$ac_cv_header_sectok_h" != yes; then
15269 { { echo "$as_me:$LINENO: error: Can't find sectok.h" >&5
15270echo "$as_me: error: Can't find sectok.h" >&2;}
15271 { (exit 1); exit 1; }; }
15272 fi
15273
15274echo "$as_me:$LINENO: checking for sectok_open in -lsectok" >&5
15275echo $ECHO_N "checking for sectok_open in -lsectok... $ECHO_C" >&6
15276if test "${ac_cv_lib_sectok_sectok_open+set}" = set; then
15277 echo $ECHO_N "(cached) $ECHO_C" >&6
15278else
15279 ac_check_lib_save_LIBS=$LIBS
15280LIBS="-lsectok $LIBS"
15281cat >conftest.$ac_ext <<_ACEOF
15282#line $LINENO "configure"
15283#include "confdefs.h"
15284
15285/* Override any gcc2 internal prototype to avoid an error. */
15286#ifdef __cplusplus
15287extern "C"
15288#endif
15289/* We use char because int might match the return type of a gcc2
15290 builtin and then its argument prototype would still apply. */
15291char sectok_open ();
15292#ifdef F77_DUMMY_MAIN
15293# ifdef __cplusplus
15294 extern "C"
15295# endif
15296 int F77_DUMMY_MAIN() { return 1; }
15297#endif
15298int
15299main ()
15300{
15301sectok_open ();
15302 ;
15303 return 0;
15304}
15305_ACEOF
15306rm -f conftest.$ac_objext conftest$ac_exeext
15307if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15308 (eval $ac_link) 2>&5
15309 ac_status=$?
15310 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15311 (exit $ac_status); } &&
15312 { ac_try='test -s conftest$ac_exeext'
15313 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15314 (eval $ac_try) 2>&5
15315 ac_status=$?
15316 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15317 (exit $ac_status); }; }; then
15318 ac_cv_lib_sectok_sectok_open=yes
15319else
15320 echo "$as_me: failed program was:" >&5
15321cat conftest.$ac_ext >&5
15322ac_cv_lib_sectok_sectok_open=no
15323fi
15324rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15325LIBS=$ac_check_lib_save_LIBS
15326fi
15327echo "$as_me:$LINENO: result: $ac_cv_lib_sectok_sectok_open" >&5
15328echo "${ECHO_T}$ac_cv_lib_sectok_sectok_open" >&6
15329if test $ac_cv_lib_sectok_sectok_open = yes; then
15330 cat >>confdefs.h <<_ACEOF
15331@%:@define HAVE_LIBSECTOK 1
15332_ACEOF
15333
15334 LIBS="-lsectok $LIBS"
15335
15336fi
15337
15338 if test "$ac_cv_lib_sectok_sectok_open" != yes; then
15339 { { echo "$as_me:$LINENO: error: Can't find libsectok" >&5
15340echo "$as_me: error: Can't find libsectok" >&2;}
15341 { (exit 1); exit 1; }; }
15342 fi
15343 cat >>confdefs.h <<\_ACEOF
15344@%:@define SMARTCARD 1
15345_ACEOF
15346
15347 cat >>confdefs.h <<\_ACEOF
15348@%:@define USE_SECTOK 1
15349_ACEOF
15350
15351 SCARD_MSG="yes, using sectok"
15352 fi
15353
15354
15355fi;
15356
15357# Check whether user wants OpenSC support
15358
15359# Check whether --with-opensc or --without-opensc was given.
15360if test "${with_opensc+set}" = set; then
15361 withval="$with_opensc"
15362 opensc_config_prefix="$withval"
15363else
15364 opensc_config_prefix=""
15365fi;
15366if test x$opensc_config_prefix != x ; then
15367 OPENSC_CONFIG=$opensc_config_prefix/bin/opensc-config
15368 # Extract the first word of "opensc-config", so it can be a program name with args.
15369set dummy opensc-config; ac_word=$2
15370echo "$as_me:$LINENO: checking for $ac_word" >&5
15371echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
15372if test "${ac_cv_path_OPENSC_CONFIG+set}" = set; then
15373 echo $ECHO_N "(cached) $ECHO_C" >&6
15374else
15375 case $OPENSC_CONFIG in
15376 [\\/]* | ?:[\\/]*)
15377 ac_cv_path_OPENSC_CONFIG="$OPENSC_CONFIG" # Let the user override the test with a path.
15378 ;;
15379 *)
15380 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
15381for as_dir in $PATH
15382do
15383 IFS=$as_save_IFS
15384 test -z "$as_dir" && as_dir=.
15385 for ac_exec_ext in '' $ac_executable_extensions; do
15386 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
15387 ac_cv_path_OPENSC_CONFIG="$as_dir/$ac_word$ac_exec_ext"
15388 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
15389 break 2
15390 fi
15391done
15392done
15393
15394 test -z "$ac_cv_path_OPENSC_CONFIG" && ac_cv_path_OPENSC_CONFIG="no"
15395 ;;
15396esac
15397fi
15398OPENSC_CONFIG=$ac_cv_path_OPENSC_CONFIG
15399
15400if test -n "$OPENSC_CONFIG"; then
15401 echo "$as_me:$LINENO: result: $OPENSC_CONFIG" >&5
15402echo "${ECHO_T}$OPENSC_CONFIG" >&6
15403else
15404 echo "$as_me:$LINENO: result: no" >&5
15405echo "${ECHO_T}no" >&6
15406fi
15407
15408 if test "$OPENSC_CONFIG" != "no"; then
15409 LIBOPENSC_CFLAGS=`$OPENSC_CONFIG --cflags`
15410 LIBOPENSC_LIBS=`$OPENSC_CONFIG --libs`
15411 CPPFLAGS="$CPPFLAGS $LIBOPENSC_CFLAGS"
15412 LDFLAGS="$LDFLAGS $LIBOPENSC_LIBS"
15413 cat >>confdefs.h <<\_ACEOF
15414@%:@define SMARTCARD 1
15415_ACEOF
15416
15417 cat >>confdefs.h <<\_ACEOF
15418@%:@define USE_OPENSC 1
15419_ACEOF
15420
15421 SCARD_MSG="yes, using OpenSC"
15422 fi
15423fi
15424
15425# Check whether user wants Kerberos 5 support
15426KRB5_MSG="no"
15427
15428# Check whether --with-kerberos5 or --without-kerberos5 was given.
15429if test "${with_kerberos5+set}" = set; then
15430 withval="$with_kerberos5"
15431
15432 if test "x$withval" != "xno" ; then
15433 if test "x$withval" = "xyes" ; then
15434 KRB5ROOT="/usr/local"
15435 else
15436 KRB5ROOT=${withval}
15437 fi
15438 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include"
15439 LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib"
15440 cat >>confdefs.h <<\_ACEOF
15441@%:@define KRB5 1
15442_ACEOF
15443
15444 KRB5_MSG="yes"
15445 echo "$as_me:$LINENO: checking whether we are using Heimdal" >&5
15446echo $ECHO_N "checking whether we are using Heimdal... $ECHO_C" >&6
15447 cat >conftest.$ac_ext <<_ACEOF
15448#line $LINENO "configure"
15449#include "confdefs.h"
15450 #include <krb5.h>
15451#ifdef F77_DUMMY_MAIN
15452# ifdef __cplusplus
15453 extern "C"
15454# endif
15455 int F77_DUMMY_MAIN() { return 1; }
15456#endif
15457int
15458main ()
15459{
15460 char *tmp = heimdal_version;
15461 ;
15462 return 0;
15463}
15464_ACEOF
15465rm -f conftest.$ac_objext
15466if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15467 (eval $ac_compile) 2>&5
15468 ac_status=$?
15469 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15470 (exit $ac_status); } &&
15471 { ac_try='test -s conftest.$ac_objext'
15472 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15473 (eval $ac_try) 2>&5
15474 ac_status=$?
15475 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15476 (exit $ac_status); }; }; then
15477 echo "$as_me:$LINENO: result: yes" >&5
15478echo "${ECHO_T}yes" >&6
15479 cat >>confdefs.h <<\_ACEOF
15480@%:@define HEIMDAL 1
15481_ACEOF
15482
15483 K5LIBS="-lkrb5 -ldes -lcom_err -lasn1 -lroken"
15484
15485else
15486 echo "$as_me: failed program was:" >&5
15487cat conftest.$ac_ext >&5
15488 echo "$as_me:$LINENO: result: no" >&5
15489echo "${ECHO_T}no" >&6
15490 K5LIBS="-lkrb5 -lk5crypto -lcom_err"
15491
15492
15493fi
15494rm -f conftest.$ac_objext conftest.$ac_ext
15495 if test ! -z "$need_dash_r" ; then
15496 LDFLAGS="$LDFLAGS -R${KRB5ROOT}/lib"
15497 fi
15498 if test ! -z "$blibpath" ; then
15499 blibpath="$blibpath:${KRB5ROOT}/lib"
15500 fi
15501
15502echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5
15503echo $ECHO_N "checking for dn_expand in -lresolv... $ECHO_C" >&6
15504if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then
15505 echo $ECHO_N "(cached) $ECHO_C" >&6
15506else
15507 ac_check_lib_save_LIBS=$LIBS
15508LIBS="-lresolv $LIBS"
15509cat >conftest.$ac_ext <<_ACEOF
15510#line $LINENO "configure"
15511#include "confdefs.h"
15512
15513/* Override any gcc2 internal prototype to avoid an error. */
15514#ifdef __cplusplus
15515extern "C"
15516#endif
15517/* We use char because int might match the return type of a gcc2
15518 builtin and then its argument prototype would still apply. */
15519char dn_expand ();
15520#ifdef F77_DUMMY_MAIN
15521# ifdef __cplusplus
15522 extern "C"
15523# endif
15524 int F77_DUMMY_MAIN() { return 1; }
15525#endif
15526int
15527main ()
15528{
15529dn_expand ();
15530 ;
15531 return 0;
15532}
15533_ACEOF
15534rm -f conftest.$ac_objext conftest$ac_exeext
15535if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15536 (eval $ac_link) 2>&5
15537 ac_status=$?
15538 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15539 (exit $ac_status); } &&
15540 { ac_try='test -s conftest$ac_exeext'
15541 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15542 (eval $ac_try) 2>&5
15543 ac_status=$?
15544 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15545 (exit $ac_status); }; }; then
15546 ac_cv_lib_resolv_dn_expand=yes
15547else
15548 echo "$as_me: failed program was:" >&5
15549cat conftest.$ac_ext >&5
15550ac_cv_lib_resolv_dn_expand=no
15551fi
15552rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15553LIBS=$ac_check_lib_save_LIBS
15554fi
15555echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5
15556echo "${ECHO_T}$ac_cv_lib_resolv_dn_expand" >&6
15557if test $ac_cv_lib_resolv_dn_expand = yes; then
15558 cat >>confdefs.h <<_ACEOF
15559@%:@define HAVE_LIBRESOLV 1
15560_ACEOF
15561
15562 LIBS="-lresolv $LIBS"
15563
15564fi
15565
15566
15567 KRB5=yes
15568 fi
15569
15570
15571fi;
15572# Check whether user wants Kerberos 4 support
15573KRB4_MSG="no"
15574
15575# Check whether --with-kerberos4 or --without-kerberos4 was given.
15576if test "${with_kerberos4+set}" = set; then
15577 withval="$with_kerberos4"
15578
15579 if test "x$withval" != "xno" ; then
15580 if test "x$withval" != "xyes" ; then
15581 CPPFLAGS="$CPPFLAGS -I${withval}/include"
15582 LDFLAGS="$LDFLAGS -L${withval}/lib"
15583 if test ! -z "$need_dash_r" ; then
15584 LDFLAGS="$LDFLAGS -R${withval}/lib"
15585 fi
15586 if test ! -z "$blibpath" ; then
15587 blibpath="$blibpath:${withval}/lib"
15588 fi
15589 else
15590 if test -d /usr/include/kerberosIV ; then
15591 CPPFLAGS="$CPPFLAGS -I/usr/include/kerberosIV"
15592 fi
15593 fi
15594
15595
15596for ac_header in krb.h
15597do
15598as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
15599if eval "test \"\${$as_ac_Header+set}\" = set"; then
15600 echo "$as_me:$LINENO: checking for $ac_header" >&5
15601echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15602if eval "test \"\${$as_ac_Header+set}\" = set"; then
15603 echo $ECHO_N "(cached) $ECHO_C" >&6
15604fi
15605echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15606echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15607else
15608 # Is the header compilable?
15609echo "$as_me:$LINENO: checking $ac_header usability" >&5
15610echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
15611cat >conftest.$ac_ext <<_ACEOF
15612#line $LINENO "configure"
15613#include "confdefs.h"
15614$ac_includes_default
15615@%:@include <$ac_header>
15616_ACEOF
15617rm -f conftest.$ac_objext
15618if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15619 (eval $ac_compile) 2>&5
15620 ac_status=$?
15621 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15622 (exit $ac_status); } &&
15623 { ac_try='test -s conftest.$ac_objext'
15624 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15625 (eval $ac_try) 2>&5
15626 ac_status=$?
15627 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15628 (exit $ac_status); }; }; then
15629 ac_header_compiler=yes
15630else
15631 echo "$as_me: failed program was:" >&5
15632cat conftest.$ac_ext >&5
15633ac_header_compiler=no
15634fi
15635rm -f conftest.$ac_objext conftest.$ac_ext
15636echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
15637echo "${ECHO_T}$ac_header_compiler" >&6
15638
15639# Is the header present?
15640echo "$as_me:$LINENO: checking $ac_header presence" >&5
15641echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
15642cat >conftest.$ac_ext <<_ACEOF
15643#line $LINENO "configure"
15644#include "confdefs.h"
15645@%:@include <$ac_header>
15646_ACEOF
15647if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
15648 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
15649 ac_status=$?
15650 egrep -v '^ *\+' conftest.er1 >conftest.err
15651 rm -f conftest.er1
15652 cat conftest.err >&5
15653 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15654 (exit $ac_status); } >/dev/null; then
15655 if test -s conftest.err; then
15656 ac_cpp_err=$ac_c_preproc_warn_flag
15657 else
15658 ac_cpp_err=
15659 fi
15660else
15661 ac_cpp_err=yes
15662fi
15663if test -z "$ac_cpp_err"; then
15664 ac_header_preproc=yes
15665else
15666 echo "$as_me: failed program was:" >&5
15667 cat conftest.$ac_ext >&5
15668 ac_header_preproc=no
15669fi
15670rm -f conftest.err conftest.$ac_ext
15671echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
15672echo "${ECHO_T}$ac_header_preproc" >&6
15673
15674# So? What about this header?
15675case $ac_header_compiler:$ac_header_preproc in
15676 yes:no )
15677 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
15678echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
15679 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15680echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
15681 no:yes )
15682 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
15683echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
15684 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
15685echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
15686 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15687echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
15688esac
15689echo "$as_me:$LINENO: checking for $ac_header" >&5
15690echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15691if eval "test \"\${$as_ac_Header+set}\" = set"; then
15692 echo $ECHO_N "(cached) $ECHO_C" >&6
15693else
15694 eval "$as_ac_Header=$ac_header_preproc"
15695fi
15696echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15697echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15698
15699fi
15700if test `eval echo '${'$as_ac_Header'}'` = yes; then
15701 cat >>confdefs.h <<_ACEOF
15702@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
15703_ACEOF
15704
15705fi
15706
15707done
15708
15709 if test "$ac_cv_header_krb_h" != yes; then
15710 { echo "$as_me:$LINENO: WARNING: Cannot find krb.h, build may fail" >&5
15711echo "$as_me: WARNING: Cannot find krb.h, build may fail" >&2;}
15712 fi
15713
15714echo "$as_me:$LINENO: checking for main in -lkrb" >&5
15715echo $ECHO_N "checking for main in -lkrb... $ECHO_C" >&6
15716if test "${ac_cv_lib_krb_main+set}" = set; then
15717 echo $ECHO_N "(cached) $ECHO_C" >&6
15718else
15719 ac_check_lib_save_LIBS=$LIBS
15720LIBS="-lkrb $LIBS"
15721cat >conftest.$ac_ext <<_ACEOF
15722#line $LINENO "configure"
15723#include "confdefs.h"
15724
15725
15726#ifdef F77_DUMMY_MAIN
15727# ifdef __cplusplus
15728 extern "C"
15729# endif
15730 int F77_DUMMY_MAIN() { return 1; }
15731#endif
15732int
15733main ()
15734{
15735main ();
15736 ;
15737 return 0;
15738}
15739_ACEOF
15740rm -f conftest.$ac_objext conftest$ac_exeext
15741if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15742 (eval $ac_link) 2>&5
15743 ac_status=$?
15744 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15745 (exit $ac_status); } &&
15746 { ac_try='test -s conftest$ac_exeext'
15747 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15748 (eval $ac_try) 2>&5
15749 ac_status=$?
15750 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15751 (exit $ac_status); }; }; then
15752 ac_cv_lib_krb_main=yes
15753else
15754 echo "$as_me: failed program was:" >&5
15755cat conftest.$ac_ext >&5
15756ac_cv_lib_krb_main=no
15757fi
15758rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15759LIBS=$ac_check_lib_save_LIBS
15760fi
15761echo "$as_me:$LINENO: result: $ac_cv_lib_krb_main" >&5
15762echo "${ECHO_T}$ac_cv_lib_krb_main" >&6
15763if test $ac_cv_lib_krb_main = yes; then
15764 cat >>confdefs.h <<_ACEOF
15765@%:@define HAVE_LIBKRB 1
15766_ACEOF
15767
15768 LIBS="-lkrb $LIBS"
15769
15770fi
15771
15772 if test "$ac_cv_lib_krb_main" != yes; then
15773
15774echo "$as_me:$LINENO: checking for main in -lkrb4" >&5
15775echo $ECHO_N "checking for main in -lkrb4... $ECHO_C" >&6
15776if test "${ac_cv_lib_krb4_main+set}" = set; then
15777 echo $ECHO_N "(cached) $ECHO_C" >&6
15778else
15779 ac_check_lib_save_LIBS=$LIBS
15780LIBS="-lkrb4 $LIBS"
15781cat >conftest.$ac_ext <<_ACEOF
15782#line $LINENO "configure"
15783#include "confdefs.h"
15784
15785
15786#ifdef F77_DUMMY_MAIN
15787# ifdef __cplusplus
15788 extern "C"
15789# endif
15790 int F77_DUMMY_MAIN() { return 1; }
15791#endif
15792int
15793main ()
15794{
15795main ();
15796 ;
15797 return 0;
15798}
15799_ACEOF
15800rm -f conftest.$ac_objext conftest$ac_exeext
15801if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15802 (eval $ac_link) 2>&5
15803 ac_status=$?
15804 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15805 (exit $ac_status); } &&
15806 { ac_try='test -s conftest$ac_exeext'
15807 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15808 (eval $ac_try) 2>&5
15809 ac_status=$?
15810 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15811 (exit $ac_status); }; }; then
15812 ac_cv_lib_krb4_main=yes
15813else
15814 echo "$as_me: failed program was:" >&5
15815cat conftest.$ac_ext >&5
15816ac_cv_lib_krb4_main=no
15817fi
15818rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15819LIBS=$ac_check_lib_save_LIBS
15820fi
15821echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_main" >&5
15822echo "${ECHO_T}$ac_cv_lib_krb4_main" >&6
15823if test $ac_cv_lib_krb4_main = yes; then
15824 cat >>confdefs.h <<_ACEOF
15825@%:@define HAVE_LIBKRB4 1
15826_ACEOF
15827
15828 LIBS="-lkrb4 $LIBS"
15829
15830fi
15831
15832 if test "$ac_cv_lib_krb4_main" != yes; then
15833 { echo "$as_me:$LINENO: WARNING: Cannot find libkrb nor libkrb4, build may fail" >&5
15834echo "$as_me: WARNING: Cannot find libkrb nor libkrb4, build may fail" >&2;}
15835 else
15836 KLIBS="-lkrb4"
15837 fi
15838 else
15839 KLIBS="-lkrb"
15840 fi
15841
15842echo "$as_me:$LINENO: checking for des_cbc_encrypt in -ldes" >&5
15843echo $ECHO_N "checking for des_cbc_encrypt in -ldes... $ECHO_C" >&6
15844if test "${ac_cv_lib_des_des_cbc_encrypt+set}" = set; then
15845 echo $ECHO_N "(cached) $ECHO_C" >&6
15846else
15847 ac_check_lib_save_LIBS=$LIBS
15848LIBS="-ldes $LIBS"
15849cat >conftest.$ac_ext <<_ACEOF
15850#line $LINENO "configure"
15851#include "confdefs.h"
15852
15853/* Override any gcc2 internal prototype to avoid an error. */
15854#ifdef __cplusplus
15855extern "C"
15856#endif
15857/* We use char because int might match the return type of a gcc2
15858 builtin and then its argument prototype would still apply. */
15859char des_cbc_encrypt ();
15860#ifdef F77_DUMMY_MAIN
15861# ifdef __cplusplus
15862 extern "C"
15863# endif
15864 int F77_DUMMY_MAIN() { return 1; }
15865#endif
15866int
15867main ()
15868{
15869des_cbc_encrypt ();
15870 ;
15871 return 0;
15872}
15873_ACEOF
15874rm -f conftest.$ac_objext conftest$ac_exeext
15875if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15876 (eval $ac_link) 2>&5
15877 ac_status=$?
15878 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15879 (exit $ac_status); } &&
15880 { ac_try='test -s conftest$ac_exeext'
15881 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15882 (eval $ac_try) 2>&5
15883 ac_status=$?
15884 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15885 (exit $ac_status); }; }; then
15886 ac_cv_lib_des_des_cbc_encrypt=yes
15887else
15888 echo "$as_me: failed program was:" >&5
15889cat conftest.$ac_ext >&5
15890ac_cv_lib_des_des_cbc_encrypt=no
15891fi
15892rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15893LIBS=$ac_check_lib_save_LIBS
15894fi
15895echo "$as_me:$LINENO: result: $ac_cv_lib_des_des_cbc_encrypt" >&5
15896echo "${ECHO_T}$ac_cv_lib_des_des_cbc_encrypt" >&6
15897if test $ac_cv_lib_des_des_cbc_encrypt = yes; then
15898 cat >>confdefs.h <<_ACEOF
15899@%:@define HAVE_LIBDES 1
15900_ACEOF
15901
15902 LIBS="-ldes $LIBS"
15903
15904fi
15905
15906 if test "$ac_cv_lib_des_des_cbc_encrypt" != yes; then
15907
15908echo "$as_me:$LINENO: checking for des_cbc_encrypt in -ldes425" >&5
15909echo $ECHO_N "checking for des_cbc_encrypt in -ldes425... $ECHO_C" >&6
15910if test "${ac_cv_lib_des425_des_cbc_encrypt+set}" = set; then
15911 echo $ECHO_N "(cached) $ECHO_C" >&6
15912else
15913 ac_check_lib_save_LIBS=$LIBS
15914LIBS="-ldes425 $LIBS"
15915cat >conftest.$ac_ext <<_ACEOF
15916#line $LINENO "configure"
15917#include "confdefs.h"
15918
15919/* Override any gcc2 internal prototype to avoid an error. */
15920#ifdef __cplusplus
15921extern "C"
15922#endif
15923/* We use char because int might match the return type of a gcc2
15924 builtin and then its argument prototype would still apply. */
15925char des_cbc_encrypt ();
15926#ifdef F77_DUMMY_MAIN
15927# ifdef __cplusplus
15928 extern "C"
15929# endif
15930 int F77_DUMMY_MAIN() { return 1; }
15931#endif
15932int
15933main ()
15934{
15935des_cbc_encrypt ();
15936 ;
15937 return 0;
15938}
15939_ACEOF
15940rm -f conftest.$ac_objext conftest$ac_exeext
15941if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15942 (eval $ac_link) 2>&5
15943 ac_status=$?
15944 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15945 (exit $ac_status); } &&
15946 { ac_try='test -s conftest$ac_exeext'
15947 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15948 (eval $ac_try) 2>&5
15949 ac_status=$?
15950 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15951 (exit $ac_status); }; }; then
15952 ac_cv_lib_des425_des_cbc_encrypt=yes
15953else
15954 echo "$as_me: failed program was:" >&5
15955cat conftest.$ac_ext >&5
15956ac_cv_lib_des425_des_cbc_encrypt=no
15957fi
15958rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15959LIBS=$ac_check_lib_save_LIBS
15960fi
15961echo "$as_me:$LINENO: result: $ac_cv_lib_des425_des_cbc_encrypt" >&5
15962echo "${ECHO_T}$ac_cv_lib_des425_des_cbc_encrypt" >&6
15963if test $ac_cv_lib_des425_des_cbc_encrypt = yes; then
15964 cat >>confdefs.h <<_ACEOF
15965@%:@define HAVE_LIBDES425 1
15966_ACEOF
15967
15968 LIBS="-ldes425 $LIBS"
15969
15970fi
15971
15972 if test "$ac_cv_lib_des425_des_cbc_encrypt" != yes; then
15973 { echo "$as_me:$LINENO: WARNING: Cannot find libdes nor libdes425, build may fail" >&5
15974echo "$as_me: WARNING: Cannot find libdes nor libdes425, build may fail" >&2;}
15975 else
15976 KLIBS="-ldes425"
15977 fi
15978 else
15979 KLIBS="-ldes"
15980 fi
15981
15982echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5
15983echo $ECHO_N "checking for dn_expand in -lresolv... $ECHO_C" >&6
15984if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then
15985 echo $ECHO_N "(cached) $ECHO_C" >&6
15986else
15987 ac_check_lib_save_LIBS=$LIBS
15988LIBS="-lresolv $LIBS"
15989cat >conftest.$ac_ext <<_ACEOF
15990#line $LINENO "configure"
15991#include "confdefs.h"
15992
15993/* Override any gcc2 internal prototype to avoid an error. */
15994#ifdef __cplusplus
15995extern "C"
15996#endif
15997/* We use char because int might match the return type of a gcc2
15998 builtin and then its argument prototype would still apply. */
15999char dn_expand ();
16000#ifdef F77_DUMMY_MAIN
16001# ifdef __cplusplus
16002 extern "C"
16003# endif
16004 int F77_DUMMY_MAIN() { return 1; }
16005#endif
16006int
16007main ()
16008{
16009dn_expand ();
16010 ;
16011 return 0;
16012}
16013_ACEOF
16014rm -f conftest.$ac_objext conftest$ac_exeext
16015if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16016 (eval $ac_link) 2>&5
16017 ac_status=$?
16018 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16019 (exit $ac_status); } &&
16020 { ac_try='test -s conftest$ac_exeext'
16021 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16022 (eval $ac_try) 2>&5
16023 ac_status=$?
16024 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16025 (exit $ac_status); }; }; then
16026 ac_cv_lib_resolv_dn_expand=yes
16027else
16028 echo "$as_me: failed program was:" >&5
16029cat conftest.$ac_ext >&5
16030ac_cv_lib_resolv_dn_expand=no
16031fi
16032rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16033LIBS=$ac_check_lib_save_LIBS
16034fi
16035echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5
16036echo "${ECHO_T}$ac_cv_lib_resolv_dn_expand" >&6
16037if test $ac_cv_lib_resolv_dn_expand = yes; then
16038 cat >>confdefs.h <<_ACEOF
16039@%:@define HAVE_LIBRESOLV 1
16040_ACEOF
16041
16042 LIBS="-lresolv $LIBS"
16043
16044fi
16045
16046 KRB4=yes
16047 KRB4_MSG="yes"
16048 cat >>confdefs.h <<\_ACEOF
16049@%:@define KRB4 1
16050_ACEOF
16051
16052 fi
16053
16054
16055fi;
16056
16057# Check whether user wants AFS support
16058AFS_MSG="no"
16059
16060# Check whether --with-afs or --without-afs was given.
16061if test "${with_afs+set}" = set; then
16062 withval="$with_afs"
16063
16064 if test "x$withval" != "xno" ; then
16065
16066 if test "x$withval" != "xyes" ; then
16067 CPPFLAGS="$CPPFLAGS -I${withval}/include"
16068 LDFLAGS="$LDFLAGS -L${withval}/lib"
16069 fi
16070
16071 if test -z "$KRB4" ; then
16072 { echo "$as_me:$LINENO: WARNING: AFS requires Kerberos IV support, build may fail" >&5
16073echo "$as_me: WARNING: AFS requires Kerberos IV support, build may fail" >&2;}
16074 fi
16075
16076 LIBS="-lkafs $LIBS"
16077 if test ! -z "$AFS_LIBS" ; then
16078 LIBS="$LIBS $AFS_LIBS"
16079 fi
16080 cat >>confdefs.h <<\_ACEOF
16081@%:@define AFS 1
16082_ACEOF
16083
16084 AFS_MSG="yes"
16085 fi
16086
16087
16088fi;
16089LIBS="$LIBS $KLIBS $K5LIBS"
16090
16091# Looking for programs, paths and files
16092
16093PRIVSEP_PATH=/var/empty
16094
16095# Check whether --with-privsep-path or --without-privsep-path was given.
16096if test "${with_privsep_path+set}" = set; then
16097 withval="$with_privsep_path"
16098
16099 if test "x$withval" != "$no" ; then
16100 PRIVSEP_PATH=$withval
16101 fi
16102
16103
16104fi;
16105
16106
16107
16108# Check whether --with-xauth or --without-xauth was given.
16109if test "${with_xauth+set}" = set; then
16110 withval="$with_xauth"
16111
16112 if test "x$withval" != "xno" ; then
16113 xauth_path=$withval
16114 fi
16115
16116else
16117
16118 TestPath="$PATH"
16119 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X/bin"
16120 TestPath="${TestPath}${PATH_SEPARATOR}/usr/bin/X11"
16121 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X11R6/bin"
16122 TestPath="${TestPath}${PATH_SEPARATOR}/usr/openwin/bin"
16123 # Extract the first word of "xauth", so it can be a program name with args.
16124set dummy xauth; ac_word=$2
16125echo "$as_me:$LINENO: checking for $ac_word" >&5
16126echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
16127if test "${ac_cv_path_xauth_path+set}" = set; then
16128 echo $ECHO_N "(cached) $ECHO_C" >&6
16129else
16130 case $xauth_path in
16131 [\\/]* | ?:[\\/]*)
16132 ac_cv_path_xauth_path="$xauth_path" # Let the user override the test with a path.
16133 ;;
16134 *)
16135 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
16136for as_dir in $TestPath
16137do
16138 IFS=$as_save_IFS
16139 test -z "$as_dir" && as_dir=.
16140 for ac_exec_ext in '' $ac_executable_extensions; do
16141 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16142 ac_cv_path_xauth_path="$as_dir/$ac_word$ac_exec_ext"
16143 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
16144 break 2
16145 fi
16146done
16147done
16148
16149 ;;
16150esac
16151fi
16152xauth_path=$ac_cv_path_xauth_path
16153
16154if test -n "$xauth_path"; then
16155 echo "$as_me:$LINENO: result: $xauth_path" >&5
16156echo "${ECHO_T}$xauth_path" >&6
16157else
16158 echo "$as_me:$LINENO: result: no" >&5
16159echo "${ECHO_T}no" >&6
16160fi
16161
16162 if (test ! -z "$xauth_path" && test -x "/usr/openwin/bin/xauth") ; then
16163 xauth_path="/usr/openwin/bin/xauth"
16164 fi
16165
16166
16167fi;
16168
16169STRIP_OPT=-s
16170# Check whether --enable-strip or --disable-strip was given.
16171if test "${enable_strip+set}" = set; then
16172 enableval="$enable_strip"
16173
16174 if test "x$enableval" = "xno" ; then
16175 STRIP_OPT=
16176 fi
16177
16178
16179fi;
16180
16181
16182if test -z "$xauth_path" ; then
16183 XAUTH_PATH="undefined"
16184
16185else
16186 cat >>confdefs.h <<_ACEOF
16187@%:@define XAUTH_PATH "$xauth_path"
16188_ACEOF
16189
16190 XAUTH_PATH=$xauth_path
16191
16192fi
16193
16194# Check for mail directory (last resort if we cannot get it from headers)
16195if test ! -z "$MAIL" ; then
16196 maildir=`dirname $MAIL`
16197 cat >>confdefs.h <<_ACEOF
16198@%:@define MAIL_DIRECTORY "$maildir"
16199_ACEOF
16200
16201fi
16202
16203if test -z "$no_dev_ptmx" ; then
16204 if test "x$disable_ptmx_check" != "xyes" ; then
16205 echo "$as_me:$LINENO: checking for \"/dev/ptmx\"" >&5
16206echo $ECHO_N "checking for \"/dev/ptmx\"... $ECHO_C" >&6
16207if test "${ac_cv_file___dev_ptmx_+set}" = set; then
16208 echo $ECHO_N "(cached) $ECHO_C" >&6
16209else
16210 test "$cross_compiling" = yes &&
16211 { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
16212echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
16213 { (exit 1); exit 1; }; }
16214if test -r ""/dev/ptmx""; then
16215 ac_cv_file___dev_ptmx_=yes
16216else
16217 ac_cv_file___dev_ptmx_=no
16218fi
16219fi
16220echo "$as_me:$LINENO: result: $ac_cv_file___dev_ptmx_" >&5
16221echo "${ECHO_T}$ac_cv_file___dev_ptmx_" >&6
16222if test $ac_cv_file___dev_ptmx_ = yes; then
16223
16224 cat >>confdefs.h <<_ACEOF
16225@%:@define HAVE_DEV_PTMX 1
16226_ACEOF
16227
16228 have_dev_ptmx=1
16229
16230
16231fi
16232
16233 fi
16234fi
16235echo "$as_me:$LINENO: checking for \"/dev/ptc\"" >&5
16236echo $ECHO_N "checking for \"/dev/ptc\"... $ECHO_C" >&6
16237if test "${ac_cv_file___dev_ptc_+set}" = set; then
16238 echo $ECHO_N "(cached) $ECHO_C" >&6
16239else
16240 test "$cross_compiling" = yes &&
16241 { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
16242echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
16243 { (exit 1); exit 1; }; }
16244if test -r ""/dev/ptc""; then
16245 ac_cv_file___dev_ptc_=yes
16246else
16247 ac_cv_file___dev_ptc_=no
16248fi
16249fi
16250echo "$as_me:$LINENO: result: $ac_cv_file___dev_ptc_" >&5
16251echo "${ECHO_T}$ac_cv_file___dev_ptc_" >&6
16252if test $ac_cv_file___dev_ptc_ = yes; then
16253
16254 cat >>confdefs.h <<_ACEOF
16255@%:@define HAVE_DEV_PTS_AND_PTC 1
16256_ACEOF
16257
16258 have_dev_ptc=1
16259
16260
16261fi
16262
16263
16264# Options from here on. Some of these are preset by platform above
16265
16266# Check whether --with-mantype or --without-mantype was given.
16267if test "${with_mantype+set}" = set; then
16268 withval="$with_mantype"
16269
16270 case "$withval" in
16271 man|cat|doc)
16272 MANTYPE=$withval
16273 ;;
16274 *)
16275 { { echo "$as_me:$LINENO: error: invalid man type: $withval" >&5
16276echo "$as_me: error: invalid man type: $withval" >&2;}
16277 { (exit 1); exit 1; }; }
16278 ;;
16279 esac
16280
16281
16282fi;
16283if test -z "$MANTYPE"; then
16284 TestPath="/usr/bin${PATH_SEPARATOR}/usr/ucb"
16285 for ac_prog in nroff awf
16286do
16287 # Extract the first word of "$ac_prog", so it can be a program name with args.
16288set dummy $ac_prog; ac_word=$2
16289echo "$as_me:$LINENO: checking for $ac_word" >&5
16290echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
16291if test "${ac_cv_path_NROFF+set}" = set; then
16292 echo $ECHO_N "(cached) $ECHO_C" >&6
16293else
16294 case $NROFF in
16295 [\\/]* | ?:[\\/]*)
16296 ac_cv_path_NROFF="$NROFF" # Let the user override the test with a path.
16297 ;;
16298 *)
16299 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
16300for as_dir in $TestPath
16301do
16302 IFS=$as_save_IFS
16303 test -z "$as_dir" && as_dir=.
16304 for ac_exec_ext in '' $ac_executable_extensions; do
16305 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16306 ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext"
16307 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
16308 break 2
16309 fi
16310done
16311done
16312
16313 ;;
16314esac
16315fi
16316NROFF=$ac_cv_path_NROFF
16317
16318if test -n "$NROFF"; then
16319 echo "$as_me:$LINENO: result: $NROFF" >&5
16320echo "${ECHO_T}$NROFF" >&6
16321else
16322 echo "$as_me:$LINENO: result: no" >&5
16323echo "${ECHO_T}no" >&6
16324fi
16325
16326 test -n "$NROFF" && break
16327done
16328test -n "$NROFF" || NROFF="/bin/false"
16329
16330 if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then
16331 MANTYPE=doc
16332 elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then
16333 MANTYPE=man
16334 else
16335 MANTYPE=cat
16336 fi
16337fi
16338
16339if test "$MANTYPE" = "doc"; then
16340 mansubdir=man;
16341else
16342 mansubdir=$MANTYPE;
16343fi
16344
16345
16346# Check whether to enable MD5 passwords
16347MD5_MSG="no"
16348
16349# Check whether --with-md5-passwords or --without-md5-passwords was given.
16350if test "${with_md5_passwords+set}" = set; then
16351 withval="$with_md5_passwords"
16352
16353 if test "x$withval" != "xno" ; then
16354 cat >>confdefs.h <<\_ACEOF
16355@%:@define HAVE_MD5_PASSWORDS 1
16356_ACEOF
16357
16358 MD5_MSG="yes"
16359 fi
16360
16361
16362fi;
16363
16364# Whether to disable shadow password support
16365
16366# Check whether --with-shadow or --without-shadow was given.
16367if test "${with_shadow+set}" = set; then
16368 withval="$with_shadow"
16369
16370 if test "x$withval" = "xno" ; then
16371 cat >>confdefs.h <<\_ACEOF
16372@%:@define DISABLE_SHADOW 1
16373_ACEOF
16374
16375 disable_shadow=yes
16376 fi
16377
16378
16379fi;
16380
16381if test -z "$disable_shadow" ; then
16382 echo "$as_me:$LINENO: checking if the systems has expire shadow information" >&5
16383echo $ECHO_N "checking if the systems has expire shadow information... $ECHO_C" >&6
16384 cat >conftest.$ac_ext <<_ACEOF
16385#line $LINENO "configure"
16386#include "confdefs.h"
16387
16388#include <sys/types.h>
16389#include <shadow.h>
16390 struct spwd sp;
16391
16392#ifdef F77_DUMMY_MAIN
16393# ifdef __cplusplus
16394 extern "C"
16395# endif
16396 int F77_DUMMY_MAIN() { return 1; }
16397#endif
16398int
16399main ()
16400{
16401 sp.sp_expire = sp.sp_lstchg = sp.sp_inact = 0;
16402 ;
16403 return 0;
16404}
16405_ACEOF
16406rm -f conftest.$ac_objext
16407if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16408 (eval $ac_compile) 2>&5
16409 ac_status=$?
16410 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16411 (exit $ac_status); } &&
16412 { ac_try='test -s conftest.$ac_objext'
16413 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16414 (eval $ac_try) 2>&5
16415 ac_status=$?
16416 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16417 (exit $ac_status); }; }; then
16418 sp_expire_available=yes
16419else
16420 echo "$as_me: failed program was:" >&5
16421cat conftest.$ac_ext >&5
16422
16423
16424fi
16425rm -f conftest.$ac_objext conftest.$ac_ext
16426
16427 if test "x$sp_expire_available" = "xyes" ; then
16428 echo "$as_me:$LINENO: result: yes" >&5
16429echo "${ECHO_T}yes" >&6
16430 cat >>confdefs.h <<\_ACEOF
16431@%:@define HAS_SHADOW_EXPIRE 1
16432_ACEOF
16433
16434 else
16435 echo "$as_me:$LINENO: result: no" >&5
16436echo "${ECHO_T}no" >&6
16437 fi
16438fi
16439
16440# Use ip address instead of hostname in $DISPLAY
16441if test ! -z "$IPADDR_IN_DISPLAY" ; then
16442 DISPLAY_HACK_MSG="yes"
16443 cat >>confdefs.h <<\_ACEOF
16444@%:@define IPADDR_IN_DISPLAY 1
16445_ACEOF
16446
16447else
16448 DISPLAY_HACK_MSG="no"
16449
16450# Check whether --with-ipaddr-display or --without-ipaddr-display was given.
16451if test "${with_ipaddr_display+set}" = set; then
16452 withval="$with_ipaddr_display"
16453
16454 if test "x$withval" != "xno" ; then
16455 cat >>confdefs.h <<\_ACEOF
16456@%:@define IPADDR_IN_DISPLAY 1
16457_ACEOF
16458
16459 DISPLAY_HACK_MSG="yes"
16460 fi
16461
16462
16463fi;
16464fi
16465
16466if test $ac_cv_func_login_getcapbool = "yes" -a \
16467 $ac_cv_header_login_cap_h = "yes" ; then
16468 USES_LOGIN_CONF=yes
16469fi
16470# Whether to mess with the default path
16471SERVER_PATH_MSG="(default)"
16472
16473# Check whether --with-default-path or --without-default-path was given.
16474if test "${with_default_path+set}" = set; then
16475 withval="$with_default_path"
16476
16477 if test "$USES_LOGIN_CONF" = "yes" ; then
16478 { echo "$as_me:$LINENO: WARNING:
16479--with-default-path=PATH has no effect on this system.
16480Edit /etc/login.conf instead." >&5
16481echo "$as_me: WARNING:
16482--with-default-path=PATH has no effect on this system.
16483Edit /etc/login.conf instead." >&2;}
16484 elif test "x$withval" != "xno" ; then
16485 user_path="$withval"
16486 SERVER_PATH_MSG="$withval"
16487 fi
16488
16489else
16490 if test "$USES_LOGIN_CONF" = "yes" ; then
16491 { echo "$as_me:$LINENO: WARNING: Make sure the path to scp is in /etc/login.conf" >&5
16492echo "$as_me: WARNING: Make sure the path to scp is in /etc/login.conf" >&2;}
16493 else
16494 if test "$cross_compiling" = yes; then
16495 user_path="/usr/bin:/bin:/usr/sbin:/sbin"
16496
16497else
16498 cat >conftest.$ac_ext <<_ACEOF
16499#line $LINENO "configure"
16500#include "confdefs.h"
16501
16502/* find out what STDPATH is */
16503#include <stdio.h>
16504#ifdef HAVE_PATHS_H
16505# include <paths.h>
16506#endif
16507#ifndef _PATH_STDPATH
16508# ifdef _PATH_USERPATH /* Irix */
16509# define _PATH_STDPATH _PATH_USERPATH
16510# else
16511# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
16512# endif
16513#endif
16514#include <sys/types.h>
16515#include <sys/stat.h>
16516#include <fcntl.h>
16517#define DATA "conftest.stdpath"
16518
16519main()
16520{
16521 FILE *fd;
16522 int rc;
16523
16524 fd = fopen(DATA,"w");
16525 if(fd == NULL)
16526 exit(1);
16527
16528 if ((rc = fprintf(fd,"%s", _PATH_STDPATH)) < 0)
16529 exit(1);
16530
16531 exit(0);
16532}
16533
16534_ACEOF
16535rm -f conftest$ac_exeext
16536if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16537 (eval $ac_link) 2>&5
16538 ac_status=$?
16539 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16540 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
16541 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16542 (eval $ac_try) 2>&5
16543 ac_status=$?
16544 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16545 (exit $ac_status); }; }; then
16546 user_path=`cat conftest.stdpath`
16547else
16548 echo "$as_me: program exited with status $ac_status" >&5
16549echo "$as_me: failed program was:" >&5
16550cat conftest.$ac_ext >&5
16551( exit $ac_status )
16552 user_path="/usr/bin:/bin:/usr/sbin:/sbin"
16553fi
16554rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
16555fi
16556# make sure $bindir is in USER_PATH so scp will work
16557 t_bindir=`eval echo ${bindir}`
16558 case $t_bindir in
16559 NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$prefix~"` ;;
16560 esac
16561 case $t_bindir in
16562 NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$ac_default_prefix~"` ;;
16563 esac
16564 echo $user_path | grep ":$t_bindir" > /dev/null 2>&1
16565 if test $? -ne 0 ; then
16566 echo $user_path | grep "^$t_bindir" > /dev/null 2>&1
16567 if test $? -ne 0 ; then
16568 user_path=$user_path:$t_bindir
16569 echo "$as_me:$LINENO: result: Adding $t_bindir to USER_PATH so scp will work" >&5
16570echo "${ECHO_T}Adding $t_bindir to USER_PATH so scp will work" >&6
16571 fi
16572 fi
16573 fi
16574
16575fi;
16576if test "$USES_LOGIN_CONF" != "yes" ; then
16577 cat >>confdefs.h <<_ACEOF
16578@%:@define USER_PATH "$user_path"
16579_ACEOF
16580
16581
16582fi
16583
16584# Set superuser path separately to user path
16585
16586# Check whether --with-superuser-path or --without-superuser-path was given.
16587if test "${with_superuser_path+set}" = set; then
16588 withval="$with_superuser_path"
16589
16590 if test "x$withval" != "xno" ; then
16591 cat >>confdefs.h <<_ACEOF
16592@%:@define SUPERUSER_PATH "$withval"
16593_ACEOF
16594
16595 superuser_path=$withval
16596 fi
16597
16598
16599fi;
16600
16601
16602# Whether to force IPv4 by default (needed on broken glibc Linux)
16603IPV4_HACK_MSG="no"
16604
16605# Check whether --with-ipv4-default or --without-ipv4-default was given.
16606if test "${with_ipv4_default+set}" = set; then
16607 withval="$with_ipv4_default"
16608
16609 if test "x$withval" != "xno" ; then
16610 cat >>confdefs.h <<\_ACEOF
16611@%:@define IPV4_DEFAULT 1
16612_ACEOF
16613
16614 IPV4_HACK_MSG="yes"
16615 fi
16616
16617
16618fi;
16619
16620echo "$as_me:$LINENO: checking if we need to convert IPv4 in IPv6-mapped addresses" >&5
16621echo $ECHO_N "checking if we need to convert IPv4 in IPv6-mapped addresses... $ECHO_C" >&6
16622IPV4_IN6_HACK_MSG="no"
16623
16624# Check whether --with-4in6 or --without-4in6 was given.
16625if test "${with_4in6+set}" = set; then
16626 withval="$with_4in6"
16627
16628 if test "x$withval" != "xno" ; then
16629 echo "$as_me:$LINENO: result: yes" >&5
16630echo "${ECHO_T}yes" >&6
16631 cat >>confdefs.h <<\_ACEOF
16632@%:@define IPV4_IN_IPV6 1
16633_ACEOF
16634
16635 IPV4_IN6_HACK_MSG="yes"
16636 else
16637 echo "$as_me:$LINENO: result: no" >&5
16638echo "${ECHO_T}no" >&6
16639 fi
16640
16641else
16642
16643 if test "x$inet6_default_4in6" = "xyes"; then
16644 echo "$as_me:$LINENO: result: yes (default)" >&5
16645echo "${ECHO_T}yes (default)" >&6
16646 cat >>confdefs.h <<\_ACEOF
16647@%:@define IPV4_IN_IPV6 1
16648_ACEOF
16649
16650 IPV4_IN6_HACK_MSG="yes"
16651 else
16652 echo "$as_me:$LINENO: result: no (default)" >&5
16653echo "${ECHO_T}no (default)" >&6
16654 fi
16655
16656
16657fi;
16658
16659# Whether to enable BSD auth support
16660BSD_AUTH_MSG=no
16661
16662# Check whether --with-bsd-auth or --without-bsd-auth was given.
16663if test "${with_bsd_auth+set}" = set; then
16664 withval="$with_bsd_auth"
16665
16666 if test "x$withval" != "xno" ; then
16667 cat >>confdefs.h <<\_ACEOF
16668@%:@define BSD_AUTH 1
16669_ACEOF
16670
16671 BSD_AUTH_MSG=yes
16672 fi
16673
16674
16675fi;
16676
16677# Where to place sshd.pid
16678piddir=/var/run
16679# make sure the directory exists
16680if test ! -d $piddir ; then
16681 piddir=`eval echo ${sysconfdir}`
16682 case $piddir in
16683 NONE/*) piddir=`echo $piddir | sed "s~NONE~$ac_default_prefix~"` ;;
16684 esac
16685fi
16686
16687
16688# Check whether --with-pid-dir or --without-pid-dir was given.
16689if test "${with_pid_dir+set}" = set; then
16690 withval="$with_pid_dir"
16691
16692 if test "x$withval" != "xno" ; then
16693 piddir=$withval
16694 if test ! -d $piddir ; then
16695 { echo "$as_me:$LINENO: WARNING: ** no $piddir directory on this system **" >&5
16696echo "$as_me: WARNING: ** no $piddir directory on this system **" >&2;}
16697 fi
16698 fi
16699
16700
16701fi;
16702
16703cat >>confdefs.h <<_ACEOF
16704@%:@define _PATH_SSH_PIDDIR "$piddir"
16705_ACEOF
16706
16707
16708
16709# Check whether --enable-lastlog or --disable-lastlog was given.
16710if test "${enable_lastlog+set}" = set; then
16711 enableval="$enable_lastlog"
16712 cat >>confdefs.h <<\_ACEOF
16713@%:@define DISABLE_LASTLOG 1
16714_ACEOF
16715
16716
16717fi;
16718# Check whether --enable-utmp or --disable-utmp was given.
16719if test "${enable_utmp+set}" = set; then
16720 enableval="$enable_utmp"
16721 cat >>confdefs.h <<\_ACEOF
16722@%:@define DISABLE_UTMP 1
16723_ACEOF
16724
16725
16726fi;
16727# Check whether --enable-utmpx or --disable-utmpx was given.
16728if test "${enable_utmpx+set}" = set; then
16729 enableval="$enable_utmpx"
16730 cat >>confdefs.h <<\_ACEOF
16731@%:@define DISABLE_UTMPX 1
16732_ACEOF
16733
16734
16735fi;
16736# Check whether --enable-wtmp or --disable-wtmp was given.
16737if test "${enable_wtmp+set}" = set; then
16738 enableval="$enable_wtmp"
16739 cat >>confdefs.h <<\_ACEOF
16740@%:@define DISABLE_WTMP 1
16741_ACEOF
16742
16743
16744fi;
16745# Check whether --enable-wtmpx or --disable-wtmpx was given.
16746if test "${enable_wtmpx+set}" = set; then
16747 enableval="$enable_wtmpx"
16748 cat >>confdefs.h <<\_ACEOF
16749@%:@define DISABLE_WTMPX 1
16750_ACEOF
16751
16752
16753fi;
16754# Check whether --enable-libutil or --disable-libutil was given.
16755if test "${enable_libutil+set}" = set; then
16756 enableval="$enable_libutil"
16757 cat >>confdefs.h <<\_ACEOF
16758@%:@define DISABLE_LOGIN 1
16759_ACEOF
16760
16761
16762fi;
16763# Check whether --enable-pututline or --disable-pututline was given.
16764if test "${enable_pututline+set}" = set; then
16765 enableval="$enable_pututline"
16766 cat >>confdefs.h <<\_ACEOF
16767@%:@define DISABLE_PUTUTLINE 1
16768_ACEOF
16769
16770
16771fi;
16772# Check whether --enable-pututxline or --disable-pututxline was given.
16773if test "${enable_pututxline+set}" = set; then
16774 enableval="$enable_pututxline"
16775 cat >>confdefs.h <<\_ACEOF
16776@%:@define DISABLE_PUTUTXLINE 1
16777_ACEOF
16778
16779
16780fi;
16781
16782# Check whether --with-lastlog or --without-lastlog was given.
16783if test "${with_lastlog+set}" = set; then
16784 withval="$with_lastlog"
16785
16786 if test "x$withval" = "xno" ; then
16787 cat >>confdefs.h <<\_ACEOF
16788@%:@define DISABLE_LASTLOG 1
16789_ACEOF
16790
16791 else
16792 conf_lastlog_location=$withval
16793 fi
16794
16795
16796fi;
16797
16798
16799echo "$as_me:$LINENO: checking if your system defines LASTLOG_FILE" >&5
16800echo $ECHO_N "checking if your system defines LASTLOG_FILE... $ECHO_C" >&6
16801cat >conftest.$ac_ext <<_ACEOF
16802#line $LINENO "configure"
16803#include "confdefs.h"
16804
16805#include <sys/types.h>
16806#include <utmp.h>
16807#ifdef HAVE_LASTLOG_H
16808# include <lastlog.h>
16809#endif
16810#ifdef HAVE_PATHS_H
16811# include <paths.h>
16812#endif
16813#ifdef HAVE_LOGIN_H
16814# include <login.h>
16815#endif
16816
16817#ifdef F77_DUMMY_MAIN
16818# ifdef __cplusplus
16819 extern "C"
16820# endif
16821 int F77_DUMMY_MAIN() { return 1; }
16822#endif
16823int
16824main ()
16825{
16826 char *lastlog = LASTLOG_FILE;
16827 ;
16828 return 0;
16829}
16830_ACEOF
16831rm -f conftest.$ac_objext
16832if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16833 (eval $ac_compile) 2>&5
16834 ac_status=$?
16835 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16836 (exit $ac_status); } &&
16837 { ac_try='test -s conftest.$ac_objext'
16838 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16839 (eval $ac_try) 2>&5
16840 ac_status=$?
16841 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16842 (exit $ac_status); }; }; then
16843 echo "$as_me:$LINENO: result: yes" >&5
16844echo "${ECHO_T}yes" >&6
16845else
16846 echo "$as_me: failed program was:" >&5
16847cat conftest.$ac_ext >&5
16848
16849 echo "$as_me:$LINENO: result: no" >&5
16850echo "${ECHO_T}no" >&6
16851 echo "$as_me:$LINENO: checking if your system defines _PATH_LASTLOG" >&5
16852echo $ECHO_N "checking if your system defines _PATH_LASTLOG... $ECHO_C" >&6
16853 cat >conftest.$ac_ext <<_ACEOF
16854#line $LINENO "configure"
16855#include "confdefs.h"
16856
16857#include <sys/types.h>
16858#include <utmp.h>
16859#ifdef HAVE_LASTLOG_H
16860# include <lastlog.h>
16861#endif
16862#ifdef HAVE_PATHS_H
16863# include <paths.h>
16864#endif
16865
16866#ifdef F77_DUMMY_MAIN
16867# ifdef __cplusplus
16868 extern "C"
16869# endif
16870 int F77_DUMMY_MAIN() { return 1; }
16871#endif
16872int
16873main ()
16874{
16875 char *lastlog = _PATH_LASTLOG;
16876 ;
16877 return 0;
16878}
16879_ACEOF
16880rm -f conftest.$ac_objext
16881if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16882 (eval $ac_compile) 2>&5
16883 ac_status=$?
16884 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16885 (exit $ac_status); } &&
16886 { ac_try='test -s conftest.$ac_objext'
16887 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16888 (eval $ac_try) 2>&5
16889 ac_status=$?
16890 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16891 (exit $ac_status); }; }; then
16892 echo "$as_me:$LINENO: result: yes" >&5
16893echo "${ECHO_T}yes" >&6
16894else
16895 echo "$as_me: failed program was:" >&5
16896cat conftest.$ac_ext >&5
16897
16898 echo "$as_me:$LINENO: result: no" >&5
16899echo "${ECHO_T}no" >&6
16900 system_lastlog_path=no
16901
16902fi
16903rm -f conftest.$ac_objext conftest.$ac_ext
16904
16905
16906fi
16907rm -f conftest.$ac_objext conftest.$ac_ext
16908
16909if test -z "$conf_lastlog_location"; then
16910 if test x"$system_lastlog_path" = x"no" ; then
16911 for f in /var/log/lastlog /usr/adm/lastlog /var/adm/lastlog /etc/security/lastlog ; do
16912 if (test -d "$f" || test -f "$f") ; then
16913 conf_lastlog_location=$f
16914 fi
16915 done
16916 if test -z "$conf_lastlog_location"; then
16917 { echo "$as_me:$LINENO: WARNING: ** Cannot find lastlog **" >&5
16918echo "$as_me: WARNING: ** Cannot find lastlog **" >&2;}
16919 fi
16920 fi
16921fi
16922
16923if test -n "$conf_lastlog_location"; then
16924 cat >>confdefs.h <<_ACEOF
16925@%:@define CONF_LASTLOG_FILE "$conf_lastlog_location"
16926_ACEOF
16927
16928fi
16929
16930echo "$as_me:$LINENO: checking if your system defines UTMP_FILE" >&5
16931echo $ECHO_N "checking if your system defines UTMP_FILE... $ECHO_C" >&6
16932cat >conftest.$ac_ext <<_ACEOF
16933#line $LINENO "configure"
16934#include "confdefs.h"
16935
16936#include <sys/types.h>
16937#include <utmp.h>
16938#ifdef HAVE_PATHS_H
16939# include <paths.h>
16940#endif
16941
16942#ifdef F77_DUMMY_MAIN
16943# ifdef __cplusplus
16944 extern "C"
16945# endif
16946 int F77_DUMMY_MAIN() { return 1; }
16947#endif
16948int
16949main ()
16950{
16951 char *utmp = UTMP_FILE;
16952 ;
16953 return 0;
16954}
16955_ACEOF
16956rm -f conftest.$ac_objext
16957if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16958 (eval $ac_compile) 2>&5
16959 ac_status=$?
16960 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16961 (exit $ac_status); } &&
16962 { ac_try='test -s conftest.$ac_objext'
16963 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16964 (eval $ac_try) 2>&5
16965 ac_status=$?
16966 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16967 (exit $ac_status); }; }; then
16968 echo "$as_me:$LINENO: result: yes" >&5
16969echo "${ECHO_T}yes" >&6
16970else
16971 echo "$as_me: failed program was:" >&5
16972cat conftest.$ac_ext >&5
16973 echo "$as_me:$LINENO: result: no" >&5
16974echo "${ECHO_T}no" >&6
16975 system_utmp_path=no
16976
16977fi
16978rm -f conftest.$ac_objext conftest.$ac_ext
16979if test -z "$conf_utmp_location"; then
16980 if test x"$system_utmp_path" = x"no" ; then
16981 for f in /etc/utmp /usr/adm/utmp /var/run/utmp; do
16982 if test -f $f ; then
16983 conf_utmp_location=$f
16984 fi
16985 done
16986 if test -z "$conf_utmp_location"; then
16987 cat >>confdefs.h <<\_ACEOF
16988@%:@define DISABLE_UTMP 1
16989_ACEOF
16990
16991 fi
16992 fi
16993fi
16994if test -n "$conf_utmp_location"; then
16995 cat >>confdefs.h <<_ACEOF
16996@%:@define CONF_UTMP_FILE "$conf_utmp_location"
16997_ACEOF
16998
16999fi
17000
17001echo "$as_me:$LINENO: checking if your system defines WTMP_FILE" >&5
17002echo $ECHO_N "checking if your system defines WTMP_FILE... $ECHO_C" >&6
17003cat >conftest.$ac_ext <<_ACEOF
17004#line $LINENO "configure"
17005#include "confdefs.h"
17006
17007#include <sys/types.h>
17008#include <utmp.h>
17009#ifdef HAVE_PATHS_H
17010# include <paths.h>
17011#endif
17012
17013#ifdef F77_DUMMY_MAIN
17014# ifdef __cplusplus
17015 extern "C"
17016# endif
17017 int F77_DUMMY_MAIN() { return 1; }
17018#endif
17019int
17020main ()
17021{
17022 char *wtmp = WTMP_FILE;
17023 ;
17024 return 0;
17025}
17026_ACEOF
17027rm -f conftest.$ac_objext
17028if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17029 (eval $ac_compile) 2>&5
17030 ac_status=$?
17031 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17032 (exit $ac_status); } &&
17033 { ac_try='test -s conftest.$ac_objext'
17034 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17035 (eval $ac_try) 2>&5
17036 ac_status=$?
17037 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17038 (exit $ac_status); }; }; then
17039 echo "$as_me:$LINENO: result: yes" >&5
17040echo "${ECHO_T}yes" >&6
17041else
17042 echo "$as_me: failed program was:" >&5
17043cat conftest.$ac_ext >&5
17044 echo "$as_me:$LINENO: result: no" >&5
17045echo "${ECHO_T}no" >&6
17046 system_wtmp_path=no
17047
17048fi
17049rm -f conftest.$ac_objext conftest.$ac_ext
17050if test -z "$conf_wtmp_location"; then
17051 if test x"$system_wtmp_path" = x"no" ; then
17052 for f in /usr/adm/wtmp /var/log/wtmp; do
17053 if test -f $f ; then
17054 conf_wtmp_location=$f
17055 fi
17056 done
17057 if test -z "$conf_wtmp_location"; then
17058 cat >>confdefs.h <<\_ACEOF
17059@%:@define DISABLE_WTMP 1
17060_ACEOF
17061
17062 fi
17063 fi
17064fi
17065if test -n "$conf_wtmp_location"; then
17066 cat >>confdefs.h <<_ACEOF
17067@%:@define CONF_WTMP_FILE "$conf_wtmp_location"
17068_ACEOF
17069
17070fi
17071
17072
17073echo "$as_me:$LINENO: checking if your system defines UTMPX_FILE" >&5
17074echo $ECHO_N "checking if your system defines UTMPX_FILE... $ECHO_C" >&6
17075cat >conftest.$ac_ext <<_ACEOF
17076#line $LINENO "configure"
17077#include "confdefs.h"
17078
17079#include <sys/types.h>
17080#include <utmp.h>
17081#ifdef HAVE_UTMPX_H
17082#include <utmpx.h>
17083#endif
17084#ifdef HAVE_PATHS_H
17085# include <paths.h>
17086#endif
17087
17088#ifdef F77_DUMMY_MAIN
17089# ifdef __cplusplus
17090 extern "C"
17091# endif
17092 int F77_DUMMY_MAIN() { return 1; }
17093#endif
17094int
17095main ()
17096{
17097 char *utmpx = UTMPX_FILE;
17098 ;
17099 return 0;
17100}
17101_ACEOF
17102rm -f conftest.$ac_objext
17103if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17104 (eval $ac_compile) 2>&5
17105 ac_status=$?
17106 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17107 (exit $ac_status); } &&
17108 { ac_try='test -s conftest.$ac_objext'
17109 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17110 (eval $ac_try) 2>&5
17111 ac_status=$?
17112 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17113 (exit $ac_status); }; }; then
17114 echo "$as_me:$LINENO: result: yes" >&5
17115echo "${ECHO_T}yes" >&6
17116else
17117 echo "$as_me: failed program was:" >&5
17118cat conftest.$ac_ext >&5
17119 echo "$as_me:$LINENO: result: no" >&5
17120echo "${ECHO_T}no" >&6
17121 system_utmpx_path=no
17122
17123fi
17124rm -f conftest.$ac_objext conftest.$ac_ext
17125if test -z "$conf_utmpx_location"; then
17126 if test x"$system_utmpx_path" = x"no" ; then
17127 cat >>confdefs.h <<\_ACEOF
17128@%:@define DISABLE_UTMPX 1
17129_ACEOF
17130
17131 fi
17132else
17133 cat >>confdefs.h <<_ACEOF
17134@%:@define CONF_UTMPX_FILE "$conf_utmpx_location"
17135_ACEOF
17136
17137fi
17138
17139echo "$as_me:$LINENO: checking if your system defines WTMPX_FILE" >&5
17140echo $ECHO_N "checking if your system defines WTMPX_FILE... $ECHO_C" >&6
17141cat >conftest.$ac_ext <<_ACEOF
17142#line $LINENO "configure"
17143#include "confdefs.h"
17144
17145#include <sys/types.h>
17146#include <utmp.h>
17147#ifdef HAVE_UTMPX_H
17148#include <utmpx.h>
17149#endif
17150#ifdef HAVE_PATHS_H
17151# include <paths.h>
17152#endif
17153
17154#ifdef F77_DUMMY_MAIN
17155# ifdef __cplusplus
17156 extern "C"
17157# endif
17158 int F77_DUMMY_MAIN() { return 1; }
17159#endif
17160int
17161main ()
17162{
17163 char *wtmpx = WTMPX_FILE;
17164 ;
17165 return 0;
17166}
17167_ACEOF
17168rm -f conftest.$ac_objext
17169if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17170 (eval $ac_compile) 2>&5
17171 ac_status=$?
17172 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17173 (exit $ac_status); } &&
17174 { ac_try='test -s conftest.$ac_objext'
17175 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17176 (eval $ac_try) 2>&5
17177 ac_status=$?
17178 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17179 (exit $ac_status); }; }; then
17180 echo "$as_me:$LINENO: result: yes" >&5
17181echo "${ECHO_T}yes" >&6
17182else
17183 echo "$as_me: failed program was:" >&5
17184cat conftest.$ac_ext >&5
17185 echo "$as_me:$LINENO: result: no" >&5
17186echo "${ECHO_T}no" >&6
17187 system_wtmpx_path=no
17188
17189fi
17190rm -f conftest.$ac_objext conftest.$ac_ext
17191if test -z "$conf_wtmpx_location"; then
17192 if test x"$system_wtmpx_path" = x"no" ; then
17193 cat >>confdefs.h <<\_ACEOF
17194@%:@define DISABLE_WTMPX 1
17195_ACEOF
17196
17197 fi
17198else
17199 cat >>confdefs.h <<_ACEOF
17200@%:@define CONF_WTMPX_FILE "$conf_wtmpx_location"
17201_ACEOF
17202
17203fi
17204
17205
17206if test ! -z "$blibpath" ; then
17207 LDFLAGS="$LDFLAGS -blibpath:$blibpath"
17208 { echo "$as_me:$LINENO: WARNING: Please check and edit -blibpath in LDFLAGS in Makefile" >&5
17209echo "$as_me: WARNING: Please check and edit -blibpath in LDFLAGS in Makefile" >&2;}
17210fi
17211
17212if test "$PAM_MSG" = yes ; then
17213 LIBS=`echo $LIBS | sed 's/-lpam //'`
17214fi
17215if test "$ac_cv_lib_pam_pam_set_item" = yes ; then
17216 LIBS=`echo $LIBS | sed 's/-ldl //'`
17217fi
17218
17219
17220ac_config_files="$ac_config_files Makefile openbsd-compat/Makefile scard/Makefile ssh_prng_cmds"
17221
17222cat >confcache <<\_ACEOF
17223# This file is a shell script that caches the results of configure
17224# tests run on this system so they can be shared between configure
17225# scripts and configure runs, see configure's option --config-cache.
17226# It is not useful on other systems. If it contains results you don't
17227# want to keep, you may remove or edit it.
17228#
17229# config.status only pays attention to the cache file if you give it
17230# the --recheck option to rerun configure.
17231#
17232# `ac_cv_env_foo' variables (set or unset) will be overriden when
17233# loading this file, other *unset* `ac_cv_foo' will be assigned the
17234# following values.
17235
17236_ACEOF
17237
17238# The following way of writing the cache mishandles newlines in values,
17239# but we know of no workaround that is simple, portable, and efficient.
17240# So, don't put newlines in cache variables' values.
17241# Ultrix sh set writes to stderr and can't be redirected directly,
17242# and sets the high bit in the cache file unless we assign to the vars.
17243{
17244 (set) 2>&1 |
17245 case `(ac_space=' '; set | grep ac_space) 2>&1` in
17246 *ac_space=\ *)
17247 # `set' does not quote correctly, so add quotes (double-quote
17248 # substitution turns \\\\ into \\, and sed turns \\ into \).
17249 sed -n \
17250 "s/'/'\\\\''/g;
17251 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
17252 ;;
17253 *)
17254 # `set' quotes correctly as required by POSIX, so do not add quotes.
17255 sed -n \
17256 "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
17257 ;;
17258 esac;
17259} |
17260 sed '
17261 t clear
17262 : clear
17263 s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
17264 t end
17265 /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
17266 : end' >>confcache
17267if cmp -s $cache_file confcache; then :; else
17268 if test -w $cache_file; then
17269 test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
17270 cat confcache >$cache_file
17271 else
17272 echo "not updating unwritable cache $cache_file"
17273 fi
17274fi
17275rm -f confcache
17276
17277test "x$prefix" = xNONE && prefix=$ac_default_prefix
17278# Let make expand exec_prefix.
17279test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
17280
17281# VPATH may cause trouble with some makes, so we remove $(srcdir),
17282# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
17283# trailing colons and then remove the whole line if VPATH becomes empty
17284# (actually we leave an empty line to preserve line numbers).
17285if test "x$srcdir" = x.; then
17286 ac_vpsub='/^[ ]*VPATH[ ]*=/{
17287s/:*\$(srcdir):*/:/;
17288s/:*\${srcdir}:*/:/;
17289s/:*@srcdir@:*/:/;
17290s/^\([^=]*=[ ]*\):*/\1/;
17291s/:*$//;
17292s/^[^=]*=[ ]*$//;
17293}'
17294fi
17295
17296DEFS=-DHAVE_CONFIG_H
17297
17298
17299: ${CONFIG_STATUS=./config.status}
17300ac_clean_files_save=$ac_clean_files
17301ac_clean_files="$ac_clean_files $CONFIG_STATUS"
17302{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
17303echo "$as_me: creating $CONFIG_STATUS" >&6;}
17304cat >$CONFIG_STATUS <<_ACEOF
17305#! $SHELL
17306# Generated by $as_me.
17307# Run this file to recreate the current configuration.
17308# Compiler output produced by configure, useful for debugging
17309# configure, is in config.log if it exists.
17310
17311debug=false
17312SHELL=\${CONFIG_SHELL-$SHELL}
17313_ACEOF
17314
17315cat >>$CONFIG_STATUS <<\_ACEOF
17316
17317## --------------------- ##
17318## M4sh Initialization. ##
17319## --------------------- ##
17320
17321# Be Bourne compatible
17322if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
17323 emulate sh
17324 NULLCMD=:
17325elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
17326 set -o posix
17327fi
17328
17329# NLS nuisances.
17330# Support unset when possible.
17331if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
17332 as_unset=unset
17333else
17334 as_unset=false
17335fi
17336
17337(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
17338 { $as_unset LANG || test "${LANG+set}" != set; } ||
17339 { LANG=C; export LANG; }
17340(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
17341 { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
17342 { LC_ALL=C; export LC_ALL; }
17343(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
17344 { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
17345 { LC_TIME=C; export LC_TIME; }
17346(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
17347 { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
17348 { LC_CTYPE=C; export LC_CTYPE; }
17349(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
17350 { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
17351 { LANGUAGE=C; export LANGUAGE; }
17352(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
17353 { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
17354 { LC_COLLATE=C; export LC_COLLATE; }
17355(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
17356 { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
17357 { LC_NUMERIC=C; export LC_NUMERIC; }
17358(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
17359 { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
17360 { LC_MESSAGES=C; export LC_MESSAGES; }
17361
17362
17363# Name of the executable.
17364as_me=`(basename "$0") 2>/dev/null ||
17365$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
17366 X"$0" : 'X\(//\)$' \| \
17367 X"$0" : 'X\(/\)$' \| \
17368 . : '\(.\)' 2>/dev/null ||
17369echo X/"$0" |
17370 sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
17371 /^X\/\(\/\/\)$/{ s//\1/; q; }
17372 /^X\/\(\/\).*/{ s//\1/; q; }
17373 s/.*/./; q'`
17374
17375# PATH needs CR, and LINENO needs CR and PATH.
17376# Avoid depending upon Character Ranges.
17377as_cr_letters='abcdefghijklmnopqrstuvwxyz'
17378as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
17379as_cr_Letters=$as_cr_letters$as_cr_LETTERS
17380as_cr_digits='0123456789'
17381as_cr_alnum=$as_cr_Letters$as_cr_digits
17382
17383# The user is always right.
17384if test "${PATH_SEPARATOR+set}" != set; then
17385 echo "#! /bin/sh" >conftest.sh
17386 echo "exit 0" >>conftest.sh
17387 chmod +x conftest.sh
17388 if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
17389 PATH_SEPARATOR=';'
17390 else
17391 PATH_SEPARATOR=:
17392 fi
17393 rm -f conftest.sh
17394fi
17395
17396
17397 as_lineno_1=$LINENO
17398 as_lineno_2=$LINENO
17399 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
17400 test "x$as_lineno_1" != "x$as_lineno_2" &&
17401 test "x$as_lineno_3" = "x$as_lineno_2" || {
17402 # Find who we are. Look in the path if we contain no path at all
17403 # relative or not.
17404 case $0 in
17405 *[\\/]* ) as_myself=$0 ;;
17406 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
17407for as_dir in $PATH
17408do
17409 IFS=$as_save_IFS
17410 test -z "$as_dir" && as_dir=.
17411 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
17412done
17413
17414 ;;
17415 esac
17416 # We did not find ourselves, most probably we were run as `sh COMMAND'
17417 # in which case we are not to be found in the path.
17418 if test "x$as_myself" = x; then
17419 as_myself=$0
17420 fi
17421 if test ! -f "$as_myself"; then
17422 { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
17423echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
17424 { (exit 1); exit 1; }; }
17425 fi
17426 case $CONFIG_SHELL in
17427 '')
17428 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
17429for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
17430do
17431 IFS=$as_save_IFS
17432 test -z "$as_dir" && as_dir=.
17433 for as_base in sh bash ksh sh5; do
17434 case $as_dir in
17435 /*)
17436 if ("$as_dir/$as_base" -c '
17437 as_lineno_1=$LINENO
17438 as_lineno_2=$LINENO
17439 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
17440 test "x$as_lineno_1" != "x$as_lineno_2" &&
17441 test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
17442 CONFIG_SHELL=$as_dir/$as_base
17443 export CONFIG_SHELL
17444 exec "$CONFIG_SHELL" "$0" ${1+"$@"}
17445 fi;;
17446 esac
17447 done
17448done
17449;;
17450 esac
17451
17452 # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
17453 # uniformly replaced by the line number. The first 'sed' inserts a
17454 # line-number line before each line; the second 'sed' does the real
17455 # work. The second script uses 'N' to pair each line-number line
17456 # with the numbered line, and appends trailing '-' during
17457 # substitution so that $LINENO is not a special case at line end.
17458 # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
17459 # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
17460 sed '=' <$as_myself |
17461 sed '
17462 N
17463 s,$,-,
17464 : loop
17465 s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
17466 t loop
17467 s,-$,,
17468 s,^['$as_cr_digits']*\n,,
17469 ' >$as_me.lineno &&
17470 chmod +x $as_me.lineno ||
17471 { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
17472echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
17473 { (exit 1); exit 1; }; }
17474
17475 # Don't try to exec as it changes $[0], causing all sort of problems
17476 # (the dirname of $[0] is not the place where we might find the
17477 # original and so on. Autoconf is especially sensible to this).
17478 . ./$as_me.lineno
17479 # Exit status is that of the last command.
17480 exit
17481}
17482
17483
17484case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
17485 *c*,-n*) ECHO_N= ECHO_C='
17486' ECHO_T=' ' ;;
17487 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
17488 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
17489esac
17490
17491if expr a : '\(a\)' >/dev/null 2>&1; then
17492 as_expr=expr
17493else
17494 as_expr=false
17495fi
17496
17497rm -f conf$$ conf$$.exe conf$$.file
17498echo >conf$$.file
17499if ln -s conf$$.file conf$$ 2>/dev/null; then
17500 # We could just check for DJGPP; but this test a) works b) is more generic
17501 # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
17502 if test -f conf$$.exe; then
17503 # Don't use ln at all; we don't have any links
17504 as_ln_s='cp -p'
17505 else
17506 as_ln_s='ln -s'
17507 fi
17508elif ln conf$$.file conf$$ 2>/dev/null; then
17509 as_ln_s=ln
17510else
17511 as_ln_s='cp -p'
17512fi
17513rm -f conf$$ conf$$.exe conf$$.file
17514
17515as_executable_p="test -f"
17516
17517# Sed expression to map a string onto a valid CPP name.
17518as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
17519
17520# Sed expression to map a string onto a valid variable name.
17521as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
17522
17523
17524# IFS
17525# We need space, tab and new line, in precisely that order.
17526as_nl='
17527'
17528IFS=" $as_nl"
17529
17530# CDPATH.
17531$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
17532
17533exec 6>&1
17534
17535# Open the log real soon, to keep \$[0] and so on meaningful, and to
17536# report actual input values of CONFIG_FILES etc. instead of their
17537# values after options handling. Logging --version etc. is OK.
17538exec 5>>config.log
17539{
17540 echo
17541 sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
17542@%:@@%:@ Running $as_me. @%:@@%:@
17543_ASBOX
17544} >&5
17545cat >&5 <<_CSEOF
17546
17547This file was extended by $as_me, which was
17548generated by GNU Autoconf 2.53. Invocation command line was
17549
17550 CONFIG_FILES = $CONFIG_FILES
17551 CONFIG_HEADERS = $CONFIG_HEADERS
17552 CONFIG_LINKS = $CONFIG_LINKS
17553 CONFIG_COMMANDS = $CONFIG_COMMANDS
17554 $ $0 $@
17555
17556_CSEOF
17557echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
17558echo >&5
17559_ACEOF
17560
17561# Files that config.status was made for.
17562if test -n "$ac_config_files"; then
17563 echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
17564fi
17565
17566if test -n "$ac_config_headers"; then
17567 echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
17568fi
17569
17570if test -n "$ac_config_links"; then
17571 echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
17572fi
17573
17574if test -n "$ac_config_commands"; then
17575 echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
17576fi
17577
17578cat >>$CONFIG_STATUS <<\_ACEOF
17579
17580ac_cs_usage="\
17581\`$as_me' instantiates files from templates according to the
17582current configuration.
17583
17584Usage: $0 [OPTIONS] [FILE]...
17585
17586 -h, --help print this help, then exit
17587 -V, --version print version number, then exit
17588 -d, --debug don't remove temporary files
17589 --recheck update $as_me by reconfiguring in the same conditions
17590 --file=FILE[:TEMPLATE]
17591 instantiate the configuration file FILE
17592 --header=FILE[:TEMPLATE]
17593 instantiate the configuration header FILE
17594
17595Configuration files:
17596$config_files
17597
17598Configuration headers:
17599$config_headers
17600
17601Report bugs to <bug-autoconf@gnu.org>."
17602_ACEOF
17603
17604cat >>$CONFIG_STATUS <<_ACEOF
17605ac_cs_version="\\
17606config.status
17607configured by $0, generated by GNU Autoconf 2.53,
17608 with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
17609
17610Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
17611Free Software Foundation, Inc.
17612This config.status script is free software; the Free Software Foundation
17613gives unlimited permission to copy, distribute and modify it."
17614srcdir=$srcdir
17615INSTALL="$INSTALL"
17616_ACEOF
17617
17618cat >>$CONFIG_STATUS <<\_ACEOF
17619# If no file are specified by the user, then we need to provide default
17620# value. By we need to know if files were specified by the user.
17621ac_need_defaults=:
17622while test $# != 0
17623do
17624 case $1 in
17625 --*=*)
17626 ac_option=`expr "x$1" : 'x\([^=]*\)='`
17627 ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
17628 shift
17629 set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
17630 shift
17631 ;;
17632 -*);;
17633 *) # This is not an option, so the user has probably given explicit
17634 # arguments.
17635 ac_need_defaults=false;;
17636 esac
17637
17638 case $1 in
17639 # Handling of the options.
17640_ACEOF
17641cat >>$CONFIG_STATUS <<_ACEOF
17642 -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
17643 echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
17644 exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
17645_ACEOF
17646cat >>$CONFIG_STATUS <<\_ACEOF
17647 --version | --vers* | -V )
17648 echo "$ac_cs_version"; exit 0 ;;
17649 --he | --h)
17650 # Conflict between --help and --header
17651 { { echo "$as_me:$LINENO: error: ambiguous option: $1
17652Try \`$0 --help' for more information." >&5
17653echo "$as_me: error: ambiguous option: $1
17654Try \`$0 --help' for more information." >&2;}
17655 { (exit 1); exit 1; }; };;
17656 --help | --hel | -h )
17657 echo "$ac_cs_usage"; exit 0 ;;
17658 --debug | --d* | -d )
17659 debug=: ;;
17660 --file | --fil | --fi | --f )
17661 shift
17662 CONFIG_FILES="$CONFIG_FILES $1"
17663 ac_need_defaults=false;;
17664 --header | --heade | --head | --hea )
17665 shift
17666 CONFIG_HEADERS="$CONFIG_HEADERS $1"
17667 ac_need_defaults=false;;
17668
17669 # This is an error.
17670 -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
17671Try \`$0 --help' for more information." >&5
17672echo "$as_me: error: unrecognized option: $1
17673Try \`$0 --help' for more information." >&2;}
17674 { (exit 1); exit 1; }; } ;;
17675
17676 *) ac_config_targets="$ac_config_targets $1" ;;
17677
17678 esac
17679 shift
17680done
17681
17682_ACEOF
17683
17684
17685
17686
17687
17688cat >>$CONFIG_STATUS <<\_ACEOF
17689for ac_config_target in $ac_config_targets
17690do
17691 case "$ac_config_target" in
17692 # Handling of arguments.
17693 "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
17694 "openbsd-compat/Makefile" ) CONFIG_FILES="$CONFIG_FILES openbsd-compat/Makefile" ;;
17695 "scard/Makefile" ) CONFIG_FILES="$CONFIG_FILES scard/Makefile" ;;
17696 "ssh_prng_cmds" ) CONFIG_FILES="$CONFIG_FILES ssh_prng_cmds" ;;
17697 "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
17698 *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
17699echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
17700 { (exit 1); exit 1; }; };;
17701 esac
17702done
17703
17704# If the user did not use the arguments to specify the items to instantiate,
17705# then the envvar interface is used. Set only those that are not.
17706# We use the long form for the default assignment because of an extremely
17707# bizarre bug on SunOS 4.1.3.
17708if $ac_need_defaults; then
17709 test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
17710 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
17711fi
17712
17713# Create a temporary directory, and hook for its removal unless debugging.
17714$debug ||
17715{
17716 trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
17717 trap '{ (exit 1); exit 1; }' 1 2 13 15
17718}
17719
17720# Create a (secure) tmp directory for tmp files.
17721: ${TMPDIR=/tmp}
17722{
17723 tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
17724 test -n "$tmp" && test -d "$tmp"
17725} ||
17726{
17727 tmp=$TMPDIR/cs$$-$RANDOM
17728 (umask 077 && mkdir $tmp)
17729} ||
17730{
17731 echo "$me: cannot create a temporary directory in $TMPDIR" >&2
17732 { (exit 1); exit 1; }
17733}
17734
17735_ACEOF
17736
17737cat >>$CONFIG_STATUS <<_ACEOF
17738
17739#
17740# CONFIG_FILES section.
17741#
17742
17743# No need to generate the scripts if there are no CONFIG_FILES.
17744# This happens for instance when ./config.status config.h
17745if test -n "\$CONFIG_FILES"; then
17746 # Protect against being on the right side of a sed subst in config.status.
17747 sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
17748 s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
17749s,@SHELL@,$SHELL,;t t
17750s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
17751s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
17752s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
17753s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
17754s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
17755s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
17756s,@exec_prefix@,$exec_prefix,;t t
17757s,@prefix@,$prefix,;t t
17758s,@program_transform_name@,$program_transform_name,;t t
17759s,@bindir@,$bindir,;t t
17760s,@sbindir@,$sbindir,;t t
17761s,@libexecdir@,$libexecdir,;t t
17762s,@datadir@,$datadir,;t t
17763s,@sysconfdir@,$sysconfdir,;t t
17764s,@sharedstatedir@,$sharedstatedir,;t t
17765s,@localstatedir@,$localstatedir,;t t
17766s,@libdir@,$libdir,;t t
17767s,@includedir@,$includedir,;t t
17768s,@oldincludedir@,$oldincludedir,;t t
17769s,@infodir@,$infodir,;t t
17770s,@mandir@,$mandir,;t t
17771s,@build_alias@,$build_alias,;t t
17772s,@host_alias@,$host_alias,;t t
17773s,@target_alias@,$target_alias,;t t
17774s,@DEFS@,$DEFS,;t t
17775s,@ECHO_C@,$ECHO_C,;t t
17776s,@ECHO_N@,$ECHO_N,;t t
17777s,@ECHO_T@,$ECHO_T,;t t
17778s,@LIBS@,$LIBS,;t t
17779s,@CC@,$CC,;t t
17780s,@CFLAGS@,$CFLAGS,;t t
17781s,@LDFLAGS@,$LDFLAGS,;t t
17782s,@CPPFLAGS@,$CPPFLAGS,;t t
17783s,@ac_ct_CC@,$ac_ct_CC,;t t
17784s,@EXEEXT@,$EXEEXT,;t t
17785s,@OBJEXT@,$OBJEXT,;t t
17786s,@build@,$build,;t t
17787s,@build_cpu@,$build_cpu,;t t
17788s,@build_vendor@,$build_vendor,;t t
17789s,@build_os@,$build_os,;t t
17790s,@host@,$host,;t t
17791s,@host_cpu@,$host_cpu,;t t
17792s,@host_vendor@,$host_vendor,;t t
17793s,@host_os@,$host_os,;t t
17794s,@CPP@,$CPP,;t t
17795s,@RANLIB@,$RANLIB,;t t
17796s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
17797s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
17798s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
17799s,@INSTALL_DATA@,$INSTALL_DATA,;t t
17800s,@AR@,$AR,;t t
17801s,@PERL@,$PERL,;t t
17802s,@SED@,$SED,;t t
17803s,@ENT@,$ENT,;t t
17804s,@TEST_MINUS_S_SH@,$TEST_MINUS_S_SH,;t t
17805s,@SH@,$SH,;t t
17806s,@LOGIN_PROGRAM_FALLBACK@,$LOGIN_PROGRAM_FALLBACK,;t t
17807s,@LD@,$LD,;t t
17808s,@LIBWRAP@,$LIBWRAP,;t t
17809s,@LIBPAM@,$LIBPAM,;t t
17810s,@INSTALL_SSH_RAND_HELPER@,$INSTALL_SSH_RAND_HELPER,;t t
17811s,@SSH_PRIVSEP_USER@,$SSH_PRIVSEP_USER,;t t
17812s,@PROG_LS@,$PROG_LS,;t t
17813s,@PROG_NETSTAT@,$PROG_NETSTAT,;t t
17814s,@PROG_ARP@,$PROG_ARP,;t t
17815s,@PROG_IFCONFIG@,$PROG_IFCONFIG,;t t
17816s,@PROG_JSTAT@,$PROG_JSTAT,;t t
17817s,@PROG_PS@,$PROG_PS,;t t
17818s,@PROG_SAR@,$PROG_SAR,;t t
17819s,@PROG_W@,$PROG_W,;t t
17820s,@PROG_WHO@,$PROG_WHO,;t t
17821s,@PROG_LAST@,$PROG_LAST,;t t
17822s,@PROG_LASTLOG@,$PROG_LASTLOG,;t t
17823s,@PROG_DF@,$PROG_DF,;t t
17824s,@PROG_VMSTAT@,$PROG_VMSTAT,;t t
17825s,@PROG_UPTIME@,$PROG_UPTIME,;t t
17826s,@PROG_IPCS@,$PROG_IPCS,;t t
17827s,@PROG_TAIL@,$PROG_TAIL,;t t
17828s,@INSTALL_SSH_PRNG_CMDS@,$INSTALL_SSH_PRNG_CMDS,;t t
17829s,@OPENSC_CONFIG@,$OPENSC_CONFIG,;t t
17830s,@PRIVSEP_PATH@,$PRIVSEP_PATH,;t t
17831s,@xauth_path@,$xauth_path,;t t
17832s,@STRIP_OPT@,$STRIP_OPT,;t t
17833s,@XAUTH_PATH@,$XAUTH_PATH,;t t
17834s,@NROFF@,$NROFF,;t t
17835s,@MANTYPE@,$MANTYPE,;t t
17836s,@mansubdir@,$mansubdir,;t t
17837s,@user_path@,$user_path,;t t
17838s,@piddir@,$piddir,;t t
17839CEOF
17840
17841_ACEOF
17842
17843 cat >>$CONFIG_STATUS <<\_ACEOF
17844 # Split the substitutions into bite-sized pieces for seds with
17845 # small command number limits, like on Digital OSF/1 and HP-UX.
17846 ac_max_sed_lines=48
17847 ac_sed_frag=1 # Number of current file.
17848 ac_beg=1 # First line for current file.
17849 ac_end=$ac_max_sed_lines # Line after last line for current file.
17850 ac_more_lines=:
17851 ac_sed_cmds=
17852 while $ac_more_lines; do
17853 if test $ac_beg -gt 1; then
17854 sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
17855 else
17856 sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
17857 fi
17858 if test ! -s $tmp/subs.frag; then
17859 ac_more_lines=false
17860 else
17861 # The purpose of the label and of the branching condition is to
17862 # speed up the sed processing (if there are no `@' at all, there
17863 # is no need to browse any of the substitutions).
17864 # These are the two extra sed commands mentioned above.
17865 (echo ':t
17866 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
17867 if test -z "$ac_sed_cmds"; then
17868 ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
17869 else
17870 ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
17871 fi
17872 ac_sed_frag=`expr $ac_sed_frag + 1`
17873 ac_beg=$ac_end
17874 ac_end=`expr $ac_end + $ac_max_sed_lines`
17875 fi
17876 done
17877 if test -z "$ac_sed_cmds"; then
17878 ac_sed_cmds=cat
17879 fi
17880fi # test -n "$CONFIG_FILES"
17881
17882_ACEOF
17883cat >>$CONFIG_STATUS <<\_ACEOF
17884for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
17885 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
17886 case $ac_file in
17887 - | *:- | *:-:* ) # input from stdin
17888 cat >$tmp/stdin
17889 ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
17890 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
17891 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
17892 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
17893 * ) ac_file_in=$ac_file.in ;;
17894 esac
17895
17896 # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
17897 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
17898$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
17899 X"$ac_file" : 'X\(//\)[^/]' \| \
17900 X"$ac_file" : 'X\(//\)$' \| \
17901 X"$ac_file" : 'X\(/\)' \| \
17902 . : '\(.\)' 2>/dev/null ||
17903echo X"$ac_file" |
17904 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
17905 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
17906 /^X\(\/\/\)$/{ s//\1/; q; }
17907 /^X\(\/\).*/{ s//\1/; q; }
17908 s/.*/./; q'`
17909 { case "$ac_dir" in
17910 [\\/]* | ?:[\\/]* ) as_incr_dir=;;
17911 *) as_incr_dir=.;;
17912esac
17913as_dummy="$ac_dir"
17914for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
17915 case $as_mkdir_dir in
17916 # Skip DOS drivespec
17917 ?:) as_incr_dir=$as_mkdir_dir ;;
17918 *)
17919 as_incr_dir=$as_incr_dir/$as_mkdir_dir
17920 test -d "$as_incr_dir" ||
17921 mkdir "$as_incr_dir" ||
17922 { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
17923echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
17924 { (exit 1); exit 1; }; }
17925 ;;
17926 esac
17927done; }
17928
17929 ac_builddir=.
17930
17931if test "$ac_dir" != .; then
17932 ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
17933 # A "../" for each directory in $ac_dir_suffix.
17934 ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
17935else
17936 ac_dir_suffix= ac_top_builddir=
17937fi
17938
17939case $srcdir in
17940 .) # No --srcdir option. We are building in place.
17941 ac_srcdir=.
17942 if test -z "$ac_top_builddir"; then
17943 ac_top_srcdir=.
17944 else
17945 ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
17946 fi ;;
17947 [\\/]* | ?:[\\/]* ) # Absolute path.
17948 ac_srcdir=$srcdir$ac_dir_suffix;
17949 ac_top_srcdir=$srcdir ;;
17950 *) # Relative path.
17951 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
17952 ac_top_srcdir=$ac_top_builddir$srcdir ;;
17953esac
17954# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
17955# absolute.
17956ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
17957ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
17958ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
17959ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
17960
17961
17962 case $INSTALL in
17963 [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
17964 *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
17965 esac
17966
17967 if test x"$ac_file" != x-; then
17968 { echo "$as_me:$LINENO: creating $ac_file" >&5
17969echo "$as_me: creating $ac_file" >&6;}
17970 rm -f "$ac_file"
17971 fi
17972 # Let's still pretend it is `configure' which instantiates (i.e., don't
17973 # use $as_me), people would be surprised to read:
17974 # /* config.h. Generated by config.status. */
17975 if test x"$ac_file" = x-; then
17976 configure_input=
17977 else
17978 configure_input="$ac_file. "
17979 fi
17980 configure_input=$configure_input"Generated from `echo $ac_file_in |
17981 sed 's,.*/,,'` by configure."
17982
17983 # First look for the input files in the build tree, otherwise in the
17984 # src tree.
17985 ac_file_inputs=`IFS=:
17986 for f in $ac_file_in; do
17987 case $f in
17988 -) echo $tmp/stdin ;;
17989 [\\/$]*)
17990 # Absolute (can't be DOS-style, as IFS=:)
17991 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
17992echo "$as_me: error: cannot find input file: $f" >&2;}
17993 { (exit 1); exit 1; }; }
17994 echo $f;;
17995 *) # Relative
17996 if test -f "$f"; then
17997 # Build tree
17998 echo $f
17999 elif test -f "$srcdir/$f"; then
18000 # Source tree
18001 echo $srcdir/$f
18002 else
18003 # /dev/null tree
18004 { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18005echo "$as_me: error: cannot find input file: $f" >&2;}
18006 { (exit 1); exit 1; }; }
18007 fi;;
18008 esac
18009 done` || { (exit 1); exit 1; }
18010_ACEOF
18011cat >>$CONFIG_STATUS <<_ACEOF
18012 sed "$ac_vpsub
18013$extrasub
18014_ACEOF
18015cat >>$CONFIG_STATUS <<\_ACEOF
18016:t
18017/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
18018s,@configure_input@,$configure_input,;t t
18019s,@srcdir@,$ac_srcdir,;t t
18020s,@abs_srcdir@,$ac_abs_srcdir,;t t
18021s,@top_srcdir@,$ac_top_srcdir,;t t
18022s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
18023s,@builddir@,$ac_builddir,;t t
18024s,@abs_builddir@,$ac_abs_builddir,;t t
18025s,@top_builddir@,$ac_top_builddir,;t t
18026s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
18027s,@INSTALL@,$ac_INSTALL,;t t
18028" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
18029 rm -f $tmp/stdin
18030 if test x"$ac_file" != x-; then
18031 mv $tmp/out $ac_file
18032 else
18033 cat $tmp/out
18034 rm -f $tmp/out
18035 fi
18036
18037done
18038_ACEOF
18039cat >>$CONFIG_STATUS <<\_ACEOF
18040
18041#
18042# CONFIG_HEADER section.
18043#
18044
18045# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
18046# NAME is the cpp macro being defined and VALUE is the value it is being given.
18047#
18048# ac_d sets the value in "#define NAME VALUE" lines.
18049ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
18050ac_dB='[ ].*$,\1#\2'
18051ac_dC=' '
18052ac_dD=',;t'
18053# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
18054ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
18055ac_uB='$,\1#\2define\3'
18056ac_uC=' '
18057ac_uD=',;t'
18058
18059for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
18060 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
18061 case $ac_file in
18062 - | *:- | *:-:* ) # input from stdin
18063 cat >$tmp/stdin
18064 ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18065 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18066 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18067 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18068 * ) ac_file_in=$ac_file.in ;;
18069 esac
18070
18071 test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
18072echo "$as_me: creating $ac_file" >&6;}
18073
18074 # First look for the input files in the build tree, otherwise in the
18075 # src tree.
18076 ac_file_inputs=`IFS=:
18077 for f in $ac_file_in; do
18078 case $f in
18079 -) echo $tmp/stdin ;;
18080 [\\/$]*)
18081 # Absolute (can't be DOS-style, as IFS=:)
18082 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18083echo "$as_me: error: cannot find input file: $f" >&2;}
18084 { (exit 1); exit 1; }; }
18085 echo $f;;
18086 *) # Relative
18087 if test -f "$f"; then
18088 # Build tree
18089 echo $f
18090 elif test -f "$srcdir/$f"; then
18091 # Source tree
18092 echo $srcdir/$f
18093 else
18094 # /dev/null tree
18095 { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18096echo "$as_me: error: cannot find input file: $f" >&2;}
18097 { (exit 1); exit 1; }; }
18098 fi;;
18099 esac
18100 done` || { (exit 1); exit 1; }
18101 # Remove the trailing spaces.
18102 sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
18103
18104_ACEOF
18105
18106# Transform confdefs.h into two sed scripts, `conftest.defines' and
18107# `conftest.undefs', that substitutes the proper values into
18108# config.h.in to produce config.h. The first handles `#define'
18109# templates, and the second `#undef' templates.
18110# And first: Protect against being on the right side of a sed subst in
18111# config.status. Protect against being in an unquoted here document
18112# in config.status.
18113rm -f conftest.defines conftest.undefs
18114# Using a here document instead of a string reduces the quoting nightmare.
18115# Putting comments in sed scripts is not portable.
18116#
18117# `end' is used to avoid that the second main sed command (meant for
18118# 0-ary CPP macros) applies to n-ary macro definitions.
18119# See the Autoconf documentation for `clear'.
18120cat >confdef2sed.sed <<\_ACEOF
18121s/[\\&,]/\\&/g
18122s,[\\$`],\\&,g
18123t clear
18124: clear
18125s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
18126t end
18127s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
18128: end
18129_ACEOF
18130# If some macros were called several times there might be several times
18131# the same #defines, which is useless. Nevertheless, we may not want to
18132# sort them, since we want the *last* AC-DEFINE to be honored.
18133uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
18134sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
18135rm -f confdef2sed.sed
18136
18137# This sed command replaces #undef with comments. This is necessary, for
18138# example, in the case of _POSIX_SOURCE, which is predefined and required
18139# on some systems where configure will not decide to define it.
18140cat >>conftest.undefs <<\_ACEOF
18141s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
18142_ACEOF
18143
18144# Break up conftest.defines because some shells have a limit on the size
18145# of here documents, and old seds have small limits too (100 cmds).
18146echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
18147echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
18148echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
18149echo ' :' >>$CONFIG_STATUS
18150rm -f conftest.tail
18151while grep . conftest.defines >/dev/null
18152do
18153 # Write a limited-size here document to $tmp/defines.sed.
18154 echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
18155 # Speed up: don't consider the non `#define' lines.
18156 echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
18157 # Work around the forget-to-reset-the-flag bug.
18158 echo 't clr' >>$CONFIG_STATUS
18159 echo ': clr' >>$CONFIG_STATUS
18160 sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
18161 echo 'CEOF
18162 sed -f $tmp/defines.sed $tmp/in >$tmp/out
18163 rm -f $tmp/in
18164 mv $tmp/out $tmp/in
18165' >>$CONFIG_STATUS
18166 sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
18167 rm -f conftest.defines
18168 mv conftest.tail conftest.defines
18169done
18170rm -f conftest.defines
18171echo ' fi # egrep' >>$CONFIG_STATUS
18172echo >>$CONFIG_STATUS
18173
18174# Break up conftest.undefs because some shells have a limit on the size
18175# of here documents, and old seds have small limits too (100 cmds).
18176echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
18177rm -f conftest.tail
18178while grep . conftest.undefs >/dev/null
18179do
18180 # Write a limited-size here document to $tmp/undefs.sed.
18181 echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
18182 # Speed up: don't consider the non `#undef'
18183 echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
18184 # Work around the forget-to-reset-the-flag bug.
18185 echo 't clr' >>$CONFIG_STATUS
18186 echo ': clr' >>$CONFIG_STATUS
18187 sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
18188 echo 'CEOF
18189 sed -f $tmp/undefs.sed $tmp/in >$tmp/out
18190 rm -f $tmp/in
18191 mv $tmp/out $tmp/in
18192' >>$CONFIG_STATUS
18193 sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
18194 rm -f conftest.undefs
18195 mv conftest.tail conftest.undefs
18196done
18197rm -f conftest.undefs
18198
18199cat >>$CONFIG_STATUS <<\_ACEOF
18200 # Let's still pretend it is `configure' which instantiates (i.e., don't
18201 # use $as_me), people would be surprised to read:
18202 # /* config.h. Generated by config.status. */
18203 if test x"$ac_file" = x-; then
18204 echo "/* Generated by configure. */" >$tmp/config.h
18205 else
18206 echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
18207 fi
18208 cat $tmp/in >>$tmp/config.h
18209 rm -f $tmp/in
18210 if test x"$ac_file" != x-; then
18211 if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
18212 { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
18213echo "$as_me: $ac_file is unchanged" >&6;}
18214 else
18215 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
18216$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
18217 X"$ac_file" : 'X\(//\)[^/]' \| \
18218 X"$ac_file" : 'X\(//\)$' \| \
18219 X"$ac_file" : 'X\(/\)' \| \
18220 . : '\(.\)' 2>/dev/null ||
18221echo X"$ac_file" |
18222 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
18223 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
18224 /^X\(\/\/\)$/{ s//\1/; q; }
18225 /^X\(\/\).*/{ s//\1/; q; }
18226 s/.*/./; q'`
18227 { case "$ac_dir" in
18228 [\\/]* | ?:[\\/]* ) as_incr_dir=;;
18229 *) as_incr_dir=.;;
18230esac
18231as_dummy="$ac_dir"
18232for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
18233 case $as_mkdir_dir in
18234 # Skip DOS drivespec
18235 ?:) as_incr_dir=$as_mkdir_dir ;;
18236 *)
18237 as_incr_dir=$as_incr_dir/$as_mkdir_dir
18238 test -d "$as_incr_dir" ||
18239 mkdir "$as_incr_dir" ||
18240 { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
18241echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
18242 { (exit 1); exit 1; }; }
18243 ;;
18244 esac
18245done; }
18246
18247 rm -f $ac_file
18248 mv $tmp/config.h $ac_file
18249 fi
18250 else
18251 cat $tmp/config.h
18252 rm -f $tmp/config.h
18253 fi
18254done
18255_ACEOF
18256
18257cat >>$CONFIG_STATUS <<\_ACEOF
18258
18259{ (exit 0); exit 0; }
18260_ACEOF
18261chmod +x $CONFIG_STATUS
18262ac_clean_files=$ac_clean_files_save
18263
18264
18265# configure is writing to config.log, and then calls config.status.
18266# config.status does its own redirection, appending to config.log.
18267# Unfortunately, on DOS this fails, as config.log is still kept open
18268# by configure, so config.status won't be able to write to it; its
18269# output is simply discarded. So we exec the FD to /dev/null,
18270# effectively closing config.log, so it can be properly (re)opened and
18271# appended to by config.status. When coming back to configure, we
18272# need to make the FD available again.
18273if test "$no_create" != yes; then
18274 ac_cs_success=:
18275 exec 5>/dev/null
18276 $SHELL $CONFIG_STATUS || ac_cs_success=false
18277 exec 5>>config.log
18278 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
18279 # would make configure fail if this is the last instruction.
18280 $ac_cs_success || { (exit 1); exit 1; }
18281fi
18282
18283
18284# Print summary of options
18285
18286# Someone please show me a better way :)
18287A=`eval echo ${prefix}` ; A=`eval echo ${A}`
18288B=`eval echo ${bindir}` ; B=`eval echo ${B}`
18289C=`eval echo ${sbindir}` ; C=`eval echo ${C}`
18290D=`eval echo ${sysconfdir}` ; D=`eval echo ${D}`
18291E=`eval echo ${libexecdir}/ssh-askpass` ; E=`eval echo ${E}`
18292F=`eval echo ${mandir}/${mansubdir}X` ; F=`eval echo ${F}`
18293G=`eval echo ${piddir}` ; G=`eval echo ${G}`
18294H=`eval echo ${PRIVSEP_PATH}` ; H=`eval echo ${H}`
18295I=`eval echo ${user_path}` ; I=`eval echo ${I}`
18296J=`eval echo ${superuser_path}` ; J=`eval echo ${J}`
18297
18298echo ""
18299echo "OpenSSH has been configured with the following options:"
18300echo " User binaries: $B"
18301echo " System binaries: $C"
18302echo " Configuration files: $D"
18303echo " Askpass program: $E"
18304echo " Manual pages: $F"
18305echo " PID file: $G"
18306echo " Privilege separation chroot path: $H"
18307if test "$USES_LOGIN_CONF" = "yes" ; then
18308echo " At runtime, sshd will use the path defined in /etc/login.conf"
18309else
18310echo " sshd default user PATH: $I"
18311fi
18312if test ! -z "$superuser_path" ; then
18313echo " sshd superuser user PATH: $J"
18314fi
18315echo " Manpage format: $MANTYPE"
18316echo " PAM support: ${PAM_MSG}"
18317echo " KerberosIV support: $KRB4_MSG"
18318echo " KerberosV support: $KRB5_MSG"
18319echo " Smartcard support: $SCARD_MSG"
18320echo " AFS support: $AFS_MSG"
18321echo " S/KEY support: $SKEY_MSG"
18322echo " TCP Wrappers support: $TCPW_MSG"
18323echo " MD5 password support: $MD5_MSG"
18324echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG"
18325echo " Use IPv4 by default hack: $IPV4_HACK_MSG"
18326echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG"
18327echo " BSD Auth support: $BSD_AUTH_MSG"
18328echo " Random number source: $RAND_MSG"
18329if test ! -z "$USE_RAND_HELPER" ; then
18330echo " ssh-rand-helper collects from: $RAND_HELPER_MSG"
18331fi
18332
18333echo ""
18334
18335echo " Host: ${host}"
18336echo " Compiler: ${CC}"
18337echo " Compiler flags: ${CFLAGS}"
18338echo "Preprocessor flags: ${CPPFLAGS}"
18339echo " Linker flags: ${LDFLAGS}"
18340echo " Libraries: ${LIBWRAP} ${LIBPAM} ${LIBS}"
18341
18342echo ""
18343
18344if test "x$PAM_MSG" = "xyes" ; then
18345 echo "PAM is enabled. You may need to install a PAM control file "
18346 echo "for sshd, otherwise password authentication may fail. "
18347 echo "Example PAM control files can be found in the contrib/ "
18348 echo "subdirectory"
18349 echo ""
18350fi
18351
18352if test ! -z "$RAND_HELPER_CMDHASH" ; then
18353 echo "WARNING: you are using the builtin random number collection "
18354 echo "service. Please read WARNING.RNG and request that your OS "
18355 echo "vendor includes kernel-based random number collection in "
18356 echo "future versions of your OS."
18357 echo ""
18358fi
18359
diff --git a/autom4te-2.53.cache/requests b/autom4te-2.53.cache/requests
deleted file mode 100644
index 17e72cec4..000000000
--- a/autom4te-2.53.cache/requests
+++ /dev/null
@@ -1,96 +0,0 @@
1# This file was created by autom4te-2.53.
2# It contains the lists of macros which have been traced.
3# It can be safely removed.
4
5@request = (
6 bless( [
7 '0',
8 1,
9 [
10 '/usr/share/autoconf'
11 ],
12 [
13 '--reload-state=/usr/share/autoconf/autoconf/autoconf.m4f',
14 'aclocal.m4',
15 'configure.ac'
16 ],
17 {
18 'm4_pattern_forbid' => 1,
19 'AC_TYPE_OFF_T' => 1,
20 'AC_PROG_LIBTOOL' => 1,
21 'AC_FUNC_STAT' => 1,
22 'AC_HEADER_TIME' => 1,
23 'AC_FUNC_WAIT3' => 1,
24 'AC_STRUCT_TM' => 1,
25 'AC_FUNC_LSTAT' => 1,
26 'AC_TYPE_MODE_T' => 1,
27 'AC_FUNC_STRTOD' => 1,
28 'AC_CHECK_HEADERS' => 1,
29 'AC_PROG_CXX' => 1,
30 'AC_PATH_X' => 1,
31 'AC_PROG_AWK' => 1,
32 'AC_HEADER_STDC' => 1,
33 'AC_HEADER_MAJOR' => 1,
34 'AC_FUNC_ERROR_AT_LINE' => 1,
35 'AC_PROG_GCC_TRADITIONAL' => 1,
36 'AC_LIBSOURCE' => 1,
37 'AC_STRUCT_ST_BLOCKS' => 1,
38 'AC_TYPE_SIGNAL' => 1,
39 'AC_TYPE_UID_T' => 1,
40 'AC_PROG_MAKE_SET' => 1,
41 'm4_pattern_allow' => 1,
42 'AC_DEFINE_TRACE_LITERAL' => 1,
43 'AM_PROG_LIBTOOL' => 1,
44 'AC_FUNC_STRERROR_R' => 1,
45 'AC_PROG_CC' => 1,
46 'AC_DECL_SYS_SIGLIST' => 1,
47 'AC_FUNC_FORK' => 1,
48 'AC_FUNC_VPRINTF' => 1,
49 'AC_FUNC_STRCOLL' => 1,
50 'AC_PROG_YACC' => 1,
51 'AC_INIT' => 1,
52 'AC_STRUCT_TIMEZONE' => 1,
53 'AC_FUNC_CHOWN' => 1,
54 'AC_SUBST' => 1,
55 'AC_FUNC_ALLOCA' => 1,
56 'AC_FUNC_GETPGRP' => 1,
57 'AC_PROG_RANLIB' => 1,
58 'AC_FUNC_SETPGRP' => 1,
59 'AC_CONFIG_SUBDIRS' => 1,
60 'AC_FUNC_MMAP' => 1,
61 'AC_TYPE_SIZE_T' => 1,
62 'AC_CHECK_TYPES' => 1,
63 'AC_FUNC_UTIME_NULL' => 1,
64 'AC_FUNC_STRFTIME' => 1,
65 'AC_HEADER_STAT' => 1,
66 'AC_C_INLINE' => 1,
67 'AC_PROG_CPP' => 1,
68 'AC_C_CONST' => 1,
69 'AC_PROG_LEX' => 1,
70 'AC_TYPE_PID_T' => 1,
71 'AC_CONFIG_FILES' => 1,
72 'include' => 1,
73 'AC_FUNC_SETVBUF_REVERSED' => 1,
74 'AC_FUNC_FNMATCH' => 1,
75 'AC_PROG_INSTALL' => 1,
76 'AM_GNU_GETTEXT' => 1,
77 'AC_FUNC_OBSTACK' => 1,
78 'AC_CHECK_LIB' => 1,
79 'AC_FUNC_MALLOC' => 1,
80 'AC_FUNC_GETGROUPS' => 1,
81 'AC_FUNC_GETLOADAVG' => 1,
82 'AH_OUTPUT' => 1,
83 'AC_FUNC_FSEEKO' => 1,
84 'AC_FUNC_MKTIME' => 1,
85 'AM_CONDITIONAL' => 1,
86 'AC_CONFIG_HEADERS' => 1,
87 'AC_HEADER_SYS_WAIT' => 1,
88 'AC_PROG_LN_S' => 1,
89 'AC_FUNC_MEMCMP' => 1,
90 'm4_include' => 1,
91 'AC_HEADER_DIRENT' => 1,
92 'AC_CHECK_FUNCS' => 1
93 }
94 ], 'Request' )
95 );
96
diff --git a/autom4te-2.53.cache/traces.0 b/autom4te-2.53.cache/traces.0
deleted file mode 100644
index c928d0c58..000000000
--- a/autom4te-2.53.cache/traces.0
+++ /dev/null
@@ -1,941 +0,0 @@
1m4trace:configure.ac:3: -1- AC_INIT
2m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_])
3m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_])
4m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs. LIBOBJS'])
5m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$])
6m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_])
7m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$])
8m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_])
9m4trace:configure.ac:3: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
10m4trace:configure.ac:3: -1- AC_SUBST([PATH_SEPARATOR])
11m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
12m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
13m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
14m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
15m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16m4trace:configure.ac:3: -1- AC_SUBST([exec_prefix], [NONE])
17m4trace:configure.ac:3: -1- AC_SUBST([prefix], [NONE])
18m4trace:configure.ac:3: -1- AC_SUBST([program_transform_name], [s,x,x,])
19m4trace:configure.ac:3: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
20m4trace:configure.ac:3: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
21m4trace:configure.ac:3: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
22m4trace:configure.ac:3: -1- AC_SUBST([datadir], ['${prefix}/share'])
23m4trace:configure.ac:3: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
24m4trace:configure.ac:3: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
25m4trace:configure.ac:3: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
26m4trace:configure.ac:3: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
27m4trace:configure.ac:3: -1- AC_SUBST([includedir], ['${prefix}/include'])
28m4trace:configure.ac:3: -1- AC_SUBST([oldincludedir], ['/usr/include'])
29m4trace:configure.ac:3: -1- AC_SUBST([infodir], ['${prefix}/info'])
30m4trace:configure.ac:3: -1- AC_SUBST([mandir], ['${prefix}/man'])
31m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
32m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
33#undef PACKAGE_NAME])
34m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
35m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
36#undef PACKAGE_TARNAME])
37m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
38m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
39#undef PACKAGE_VERSION])
40m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
41m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
42#undef PACKAGE_STRING])
43m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
44m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
45#undef PACKAGE_BUGREPORT])
46m4trace:configure.ac:3: -1- AC_SUBST([build_alias])
47m4trace:configure.ac:3: -1- AC_SUBST([host_alias])
48m4trace:configure.ac:3: -1- AC_SUBST([target_alias])
49m4trace:configure.ac:3: -1- AC_SUBST([DEFS])
50m4trace:configure.ac:3: -1- AC_SUBST([ECHO_C])
51m4trace:configure.ac:3: -1- AC_SUBST([ECHO_N])
52m4trace:configure.ac:3: -1- AC_SUBST([ECHO_T])
53m4trace:configure.ac:3: -1- AC_SUBST([LIBS])
54m4trace:configure.ac:6: -1- AC_CONFIG_HEADERS([config.h])
55m4trace:configure.ac:7: -1- AC_PROG_CC
56m4trace:configure.ac:7: -1- AC_SUBST([CC])
57m4trace:configure.ac:7: -1- AC_SUBST([CFLAGS])
58m4trace:configure.ac:7: -1- AC_SUBST([LDFLAGS])
59m4trace:configure.ac:7: -1- AC_SUBST([CPPFLAGS])
60m4trace:configure.ac:7: -1- AC_SUBST([CC])
61m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
62m4trace:configure.ac:7: -1- AC_SUBST([CC])
63m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
64m4trace:configure.ac:7: -1- AC_SUBST([CC])
65m4trace:configure.ac:7: -1- AC_SUBST([CC])
66m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
67m4trace:configure.ac:7: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
68m4trace:configure.ac:7: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
69m4trace:configure.ac:8: -1- AC_SUBST([build], [$ac_cv_build])
70m4trace:configure.ac:8: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
71m4trace:configure.ac:8: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
72m4trace:configure.ac:8: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
73m4trace:configure.ac:8: -1- AC_SUBST([host], [$ac_cv_host])
74m4trace:configure.ac:8: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
75m4trace:configure.ac:8: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
76m4trace:configure.ac:8: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
77m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN])
78m4trace:configure.ac:9: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte
79 first (like Motorola and SPARC, unlike Intel and VAX). */
80#undef WORDS_BIGENDIAN])
81m4trace:configure.ac:12: -1- AC_PROG_CPP
82m4trace:configure.ac:12: -1- AC_SUBST([CPP])
83m4trace:configure.ac:12: -1- AC_SUBST([CPPFLAGS])
84m4trace:configure.ac:12: -1- AC_SUBST([CPP])
85m4trace:configure.ac:13: -1- AC_PROG_RANLIB
86m4trace:configure.ac:13: -1- AC_SUBST([RANLIB])
87m4trace:configure.ac:13: -1- AC_SUBST([ac_ct_RANLIB])
88m4trace:configure.ac:14: -1- AC_PROG_INSTALL
89m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_PROGRAM])
90m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_SCRIPT])
91m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_DATA])
92m4trace:configure.ac:15: -1- AC_SUBST([AR], [$ac_cv_path_AR])
93m4trace:configure.ac:16: -1- AC_SUBST([PERL], [$ac_cv_path_PERL])
94m4trace:configure.ac:17: -1- AC_SUBST([SED], [$ac_cv_path_SED])
95m4trace:configure.ac:18: -1- AC_SUBST([PERL])
96m4trace:configure.ac:19: -1- AC_SUBST([ENT], [$ac_cv_path_ENT])
97m4trace:configure.ac:20: -1- AC_SUBST([ENT])
98m4trace:configure.ac:21: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
99m4trace:configure.ac:22: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
100m4trace:configure.ac:23: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
101m4trace:configure.ac:24: -1- AC_SUBST([SH], [$ac_cv_path_SH])
102m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS])
103m4trace:configure.ac:27: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */
104#undef _FILE_OFFSET_BITS])
105m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES])
106m4trace:configure.ac:27: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */
107#undef _LARGE_FILES])
108m4trace:configure.ac:35: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_PROGRAM_FALLBACK])
109m4trace:configure.ac:38: -1- AC_SUBST([LOGIN_PROGRAM_FALLBACK], [$ac_cv_path_LOGIN_PROGRAM_FALLBACK])
110m4trace:configure.ac:40: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_PROGRAM_FALLBACK])
111m4trace:configure.ac:47: -1- AC_SUBST([LD])
112m4trace:configure.ac:49: -1- AC_C_INLINE
113m4trace:configure.ac:49: -1- AC_DEFINE_TRACE_LITERAL([inline])
114m4trace:configure.ac:49: -1- AH_OUTPUT([inline], [/* Define as \`__inline' if that's what the C compiler calls it, or to nothing
115 if it is not supported. */
116#undef inline])
117m4trace:configure.ac:49: -1- AC_DEFINE_TRACE_LITERAL([inline])
118m4trace:configure.ac:79: -1- AC_DEFINE_TRACE_LITERAL([WITH_AIXAUTHENTICATE])
119m4trace:configure.ac:79: -1- AC_CHECK_LIB([s], [authenticate], [ AC_DEFINE(WITH_AIXAUTHENTICATE)
120 LIBS="$LIBS -ls"
121 ])
122m4trace:configure.ac:79: -1- AC_DEFINE_TRACE_LITERAL([WITH_AIXAUTHENTICATE])
123m4trace:configure.ac:80: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_GETADDRINFO])
124m4trace:configure.ac:81: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_REALPATH])
125m4trace:configure.ac:83: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
126m4trace:configure.ac:84: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
127m4trace:configure.ac:85: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
128m4trace:configure.ac:86: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_PS_PADDING])
129m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CYGWIN])
130m4trace:configure.ac:92: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
131m4trace:configure.ac:93: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
132m4trace:configure.ac:94: -1- AC_DEFINE_TRACE_LITERAL([IPV4_DEFAULT])
133m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
134m4trace:configure.ac:96: -1- AC_DEFINE_TRACE_LITERAL([NO_X11_UNIX_SOCKETS])
135m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([NO_IPPORT_RESERVED_CONCEPT])
136m4trace:configure.ac:98: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
137m4trace:configure.ac:99: -1- AC_DEFINE_TRACE_LITERAL([SETGROUPS_NOOP])
138m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
139m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_GETADDRINFO])
140m4trace:configure.ac:122: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
141m4trace:configure.ac:123: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
142m4trace:configure.ac:124: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
143m4trace:configure.ac:125: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
144m4trace:configure.ac:126: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
145m4trace:configure.ac:127: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
146m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
147m4trace:configure.ac:130: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
148echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
149 { (exit 1); exit 1; }; }])
150m4trace:configure.ac:130: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the \`xnet' library (-lxnet). */
151#undef HAVE_LIBXNET])
152m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
153m4trace:configure.ac:139: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
154m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
155m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
156m4trace:configure.ac:142: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
157m4trace:configure.ac:143: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
158m4trace:configure.ac:144: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
159m4trace:configure.ac:146: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
160echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
161 { (exit 1); exit 1; }; }])
162m4trace:configure.ac:146: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the \`xnet' library (-lxnet). */
163#undef HAVE_LIBXNET])
164m4trace:configure.ac:146: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
165m4trace:configure.ac:151: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
166m4trace:configure.ac:152: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
167m4trace:configure.ac:153: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
168m4trace:configure.ac:154: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
169m4trace:configure.ac:155: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
170m4trace:configure.ac:156: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
171m4trace:configure.ac:157: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
172m4trace:configure.ac:159: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
173echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
174 { (exit 1); exit 1; }; }])
175m4trace:configure.ac:159: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the \`xnet' library (-lxnet). */
176#undef HAVE_LIBXNET])
177m4trace:configure.ac:159: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
178m4trace:configure.ac:165: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_INET_NTOA])
179m4trace:configure.ac:166: -1- AC_DEFINE_TRACE_LITERAL([WITH_ABBREV_NO_TTY])
180m4trace:configure.ac:172: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_ARRAY])
181m4trace:configure.ac:173: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_PROJECT])
182m4trace:configure.ac:174: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_AUDIT])
183m4trace:configure.ac:175: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_JOBS])
184m4trace:configure.ac:176: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_INET_NTOA])
185m4trace:configure.ac:177: -1- AC_DEFINE_TRACE_LITERAL([WITH_ABBREV_NO_TTY])
186m4trace:configure.ac:182: -1- AC_DEFINE_TRACE_LITERAL([DONT_TRY_OTHER_AF])
187m4trace:configure.ac:183: -1- AC_DEFINE_TRACE_LITERAL([PAM_TTY_KLUDGE])
188m4trace:configure.ac:184: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
189m4trace:configure.ac:185: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_PS_PADDING])
190m4trace:configure.ac:189: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NEWS4])
191m4trace:configure.ac:204: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NEXT])
192m4trace:configure.ac:205: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_REALPATH])
193m4trace:configure.ac:206: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
194m4trace:configure.ac:207: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SAVED_UIDS])
195m4trace:configure.ac:215: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
196m4trace:configure.ac:216: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
197m4trace:configure.ac:217: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_TERM])
198m4trace:configure.ac:218: -1- AC_DEFINE_TRACE_LITERAL([PAM_TTY_KLUDGE])
199m4trace:configure.ac:219: -1- AC_DEFINE_TRACE_LITERAL([STREAMS_PUSH_ACQUIRES_CTTY])
200m4trace:configure.ac:226: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
201m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
202m4trace:configure.ac:234: -1- AC_CHECK_FUNCS([getpwanam])
203m4trace:configure.ac:234: -1- AH_OUTPUT([HAVE_GETPWANAM], [/* Define to 1 if you have the \`getpwanam' function. */
204#undef HAVE_GETPWANAM])
205m4trace:configure.ac:235: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
206m4trace:configure.ac:239: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
207m4trace:configure.ac:245: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
208m4trace:configure.ac:252: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
209m4trace:configure.ac:253: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
210m4trace:configure.ac:261: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
211m4trace:configure.ac:266: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
212m4trace:configure.ac:278: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SYS_TERMIO_H])
213m4trace:configure.ac:279: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
214m4trace:configure.ac:280: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
215m4trace:configure.ac:281: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
216m4trace:configure.ac:282: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SAVED_UIDS])
217m4trace:configure.ac:283: -1- AC_CHECK_FUNCS([getluid setluid])
218m4trace:configure.ac:283: -1- AH_OUTPUT([HAVE_GETLUID], [/* Define to 1 if you have the \`getluid' function. */
219#undef HAVE_GETLUID])
220m4trace:configure.ac:283: -1- AH_OUTPUT([HAVE_SETLUID], [/* Define to 1 if you have the \`setluid' function. */
221#undef HAVE_SETLUID])
222m4trace:configure.ac:295: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
223m4trace:configure.ac:296: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
224m4trace:configure.ac:297: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
225m4trace:configure.ac:298: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
226m4trace:configure.ac:299: -1- AC_CHECK_FUNCS([getluid setluid])
227m4trace:configure.ac:299: -1- AH_OUTPUT([HAVE_GETLUID], [/* Define to 1 if you have the \`getluid' function. */
228#undef HAVE_GETLUID])
229m4trace:configure.ac:299: -1- AH_OUTPUT([HAVE_SETLUID], [/* Define to 1 if you have the \`setluid' function. */
230#undef HAVE_SETLUID])
231m4trace:configure.ac:303: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
232m4trace:configure.ac:304: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
233m4trace:configure.ac:310: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
234m4trace:configure.ac:311: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
235m4trace:configure.ac:312: -1- AC_DEFINE_TRACE_LITERAL([NO_SSH_LASTLOG])
236m4trace:configure.ac:332: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OSF_SIA])
237m4trace:configure.ac:333: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LOGIN])
238m4trace:configure.ac:334: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
239m4trace:configure.ac:340: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
240m4trace:configure.ac:344: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
241m4trace:configure.ac:345: -1- AC_DEFINE_TRACE_LITERAL([NO_X11_UNIX_SOCKETS])
242m4trace:configure.ac:346: -1- AC_DEFINE_TRACE_LITERAL([MISSING_NFDBITS])
243m4trace:configure.ac:347: -1- AC_DEFINE_TRACE_LITERAL([MISSING_HOWMANY])
244m4trace:configure.ac:348: -1- AC_DEFINE_TRACE_LITERAL([MISSING_FD_MASK])
245m4trace:configure.ac:396: -1- AC_CHECK_HEADERS([bstring.h crypt.h endian.h floatingpoint.h \
246 getopt.h glob.h ia.h lastlog.h libgen.h limits.h login.h \
247 login_cap.h maillock.h netdb.h netgroup.h \
248 netinet/in_systm.h paths.h pty.h readpassphrase.h \
249 rpc/types.h security/pam_appl.h shadow.h stddef.h stdint.h \
250 strings.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h \
251 sys/mman.h sys/pstat.h sys/select.h sys/stat.h \
252 sys/stropts.h sys/sysmacros.h sys/time.h sys/timers.h \
253 sys/un.h time.h tmpdir.h ttyent.h usersec.h \
254 util.h utime.h utmp.h utmpx.h])
255m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_BSTRING_H], [/* Define to 1 if you have the <bstring.h> header file. */
256#undef HAVE_BSTRING_H])
257m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_CRYPT_H], [/* Define to 1 if you have the <crypt.h> header file. */
258#undef HAVE_CRYPT_H])
259m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_ENDIAN_H], [/* Define to 1 if you have the <endian.h> header file. */
260#undef HAVE_ENDIAN_H])
261m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_FLOATINGPOINT_H], [/* Define to 1 if you have the <floatingpoint.h> header file. */
262#undef HAVE_FLOATINGPOINT_H])
263m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
264#undef HAVE_GETOPT_H])
265m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_GLOB_H], [/* Define to 1 if you have the <glob.h> header file. */
266#undef HAVE_GLOB_H])
267m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_IA_H], [/* Define to 1 if you have the <ia.h> header file. */
268#undef HAVE_IA_H])
269m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_LASTLOG_H], [/* Define to 1 if you have the <lastlog.h> header file. */
270#undef HAVE_LASTLOG_H])
271m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
272#undef HAVE_LIBGEN_H])
273m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
274#undef HAVE_LIMITS_H])
275m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_LOGIN_H], [/* Define to 1 if you have the <login.h> header file. */
276#undef HAVE_LOGIN_H])
277m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_LOGIN_CAP_H], [/* Define to 1 if you have the <login_cap.h> header file. */
278#undef HAVE_LOGIN_CAP_H])
279m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_MAILLOCK_H], [/* Define to 1 if you have the <maillock.h> header file. */
280#undef HAVE_MAILLOCK_H])
281m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
282#undef HAVE_NETDB_H])
283m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_NETGROUP_H], [/* Define to 1 if you have the <netgroup.h> header file. */
284#undef HAVE_NETGROUP_H])
285m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_NETINET_IN_SYSTM_H], [/* Define to 1 if you have the <netinet/in_systm.h> header file. */
286#undef HAVE_NETINET_IN_SYSTM_H])
287m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_PATHS_H], [/* Define to 1 if you have the <paths.h> header file. */
288#undef HAVE_PATHS_H])
289m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_PTY_H], [/* Define to 1 if you have the <pty.h> header file. */
290#undef HAVE_PTY_H])
291m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_READPASSPHRASE_H], [/* Define to 1 if you have the <readpassphrase.h> header file. */
292#undef HAVE_READPASSPHRASE_H])
293m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_RPC_TYPES_H], [/* Define to 1 if you have the <rpc/types.h> header file. */
294#undef HAVE_RPC_TYPES_H])
295m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SECURITY_PAM_APPL_H], [/* Define to 1 if you have the <security/pam_appl.h> header file. */
296#undef HAVE_SECURITY_PAM_APPL_H])
297m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SHADOW_H], [/* Define to 1 if you have the <shadow.h> header file. */
298#undef HAVE_SHADOW_H])
299m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */
300#undef HAVE_STDDEF_H])
301m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
302#undef HAVE_STDINT_H])
303m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
304#undef HAVE_STRINGS_H])
305m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_BITYPES_H], [/* Define to 1 if you have the <sys/bitypes.h> header file. */
306#undef HAVE_SYS_BITYPES_H])
307m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_BSDTTY_H], [/* Define to 1 if you have the <sys/bsdtty.h> header file. */
308#undef HAVE_SYS_BSDTTY_H])
309m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_CDEFS_H], [/* Define to 1 if you have the <sys/cdefs.h> header file. */
310#undef HAVE_SYS_CDEFS_H])
311m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_MMAN_H], [/* Define to 1 if you have the <sys/mman.h> header file. */
312#undef HAVE_SYS_MMAN_H])
313m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_PSTAT_H], [/* Define to 1 if you have the <sys/pstat.h> header file. */
314#undef HAVE_SYS_PSTAT_H])
315m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */
316#undef HAVE_SYS_SELECT_H])
317m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
318#undef HAVE_SYS_STAT_H])
319m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_STROPTS_H], [/* Define to 1 if you have the <sys/stropts.h> header file. */
320#undef HAVE_SYS_STROPTS_H])
321m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_SYSMACROS_H], [/* Define to 1 if you have the <sys/sysmacros.h> header file. */
322#undef HAVE_SYS_SYSMACROS_H])
323m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
324#undef HAVE_SYS_TIME_H])
325m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_TIMERS_H], [/* Define to 1 if you have the <sys/timers.h> header file. */
326#undef HAVE_SYS_TIMERS_H])
327m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_UN_H], [/* Define to 1 if you have the <sys/un.h> header file. */
328#undef HAVE_SYS_UN_H])
329m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the <time.h> header file. */
330#undef HAVE_TIME_H])
331m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_TMPDIR_H], [/* Define to 1 if you have the <tmpdir.h> header file. */
332#undef HAVE_TMPDIR_H])
333m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_TTYENT_H], [/* Define to 1 if you have the <ttyent.h> header file. */
334#undef HAVE_TTYENT_H])
335m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_USERSEC_H], [/* Define to 1 if you have the <usersec.h> header file. */
336#undef HAVE_USERSEC_H])
337m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_UTIL_H], [/* Define to 1 if you have the <util.h> header file. */
338#undef HAVE_UTIL_H])
339m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_UTIME_H], [/* Define to 1 if you have the <utime.h> header file. */
340#undef HAVE_UTIME_H])
341m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_UTMP_H], [/* Define to 1 if you have the <utmp.h> header file. */
342#undef HAVE_UTMP_H])
343m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_UTMPX_H], [/* Define to 1 if you have the <utmpx.h> header file. */
344#undef HAVE_UTMPX_H])
345m4trace:configure.ac:396: -1- AC_HEADER_STDC
346m4trace:configure.ac:396: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
347m4trace:configure.ac:396: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
348#undef STDC_HEADERS])
349m4trace:configure.ac:396: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
350 inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
351m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
352#undef HAVE_SYS_TYPES_H])
353m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
354#undef HAVE_SYS_STAT_H])
355m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
356#undef HAVE_STDLIB_H])
357m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
358#undef HAVE_STRING_H])
359m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
360#undef HAVE_MEMORY_H])
361m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
362#undef HAVE_STRINGS_H])
363m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
364#undef HAVE_INTTYPES_H])
365m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
366#undef HAVE_STDINT_H])
367m4trace:configure.ac:396: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
368#undef HAVE_UNISTD_H])
369m4trace:configure.ac:399: -2- AC_CHECK_LIB([nsl], [yp_match])
370m4trace:configure.ac:399: -2- AH_OUTPUT([HAVE_LIBNSL], [/* Define to 1 if you have the \`nsl' library (-lnsl). */
371#undef HAVE_LIBNSL])
372m4trace:configure.ac:399: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBNSL])
373m4trace:configure.ac:400: -2- AC_CHECK_LIB([socket], [setsockopt])
374m4trace:configure.ac:400: -2- AH_OUTPUT([HAVE_LIBSOCKET], [/* Define to 1 if you have the \`socket' library (-lsocket). */
375#undef HAVE_LIBSOCKET])
376m4trace:configure.ac:400: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET])
377m4trace:configure.ac:405: -1- AC_CHECK_LIB([rpc], [innetgr], [LIBS="-lrpc -lyp -lrpc $LIBS" ], [], [-lyp -lrpc])
378m4trace:configure.ac:410: -2- AC_CHECK_LIB([gen], [getspnam], [LIBS="$LIBS -lgen"])
379m4trace:configure.ac:452: -1- AC_CHECK_LIB([z], [deflate], [], [{ { echo "$as_me:$LINENO: error: *** zlib missing - please install first or check config.log ***" >&5
380echo "$as_me: error: *** zlib missing - please install first or check config.log ***" >&2;}
381 { (exit 1); exit 1; }; }])
382m4trace:configure.ac:452: -1- AH_OUTPUT([HAVE_LIBZ], [/* Define to 1 if you have the \`z' library (-lz). */
383#undef HAVE_LIBZ])
384m4trace:configure.ac:452: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBZ])
385m4trace:configure.ac:457: -1- AC_CHECK_LIB([resolv], [strcasecmp], [LIBS="$LIBS -lresolv"])
386m4trace:configure.ac:461: -1- AC_CHECK_LIB([c89], [utimes], [AC_DEFINE(HAVE_UTIMES)
387 LIBS="$LIBS -lc89"])
388m4trace:configure.ac:461: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UTIMES])
389m4trace:configure.ac:464: -1- AC_CHECK_HEADERS([libutil.h])
390m4trace:configure.ac:464: -1- AH_OUTPUT([HAVE_LIBUTIL_H], [/* Define to 1 if you have the <libutil.h> header file. */
391#undef HAVE_LIBUTIL_H])
392m4trace:configure.ac:465: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOGIN])
393m4trace:configure.ac:466: -1- AC_CHECK_FUNCS([logout updwtmp logwtmp])
394m4trace:configure.ac:466: -1- AH_OUTPUT([HAVE_LOGOUT], [/* Define to 1 if you have the \`logout' function. */
395#undef HAVE_LOGOUT])
396m4trace:configure.ac:466: -1- AH_OUTPUT([HAVE_UPDWTMP], [/* Define to 1 if you have the \`updwtmp' function. */
397#undef HAVE_UPDWTMP])
398m4trace:configure.ac:466: -1- AH_OUTPUT([HAVE_LOGWTMP], [/* Define to 1 if you have the \`logwtmp' function. */
399#undef HAVE_LOGWTMP])
400m4trace:configure.ac:468: -1- AC_FUNC_STRFTIME
401m4trace:configure.ac:468: -1- AC_CHECK_FUNCS([strftime], [], [# strftime is in -lintl on SCO UNIX.
402AC_CHECK_LIB(intl, strftime,
403 [AC_DEFINE(HAVE_STRFTIME)
404LIBS="-lintl $LIBS"])])
405m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the \`strftime' function. */
406#undef HAVE_STRFTIME])
407m4trace:configure.ac:468: -1- AC_CHECK_LIB([intl], [strftime], [AC_DEFINE(HAVE_STRFTIME)
408LIBS="-lintl $LIBS"])
409m4trace:configure.ac:468: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME])
410m4trace:configure.ac:486: -1- AC_DEFINE_TRACE_LITERAL([GLOB_HAS_ALTDIRFUNC])
411m4trace:configure.ac:502: -1- AC_DEFINE_TRACE_LITERAL([GLOB_HAS_GL_MATCHC])
412m4trace:configure.ac:516: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_ONE_BYTE_DIRENT_D_NAME])
413m4trace:configure.ac:549: -1- AC_DEFINE_TRACE_LITERAL([SKEY])
414m4trace:configure.ac:603: -1- AC_DEFINE_TRACE_LITERAL([LIBWRAP])
415m4trace:configure.ac:603: -1- AC_SUBST([LIBWRAP])
416m4trace:configure.ac:618: -1- AC_CHECK_FUNCS([\
417 arc4random __b64_ntop b64_ntop __b64_pton b64_pton basename bcopy \
418 bindresvport_sa clock fchmod fchown freeaddrinfo futimes \
419 gai_strerror getaddrinfo getcwd getgrouplist getnameinfo getopt \
420 getpeereid _getpty getrlimit getrusage getttyent glob inet_aton \
421 inet_ntoa inet_ntop innetgr login_getcapbool md5_crypt memmove \
422 mkdtemp mmap ngetaddrinfo nsleep ogetaddrinfo openpty pstat \
423 readpassphrase realpath recvmsg rresvport_af sendmsg setdtablesize \
424 setegid setenv seteuid setgroups setlogin setpcred setproctitle \
425 setresgid setreuid setrlimit setsid setvbuf sigaction sigvec \
426 snprintf socketpair strerror strlcat strlcpy strmode strnvis \
427 sysconf tcgetpgrp truncate utimes vhangup vsnprintf waitpid \
428])
429m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_ARC4RANDOM], [/* Define to 1 if you have the \`arc4random' function. */
430#undef HAVE_ARC4RANDOM])
431m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE___B64_NTOP], [/* Define to 1 if you have the \`__b64_ntop' function. */
432#undef HAVE___B64_NTOP])
433m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_B64_NTOP], [/* Define to 1 if you have the \`b64_ntop' function. */
434#undef HAVE_B64_NTOP])
435m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE___B64_PTON], [/* Define to 1 if you have the \`__b64_pton' function. */
436#undef HAVE___B64_PTON])
437m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_B64_PTON], [/* Define to 1 if you have the \`b64_pton' function. */
438#undef HAVE_B64_PTON])
439m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_BASENAME], [/* Define to 1 if you have the \`basename' function. */
440#undef HAVE_BASENAME])
441m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the \`bcopy' function. */
442#undef HAVE_BCOPY])
443m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_BINDRESVPORT_SA], [/* Define to 1 if you have the \`bindresvport_sa' function. */
444#undef HAVE_BINDRESVPORT_SA])
445m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_CLOCK], [/* Define to 1 if you have the \`clock' function. */
446#undef HAVE_CLOCK])
447m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_FCHMOD], [/* Define to 1 if you have the \`fchmod' function. */
448#undef HAVE_FCHMOD])
449m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_FCHOWN], [/* Define to 1 if you have the \`fchown' function. */
450#undef HAVE_FCHOWN])
451m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_FREEADDRINFO], [/* Define to 1 if you have the \`freeaddrinfo' function. */
452#undef HAVE_FREEADDRINFO])
453m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_FUTIMES], [/* Define to 1 if you have the \`futimes' function. */
454#undef HAVE_FUTIMES])
455m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GAI_STRERROR], [/* Define to 1 if you have the \`gai_strerror' function. */
456#undef HAVE_GAI_STRERROR])
457m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the \`getaddrinfo' function. */
458#undef HAVE_GETADDRINFO])
459m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the \`getcwd' function. */
460#undef HAVE_GETCWD])
461m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETGROUPLIST], [/* Define to 1 if you have the \`getgrouplist' function. */
462#undef HAVE_GETGROUPLIST])
463m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETNAMEINFO], [/* Define to 1 if you have the \`getnameinfo' function. */
464#undef HAVE_GETNAMEINFO])
465m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETOPT], [/* Define to 1 if you have the \`getopt' function. */
466#undef HAVE_GETOPT])
467m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETPEEREID], [/* Define to 1 if you have the \`getpeereid' function. */
468#undef HAVE_GETPEEREID])
469m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE__GETPTY], [/* Define to 1 if you have the \`_getpty' function. */
470#undef HAVE__GETPTY])
471m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the \`getrlimit' function. */
472#undef HAVE_GETRLIMIT])
473m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the \`getrusage' function. */
474#undef HAVE_GETRUSAGE])
475m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GETTTYENT], [/* Define to 1 if you have the \`getttyent' function. */
476#undef HAVE_GETTTYENT])
477m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_GLOB], [/* Define to 1 if you have the \`glob' function. */
478#undef HAVE_GLOB])
479m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the \`inet_aton' function. */
480#undef HAVE_INET_ATON])
481m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_INET_NTOA], [/* Define to 1 if you have the \`inet_ntoa' function. */
482#undef HAVE_INET_NTOA])
483m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_INET_NTOP], [/* Define to 1 if you have the \`inet_ntop' function. */
484#undef HAVE_INET_NTOP])
485m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_INNETGR], [/* Define to 1 if you have the \`innetgr' function. */
486#undef HAVE_INNETGR])
487m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_LOGIN_GETCAPBOOL], [/* Define to 1 if you have the \`login_getcapbool' function. */
488#undef HAVE_LOGIN_GETCAPBOOL])
489m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_MD5_CRYPT], [/* Define to 1 if you have the \`md5_crypt' function. */
490#undef HAVE_MD5_CRYPT])
491m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the \`memmove' function. */
492#undef HAVE_MEMMOVE])
493m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_MKDTEMP], [/* Define to 1 if you have the \`mkdtemp' function. */
494#undef HAVE_MKDTEMP])
495m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have the \`mmap' function. */
496#undef HAVE_MMAP])
497m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_NGETADDRINFO], [/* Define to 1 if you have the \`ngetaddrinfo' function. */
498#undef HAVE_NGETADDRINFO])
499m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_NSLEEP], [/* Define to 1 if you have the \`nsleep' function. */
500#undef HAVE_NSLEEP])
501m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_OGETADDRINFO], [/* Define to 1 if you have the \`ogetaddrinfo' function. */
502#undef HAVE_OGETADDRINFO])
503m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_OPENPTY], [/* Define to 1 if you have the \`openpty' function. */
504#undef HAVE_OPENPTY])
505m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_PSTAT], [/* Define to 1 if you have the \`pstat' function. */
506#undef HAVE_PSTAT])
507m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_READPASSPHRASE], [/* Define to 1 if you have the \`readpassphrase' function. */
508#undef HAVE_READPASSPHRASE])
509m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_REALPATH], [/* Define to 1 if you have the \`realpath' function. */
510#undef HAVE_REALPATH])
511m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_RECVMSG], [/* Define to 1 if you have the \`recvmsg' function. */
512#undef HAVE_RECVMSG])
513m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_RRESVPORT_AF], [/* Define to 1 if you have the \`rresvport_af' function. */
514#undef HAVE_RRESVPORT_AF])
515m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SENDMSG], [/* Define to 1 if you have the \`sendmsg' function. */
516#undef HAVE_SENDMSG])
517m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the \`setdtablesize' function. */
518#undef HAVE_SETDTABLESIZE])
519m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETEGID], [/* Define to 1 if you have the \`setegid' function. */
520#undef HAVE_SETEGID])
521m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the \`setenv' function. */
522#undef HAVE_SETENV])
523m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETEUID], [/* Define to 1 if you have the \`seteuid' function. */
524#undef HAVE_SETEUID])
525m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETGROUPS], [/* Define to 1 if you have the \`setgroups' function. */
526#undef HAVE_SETGROUPS])
527m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETLOGIN], [/* Define to 1 if you have the \`setlogin' function. */
528#undef HAVE_SETLOGIN])
529m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETPCRED], [/* Define to 1 if you have the \`setpcred' function. */
530#undef HAVE_SETPCRED])
531m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETPROCTITLE], [/* Define to 1 if you have the \`setproctitle' function. */
532#undef HAVE_SETPROCTITLE])
533m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETRESGID], [/* Define to 1 if you have the \`setresgid' function. */
534#undef HAVE_SETRESGID])
535m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETREUID], [/* Define to 1 if you have the \`setreuid' function. */
536#undef HAVE_SETREUID])
537m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETRLIMIT], [/* Define to 1 if you have the \`setrlimit' function. */
538#undef HAVE_SETRLIMIT])
539m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETSID], [/* Define to 1 if you have the \`setsid' function. */
540#undef HAVE_SETSID])
541m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the \`setvbuf' function. */
542#undef HAVE_SETVBUF])
543m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SIGACTION], [/* Define to 1 if you have the \`sigaction' function. */
544#undef HAVE_SIGACTION])
545m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SIGVEC], [/* Define to 1 if you have the \`sigvec' function. */
546#undef HAVE_SIGVEC])
547m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the \`snprintf' function. */
548#undef HAVE_SNPRINTF])
549m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SOCKETPAIR], [/* Define to 1 if you have the \`socketpair' function. */
550#undef HAVE_SOCKETPAIR])
551m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the \`strerror' function. */
552#undef HAVE_STRERROR])
553m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the \`strlcat' function. */
554#undef HAVE_STRLCAT])
555m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the \`strlcpy' function. */
556#undef HAVE_STRLCPY])
557m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_STRMODE], [/* Define to 1 if you have the \`strmode' function. */
558#undef HAVE_STRMODE])
559m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_STRNVIS], [/* Define to 1 if you have the \`strnvis' function. */
560#undef HAVE_STRNVIS])
561m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the \`sysconf' function. */
562#undef HAVE_SYSCONF])
563m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the \`tcgetpgrp' function. */
564#undef HAVE_TCGETPGRP])
565m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_TRUNCATE], [/* Define to 1 if you have the \`truncate' function. */
566#undef HAVE_TRUNCATE])
567m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_UTIMES], [/* Define to 1 if you have the \`utimes' function. */
568#undef HAVE_UTIMES])
569m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_VHANGUP], [/* Define to 1 if you have the \`vhangup' function. */
570#undef HAVE_VHANGUP])
571m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the \`vsnprintf' function. */
572#undef HAVE_VSNPRINTF])
573m4trace:configure.ac:618: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the \`waitpid' function. */
574#undef HAVE_WAITPID])
575m4trace:configure.ac:620: -2- AC_DEFINE_TRACE_LITERAL([HAVE_NANOSLEEP])
576m4trace:configure.ac:623: -1- AC_CHECK_FUNCS([strsep])
577m4trace:configure.ac:623: -1- AH_OUTPUT([HAVE_STRSEP], [/* Define to 1 if you have the \`strsep' function. */
578#undef HAVE_STRSEP])
579m4trace:configure.ac:660: -1- AC_CHECK_FUNCS([dirname], [AC_CHECK_HEADERS(libgen.h) ], [
580 AC_CHECK_LIB(gen, dirname,[
581 AC_CACHE_CHECK([for broken dirname],
582 ac_cv_have_broken_dirname, [
583 save_LIBS="$LIBS"
584 LIBS="$LIBS -lgen"
585 AC_TRY_RUN(
586 [
587#include <libgen.h>
588#include <string.h>
589
590int main(int argc, char **argv) {
591 char *s, buf[32];
592
593 strncpy(buf,"/etc", 32);
594 s = dirname(buf);
595 if (!s || strncmp(s, "/", 32) != 0) {
596 exit(1);
597 } else {
598 exit(0);
599 }
600}
601 ],
602 [ ac_cv_have_broken_dirname="no" ],
603 [ ac_cv_have_broken_dirname="yes" ]
604 )
605 LIBS="$save_LIBS"
606 ])
607 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
608 LIBS="$LIBS -lgen"
609 AC_DEFINE(HAVE_DIRNAME)
610 AC_CHECK_HEADERS(libgen.h)
611 fi
612 ])
613])
614m4trace:configure.ac:660: -1- AH_OUTPUT([HAVE_DIRNAME], [/* Define to 1 if you have the \`dirname' function. */
615#undef HAVE_DIRNAME])
616m4trace:configure.ac:660: -1- AC_CHECK_HEADERS([libgen.h])
617m4trace:configure.ac:660: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
618#undef HAVE_LIBGEN_H])
619m4trace:configure.ac:660: -1- AC_CHECK_LIB([gen], [dirname], [
620 AC_CACHE_CHECK([for broken dirname],
621 ac_cv_have_broken_dirname, [
622 save_LIBS="$LIBS"
623 LIBS="$LIBS -lgen"
624 AC_TRY_RUN(
625 [
626#include <libgen.h>
627#include <string.h>
628
629int main(int argc, char **argv) {
630 char *s, buf[32];
631
632 strncpy(buf,"/etc", 32);
633 s = dirname(buf);
634 if (!s || strncmp(s, "/", 32) != 0) {
635 exit(1);
636 } else {
637 exit(0);
638 }
639}
640 ],
641 [ ac_cv_have_broken_dirname="no" ],
642 [ ac_cv_have_broken_dirname="yes" ]
643 )
644 LIBS="$save_LIBS"
645 ])
646 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
647 LIBS="$LIBS -lgen"
648 AC_DEFINE(HAVE_DIRNAME)
649 AC_CHECK_HEADERS(libgen.h)
650 fi
651 ])
652m4trace:configure.ac:660: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DIRNAME])
653m4trace:configure.ac:660: -1- AC_CHECK_HEADERS([libgen.h])
654m4trace:configure.ac:660: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
655#undef HAVE_LIBGEN_H])
656m4trace:configure.ac:663: -1- AC_CHECK_FUNCS([gettimeofday time])
657m4trace:configure.ac:663: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the \`gettimeofday' function. */
658#undef HAVE_GETTIMEOFDAY])
659m4trace:configure.ac:663: -1- AH_OUTPUT([HAVE_TIME], [/* Define to 1 if you have the \`time' function. */
660#undef HAVE_TIME])
661m4trace:configure.ac:665: -1- AC_CHECK_FUNCS([endutent getutent getutid getutline pututline setutent])
662m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_ENDUTENT], [/* Define to 1 if you have the \`endutent' function. */
663#undef HAVE_ENDUTENT])
664m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_GETUTENT], [/* Define to 1 if you have the \`getutent' function. */
665#undef HAVE_GETUTENT])
666m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_GETUTID], [/* Define to 1 if you have the \`getutid' function. */
667#undef HAVE_GETUTID])
668m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_GETUTLINE], [/* Define to 1 if you have the \`getutline' function. */
669#undef HAVE_GETUTLINE])
670m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_PUTUTLINE], [/* Define to 1 if you have the \`pututline' function. */
671#undef HAVE_PUTUTLINE])
672m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_SETUTENT], [/* Define to 1 if you have the \`setutent' function. */
673#undef HAVE_SETUTENT])
674m4trace:configure.ac:666: -1- AC_CHECK_FUNCS([utmpname])
675m4trace:configure.ac:666: -1- AH_OUTPUT([HAVE_UTMPNAME], [/* Define to 1 if you have the \`utmpname' function. */
676#undef HAVE_UTMPNAME])
677m4trace:configure.ac:668: -1- AC_CHECK_FUNCS([endutxent getutxent getutxid getutxline pututxline ])
678m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_ENDUTXENT], [/* Define to 1 if you have the \`endutxent' function. */
679#undef HAVE_ENDUTXENT])
680m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_GETUTXENT], [/* Define to 1 if you have the \`getutxent' function. */
681#undef HAVE_GETUTXENT])
682m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_GETUTXID], [/* Define to 1 if you have the \`getutxid' function. */
683#undef HAVE_GETUTXID])
684m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_GETUTXLINE], [/* Define to 1 if you have the \`getutxline' function. */
685#undef HAVE_GETUTXLINE])
686m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_PUTUTXLINE], [/* Define to 1 if you have the \`pututxline' function. */
687#undef HAVE_PUTUTXLINE])
688m4trace:configure.ac:669: -1- AC_CHECK_FUNCS([setutxent utmpxname])
689m4trace:configure.ac:669: -1- AH_OUTPUT([HAVE_SETUTXENT], [/* Define to 1 if you have the \`setutxent' function. */
690#undef HAVE_SETUTXENT])
691m4trace:configure.ac:669: -1- AH_OUTPUT([HAVE_UTMPXNAME], [/* Define to 1 if you have the \`utmpxname' function. */
692#undef HAVE_UTMPXNAME])
693m4trace:configure.ac:674: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DAEMON])
694m4trace:configure.ac:674: -1- AC_CHECK_LIB([bsd], [daemon], [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])
695m4trace:configure.ac:674: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DAEMON])
696m4trace:configure.ac:679: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
697m4trace:configure.ac:679: -1- AC_CHECK_LIB([ucb], [getpagesize], [LIBS="$LIBS -lucb"; AC_DEFINE(HAVE_GETPAGESIZE)])
698m4trace:configure.ac:679: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
699m4trace:configure.ac:695: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SNPRINTF])
700m4trace:configure.ac:721: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRICT_MKSTEMP])
701m4trace:configure.ac:721: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRICT_MKSTEMP])
702m4trace:configure.ac:724: -1- AC_FUNC_GETPGRP
703m4trace:configure.ac:724: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID])
704m4trace:configure.ac:724: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the \`getpgrp' function requires zero arguments. */
705#undef GETPGRP_VOID])
706m4trace:configure.ac:752: -1- AC_CHECK_LIB([dl], [dlopen], [], [])
707m4trace:configure.ac:752: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the \`dl' library (-ldl). */
708#undef HAVE_LIBDL])
709m4trace:configure.ac:752: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL])
710m4trace:configure.ac:752: -1- AC_CHECK_LIB([pam], [pam_set_item], [], [{ { echo "$as_me:$LINENO: error: *** libpam missing" >&5
711echo "$as_me: error: *** libpam missing" >&2;}
712 { (exit 1); exit 1; }; }])
713m4trace:configure.ac:752: -1- AH_OUTPUT([HAVE_LIBPAM], [/* Define to 1 if you have the \`pam' library (-lpam). */
714#undef HAVE_LIBPAM])
715m4trace:configure.ac:752: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPAM])
716m4trace:configure.ac:752: -1- AC_CHECK_FUNCS([pam_getenvlist])
717m4trace:configure.ac:752: -1- AH_OUTPUT([HAVE_PAM_GETENVLIST], [/* Define to 1 if you have the \`pam_getenvlist' function. */
718#undef HAVE_PAM_GETENVLIST])
719m4trace:configure.ac:752: -1- AC_DEFINE_TRACE_LITERAL([USE_PAM])
720m4trace:configure.ac:752: -1- AC_SUBST([LIBPAM])
721m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OLD_PAM])
722m4trace:configure.ac:776: -1- AC_CHECK_LIB([crypt], [crypt])
723m4trace:configure.ac:776: -1- AH_OUTPUT([HAVE_LIBCRYPT], [/* Define to 1 if you have the \`crypt' library (-lcrypt). */
724#undef HAVE_LIBCRYPT])
725m4trace:configure.ac:776: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBCRYPT])
726m4trace:configure.ac:808: -2- AC_DEFINE_TRACE_LITERAL([HAVE_OPENSSL])
727m4trace:configure.ac:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_OPENSSL])
728m4trace:configure.ac:910: -1- AC_CHECK_LIB([crypt], [crypt], [LIBS="$LIBS -lcrypt"])
729m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([OPENSSL_PRNG_ONLY])
730m4trace:configure.ac:966: -1- AC_SUBST([INSTALL_SSH_RAND_HELPER])
731m4trace:configure.ac:989: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_PORT])
732m4trace:configure.ac:1039: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_SOCKET])
733m4trace:configure.ac:1039: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_SOCKET])
734m4trace:configure.ac:1051: -1- AC_DEFINE_TRACE_LITERAL([ENTROPY_TIMEOUT_MSEC])
735m4trace:configure.ac:1062: -1- AC_DEFINE_TRACE_LITERAL([SSH_PRIVSEP_USER])
736m4trace:configure.ac:1063: -1- AC_SUBST([SSH_PRIVSEP_USER])
737m4trace:configure.ac:1080: -1- AC_SUBST([PROG_LS], [$ac_cv_path_PROG_LS])
738m4trace:configure.ac:1080: -1- AC_SUBST([PROG_LS])
739m4trace:configure.ac:1081: -1- AC_SUBST([PROG_NETSTAT], [$ac_cv_path_PROG_NETSTAT])
740m4trace:configure.ac:1081: -1- AC_SUBST([PROG_NETSTAT])
741m4trace:configure.ac:1082: -1- AC_SUBST([PROG_ARP], [$ac_cv_path_PROG_ARP])
742m4trace:configure.ac:1082: -1- AC_SUBST([PROG_ARP])
743m4trace:configure.ac:1083: -1- AC_SUBST([PROG_IFCONFIG], [$ac_cv_path_PROG_IFCONFIG])
744m4trace:configure.ac:1083: -1- AC_SUBST([PROG_IFCONFIG])
745m4trace:configure.ac:1084: -1- AC_SUBST([PROG_JSTAT], [$ac_cv_path_PROG_JSTAT])
746m4trace:configure.ac:1084: -1- AC_SUBST([PROG_JSTAT])
747m4trace:configure.ac:1085: -1- AC_SUBST([PROG_PS], [$ac_cv_path_PROG_PS])
748m4trace:configure.ac:1085: -1- AC_SUBST([PROG_PS])
749m4trace:configure.ac:1086: -1- AC_SUBST([PROG_SAR], [$ac_cv_path_PROG_SAR])
750m4trace:configure.ac:1086: -1- AC_SUBST([PROG_SAR])
751m4trace:configure.ac:1087: -1- AC_SUBST([PROG_W], [$ac_cv_path_PROG_W])
752m4trace:configure.ac:1087: -1- AC_SUBST([PROG_W])
753m4trace:configure.ac:1088: -1- AC_SUBST([PROG_WHO], [$ac_cv_path_PROG_WHO])
754m4trace:configure.ac:1088: -1- AC_SUBST([PROG_WHO])
755m4trace:configure.ac:1089: -1- AC_SUBST([PROG_LAST], [$ac_cv_path_PROG_LAST])
756m4trace:configure.ac:1089: -1- AC_SUBST([PROG_LAST])
757m4trace:configure.ac:1090: -1- AC_SUBST([PROG_LASTLOG], [$ac_cv_path_PROG_LASTLOG])
758m4trace:configure.ac:1090: -1- AC_SUBST([PROG_LASTLOG])
759m4trace:configure.ac:1091: -1- AC_SUBST([PROG_DF], [$ac_cv_path_PROG_DF])
760m4trace:configure.ac:1091: -1- AC_SUBST([PROG_DF])
761m4trace:configure.ac:1092: -1- AC_SUBST([PROG_VMSTAT], [$ac_cv_path_PROG_VMSTAT])
762m4trace:configure.ac:1092: -1- AC_SUBST([PROG_VMSTAT])
763m4trace:configure.ac:1093: -1- AC_SUBST([PROG_UPTIME], [$ac_cv_path_PROG_UPTIME])
764m4trace:configure.ac:1093: -1- AC_SUBST([PROG_UPTIME])
765m4trace:configure.ac:1094: -1- AC_SUBST([PROG_IPCS], [$ac_cv_path_PROG_IPCS])
766m4trace:configure.ac:1094: -1- AC_SUBST([PROG_IPCS])
767m4trace:configure.ac:1095: -1- AC_SUBST([PROG_TAIL], [$ac_cv_path_PROG_TAIL])
768m4trace:configure.ac:1095: -1- AC_SUBST([PROG_TAIL])
769m4trace:configure.ac:1112: -1- AC_SUBST([INSTALL_SSH_PRNG_CMDS])
770m4trace:configure.ac:1121: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR])
771m4trace:configure.ac:1121: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a \`char', as computed by sizeof. */
772#undef SIZEOF_CHAR])
773m4trace:configure.ac:1122: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT_INT])
774m4trace:configure.ac:1122: -1- AH_OUTPUT([SIZEOF_SHORT_INT], [/* The size of a \`short int', as computed by sizeof. */
775#undef SIZEOF_SHORT_INT])
776m4trace:configure.ac:1123: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT])
777m4trace:configure.ac:1123: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a \`int', as computed by sizeof. */
778#undef SIZEOF_INT])
779m4trace:configure.ac:1124: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_INT])
780m4trace:configure.ac:1124: -1- AH_OUTPUT([SIZEOF_LONG_INT], [/* The size of a \`long int', as computed by sizeof. */
781#undef SIZEOF_LONG_INT])
782m4trace:configure.ac:1125: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG_INT])
783m4trace:configure.ac:1125: -1- AH_OUTPUT([SIZEOF_LONG_LONG_INT], [/* The size of a \`long long int', as computed by sizeof. */
784#undef SIZEOF_LONG_LONG_INT])
785m4trace:configure.ac:1142: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT])
786m4trace:configure.ac:1155: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
787m4trace:configure.ac:1171: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
788m4trace:configure.ac:1192: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INT64_T])
789m4trace:configure.ac:1204: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
790m4trace:configure.ac:1218: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
791m4trace:configure.ac:1230: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT64_T])
792m4trace:configure.ac:1244: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT64_T])
793m4trace:configure.ac:1259: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTXX_T])
794m4trace:configure.ac:1273: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTXX_T])
795m4trace:configure.ac:1295: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
796m4trace:configure.ac:1295: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
797m4trace:configure.ac:1310: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_CHAR])
798m4trace:configure.ac:1313: -1- AC_DEFINE_TRACE_LITERAL([socklen_t])
799m4trace:configure.ac:1313: -1- AH_OUTPUT([socklen_t], [/* type to use in place of socklen_t if not defined */
800#undef socklen_t])
801m4trace:configure.ac:1315: -1- AC_CHECK_TYPES([sig_atomic_t], [], [], [#include <signal.h>])
802m4trace:configure.ac:1315: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIG_ATOMIC_T])
803m4trace:configure.ac:1315: -1- AH_OUTPUT([HAVE_SIG_ATOMIC_T], [/* Define to 1 if the system has the type \`sig_atomic_t'. */
804#undef HAVE_SIG_ATOMIC_T])
805m4trace:configure.ac:1328: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIZE_T])
806m4trace:configure.ac:1342: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SSIZE_T])
807m4trace:configure.ac:1356: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_T])
808m4trace:configure.ac:1381: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SA_FAMILY_T])
809m4trace:configure.ac:1395: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PID_T])
810m4trace:configure.ac:1409: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MODE_T])
811m4trace:configure.ac:1425: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_SOCKADDR_STORAGE])
812m4trace:configure.ac:1440: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_SOCKADDR_IN6])
813m4trace:configure.ac:1455: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_IN6_ADDR])
814m4trace:configure.ac:1471: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_ADDRINFO])
815m4trace:configure.ac:1483: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEVAL])
816m4trace:configure.ac:1487: -1- AC_CHECK_TYPES([struct timespec])
817m4trace:configure.ac:1487: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC])
818m4trace:configure.ac:1487: -1- AH_OUTPUT([HAVE_STRUCT_TIMESPEC], [/* Define to 1 if the system has the type \`struct timespec'. */
819#undef HAVE_STRUCT_TIMESPEC])
820m4trace:configure.ac:1524: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SNPRINTF])
821m4trace:configure.ac:1528: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HOST_IN_UTMP])
822m4trace:configure.ac:1529: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HOST_IN_UTMPX])
823m4trace:configure.ac:1530: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYSLEN_IN_UTMPX])
824m4trace:configure.ac:1531: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PID_IN_UTMP])
825m4trace:configure.ac:1532: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TYPE_IN_UTMP])
826m4trace:configure.ac:1533: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TYPE_IN_UTMPX])
827m4trace:configure.ac:1534: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TV_IN_UTMP])
828m4trace:configure.ac:1535: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ID_IN_UTMP])
829m4trace:configure.ac:1536: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ID_IN_UTMPX])
830m4trace:configure.ac:1537: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_IN_UTMP])
831m4trace:configure.ac:1538: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_IN_UTMPX])
832m4trace:configure.ac:1539: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_V6_IN_UTMP])
833m4trace:configure.ac:1540: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_V6_IN_UTMPX])
834m4trace:configure.ac:1541: -1- AC_DEFINE_TRACE_LITERAL([HAVE_EXIT_IN_UTMP])
835m4trace:configure.ac:1542: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIME_IN_UTMP])
836m4trace:configure.ac:1543: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIME_IN_UTMPX])
837m4trace:configure.ac:1544: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TV_IN_UTMPX])
838m4trace:configure.ac:1546: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLKSIZE])
839m4trace:configure.ac:1546: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLKSIZE], [/* Define to 1 if \`st_blksize' is member of \`struct stat'. */
840#undef HAVE_STRUCT_STAT_ST_BLKSIZE])
841m4trace:configure.ac:1561: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SS_FAMILY_IN_SS])
842m4trace:configure.ac:1577: -1- AC_DEFINE_TRACE_LITERAL([HAVE___SS_FAMILY_IN_SS])
843m4trace:configure.ac:1592: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_CLASS_IN_PASSWD])
844m4trace:configure.ac:1607: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_EXPIRE_IN_PASSWD])
845m4trace:configure.ac:1622: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_CHANGE_IN_PASSWD])
846m4trace:configure.ac:1647: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ACCRIGHTS_IN_MSGHDR])
847m4trace:configure.ac:1671: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CONTROL_IN_MSGHDR])
848m4trace:configure.ac:1682: -1- AC_DEFINE_TRACE_LITERAL([HAVE___PROGNAME])
849m4trace:configure.ac:1695: -1- AC_DEFINE_TRACE_LITERAL([HAVE___FUNCTION__])
850m4trace:configure.ac:1708: -1- AC_DEFINE_TRACE_LITERAL([HAVE___func__])
851m4trace:configure.ac:1723: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_OPTRESET])
852m4trace:configure.ac:1734: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST])
853m4trace:configure.ac:1746: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_NERR])
854m4trace:configure.ac:1779: -1- AC_CHECK_HEADERS([sectok.h])
855m4trace:configure.ac:1779: -1- AH_OUTPUT([HAVE_SECTOK_H], [/* Define to 1 if you have the <sectok.h> header file. */
856#undef HAVE_SECTOK_H])
857m4trace:configure.ac:1779: -1- AC_CHECK_LIB([sectok], [sectok_open])
858m4trace:configure.ac:1779: -1- AH_OUTPUT([HAVE_LIBSECTOK], [/* Define to 1 if you have the \`sectok' library (-lsectok). */
859#undef HAVE_LIBSECTOK])
860m4trace:configure.ac:1779: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSECTOK])
861m4trace:configure.ac:1779: -1- AC_DEFINE_TRACE_LITERAL([SMARTCARD])
862m4trace:configure.ac:1779: -1- AC_DEFINE_TRACE_LITERAL([USE_SECTOK])
863m4trace:configure.ac:1788: -1- AC_SUBST([OPENSC_CONFIG], [$ac_cv_path_OPENSC_CONFIG])
864m4trace:configure.ac:1794: -1- AC_DEFINE_TRACE_LITERAL([SMARTCARD])
865m4trace:configure.ac:1795: -1- AC_DEFINE_TRACE_LITERAL([USE_OPENSC])
866m4trace:configure.ac:1837: -1- AC_DEFINE_TRACE_LITERAL([KRB5])
867m4trace:configure.ac:1837: -1- AC_DEFINE_TRACE_LITERAL([HEIMDAL])
868m4trace:configure.ac:1837: -1- AC_CHECK_LIB([resolv], [dn_expand], [], [])
869m4trace:configure.ac:1837: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the \`resolv' library (-lresolv). */
870#undef HAVE_LIBRESOLV])
871m4trace:configure.ac:1837: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
872m4trace:configure.ac:1891: -1- AC_CHECK_HEADERS([krb.h])
873m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_KRB_H], [/* Define to 1 if you have the <krb.h> header file. */
874#undef HAVE_KRB_H])
875m4trace:configure.ac:1891: -1- AC_CHECK_LIB([krb], [main])
876m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_LIBKRB], [/* Define to 1 if you have the \`krb' library (-lkrb). */
877#undef HAVE_LIBKRB])
878m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBKRB])
879m4trace:configure.ac:1891: -1- AC_CHECK_LIB([krb4], [main])
880m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_LIBKRB4], [/* Define to 1 if you have the \`krb4' library (-lkrb4). */
881#undef HAVE_LIBKRB4])
882m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBKRB4])
883m4trace:configure.ac:1891: -1- AC_CHECK_LIB([des], [des_cbc_encrypt])
884m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_LIBDES], [/* Define to 1 if you have the \`des' library (-ldes). */
885#undef HAVE_LIBDES])
886m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDES])
887m4trace:configure.ac:1891: -1- AC_CHECK_LIB([des425], [des_cbc_encrypt])
888m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_LIBDES425], [/* Define to 1 if you have the \`des425' library (-ldes425). */
889#undef HAVE_LIBDES425])
890m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDES425])
891m4trace:configure.ac:1891: -1- AC_CHECK_LIB([resolv], [dn_expand], [], [])
892m4trace:configure.ac:1891: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the \`resolv' library (-lresolv). */
893#undef HAVE_LIBRESOLV])
894m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
895m4trace:configure.ac:1891: -1- AC_DEFINE_TRACE_LITERAL([KRB4])
896m4trace:configure.ac:1917: -1- AC_DEFINE_TRACE_LITERAL([AFS])
897m4trace:configure.ac:1931: -1- AC_SUBST([PRIVSEP_PATH])
898m4trace:configure.ac:1951: -1- AC_SUBST([xauth_path], [$ac_cv_path_xauth_path])
899m4trace:configure.ac:1962: -1- AC_SUBST([STRIP_OPT])
900m4trace:configure.ac:1966: -1- AC_SUBST([XAUTH_PATH])
901m4trace:configure.ac:1968: -1- AC_DEFINE_TRACE_LITERAL([XAUTH_PATH])
902m4trace:configure.ac:1970: -1- AC_SUBST([XAUTH_PATH])
903m4trace:configure.ac:1976: -1- AC_DEFINE_TRACE_LITERAL([MAIL_DIRECTORY])
904m4trace:configure.ac:1986: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_PTMX])
905m4trace:configure.ac:1994: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_PTS_AND_PTC])
906m4trace:configure.ac:2012: -1- AC_SUBST([NROFF], [$ac_cv_path_NROFF])
907m4trace:configure.ac:2021: -1- AC_SUBST([MANTYPE])
908m4trace:configure.ac:2027: -1- AC_SUBST([mansubdir])
909m4trace:configure.ac:2039: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MD5_PASSWORDS])
910m4trace:configure.ac:2050: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
911m4trace:configure.ac:2065: -1- AC_DEFINE_TRACE_LITERAL([HAS_SHADOW_EXPIRE])
912m4trace:configure.ac:2074: -1- AC_DEFINE_TRACE_LITERAL([IPADDR_IN_DISPLAY])
913m4trace:configure.ac:2085: -1- AC_DEFINE_TRACE_LITERAL([IPADDR_IN_DISPLAY])
914m4trace:configure.ac:2166: -1- AC_DEFINE_TRACE_LITERAL([USER_PATH])
915m4trace:configure.ac:2167: -1- AC_SUBST([user_path])
916m4trace:configure.ac:2179: -1- AC_DEFINE_TRACE_LITERAL([SUPERUSER_PATH])
917m4trace:configure.ac:2192: -1- AC_DEFINE_TRACE_LITERAL([IPV4_DEFAULT])
918m4trace:configure.ac:2215: -1- AC_DEFINE_TRACE_LITERAL([IPV4_IN_IPV6])
919m4trace:configure.ac:2215: -1- AC_DEFINE_TRACE_LITERAL([IPV4_IN_IPV6])
920m4trace:configure.ac:2227: -1- AC_DEFINE_TRACE_LITERAL([BSD_AUTH])
921m4trace:configure.ac:2251: -1- AC_DEFINE_TRACE_LITERAL([_PATH_SSH_PIDDIR])
922m4trace:configure.ac:2252: -1- AC_SUBST([piddir])
923m4trace:configure.ac:2258: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
924m4trace:configure.ac:2262: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
925m4trace:configure.ac:2266: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMPX])
926m4trace:configure.ac:2270: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
927m4trace:configure.ac:2274: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMPX])
928m4trace:configure.ac:2278: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LOGIN])
929m4trace:configure.ac:2282: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_PUTUTLINE])
930m4trace:configure.ac:2286: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_PUTUTXLINE])
931m4trace:configure.ac:2296: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
932m4trace:configure.ac:2358: -1- AC_DEFINE_TRACE_LITERAL([CONF_LASTLOG_FILE])
933m4trace:configure.ac:2383: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
934m4trace:configure.ac:2388: -1- AC_DEFINE_TRACE_LITERAL([CONF_UTMP_FILE])
935m4trace:configure.ac:2413: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
936m4trace:configure.ac:2418: -1- AC_DEFINE_TRACE_LITERAL([CONF_WTMP_FILE])
937m4trace:configure.ac:2443: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMPX])
938m4trace:configure.ac:2446: -1- AC_DEFINE_TRACE_LITERAL([CONF_UTMPX_FILE])
939m4trace:configure.ac:2468: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMPX])
940m4trace:configure.ac:2471: -1- AC_DEFINE_TRACE_LITERAL([CONF_WTMPX_FILE])
941m4trace:configure.ac:2489: -1- AC_CONFIG_FILES([Makefile openbsd-compat/Makefile scard/Makefile ssh_prng_cmds])
diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
deleted file mode 100644
index f99b3ba11..000000000
--- a/autom4te.cache/output.0
+++ /dev/null
@@ -1,19182 +0,0 @@
1@%:@! /bin/sh
2@%:@ Guess values for system-dependent variables and create Makefiles.
3@%:@ Generated by GNU Autoconf 2.57.
4@%:@
5@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
6@%:@ Free Software Foundation, Inc.
7@%:@ This configure script is free software; the Free Software Foundation
8@%:@ gives unlimited permission to copy, distribute and modify it.
9## --------------------- ##
10## M4sh Initialization. ##
11## --------------------- ##
12
13# Be Bourne compatible
14if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
15 emulate sh
16 NULLCMD=:
17 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
18 # is contrary to our usage. Disable this feature.
19 alias -g '${1+"$@"}'='"$@"'
20elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
21 set -o posix
22fi
23
24# Support unset when possible.
25if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
26 as_unset=unset
27else
28 as_unset=false
29fi
30
31
32# Work around bugs in pre-3.0 UWIN ksh.
33$as_unset ENV MAIL MAILPATH
34PS1='$ '
35PS2='> '
36PS4='+ '
37
38# NLS nuisances.
39for as_var in \
40 LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
41 LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
42 LC_TELEPHONE LC_TIME
43do
44 if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
45 eval $as_var=C; export $as_var
46 else
47 $as_unset $as_var
48 fi
49done
50
51# Required to use basename.
52if expr a : '\(a\)' >/dev/null 2>&1; then
53 as_expr=expr
54else
55 as_expr=false
56fi
57
58if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
59 as_basename=basename
60else
61 as_basename=false
62fi
63
64
65# Name of the executable.
66as_me=`$as_basename "$0" ||
67$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
68 X"$0" : 'X\(//\)$' \| \
69 X"$0" : 'X\(/\)$' \| \
70 . : '\(.\)' 2>/dev/null ||
71echo X/"$0" |
72 sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
73 /^X\/\(\/\/\)$/{ s//\1/; q; }
74 /^X\/\(\/\).*/{ s//\1/; q; }
75 s/.*/./; q'`
76
77
78# PATH needs CR, and LINENO needs CR and PATH.
79# Avoid depending upon Character Ranges.
80as_cr_letters='abcdefghijklmnopqrstuvwxyz'
81as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
82as_cr_Letters=$as_cr_letters$as_cr_LETTERS
83as_cr_digits='0123456789'
84as_cr_alnum=$as_cr_Letters$as_cr_digits
85
86# The user is always right.
87if test "${PATH_SEPARATOR+set}" != set; then
88 echo "#! /bin/sh" >conf$$.sh
89 echo "exit 0" >>conf$$.sh
90 chmod +x conf$$.sh
91 if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
92 PATH_SEPARATOR=';'
93 else
94 PATH_SEPARATOR=:
95 fi
96 rm -f conf$$.sh
97fi
98
99
100 as_lineno_1=$LINENO
101 as_lineno_2=$LINENO
102 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
103 test "x$as_lineno_1" != "x$as_lineno_2" &&
104 test "x$as_lineno_3" = "x$as_lineno_2" || {
105 # Find who we are. Look in the path if we contain no path at all
106 # relative or not.
107 case $0 in
108 *[\\/]* ) as_myself=$0 ;;
109 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
110for as_dir in $PATH
111do
112 IFS=$as_save_IFS
113 test -z "$as_dir" && as_dir=.
114 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
115done
116
117 ;;
118 esac
119 # We did not find ourselves, most probably we were run as `sh COMMAND'
120 # in which case we are not to be found in the path.
121 if test "x$as_myself" = x; then
122 as_myself=$0
123 fi
124 if test ! -f "$as_myself"; then
125 { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
126 { (exit 1); exit 1; }; }
127 fi
128 case $CONFIG_SHELL in
129 '')
130 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
131for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
132do
133 IFS=$as_save_IFS
134 test -z "$as_dir" && as_dir=.
135 for as_base in sh bash ksh sh5; do
136 case $as_dir in
137 /*)
138 if ("$as_dir/$as_base" -c '
139 as_lineno_1=$LINENO
140 as_lineno_2=$LINENO
141 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
142 test "x$as_lineno_1" != "x$as_lineno_2" &&
143 test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
144 $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
145 $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
146 CONFIG_SHELL=$as_dir/$as_base
147 export CONFIG_SHELL
148 exec "$CONFIG_SHELL" "$0" ${1+"$@"}
149 fi;;
150 esac
151 done
152done
153;;
154 esac
155
156 # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
157 # uniformly replaced by the line number. The first 'sed' inserts a
158 # line-number line before each line; the second 'sed' does the real
159 # work. The second script uses 'N' to pair each line-number line
160 # with the numbered line, and appends trailing '-' during
161 # substitution so that $LINENO is not a special case at line end.
162 # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
163 # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
164 sed '=' <$as_myself |
165 sed '
166 N
167 s,$,-,
168 : loop
169 s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
170 t loop
171 s,-$,,
172 s,^['$as_cr_digits']*\n,,
173 ' >$as_me.lineno &&
174 chmod +x $as_me.lineno ||
175 { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
176 { (exit 1); exit 1; }; }
177
178 # Don't try to exec as it changes $[0], causing all sort of problems
179 # (the dirname of $[0] is not the place where we might find the
180 # original and so on. Autoconf is especially sensible to this).
181 . ./$as_me.lineno
182 # Exit status is that of the last command.
183 exit
184}
185
186
187case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
188 *c*,-n*) ECHO_N= ECHO_C='
189' ECHO_T=' ' ;;
190 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
191 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
192esac
193
194if expr a : '\(a\)' >/dev/null 2>&1; then
195 as_expr=expr
196else
197 as_expr=false
198fi
199
200rm -f conf$$ conf$$.exe conf$$.file
201echo >conf$$.file
202if ln -s conf$$.file conf$$ 2>/dev/null; then
203 # We could just check for DJGPP; but this test a) works b) is more generic
204 # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
205 if test -f conf$$.exe; then
206 # Don't use ln at all; we don't have any links
207 as_ln_s='cp -p'
208 else
209 as_ln_s='ln -s'
210 fi
211elif ln conf$$.file conf$$ 2>/dev/null; then
212 as_ln_s=ln
213else
214 as_ln_s='cp -p'
215fi
216rm -f conf$$ conf$$.exe conf$$.file
217
218if mkdir -p . 2>/dev/null; then
219 as_mkdir_p=:
220else
221 as_mkdir_p=false
222fi
223
224as_executable_p="test -f"
225
226# Sed expression to map a string onto a valid CPP name.
227as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
228
229# Sed expression to map a string onto a valid variable name.
230as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
231
232
233# IFS
234# We need space, tab and new line, in precisely that order.
235as_nl='
236'
237IFS=" $as_nl"
238
239# CDPATH.
240$as_unset CDPATH
241
242
243# Name of the host.
244# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
245# so uname gets run too.
246ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
247
248exec 6>&1
249
250#
251# Initializations.
252#
253ac_default_prefix=/usr/local
254ac_config_libobj_dir=.
255cross_compiling=no
256subdirs=
257MFLAGS=
258MAKEFLAGS=
259SHELL=${CONFIG_SHELL-/bin/sh}
260
261# Maximum number of lines to put in a shell here document.
262# This variable seems obsolete. It should probably be removed, and
263# only ac_max_sed_lines should be used.
264: ${ac_max_here_lines=38}
265
266# Identity of this package.
267PACKAGE_NAME=
268PACKAGE_TARNAME=
269PACKAGE_VERSION=
270PACKAGE_STRING=
271PACKAGE_BUGREPORT=
272
273ac_unique_file="ssh.c"
274# Factoring default headers for most tests.
275ac_includes_default="\
276#include <stdio.h>
277#if HAVE_SYS_TYPES_H
278# include <sys/types.h>
279#endif
280#if HAVE_SYS_STAT_H
281# include <sys/stat.h>
282#endif
283#if STDC_HEADERS
284# include <stdlib.h>
285# include <stddef.h>
286#else
287# if HAVE_STDLIB_H
288# include <stdlib.h>
289# endif
290#endif
291#if HAVE_STRING_H
292# if !STDC_HEADERS && HAVE_MEMORY_H
293# include <memory.h>
294# endif
295# include <string.h>
296#endif
297#if HAVE_STRINGS_H
298# include <strings.h>
299#endif
300#if HAVE_INTTYPES_H
301# include <inttypes.h>
302#else
303# if HAVE_STDINT_H
304# include <stdint.h>
305# endif
306#endif
307#if HAVE_UNISTD_H
308# include <unistd.h>
309#endif"
310
311ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR PERL SED ENT TEST_MINUS_S_SH SH LOGIN_PROGRAM_FALLBACK LD EGREP LIBWRAP LIBPAM INSTALL_SSH_RAND_HELPER SSH_PRIVSEP_USER PROG_LS PROG_NETSTAT PROG_ARP PROG_IFCONFIG PROG_JSTAT PROG_PS PROG_SAR PROG_W PROG_WHO PROG_LAST PROG_LASTLOG PROG_DF PROG_VMSTAT PROG_UPTIME PROG_IPCS PROG_TAIL INSTALL_SSH_PRNG_CMDS OPENSC_CONFIG PRIVSEP_PATH xauth_path STRIP_OPT XAUTH_PATH NROFF MANTYPE mansubdir user_path piddir LIB@&t@OBJS LTLIBOBJS'
312ac_subst_files=''
313
314# Initialize some variables set by options.
315ac_init_help=
316ac_init_version=false
317# The variables have the same names as the options, with
318# dashes changed to underlines.
319cache_file=/dev/null
320exec_prefix=NONE
321no_create=
322no_recursion=
323prefix=NONE
324program_prefix=NONE
325program_suffix=NONE
326program_transform_name=s,x,x,
327silent=
328site=
329srcdir=
330verbose=
331x_includes=NONE
332x_libraries=NONE
333
334# Installation directory options.
335# These are left unexpanded so users can "make install exec_prefix=/foo"
336# and all the variables that are supposed to be based on exec_prefix
337# by default will actually change.
338# Use braces instead of parens because sh, perl, etc. also accept them.
339bindir='${exec_prefix}/bin'
340sbindir='${exec_prefix}/sbin'
341libexecdir='${exec_prefix}/libexec'
342datadir='${prefix}/share'
343sysconfdir='${prefix}/etc'
344sharedstatedir='${prefix}/com'
345localstatedir='${prefix}/var'
346libdir='${exec_prefix}/lib'
347includedir='${prefix}/include'
348oldincludedir='/usr/include'
349infodir='${prefix}/info'
350mandir='${prefix}/man'
351
352ac_prev=
353for ac_option
354do
355 # If the previous option needs an argument, assign it.
356 if test -n "$ac_prev"; then
357 eval "$ac_prev=\$ac_option"
358 ac_prev=
359 continue
360 fi
361
362 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
363
364 # Accept the important Cygnus configure options, so we can diagnose typos.
365
366 case $ac_option in
367
368 -bindir | --bindir | --bindi | --bind | --bin | --bi)
369 ac_prev=bindir ;;
370 -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
371 bindir=$ac_optarg ;;
372
373 -build | --build | --buil | --bui | --bu)
374 ac_prev=build_alias ;;
375 -build=* | --build=* | --buil=* | --bui=* | --bu=*)
376 build_alias=$ac_optarg ;;
377
378 -cache-file | --cache-file | --cache-fil | --cache-fi \
379 | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
380 ac_prev=cache_file ;;
381 -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
382 | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
383 cache_file=$ac_optarg ;;
384
385 --config-cache | -C)
386 cache_file=config.cache ;;
387
388 -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
389 ac_prev=datadir ;;
390 -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
391 | --da=*)
392 datadir=$ac_optarg ;;
393
394 -disable-* | --disable-*)
395 ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
396 # Reject names that are not valid shell variable names.
397 expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
398 { echo "$as_me: error: invalid feature name: $ac_feature" >&2
399 { (exit 1); exit 1; }; }
400 ac_feature=`echo $ac_feature | sed 's/-/_/g'`
401 eval "enable_$ac_feature=no" ;;
402
403 -enable-* | --enable-*)
404 ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
405 # Reject names that are not valid shell variable names.
406 expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
407 { echo "$as_me: error: invalid feature name: $ac_feature" >&2
408 { (exit 1); exit 1; }; }
409 ac_feature=`echo $ac_feature | sed 's/-/_/g'`
410 case $ac_option in
411 *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
412 *) ac_optarg=yes ;;
413 esac
414 eval "enable_$ac_feature='$ac_optarg'" ;;
415
416 -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
417 | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
418 | --exec | --exe | --ex)
419 ac_prev=exec_prefix ;;
420 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
421 | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
422 | --exec=* | --exe=* | --ex=*)
423 exec_prefix=$ac_optarg ;;
424
425 -gas | --gas | --ga | --g)
426 # Obsolete; use --with-gas.
427 with_gas=yes ;;
428
429 -help | --help | --hel | --he | -h)
430 ac_init_help=long ;;
431 -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
432 ac_init_help=recursive ;;
433 -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
434 ac_init_help=short ;;
435
436 -host | --host | --hos | --ho)
437 ac_prev=host_alias ;;
438 -host=* | --host=* | --hos=* | --ho=*)
439 host_alias=$ac_optarg ;;
440
441 -includedir | --includedir | --includedi | --included | --include \
442 | --includ | --inclu | --incl | --inc)
443 ac_prev=includedir ;;
444 -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
445 | --includ=* | --inclu=* | --incl=* | --inc=*)
446 includedir=$ac_optarg ;;
447
448 -infodir | --infodir | --infodi | --infod | --info | --inf)
449 ac_prev=infodir ;;
450 -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
451 infodir=$ac_optarg ;;
452
453 -libdir | --libdir | --libdi | --libd)
454 ac_prev=libdir ;;
455 -libdir=* | --libdir=* | --libdi=* | --libd=*)
456 libdir=$ac_optarg ;;
457
458 -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
459 | --libexe | --libex | --libe)
460 ac_prev=libexecdir ;;
461 -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
462 | --libexe=* | --libex=* | --libe=*)
463 libexecdir=$ac_optarg ;;
464
465 -localstatedir | --localstatedir | --localstatedi | --localstated \
466 | --localstate | --localstat | --localsta | --localst \
467 | --locals | --local | --loca | --loc | --lo)
468 ac_prev=localstatedir ;;
469 -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
470 | --localstate=* | --localstat=* | --localsta=* | --localst=* \
471 | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
472 localstatedir=$ac_optarg ;;
473
474 -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
475 ac_prev=mandir ;;
476 -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
477 mandir=$ac_optarg ;;
478
479 -nfp | --nfp | --nf)
480 # Obsolete; use --without-fp.
481 with_fp=no ;;
482
483 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
484 | --no-cr | --no-c | -n)
485 no_create=yes ;;
486
487 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
488 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
489 no_recursion=yes ;;
490
491 -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
492 | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
493 | --oldin | --oldi | --old | --ol | --o)
494 ac_prev=oldincludedir ;;
495 -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
496 | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
497 | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
498 oldincludedir=$ac_optarg ;;
499
500 -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
501 ac_prev=prefix ;;
502 -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
503 prefix=$ac_optarg ;;
504
505 -program-prefix | --program-prefix | --program-prefi | --program-pref \
506 | --program-pre | --program-pr | --program-p)
507 ac_prev=program_prefix ;;
508 -program-prefix=* | --program-prefix=* | --program-prefi=* \
509 | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
510 program_prefix=$ac_optarg ;;
511
512 -program-suffix | --program-suffix | --program-suffi | --program-suff \
513 | --program-suf | --program-su | --program-s)
514 ac_prev=program_suffix ;;
515 -program-suffix=* | --program-suffix=* | --program-suffi=* \
516 | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
517 program_suffix=$ac_optarg ;;
518
519 -program-transform-name | --program-transform-name \
520 | --program-transform-nam | --program-transform-na \
521 | --program-transform-n | --program-transform- \
522 | --program-transform | --program-transfor \
523 | --program-transfo | --program-transf \
524 | --program-trans | --program-tran \
525 | --progr-tra | --program-tr | --program-t)
526 ac_prev=program_transform_name ;;
527 -program-transform-name=* | --program-transform-name=* \
528 | --program-transform-nam=* | --program-transform-na=* \
529 | --program-transform-n=* | --program-transform-=* \
530 | --program-transform=* | --program-transfor=* \
531 | --program-transfo=* | --program-transf=* \
532 | --program-trans=* | --program-tran=* \
533 | --progr-tra=* | --program-tr=* | --program-t=*)
534 program_transform_name=$ac_optarg ;;
535
536 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
537 | -silent | --silent | --silen | --sile | --sil)
538 silent=yes ;;
539
540 -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
541 ac_prev=sbindir ;;
542 -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
543 | --sbi=* | --sb=*)
544 sbindir=$ac_optarg ;;
545
546 -sharedstatedir | --sharedstatedir | --sharedstatedi \
547 | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
548 | --sharedst | --shareds | --shared | --share | --shar \
549 | --sha | --sh)
550 ac_prev=sharedstatedir ;;
551 -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
552 | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
553 | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
554 | --sha=* | --sh=*)
555 sharedstatedir=$ac_optarg ;;
556
557 -site | --site | --sit)
558 ac_prev=site ;;
559 -site=* | --site=* | --sit=*)
560 site=$ac_optarg ;;
561
562 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
563 ac_prev=srcdir ;;
564 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
565 srcdir=$ac_optarg ;;
566
567 -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
568 | --syscon | --sysco | --sysc | --sys | --sy)
569 ac_prev=sysconfdir ;;
570 -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
571 | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
572 sysconfdir=$ac_optarg ;;
573
574 -target | --target | --targe | --targ | --tar | --ta | --t)
575 ac_prev=target_alias ;;
576 -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
577 target_alias=$ac_optarg ;;
578
579 -v | -verbose | --verbose | --verbos | --verbo | --verb)
580 verbose=yes ;;
581
582 -version | --version | --versio | --versi | --vers | -V)
583 ac_init_version=: ;;
584
585 -with-* | --with-*)
586 ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
587 # Reject names that are not valid shell variable names.
588 expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
589 { echo "$as_me: error: invalid package name: $ac_package" >&2
590 { (exit 1); exit 1; }; }
591 ac_package=`echo $ac_package| sed 's/-/_/g'`
592 case $ac_option in
593 *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
594 *) ac_optarg=yes ;;
595 esac
596 eval "with_$ac_package='$ac_optarg'" ;;
597
598 -without-* | --without-*)
599 ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
600 # Reject names that are not valid shell variable names.
601 expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
602 { echo "$as_me: error: invalid package name: $ac_package" >&2
603 { (exit 1); exit 1; }; }
604 ac_package=`echo $ac_package | sed 's/-/_/g'`
605 eval "with_$ac_package=no" ;;
606
607 --x)
608 # Obsolete; use --with-x.
609 with_x=yes ;;
610
611 -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
612 | --x-incl | --x-inc | --x-in | --x-i)
613 ac_prev=x_includes ;;
614 -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
615 | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
616 x_includes=$ac_optarg ;;
617
618 -x-libraries | --x-libraries | --x-librarie | --x-librari \
619 | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
620 ac_prev=x_libraries ;;
621 -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
622 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
623 x_libraries=$ac_optarg ;;
624
625 -*) { echo "$as_me: error: unrecognized option: $ac_option
626Try \`$0 --help' for more information." >&2
627 { (exit 1); exit 1; }; }
628 ;;
629
630 *=*)
631 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
632 # Reject names that are not valid shell variable names.
633 expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
634 { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
635 { (exit 1); exit 1; }; }
636 ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
637 eval "$ac_envvar='$ac_optarg'"
638 export $ac_envvar ;;
639
640 *)
641 # FIXME: should be removed in autoconf 3.0.
642 echo "$as_me: WARNING: you should use --build, --host, --target" >&2
643 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
644 echo "$as_me: WARNING: invalid host type: $ac_option" >&2
645 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
646 ;;
647
648 esac
649done
650
651if test -n "$ac_prev"; then
652 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
653 { echo "$as_me: error: missing argument to $ac_option" >&2
654 { (exit 1); exit 1; }; }
655fi
656
657# Be sure to have absolute paths.
658for ac_var in exec_prefix prefix
659do
660 eval ac_val=$`echo $ac_var`
661 case $ac_val in
662 [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
663 *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
664 { (exit 1); exit 1; }; };;
665 esac
666done
667
668# Be sure to have absolute paths.
669for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
670 localstatedir libdir includedir oldincludedir infodir mandir
671do
672 eval ac_val=$`echo $ac_var`
673 case $ac_val in
674 [\\/$]* | ?:[\\/]* ) ;;
675 *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
676 { (exit 1); exit 1; }; };;
677 esac
678done
679
680# There might be people who depend on the old broken behavior: `$host'
681# used to hold the argument of --host etc.
682# FIXME: To remove some day.
683build=$build_alias
684host=$host_alias
685target=$target_alias
686
687# FIXME: To remove some day.
688if test "x$host_alias" != x; then
689 if test "x$build_alias" = x; then
690 cross_compiling=maybe
691 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
692 If a cross compiler is detected then cross compile mode will be used." >&2
693 elif test "x$build_alias" != "x$host_alias"; then
694 cross_compiling=yes
695 fi
696fi
697
698ac_tool_prefix=
699test -n "$host_alias" && ac_tool_prefix=$host_alias-
700
701test "$silent" = yes && exec 6>/dev/null
702
703
704# Find the source files, if location was not specified.
705if test -z "$srcdir"; then
706 ac_srcdir_defaulted=yes
707 # Try the directory containing this script, then its parent.
708 ac_confdir=`(dirname "$0") 2>/dev/null ||
709$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
710 X"$0" : 'X\(//\)[^/]' \| \
711 X"$0" : 'X\(//\)$' \| \
712 X"$0" : 'X\(/\)' \| \
713 . : '\(.\)' 2>/dev/null ||
714echo X"$0" |
715 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
716 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
717 /^X\(\/\/\)$/{ s//\1/; q; }
718 /^X\(\/\).*/{ s//\1/; q; }
719 s/.*/./; q'`
720 srcdir=$ac_confdir
721 if test ! -r $srcdir/$ac_unique_file; then
722 srcdir=..
723 fi
724else
725 ac_srcdir_defaulted=no
726fi
727if test ! -r $srcdir/$ac_unique_file; then
728 if test "$ac_srcdir_defaulted" = yes; then
729 { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
730 { (exit 1); exit 1; }; }
731 else
732 { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
733 { (exit 1); exit 1; }; }
734 fi
735fi
736(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
737 { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
738 { (exit 1); exit 1; }; }
739srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
740ac_env_build_alias_set=${build_alias+set}
741ac_env_build_alias_value=$build_alias
742ac_cv_env_build_alias_set=${build_alias+set}
743ac_cv_env_build_alias_value=$build_alias
744ac_env_host_alias_set=${host_alias+set}
745ac_env_host_alias_value=$host_alias
746ac_cv_env_host_alias_set=${host_alias+set}
747ac_cv_env_host_alias_value=$host_alias
748ac_env_target_alias_set=${target_alias+set}
749ac_env_target_alias_value=$target_alias
750ac_cv_env_target_alias_set=${target_alias+set}
751ac_cv_env_target_alias_value=$target_alias
752ac_env_CC_set=${CC+set}
753ac_env_CC_value=$CC
754ac_cv_env_CC_set=${CC+set}
755ac_cv_env_CC_value=$CC
756ac_env_CFLAGS_set=${CFLAGS+set}
757ac_env_CFLAGS_value=$CFLAGS
758ac_cv_env_CFLAGS_set=${CFLAGS+set}
759ac_cv_env_CFLAGS_value=$CFLAGS
760ac_env_LDFLAGS_set=${LDFLAGS+set}
761ac_env_LDFLAGS_value=$LDFLAGS
762ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
763ac_cv_env_LDFLAGS_value=$LDFLAGS
764ac_env_CPPFLAGS_set=${CPPFLAGS+set}
765ac_env_CPPFLAGS_value=$CPPFLAGS
766ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
767ac_cv_env_CPPFLAGS_value=$CPPFLAGS
768ac_env_CPP_set=${CPP+set}
769ac_env_CPP_value=$CPP
770ac_cv_env_CPP_set=${CPP+set}
771ac_cv_env_CPP_value=$CPP
772
773#
774# Report the --help message.
775#
776if test "$ac_init_help" = "long"; then
777 # Omit some internal or obsolete options to make the list less imposing.
778 # This message is too long to be a string in the A/UX 3.1 sh.
779 cat <<_ACEOF
780\`configure' configures this package to adapt to many kinds of systems.
781
782Usage: $0 [OPTION]... [VAR=VALUE]...
783
784To assign environment variables (e.g., CC, CFLAGS...), specify them as
785VAR=VALUE. See below for descriptions of some of the useful variables.
786
787Defaults for the options are specified in brackets.
788
789Configuration:
790 -h, --help display this help and exit
791 --help=short display options specific to this package
792 --help=recursive display the short help of all the included packages
793 -V, --version display version information and exit
794 -q, --quiet, --silent do not print \`checking...' messages
795 --cache-file=FILE cache test results in FILE [disabled]
796 -C, --config-cache alias for \`--cache-file=config.cache'
797 -n, --no-create do not create output files
798 --srcdir=DIR find the sources in DIR [configure dir or \`..']
799
800_ACEOF
801
802 cat <<_ACEOF
803Installation directories:
804 --prefix=PREFIX install architecture-independent files in PREFIX
805 [$ac_default_prefix]
806 --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
807 [PREFIX]
808
809By default, \`make install' will install all the files in
810\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
811an installation prefix other than \`$ac_default_prefix' using \`--prefix',
812for instance \`--prefix=\$HOME'.
813
814For better control, use the options below.
815
816Fine tuning of the installation directories:
817 --bindir=DIR user executables [EPREFIX/bin]
818 --sbindir=DIR system admin executables [EPREFIX/sbin]
819 --libexecdir=DIR program executables [EPREFIX/libexec]
820 --datadir=DIR read-only architecture-independent data [PREFIX/share]
821 --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
822 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
823 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
824 --libdir=DIR object code libraries [EPREFIX/lib]
825 --includedir=DIR C header files [PREFIX/include]
826 --oldincludedir=DIR C header files for non-gcc [/usr/include]
827 --infodir=DIR info documentation [PREFIX/info]
828 --mandir=DIR man documentation [PREFIX/man]
829_ACEOF
830
831 cat <<\_ACEOF
832
833System types:
834 --build=BUILD configure for building on BUILD [guessed]
835 --host=HOST cross-compile to build programs to run on HOST [BUILD]
836_ACEOF
837fi
838
839if test -n "$ac_init_help"; then
840
841 cat <<\_ACEOF
842
843Optional Features:
844 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
845 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
846 --disable-largefile omit support for large files
847 --disable-strip Disable calling strip(1) on install
848 --disable-lastlog disable use of lastlog even if detected no
849 --disable-utmp disable use of utmp even if detected no
850 --disable-utmpx disable use of utmpx even if detected no
851 --disable-wtmp disable use of wtmp even if detected no
852 --disable-wtmpx disable use of wtmpx even if detected no
853 --disable-libutil disable use of libutil (login() etc.) no
854 --disable-pututline disable use of pututline() etc. (uwtmp) no
855 --disable-pututxline disable use of pututxline() etc. (uwtmpx) no
856
857Optional Packages:
858 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
859 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
860 --with-osfsia Enable Digital Unix SIA
861 --with-cflags Specify additional flags to pass to compiler
862 --with-cppflags Specify additional flags to pass to preprocessor
863 --with-ldflags Specify additional flags to pass to linker
864 --with-libs Specify additional libraries to link with
865 --without-rpath Disable auto-added -R linker paths
866 --with-zlib=PATH Use zlib in PATH
867 --with-skey[=PATH] Enable S/Key support
868 (optionally in PATH)
869 --with-tcp-wrappers[=PATH] Enable tcpwrappers support
870 (optionally in PATH)
871 --with-pam Enable PAM support
872 --with-ssl-dir=PATH Specify path to OpenSSL installation
873 --with-rand-helper Use subprocess to gather strong randomness
874 --with-prngd-port=PORT read entropy from PRNGD/EGD TCP localhost:PORT
875 --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)
876 --with-entropy-timeout Specify entropy gathering command timeout (msec)
877 --with-privsep-user=user Specify non-privileged user for privilege separation
878 --with-sectok Enable smartcard support using libsectok
879 --with-opensc=PFX Enable smartcard support using OpenSC
880 --with-kerberos5=PATH Enable Kerberos 5 support
881 --with-kerberos4=PATH Enable Kerberos 4 support
882 --with-afs=PATH Enable AFS support
883 --with-privsep-path=xxx Path for privilege separation chroot (default=/var/empty)
884 --with-xauth=PATH Specify path to xauth program
885 --with-mantype=man|cat|doc Set man page type
886 --with-md5-passwords Enable use of MD5 passwords
887 --without-shadow Disable shadow password support
888 --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY
889 --with-default-path= Specify default \$PATH environment for server
890 --with-superuser-path= Specify different path for super-user
891 --with-ipv4-default Use IPv4 by connections unless '-6' specified
892 --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses
893 --with-bsd-auth Enable BSD auth support
894 --with-pid-dir=PATH Specify location of ssh.pid file
895 --with-lastlog=FILE|DIR specify lastlog location common locations
896
897Some influential environment variables:
898 CC C compiler command
899 CFLAGS C compiler flags
900 LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
901 nonstandard directory <lib dir>
902 CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
903 headers in a nonstandard directory <include dir>
904 CPP C preprocessor
905
906Use these variables to override the choices made by `configure' or to help
907it to find libraries and programs with nonstandard names/locations.
908
909_ACEOF
910fi
911
912if test "$ac_init_help" = "recursive"; then
913 # If there are subdirs, report their specific --help.
914 ac_popdir=`pwd`
915 for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
916 test -d $ac_dir || continue
917 ac_builddir=.
918
919if test "$ac_dir" != .; then
920 ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
921 # A "../" for each directory in $ac_dir_suffix.
922 ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
923else
924 ac_dir_suffix= ac_top_builddir=
925fi
926
927case $srcdir in
928 .) # No --srcdir option. We are building in place.
929 ac_srcdir=.
930 if test -z "$ac_top_builddir"; then
931 ac_top_srcdir=.
932 else
933 ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
934 fi ;;
935 [\\/]* | ?:[\\/]* ) # Absolute path.
936 ac_srcdir=$srcdir$ac_dir_suffix;
937 ac_top_srcdir=$srcdir ;;
938 *) # Relative path.
939 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
940 ac_top_srcdir=$ac_top_builddir$srcdir ;;
941esac
942# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
943# absolute.
944ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
945ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
946ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
947ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
948
949 cd $ac_dir
950 # Check for guested configure; otherwise get Cygnus style configure.
951 if test -f $ac_srcdir/configure.gnu; then
952 echo
953 $SHELL $ac_srcdir/configure.gnu --help=recursive
954 elif test -f $ac_srcdir/configure; then
955 echo
956 $SHELL $ac_srcdir/configure --help=recursive
957 elif test -f $ac_srcdir/configure.ac ||
958 test -f $ac_srcdir/configure.in; then
959 echo
960 $ac_configure --help
961 else
962 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
963 fi
964 cd $ac_popdir
965 done
966fi
967
968test -n "$ac_init_help" && exit 0
969if $ac_init_version; then
970 cat <<\_ACEOF
971
972Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
973Free Software Foundation, Inc.
974This configure script is free software; the Free Software Foundation
975gives unlimited permission to copy, distribute and modify it.
976_ACEOF
977 exit 0
978fi
979exec 5>config.log
980cat >&5 <<_ACEOF
981This file contains any messages produced by compilers while
982running configure, to aid debugging if configure makes a mistake.
983
984It was created by $as_me, which was
985generated by GNU Autoconf 2.57. Invocation command line was
986
987 $ $0 $@
988
989_ACEOF
990{
991cat <<_ASUNAME
992@%:@@%:@ --------- @%:@@%:@
993@%:@@%:@ Platform. @%:@@%:@
994@%:@@%:@ --------- @%:@@%:@
995
996hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
997uname -m = `(uname -m) 2>/dev/null || echo unknown`
998uname -r = `(uname -r) 2>/dev/null || echo unknown`
999uname -s = `(uname -s) 2>/dev/null || echo unknown`
1000uname -v = `(uname -v) 2>/dev/null || echo unknown`
1001
1002/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1003/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
1004
1005/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
1006/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
1007/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1008hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
1009/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
1010/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
1011/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
1012
1013_ASUNAME
1014
1015as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1016for as_dir in $PATH
1017do
1018 IFS=$as_save_IFS
1019 test -z "$as_dir" && as_dir=.
1020 echo "PATH: $as_dir"
1021done
1022
1023} >&5
1024
1025cat >&5 <<_ACEOF
1026
1027
1028@%:@@%:@ ----------- @%:@@%:@
1029@%:@@%:@ Core tests. @%:@@%:@
1030@%:@@%:@ ----------- @%:@@%:@
1031
1032_ACEOF
1033
1034
1035# Keep a trace of the command line.
1036# Strip out --no-create and --no-recursion so they do not pile up.
1037# Strip out --silent because we don't want to record it for future runs.
1038# Also quote any args containing shell meta-characters.
1039# Make two passes to allow for proper duplicate-argument suppression.
1040ac_configure_args=
1041ac_configure_args0=
1042ac_configure_args1=
1043ac_sep=
1044ac_must_keep_next=false
1045for ac_pass in 1 2
1046do
1047 for ac_arg
1048 do
1049 case $ac_arg in
1050 -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
1051 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1052 | -silent | --silent | --silen | --sile | --sil)
1053 continue ;;
1054 *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1055 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
1056 esac
1057 case $ac_pass in
1058 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
1059 2)
1060 ac_configure_args1="$ac_configure_args1 '$ac_arg'"
1061 if test $ac_must_keep_next = true; then
1062 ac_must_keep_next=false # Got value, back to normal.
1063 else
1064 case $ac_arg in
1065 *=* | --config-cache | -C | -disable-* | --disable-* \
1066 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
1067 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
1068 | -with-* | --with-* | -without-* | --without-* | --x)
1069 case "$ac_configure_args0 " in
1070 "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
1071 esac
1072 ;;
1073 -* ) ac_must_keep_next=true ;;
1074 esac
1075 fi
1076 ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
1077 # Get rid of the leading space.
1078 ac_sep=" "
1079 ;;
1080 esac
1081 done
1082done
1083$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
1084$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
1085
1086# When interrupted or exit'd, cleanup temporary files, and complete
1087# config.log. We remove comments because anyway the quotes in there
1088# would cause problems or look ugly.
1089# WARNING: Be sure not to use single quotes in there, as some shells,
1090# such as our DU 5.0 friend, will then `close' the trap.
1091trap 'exit_status=$?
1092 # Save into config.log some information that might help in debugging.
1093 {
1094 echo
1095
1096 cat <<\_ASBOX
1097@%:@@%:@ ---------------- @%:@@%:@
1098@%:@@%:@ Cache variables. @%:@@%:@
1099@%:@@%:@ ---------------- @%:@@%:@
1100_ASBOX
1101 echo
1102 # The following way of writing the cache mishandles newlines in values,
1103{
1104 (set) 2>&1 |
1105 case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
1106 *ac_space=\ *)
1107 sed -n \
1108 "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
1109 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
1110 ;;
1111 *)
1112 sed -n \
1113 "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
1114 ;;
1115 esac;
1116}
1117 echo
1118
1119 cat <<\_ASBOX
1120@%:@@%:@ ----------------- @%:@@%:@
1121@%:@@%:@ Output variables. @%:@@%:@
1122@%:@@%:@ ----------------- @%:@@%:@
1123_ASBOX
1124 echo
1125 for ac_var in $ac_subst_vars
1126 do
1127 eval ac_val=$`echo $ac_var`
1128 echo "$ac_var='"'"'$ac_val'"'"'"
1129 done | sort
1130 echo
1131
1132 if test -n "$ac_subst_files"; then
1133 cat <<\_ASBOX
1134@%:@@%:@ ------------- @%:@@%:@
1135@%:@@%:@ Output files. @%:@@%:@
1136@%:@@%:@ ------------- @%:@@%:@
1137_ASBOX
1138 echo
1139 for ac_var in $ac_subst_files
1140 do
1141 eval ac_val=$`echo $ac_var`
1142 echo "$ac_var='"'"'$ac_val'"'"'"
1143 done | sort
1144 echo
1145 fi
1146
1147 if test -s confdefs.h; then
1148 cat <<\_ASBOX
1149@%:@@%:@ ----------- @%:@@%:@
1150@%:@@%:@ confdefs.h. @%:@@%:@
1151@%:@@%:@ ----------- @%:@@%:@
1152_ASBOX
1153 echo
1154 sed "/^$/d" confdefs.h | sort
1155 echo
1156 fi
1157 test "$ac_signal" != 0 &&
1158 echo "$as_me: caught signal $ac_signal"
1159 echo "$as_me: exit $exit_status"
1160 } >&5
1161 rm -f core core.* *.core &&
1162 rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
1163 exit $exit_status
1164 ' 0
1165for ac_signal in 1 2 13 15; do
1166 trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
1167done
1168ac_signal=0
1169
1170# confdefs.h avoids OS command line length limits that DEFS can exceed.
1171rm -rf conftest* confdefs.h
1172# AIX cpp loses on an empty file, so make sure it contains at least a newline.
1173echo >confdefs.h
1174
1175# Predefined preprocessor variables.
1176
1177cat >>confdefs.h <<_ACEOF
1178@%:@define PACKAGE_NAME "$PACKAGE_NAME"
1179_ACEOF
1180
1181
1182cat >>confdefs.h <<_ACEOF
1183@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
1184_ACEOF
1185
1186
1187cat >>confdefs.h <<_ACEOF
1188@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
1189_ACEOF
1190
1191
1192cat >>confdefs.h <<_ACEOF
1193@%:@define PACKAGE_STRING "$PACKAGE_STRING"
1194_ACEOF
1195
1196
1197cat >>confdefs.h <<_ACEOF
1198@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
1199_ACEOF
1200
1201
1202# Let the site file select an alternate cache file if it wants to.
1203# Prefer explicitly selected file to automatically selected ones.
1204if test -z "$CONFIG_SITE"; then
1205 if test "x$prefix" != xNONE; then
1206 CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
1207 else
1208 CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
1209 fi
1210fi
1211for ac_site_file in $CONFIG_SITE; do
1212 if test -r "$ac_site_file"; then
1213 { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
1214echo "$as_me: loading site script $ac_site_file" >&6;}
1215 sed 's/^/| /' "$ac_site_file" >&5
1216 . "$ac_site_file"
1217 fi
1218done
1219
1220if test -r "$cache_file"; then
1221 # Some versions of bash will fail to source /dev/null (special
1222 # files actually), so we avoid doing that.
1223 if test -f "$cache_file"; then
1224 { echo "$as_me:$LINENO: loading cache $cache_file" >&5
1225echo "$as_me: loading cache $cache_file" >&6;}
1226 case $cache_file in
1227 [\\/]* | ?:[\\/]* ) . $cache_file;;
1228 *) . ./$cache_file;;
1229 esac
1230 fi
1231else
1232 { echo "$as_me:$LINENO: creating cache $cache_file" >&5
1233echo "$as_me: creating cache $cache_file" >&6;}
1234 >$cache_file
1235fi
1236
1237# Check that the precious variables saved in the cache have kept the same
1238# value.
1239ac_cache_corrupted=false
1240for ac_var in `(set) 2>&1 |
1241 sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
1242 eval ac_old_set=\$ac_cv_env_${ac_var}_set
1243 eval ac_new_set=\$ac_env_${ac_var}_set
1244 eval ac_old_val="\$ac_cv_env_${ac_var}_value"
1245 eval ac_new_val="\$ac_env_${ac_var}_value"
1246 case $ac_old_set,$ac_new_set in
1247 set,)
1248 { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
1249echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
1250 ac_cache_corrupted=: ;;
1251 ,set)
1252 { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
1253echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
1254 ac_cache_corrupted=: ;;
1255 ,);;
1256 *)
1257 if test "x$ac_old_val" != "x$ac_new_val"; then
1258 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
1259echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
1260 { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
1261echo "$as_me: former value: $ac_old_val" >&2;}
1262 { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
1263echo "$as_me: current value: $ac_new_val" >&2;}
1264 ac_cache_corrupted=:
1265 fi;;
1266 esac
1267 # Pass precious variables to config.status.
1268 if test "$ac_new_set" = set; then
1269 case $ac_new_val in
1270 *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1271 ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
1272 *) ac_arg=$ac_var=$ac_new_val ;;
1273 esac
1274 case " $ac_configure_args " in
1275 *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
1276 *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
1277 esac
1278 fi
1279done
1280if $ac_cache_corrupted; then
1281 { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
1282echo "$as_me: error: changes in the environment can compromise the build" >&2;}
1283 { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
1284echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
1285 { (exit 1); exit 1; }; }
1286fi
1287
1288ac_ext=c
1289ac_cpp='$CPP $CPPFLAGS'
1290ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1291ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1292ac_compiler_gnu=$ac_cv_c_compiler_gnu
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314 ac_config_headers="$ac_config_headers config.h"
1315
1316ac_ext=c
1317ac_cpp='$CPP $CPPFLAGS'
1318ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1319ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1320ac_compiler_gnu=$ac_cv_c_compiler_gnu
1321if test -n "$ac_tool_prefix"; then
1322 # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
1323set dummy ${ac_tool_prefix}gcc; ac_word=$2
1324echo "$as_me:$LINENO: checking for $ac_word" >&5
1325echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1326if test "${ac_cv_prog_CC+set}" = set; then
1327 echo $ECHO_N "(cached) $ECHO_C" >&6
1328else
1329 if test -n "$CC"; then
1330 ac_cv_prog_CC="$CC" # Let the user override the test.
1331else
1332as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1333for as_dir in $PATH
1334do
1335 IFS=$as_save_IFS
1336 test -z "$as_dir" && as_dir=.
1337 for ac_exec_ext in '' $ac_executable_extensions; do
1338 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1339 ac_cv_prog_CC="${ac_tool_prefix}gcc"
1340 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1341 break 2
1342 fi
1343done
1344done
1345
1346fi
1347fi
1348CC=$ac_cv_prog_CC
1349if test -n "$CC"; then
1350 echo "$as_me:$LINENO: result: $CC" >&5
1351echo "${ECHO_T}$CC" >&6
1352else
1353 echo "$as_me:$LINENO: result: no" >&5
1354echo "${ECHO_T}no" >&6
1355fi
1356
1357fi
1358if test -z "$ac_cv_prog_CC"; then
1359 ac_ct_CC=$CC
1360 # Extract the first word of "gcc", so it can be a program name with args.
1361set dummy gcc; ac_word=$2
1362echo "$as_me:$LINENO: checking for $ac_word" >&5
1363echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1364if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1365 echo $ECHO_N "(cached) $ECHO_C" >&6
1366else
1367 if test -n "$ac_ct_CC"; then
1368 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1369else
1370as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1371for as_dir in $PATH
1372do
1373 IFS=$as_save_IFS
1374 test -z "$as_dir" && as_dir=.
1375 for ac_exec_ext in '' $ac_executable_extensions; do
1376 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1377 ac_cv_prog_ac_ct_CC="gcc"
1378 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1379 break 2
1380 fi
1381done
1382done
1383
1384fi
1385fi
1386ac_ct_CC=$ac_cv_prog_ac_ct_CC
1387if test -n "$ac_ct_CC"; then
1388 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1389echo "${ECHO_T}$ac_ct_CC" >&6
1390else
1391 echo "$as_me:$LINENO: result: no" >&5
1392echo "${ECHO_T}no" >&6
1393fi
1394
1395 CC=$ac_ct_CC
1396else
1397 CC="$ac_cv_prog_CC"
1398fi
1399
1400if test -z "$CC"; then
1401 if test -n "$ac_tool_prefix"; then
1402 # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
1403set dummy ${ac_tool_prefix}cc; ac_word=$2
1404echo "$as_me:$LINENO: checking for $ac_word" >&5
1405echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1406if test "${ac_cv_prog_CC+set}" = set; then
1407 echo $ECHO_N "(cached) $ECHO_C" >&6
1408else
1409 if test -n "$CC"; then
1410 ac_cv_prog_CC="$CC" # Let the user override the test.
1411else
1412as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1413for as_dir in $PATH
1414do
1415 IFS=$as_save_IFS
1416 test -z "$as_dir" && as_dir=.
1417 for ac_exec_ext in '' $ac_executable_extensions; do
1418 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1419 ac_cv_prog_CC="${ac_tool_prefix}cc"
1420 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1421 break 2
1422 fi
1423done
1424done
1425
1426fi
1427fi
1428CC=$ac_cv_prog_CC
1429if test -n "$CC"; then
1430 echo "$as_me:$LINENO: result: $CC" >&5
1431echo "${ECHO_T}$CC" >&6
1432else
1433 echo "$as_me:$LINENO: result: no" >&5
1434echo "${ECHO_T}no" >&6
1435fi
1436
1437fi
1438if test -z "$ac_cv_prog_CC"; then
1439 ac_ct_CC=$CC
1440 # Extract the first word of "cc", so it can be a program name with args.
1441set dummy cc; ac_word=$2
1442echo "$as_me:$LINENO: checking for $ac_word" >&5
1443echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1444if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1445 echo $ECHO_N "(cached) $ECHO_C" >&6
1446else
1447 if test -n "$ac_ct_CC"; then
1448 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1449else
1450as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1451for as_dir in $PATH
1452do
1453 IFS=$as_save_IFS
1454 test -z "$as_dir" && as_dir=.
1455 for ac_exec_ext in '' $ac_executable_extensions; do
1456 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1457 ac_cv_prog_ac_ct_CC="cc"
1458 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1459 break 2
1460 fi
1461done
1462done
1463
1464fi
1465fi
1466ac_ct_CC=$ac_cv_prog_ac_ct_CC
1467if test -n "$ac_ct_CC"; then
1468 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1469echo "${ECHO_T}$ac_ct_CC" >&6
1470else
1471 echo "$as_me:$LINENO: result: no" >&5
1472echo "${ECHO_T}no" >&6
1473fi
1474
1475 CC=$ac_ct_CC
1476else
1477 CC="$ac_cv_prog_CC"
1478fi
1479
1480fi
1481if test -z "$CC"; then
1482 # Extract the first word of "cc", so it can be a program name with args.
1483set dummy cc; ac_word=$2
1484echo "$as_me:$LINENO: checking for $ac_word" >&5
1485echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1486if test "${ac_cv_prog_CC+set}" = set; then
1487 echo $ECHO_N "(cached) $ECHO_C" >&6
1488else
1489 if test -n "$CC"; then
1490 ac_cv_prog_CC="$CC" # Let the user override the test.
1491else
1492 ac_prog_rejected=no
1493as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1494for as_dir in $PATH
1495do
1496 IFS=$as_save_IFS
1497 test -z "$as_dir" && as_dir=.
1498 for ac_exec_ext in '' $ac_executable_extensions; do
1499 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1500 if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
1501 ac_prog_rejected=yes
1502 continue
1503 fi
1504 ac_cv_prog_CC="cc"
1505 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1506 break 2
1507 fi
1508done
1509done
1510
1511if test $ac_prog_rejected = yes; then
1512 # We found a bogon in the path, so make sure we never use it.
1513 set dummy $ac_cv_prog_CC
1514 shift
1515 if test $@%:@ != 0; then
1516 # We chose a different compiler from the bogus one.
1517 # However, it has the same basename, so the bogon will be chosen
1518 # first if we set CC to just the basename; use the full file name.
1519 shift
1520 ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
1521 fi
1522fi
1523fi
1524fi
1525CC=$ac_cv_prog_CC
1526if test -n "$CC"; then
1527 echo "$as_me:$LINENO: result: $CC" >&5
1528echo "${ECHO_T}$CC" >&6
1529else
1530 echo "$as_me:$LINENO: result: no" >&5
1531echo "${ECHO_T}no" >&6
1532fi
1533
1534fi
1535if test -z "$CC"; then
1536 if test -n "$ac_tool_prefix"; then
1537 for ac_prog in cl
1538 do
1539 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
1540set dummy $ac_tool_prefix$ac_prog; ac_word=$2
1541echo "$as_me:$LINENO: checking for $ac_word" >&5
1542echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1543if test "${ac_cv_prog_CC+set}" = set; then
1544 echo $ECHO_N "(cached) $ECHO_C" >&6
1545else
1546 if test -n "$CC"; then
1547 ac_cv_prog_CC="$CC" # Let the user override the test.
1548else
1549as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1550for as_dir in $PATH
1551do
1552 IFS=$as_save_IFS
1553 test -z "$as_dir" && as_dir=.
1554 for ac_exec_ext in '' $ac_executable_extensions; do
1555 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1556 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
1557 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1558 break 2
1559 fi
1560done
1561done
1562
1563fi
1564fi
1565CC=$ac_cv_prog_CC
1566if test -n "$CC"; then
1567 echo "$as_me:$LINENO: result: $CC" >&5
1568echo "${ECHO_T}$CC" >&6
1569else
1570 echo "$as_me:$LINENO: result: no" >&5
1571echo "${ECHO_T}no" >&6
1572fi
1573
1574 test -n "$CC" && break
1575 done
1576fi
1577if test -z "$CC"; then
1578 ac_ct_CC=$CC
1579 for ac_prog in cl
1580do
1581 # Extract the first word of "$ac_prog", so it can be a program name with args.
1582set dummy $ac_prog; ac_word=$2
1583echo "$as_me:$LINENO: checking for $ac_word" >&5
1584echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1585if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
1586 echo $ECHO_N "(cached) $ECHO_C" >&6
1587else
1588 if test -n "$ac_ct_CC"; then
1589 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
1590else
1591as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1592for as_dir in $PATH
1593do
1594 IFS=$as_save_IFS
1595 test -z "$as_dir" && as_dir=.
1596 for ac_exec_ext in '' $ac_executable_extensions; do
1597 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1598 ac_cv_prog_ac_ct_CC="$ac_prog"
1599 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1600 break 2
1601 fi
1602done
1603done
1604
1605fi
1606fi
1607ac_ct_CC=$ac_cv_prog_ac_ct_CC
1608if test -n "$ac_ct_CC"; then
1609 echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
1610echo "${ECHO_T}$ac_ct_CC" >&6
1611else
1612 echo "$as_me:$LINENO: result: no" >&5
1613echo "${ECHO_T}no" >&6
1614fi
1615
1616 test -n "$ac_ct_CC" && break
1617done
1618
1619 CC=$ac_ct_CC
1620fi
1621
1622fi
1623
1624
1625test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
1626See \`config.log' for more details." >&5
1627echo "$as_me: error: no acceptable C compiler found in \$PATH
1628See \`config.log' for more details." >&2;}
1629 { (exit 1); exit 1; }; }
1630
1631# Provide some information about the compiler.
1632echo "$as_me:$LINENO:" \
1633 "checking for C compiler version" >&5
1634ac_compiler=`set X $ac_compile; echo $2`
1635{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
1636 (eval $ac_compiler --version </dev/null >&5) 2>&5
1637 ac_status=$?
1638 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1639 (exit $ac_status); }
1640{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
1641 (eval $ac_compiler -v </dev/null >&5) 2>&5
1642 ac_status=$?
1643 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1644 (exit $ac_status); }
1645{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
1646 (eval $ac_compiler -V </dev/null >&5) 2>&5
1647 ac_status=$?
1648 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1649 (exit $ac_status); }
1650
1651cat >conftest.$ac_ext <<_ACEOF
1652#line $LINENO "configure"
1653/* confdefs.h. */
1654_ACEOF
1655cat confdefs.h >>conftest.$ac_ext
1656cat >>conftest.$ac_ext <<_ACEOF
1657/* end confdefs.h. */
1658
1659int
1660main ()
1661{
1662
1663 ;
1664 return 0;
1665}
1666_ACEOF
1667ac_clean_files_save=$ac_clean_files
1668ac_clean_files="$ac_clean_files a.out a.exe b.out"
1669# Try to create an executable without -o first, disregard a.out.
1670# It will help us diagnose broken compilers, and finding out an intuition
1671# of exeext.
1672echo "$as_me:$LINENO: checking for C compiler default output" >&5
1673echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
1674ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
1675if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
1676 (eval $ac_link_default) 2>&5
1677 ac_status=$?
1678 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1679 (exit $ac_status); }; then
1680 # Find the output, starting from the most likely. This scheme is
1681# not robust to junk in `.', hence go to wildcards (a.*) only as a last
1682# resort.
1683
1684# Be careful to initialize this variable, since it used to be cached.
1685# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
1686ac_cv_exeext=
1687# b.out is created by i960 compilers.
1688for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
1689do
1690 test -f "$ac_file" || continue
1691 case $ac_file in
1692 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
1693 ;;
1694 conftest.$ac_ext )
1695 # This is the source file.
1696 ;;
1697 [ab].out )
1698 # We found the default executable, but exeext='' is most
1699 # certainly right.
1700 break;;
1701 *.* )
1702 ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
1703 # FIXME: I believe we export ac_cv_exeext for Libtool,
1704 # but it would be cool to find out if it's true. Does anybody
1705 # maintain Libtool? --akim.
1706 export ac_cv_exeext
1707 break;;
1708 * )
1709 break;;
1710 esac
1711done
1712else
1713 echo "$as_me: failed program was:" >&5
1714sed 's/^/| /' conftest.$ac_ext >&5
1715
1716{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
1717See \`config.log' for more details." >&5
1718echo "$as_me: error: C compiler cannot create executables
1719See \`config.log' for more details." >&2;}
1720 { (exit 77); exit 77; }; }
1721fi
1722
1723ac_exeext=$ac_cv_exeext
1724echo "$as_me:$LINENO: result: $ac_file" >&5
1725echo "${ECHO_T}$ac_file" >&6
1726
1727# Check the compiler produces executables we can run. If not, either
1728# the compiler is broken, or we cross compile.
1729echo "$as_me:$LINENO: checking whether the C compiler works" >&5
1730echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
1731# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
1732# If not cross compiling, check that we can run a simple program.
1733if test "$cross_compiling" != yes; then
1734 if { ac_try='./$ac_file'
1735 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1736 (eval $ac_try) 2>&5
1737 ac_status=$?
1738 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1739 (exit $ac_status); }; }; then
1740 cross_compiling=no
1741 else
1742 if test "$cross_compiling" = maybe; then
1743 cross_compiling=yes
1744 else
1745 { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
1746If you meant to cross compile, use \`--host'.
1747See \`config.log' for more details." >&5
1748echo "$as_me: error: cannot run C compiled programs.
1749If you meant to cross compile, use \`--host'.
1750See \`config.log' for more details." >&2;}
1751 { (exit 1); exit 1; }; }
1752 fi
1753 fi
1754fi
1755echo "$as_me:$LINENO: result: yes" >&5
1756echo "${ECHO_T}yes" >&6
1757
1758rm -f a.out a.exe conftest$ac_cv_exeext b.out
1759ac_clean_files=$ac_clean_files_save
1760# Check the compiler produces executables we can run. If not, either
1761# the compiler is broken, or we cross compile.
1762echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
1763echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
1764echo "$as_me:$LINENO: result: $cross_compiling" >&5
1765echo "${ECHO_T}$cross_compiling" >&6
1766
1767echo "$as_me:$LINENO: checking for suffix of executables" >&5
1768echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
1769if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
1770 (eval $ac_link) 2>&5
1771 ac_status=$?
1772 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1773 (exit $ac_status); }; then
1774 # If both `conftest.exe' and `conftest' are `present' (well, observable)
1775# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
1776# work properly (i.e., refer to `conftest.exe'), while it won't with
1777# `rm'.
1778for ac_file in conftest.exe conftest conftest.*; do
1779 test -f "$ac_file" || continue
1780 case $ac_file in
1781 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
1782 *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
1783 export ac_cv_exeext
1784 break;;
1785 * ) break;;
1786 esac
1787done
1788else
1789 { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
1790See \`config.log' for more details." >&5
1791echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
1792See \`config.log' for more details." >&2;}
1793 { (exit 1); exit 1; }; }
1794fi
1795
1796rm -f conftest$ac_cv_exeext
1797echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
1798echo "${ECHO_T}$ac_cv_exeext" >&6
1799
1800rm -f conftest.$ac_ext
1801EXEEXT=$ac_cv_exeext
1802ac_exeext=$EXEEXT
1803echo "$as_me:$LINENO: checking for suffix of object files" >&5
1804echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
1805if test "${ac_cv_objext+set}" = set; then
1806 echo $ECHO_N "(cached) $ECHO_C" >&6
1807else
1808 cat >conftest.$ac_ext <<_ACEOF
1809#line $LINENO "configure"
1810/* confdefs.h. */
1811_ACEOF
1812cat confdefs.h >>conftest.$ac_ext
1813cat >>conftest.$ac_ext <<_ACEOF
1814/* end confdefs.h. */
1815
1816int
1817main ()
1818{
1819
1820 ;
1821 return 0;
1822}
1823_ACEOF
1824rm -f conftest.o conftest.obj
1825if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1826 (eval $ac_compile) 2>&5
1827 ac_status=$?
1828 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1829 (exit $ac_status); }; then
1830 for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
1831 case $ac_file in
1832 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
1833 *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
1834 break;;
1835 esac
1836done
1837else
1838 echo "$as_me: failed program was:" >&5
1839sed 's/^/| /' conftest.$ac_ext >&5
1840
1841{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
1842See \`config.log' for more details." >&5
1843echo "$as_me: error: cannot compute suffix of object files: cannot compile
1844See \`config.log' for more details." >&2;}
1845 { (exit 1); exit 1; }; }
1846fi
1847
1848rm -f conftest.$ac_cv_objext conftest.$ac_ext
1849fi
1850echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
1851echo "${ECHO_T}$ac_cv_objext" >&6
1852OBJEXT=$ac_cv_objext
1853ac_objext=$OBJEXT
1854echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
1855echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
1856if test "${ac_cv_c_compiler_gnu+set}" = set; then
1857 echo $ECHO_N "(cached) $ECHO_C" >&6
1858else
1859 cat >conftest.$ac_ext <<_ACEOF
1860#line $LINENO "configure"
1861/* confdefs.h. */
1862_ACEOF
1863cat confdefs.h >>conftest.$ac_ext
1864cat >>conftest.$ac_ext <<_ACEOF
1865/* end confdefs.h. */
1866
1867int
1868main ()
1869{
1870#ifndef __GNUC__
1871 choke me
1872#endif
1873
1874 ;
1875 return 0;
1876}
1877_ACEOF
1878rm -f conftest.$ac_objext
1879if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1880 (eval $ac_compile) 2>&5
1881 ac_status=$?
1882 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1883 (exit $ac_status); } &&
1884 { ac_try='test -s conftest.$ac_objext'
1885 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1886 (eval $ac_try) 2>&5
1887 ac_status=$?
1888 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1889 (exit $ac_status); }; }; then
1890 ac_compiler_gnu=yes
1891else
1892 echo "$as_me: failed program was:" >&5
1893sed 's/^/| /' conftest.$ac_ext >&5
1894
1895ac_compiler_gnu=no
1896fi
1897rm -f conftest.$ac_objext conftest.$ac_ext
1898ac_cv_c_compiler_gnu=$ac_compiler_gnu
1899
1900fi
1901echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
1902echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
1903GCC=`test $ac_compiler_gnu = yes && echo yes`
1904ac_test_CFLAGS=${CFLAGS+set}
1905ac_save_CFLAGS=$CFLAGS
1906CFLAGS="-g"
1907echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
1908echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
1909if test "${ac_cv_prog_cc_g+set}" = set; then
1910 echo $ECHO_N "(cached) $ECHO_C" >&6
1911else
1912 cat >conftest.$ac_ext <<_ACEOF
1913#line $LINENO "configure"
1914/* confdefs.h. */
1915_ACEOF
1916cat confdefs.h >>conftest.$ac_ext
1917cat >>conftest.$ac_ext <<_ACEOF
1918/* end confdefs.h. */
1919
1920int
1921main ()
1922{
1923
1924 ;
1925 return 0;
1926}
1927_ACEOF
1928rm -f conftest.$ac_objext
1929if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1930 (eval $ac_compile) 2>&5
1931 ac_status=$?
1932 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1933 (exit $ac_status); } &&
1934 { ac_try='test -s conftest.$ac_objext'
1935 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1936 (eval $ac_try) 2>&5
1937 ac_status=$?
1938 echo "$as_me:$LINENO: \$? = $ac_status" >&5
1939 (exit $ac_status); }; }; then
1940 ac_cv_prog_cc_g=yes
1941else
1942 echo "$as_me: failed program was:" >&5
1943sed 's/^/| /' conftest.$ac_ext >&5
1944
1945ac_cv_prog_cc_g=no
1946fi
1947rm -f conftest.$ac_objext conftest.$ac_ext
1948fi
1949echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
1950echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
1951if test "$ac_test_CFLAGS" = set; then
1952 CFLAGS=$ac_save_CFLAGS
1953elif test $ac_cv_prog_cc_g = yes; then
1954 if test "$GCC" = yes; then
1955 CFLAGS="-g -O2"
1956 else
1957 CFLAGS="-g"
1958 fi
1959else
1960 if test "$GCC" = yes; then
1961 CFLAGS="-O2"
1962 else
1963 CFLAGS=
1964 fi
1965fi
1966echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
1967echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
1968if test "${ac_cv_prog_cc_stdc+set}" = set; then
1969 echo $ECHO_N "(cached) $ECHO_C" >&6
1970else
1971 ac_cv_prog_cc_stdc=no
1972ac_save_CC=$CC
1973cat >conftest.$ac_ext <<_ACEOF
1974#line $LINENO "configure"
1975/* confdefs.h. */
1976_ACEOF
1977cat confdefs.h >>conftest.$ac_ext
1978cat >>conftest.$ac_ext <<_ACEOF
1979/* end confdefs.h. */
1980#include <stdarg.h>
1981#include <stdio.h>
1982#include <sys/types.h>
1983#include <sys/stat.h>
1984/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
1985struct buf { int x; };
1986FILE * (*rcsopen) (struct buf *, struct stat *, int);
1987static char *e (p, i)
1988 char **p;
1989 int i;
1990{
1991 return p[i];
1992}
1993static char *f (char * (*g) (char **, int), char **p, ...)
1994{
1995 char *s;
1996 va_list v;
1997 va_start (v,p);
1998 s = g (p, va_arg (v,int));
1999 va_end (v);
2000 return s;
2001}
2002int test (int i, double x);
2003struct s1 {int (*f) (int a);};
2004struct s2 {int (*f) (double a);};
2005int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
2006int argc;
2007char **argv;
2008int
2009main ()
2010{
2011return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
2012 ;
2013 return 0;
2014}
2015_ACEOF
2016# Don't try gcc -ansi; that turns off useful extensions and
2017# breaks some systems' header files.
2018# AIX -qlanglvl=ansi
2019# Ultrix and OSF/1 -std1
2020# HP-UX 10.20 and later -Ae
2021# HP-UX older versions -Aa -D_HPUX_SOURCE
2022# SVR4 -Xc -D__EXTENSIONS__
2023for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
2024do
2025 CC="$ac_save_CC $ac_arg"
2026 rm -f conftest.$ac_objext
2027if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2028 (eval $ac_compile) 2>&5
2029 ac_status=$?
2030 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2031 (exit $ac_status); } &&
2032 { ac_try='test -s conftest.$ac_objext'
2033 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2034 (eval $ac_try) 2>&5
2035 ac_status=$?
2036 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2037 (exit $ac_status); }; }; then
2038 ac_cv_prog_cc_stdc=$ac_arg
2039break
2040else
2041 echo "$as_me: failed program was:" >&5
2042sed 's/^/| /' conftest.$ac_ext >&5
2043
2044fi
2045rm -f conftest.$ac_objext
2046done
2047rm -f conftest.$ac_ext conftest.$ac_objext
2048CC=$ac_save_CC
2049
2050fi
2051
2052case "x$ac_cv_prog_cc_stdc" in
2053 x|xno)
2054 echo "$as_me:$LINENO: result: none needed" >&5
2055echo "${ECHO_T}none needed" >&6 ;;
2056 *)
2057 echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
2058echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
2059 CC="$CC $ac_cv_prog_cc_stdc" ;;
2060esac
2061
2062# Some people use a C++ compiler to compile C. Since we use `exit',
2063# in C++ we need to declare it. In case someone uses the same compiler
2064# for both compiling C and C++ we need to have the C++ compiler decide
2065# the declaration of exit, since it's the most demanding environment.
2066cat >conftest.$ac_ext <<_ACEOF
2067@%:@ifndef __cplusplus
2068 choke me
2069@%:@endif
2070_ACEOF
2071rm -f conftest.$ac_objext
2072if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2073 (eval $ac_compile) 2>&5
2074 ac_status=$?
2075 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2076 (exit $ac_status); } &&
2077 { ac_try='test -s conftest.$ac_objext'
2078 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2079 (eval $ac_try) 2>&5
2080 ac_status=$?
2081 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2082 (exit $ac_status); }; }; then
2083 for ac_declaration in \
2084 ''\
2085 '#include <stdlib.h>' \
2086 'extern "C" void std::exit (int) throw (); using std::exit;' \
2087 'extern "C" void std::exit (int); using std::exit;' \
2088 'extern "C" void exit (int) throw ();' \
2089 'extern "C" void exit (int);' \
2090 'void exit (int);'
2091do
2092 cat >conftest.$ac_ext <<_ACEOF
2093#line $LINENO "configure"
2094/* confdefs.h. */
2095_ACEOF
2096cat confdefs.h >>conftest.$ac_ext
2097cat >>conftest.$ac_ext <<_ACEOF
2098/* end confdefs.h. */
2099@%:@include <stdlib.h>
2100$ac_declaration
2101int
2102main ()
2103{
2104exit (42);
2105 ;
2106 return 0;
2107}
2108_ACEOF
2109rm -f conftest.$ac_objext
2110if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2111 (eval $ac_compile) 2>&5
2112 ac_status=$?
2113 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2114 (exit $ac_status); } &&
2115 { ac_try='test -s conftest.$ac_objext'
2116 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2117 (eval $ac_try) 2>&5
2118 ac_status=$?
2119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2120 (exit $ac_status); }; }; then
2121 :
2122else
2123 echo "$as_me: failed program was:" >&5
2124sed 's/^/| /' conftest.$ac_ext >&5
2125
2126continue
2127fi
2128rm -f conftest.$ac_objext conftest.$ac_ext
2129 cat >conftest.$ac_ext <<_ACEOF
2130#line $LINENO "configure"
2131/* confdefs.h. */
2132_ACEOF
2133cat confdefs.h >>conftest.$ac_ext
2134cat >>conftest.$ac_ext <<_ACEOF
2135/* end confdefs.h. */
2136$ac_declaration
2137int
2138main ()
2139{
2140exit (42);
2141 ;
2142 return 0;
2143}
2144_ACEOF
2145rm -f conftest.$ac_objext
2146if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2147 (eval $ac_compile) 2>&5
2148 ac_status=$?
2149 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2150 (exit $ac_status); } &&
2151 { ac_try='test -s conftest.$ac_objext'
2152 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2153 (eval $ac_try) 2>&5
2154 ac_status=$?
2155 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2156 (exit $ac_status); }; }; then
2157 break
2158else
2159 echo "$as_me: failed program was:" >&5
2160sed 's/^/| /' conftest.$ac_ext >&5
2161
2162fi
2163rm -f conftest.$ac_objext conftest.$ac_ext
2164done
2165rm -f conftest*
2166if test -n "$ac_declaration"; then
2167 echo '#ifdef __cplusplus' >>confdefs.h
2168 echo $ac_declaration >>confdefs.h
2169 echo '#endif' >>confdefs.h
2170fi
2171
2172else
2173 echo "$as_me: failed program was:" >&5
2174sed 's/^/| /' conftest.$ac_ext >&5
2175
2176fi
2177rm -f conftest.$ac_objext conftest.$ac_ext
2178ac_ext=c
2179ac_cpp='$CPP $CPPFLAGS'
2180ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2181ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2182ac_compiler_gnu=$ac_cv_c_compiler_gnu
2183
2184ac_aux_dir=
2185for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
2186 if test -f $ac_dir/install-sh; then
2187 ac_aux_dir=$ac_dir
2188 ac_install_sh="$ac_aux_dir/install-sh -c"
2189 break
2190 elif test -f $ac_dir/install.sh; then
2191 ac_aux_dir=$ac_dir
2192 ac_install_sh="$ac_aux_dir/install.sh -c"
2193 break
2194 elif test -f $ac_dir/shtool; then
2195 ac_aux_dir=$ac_dir
2196 ac_install_sh="$ac_aux_dir/shtool install -c"
2197 break
2198 fi
2199done
2200if test -z "$ac_aux_dir"; then
2201 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
2202echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
2203 { (exit 1); exit 1; }; }
2204fi
2205ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2206ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2207ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2208
2209# Make sure we can run config.sub.
2210$ac_config_sub sun4 >/dev/null 2>&1 ||
2211 { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
2212echo "$as_me: error: cannot run $ac_config_sub" >&2;}
2213 { (exit 1); exit 1; }; }
2214
2215echo "$as_me:$LINENO: checking build system type" >&5
2216echo $ECHO_N "checking build system type... $ECHO_C" >&6
2217if test "${ac_cv_build+set}" = set; then
2218 echo $ECHO_N "(cached) $ECHO_C" >&6
2219else
2220 ac_cv_build_alias=$build_alias
2221test -z "$ac_cv_build_alias" &&
2222 ac_cv_build_alias=`$ac_config_guess`
2223test -z "$ac_cv_build_alias" &&
2224 { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2225echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2226 { (exit 1); exit 1; }; }
2227ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
2228 { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
2229echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
2230 { (exit 1); exit 1; }; }
2231
2232fi
2233echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2234echo "${ECHO_T}$ac_cv_build" >&6
2235build=$ac_cv_build
2236build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2237build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2238build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2239
2240
2241echo "$as_me:$LINENO: checking host system type" >&5
2242echo $ECHO_N "checking host system type... $ECHO_C" >&6
2243if test "${ac_cv_host+set}" = set; then
2244 echo $ECHO_N "(cached) $ECHO_C" >&6
2245else
2246 ac_cv_host_alias=$host_alias
2247test -z "$ac_cv_host_alias" &&
2248 ac_cv_host_alias=$ac_cv_build_alias
2249ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
2250 { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
2251echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
2252 { (exit 1); exit 1; }; }
2253
2254fi
2255echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2256echo "${ECHO_T}$ac_cv_host" >&6
2257host=$ac_cv_host
2258host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2259host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2260host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2261
2262
2263
2264echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
2265echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
2266if test "${ac_cv_c_bigendian+set}" = set; then
2267 echo $ECHO_N "(cached) $ECHO_C" >&6
2268else
2269 # See if sys/param.h defines the BYTE_ORDER macro.
2270cat >conftest.$ac_ext <<_ACEOF
2271#line $LINENO "configure"
2272/* confdefs.h. */
2273_ACEOF
2274cat confdefs.h >>conftest.$ac_ext
2275cat >>conftest.$ac_ext <<_ACEOF
2276/* end confdefs.h. */
2277#include <sys/types.h>
2278#include <sys/param.h>
2279
2280int
2281main ()
2282{
2283#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
2284 bogus endian macros
2285#endif
2286
2287 ;
2288 return 0;
2289}
2290_ACEOF
2291rm -f conftest.$ac_objext
2292if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2293 (eval $ac_compile) 2>&5
2294 ac_status=$?
2295 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2296 (exit $ac_status); } &&
2297 { ac_try='test -s conftest.$ac_objext'
2298 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2299 (eval $ac_try) 2>&5
2300 ac_status=$?
2301 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2302 (exit $ac_status); }; }; then
2303 # It does; now see whether it defined to BIG_ENDIAN or not.
2304cat >conftest.$ac_ext <<_ACEOF
2305#line $LINENO "configure"
2306/* confdefs.h. */
2307_ACEOF
2308cat confdefs.h >>conftest.$ac_ext
2309cat >>conftest.$ac_ext <<_ACEOF
2310/* end confdefs.h. */
2311#include <sys/types.h>
2312#include <sys/param.h>
2313
2314int
2315main ()
2316{
2317#if BYTE_ORDER != BIG_ENDIAN
2318 not big endian
2319#endif
2320
2321 ;
2322 return 0;
2323}
2324_ACEOF
2325rm -f conftest.$ac_objext
2326if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2327 (eval $ac_compile) 2>&5
2328 ac_status=$?
2329 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2330 (exit $ac_status); } &&
2331 { ac_try='test -s conftest.$ac_objext'
2332 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2333 (eval $ac_try) 2>&5
2334 ac_status=$?
2335 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2336 (exit $ac_status); }; }; then
2337 ac_cv_c_bigendian=yes
2338else
2339 echo "$as_me: failed program was:" >&5
2340sed 's/^/| /' conftest.$ac_ext >&5
2341
2342ac_cv_c_bigendian=no
2343fi
2344rm -f conftest.$ac_objext conftest.$ac_ext
2345else
2346 echo "$as_me: failed program was:" >&5
2347sed 's/^/| /' conftest.$ac_ext >&5
2348
2349# It does not; compile a test program.
2350if test "$cross_compiling" = yes; then
2351 # try to guess the endianness by grepping values into an object file
2352 ac_cv_c_bigendian=unknown
2353 cat >conftest.$ac_ext <<_ACEOF
2354#line $LINENO "configure"
2355/* confdefs.h. */
2356_ACEOF
2357cat confdefs.h >>conftest.$ac_ext
2358cat >>conftest.$ac_ext <<_ACEOF
2359/* end confdefs.h. */
2360short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
2361short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
2362void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
2363short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
2364short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
2365void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
2366int
2367main ()
2368{
2369 _ascii (); _ebcdic ();
2370 ;
2371 return 0;
2372}
2373_ACEOF
2374rm -f conftest.$ac_objext
2375if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2376 (eval $ac_compile) 2>&5
2377 ac_status=$?
2378 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2379 (exit $ac_status); } &&
2380 { ac_try='test -s conftest.$ac_objext'
2381 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2382 (eval $ac_try) 2>&5
2383 ac_status=$?
2384 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2385 (exit $ac_status); }; }; then
2386 if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
2387 ac_cv_c_bigendian=yes
2388fi
2389if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
2390 if test "$ac_cv_c_bigendian" = unknown; then
2391 ac_cv_c_bigendian=no
2392 else
2393 # finding both strings is unlikely to happen, but who knows?
2394 ac_cv_c_bigendian=unknown
2395 fi
2396fi
2397else
2398 echo "$as_me: failed program was:" >&5
2399sed 's/^/| /' conftest.$ac_ext >&5
2400
2401fi
2402rm -f conftest.$ac_objext conftest.$ac_ext
2403else
2404 cat >conftest.$ac_ext <<_ACEOF
2405#line $LINENO "configure"
2406/* confdefs.h. */
2407_ACEOF
2408cat confdefs.h >>conftest.$ac_ext
2409cat >>conftest.$ac_ext <<_ACEOF
2410/* end confdefs.h. */
2411int
2412main ()
2413{
2414 /* Are we little or big endian? From Harbison&Steele. */
2415 union
2416 {
2417 long l;
2418 char c[sizeof (long)];
2419 } u;
2420 u.l = 1;
2421 exit (u.c[sizeof (long) - 1] == 1);
2422}
2423_ACEOF
2424rm -f conftest$ac_exeext
2425if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
2426 (eval $ac_link) 2>&5
2427 ac_status=$?
2428 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2429 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
2430 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2431 (eval $ac_try) 2>&5
2432 ac_status=$?
2433 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2434 (exit $ac_status); }; }; then
2435 ac_cv_c_bigendian=no
2436else
2437 echo "$as_me: program exited with status $ac_status" >&5
2438echo "$as_me: failed program was:" >&5
2439sed 's/^/| /' conftest.$ac_ext >&5
2440
2441( exit $ac_status )
2442ac_cv_c_bigendian=yes
2443fi
2444rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
2445fi
2446fi
2447rm -f conftest.$ac_objext conftest.$ac_ext
2448fi
2449echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
2450echo "${ECHO_T}$ac_cv_c_bigendian" >&6
2451case $ac_cv_c_bigendian in
2452 yes)
2453
2454cat >>confdefs.h <<\_ACEOF
2455@%:@define WORDS_BIGENDIAN 1
2456_ACEOF
2457 ;;
2458 no)
2459 ;;
2460 *)
2461 { { echo "$as_me:$LINENO: error: unknown endianness
2462presetting ac_cv_c_bigendian=no (or yes) will help" >&5
2463echo "$as_me: error: unknown endianness
2464presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
2465 { (exit 1); exit 1; }; } ;;
2466esac
2467
2468
2469# Checks for programs.
2470ac_ext=c
2471ac_cpp='$CPP $CPPFLAGS'
2472ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2473ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2474ac_compiler_gnu=$ac_cv_c_compiler_gnu
2475echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
2476echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
2477# On Suns, sometimes $CPP names a directory.
2478if test -n "$CPP" && test -d "$CPP"; then
2479 CPP=
2480fi
2481if test -z "$CPP"; then
2482 if test "${ac_cv_prog_CPP+set}" = set; then
2483 echo $ECHO_N "(cached) $ECHO_C" >&6
2484else
2485 # Double quotes because CPP needs to be expanded
2486 for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
2487 do
2488 ac_preproc_ok=false
2489for ac_c_preproc_warn_flag in '' yes
2490do
2491 # Use a header file that comes with gcc, so configuring glibc
2492 # with a fresh cross-compiler works.
2493 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2494 # <limits.h> exists even on freestanding compilers.
2495 # On the NeXT, cc -E runs the code through the compiler's parser,
2496 # not just through cpp. "Syntax error" is here to catch this case.
2497 cat >conftest.$ac_ext <<_ACEOF
2498#line $LINENO "configure"
2499/* confdefs.h. */
2500_ACEOF
2501cat confdefs.h >>conftest.$ac_ext
2502cat >>conftest.$ac_ext <<_ACEOF
2503/* end confdefs.h. */
2504@%:@ifdef __STDC__
2505@%:@ include <limits.h>
2506@%:@else
2507@%:@ include <assert.h>
2508@%:@endif
2509 Syntax error
2510_ACEOF
2511if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2512 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2513 ac_status=$?
2514 grep -v '^ *+' conftest.er1 >conftest.err
2515 rm -f conftest.er1
2516 cat conftest.err >&5
2517 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2518 (exit $ac_status); } >/dev/null; then
2519 if test -s conftest.err; then
2520 ac_cpp_err=$ac_c_preproc_warn_flag
2521 else
2522 ac_cpp_err=
2523 fi
2524else
2525 ac_cpp_err=yes
2526fi
2527if test -z "$ac_cpp_err"; then
2528 :
2529else
2530 echo "$as_me: failed program was:" >&5
2531sed 's/^/| /' conftest.$ac_ext >&5
2532
2533 # Broken: fails on valid input.
2534continue
2535fi
2536rm -f conftest.err conftest.$ac_ext
2537
2538 # OK, works on sane cases. Now check whether non-existent headers
2539 # can be detected and how.
2540 cat >conftest.$ac_ext <<_ACEOF
2541#line $LINENO "configure"
2542/* confdefs.h. */
2543_ACEOF
2544cat confdefs.h >>conftest.$ac_ext
2545cat >>conftest.$ac_ext <<_ACEOF
2546/* end confdefs.h. */
2547@%:@include <ac_nonexistent.h>
2548_ACEOF
2549if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2550 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2551 ac_status=$?
2552 grep -v '^ *+' conftest.er1 >conftest.err
2553 rm -f conftest.er1
2554 cat conftest.err >&5
2555 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2556 (exit $ac_status); } >/dev/null; then
2557 if test -s conftest.err; then
2558 ac_cpp_err=$ac_c_preproc_warn_flag
2559 else
2560 ac_cpp_err=
2561 fi
2562else
2563 ac_cpp_err=yes
2564fi
2565if test -z "$ac_cpp_err"; then
2566 # Broken: success on invalid input.
2567continue
2568else
2569 echo "$as_me: failed program was:" >&5
2570sed 's/^/| /' conftest.$ac_ext >&5
2571
2572 # Passes both tests.
2573ac_preproc_ok=:
2574break
2575fi
2576rm -f conftest.err conftest.$ac_ext
2577
2578done
2579# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
2580rm -f conftest.err conftest.$ac_ext
2581if $ac_preproc_ok; then
2582 break
2583fi
2584
2585 done
2586 ac_cv_prog_CPP=$CPP
2587
2588fi
2589 CPP=$ac_cv_prog_CPP
2590else
2591 ac_cv_prog_CPP=$CPP
2592fi
2593echo "$as_me:$LINENO: result: $CPP" >&5
2594echo "${ECHO_T}$CPP" >&6
2595ac_preproc_ok=false
2596for ac_c_preproc_warn_flag in '' yes
2597do
2598 # Use a header file that comes with gcc, so configuring glibc
2599 # with a fresh cross-compiler works.
2600 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2601 # <limits.h> exists even on freestanding compilers.
2602 # On the NeXT, cc -E runs the code through the compiler's parser,
2603 # not just through cpp. "Syntax error" is here to catch this case.
2604 cat >conftest.$ac_ext <<_ACEOF
2605#line $LINENO "configure"
2606/* confdefs.h. */
2607_ACEOF
2608cat confdefs.h >>conftest.$ac_ext
2609cat >>conftest.$ac_ext <<_ACEOF
2610/* end confdefs.h. */
2611@%:@ifdef __STDC__
2612@%:@ include <limits.h>
2613@%:@else
2614@%:@ include <assert.h>
2615@%:@endif
2616 Syntax error
2617_ACEOF
2618if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2619 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2620 ac_status=$?
2621 grep -v '^ *+' conftest.er1 >conftest.err
2622 rm -f conftest.er1
2623 cat conftest.err >&5
2624 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2625 (exit $ac_status); } >/dev/null; then
2626 if test -s conftest.err; then
2627 ac_cpp_err=$ac_c_preproc_warn_flag
2628 else
2629 ac_cpp_err=
2630 fi
2631else
2632 ac_cpp_err=yes
2633fi
2634if test -z "$ac_cpp_err"; then
2635 :
2636else
2637 echo "$as_me: failed program was:" >&5
2638sed 's/^/| /' conftest.$ac_ext >&5
2639
2640 # Broken: fails on valid input.
2641continue
2642fi
2643rm -f conftest.err conftest.$ac_ext
2644
2645 # OK, works on sane cases. Now check whether non-existent headers
2646 # can be detected and how.
2647 cat >conftest.$ac_ext <<_ACEOF
2648#line $LINENO "configure"
2649/* confdefs.h. */
2650_ACEOF
2651cat confdefs.h >>conftest.$ac_ext
2652cat >>conftest.$ac_ext <<_ACEOF
2653/* end confdefs.h. */
2654@%:@include <ac_nonexistent.h>
2655_ACEOF
2656if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2657 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2658 ac_status=$?
2659 grep -v '^ *+' conftest.er1 >conftest.err
2660 rm -f conftest.er1
2661 cat conftest.err >&5
2662 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2663 (exit $ac_status); } >/dev/null; then
2664 if test -s conftest.err; then
2665 ac_cpp_err=$ac_c_preproc_warn_flag
2666 else
2667 ac_cpp_err=
2668 fi
2669else
2670 ac_cpp_err=yes
2671fi
2672if test -z "$ac_cpp_err"; then
2673 # Broken: success on invalid input.
2674continue
2675else
2676 echo "$as_me: failed program was:" >&5
2677sed 's/^/| /' conftest.$ac_ext >&5
2678
2679 # Passes both tests.
2680ac_preproc_ok=:
2681break
2682fi
2683rm -f conftest.err conftest.$ac_ext
2684
2685done
2686# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
2687rm -f conftest.err conftest.$ac_ext
2688if $ac_preproc_ok; then
2689 :
2690else
2691 { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
2692See \`config.log' for more details." >&5
2693echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
2694See \`config.log' for more details." >&2;}
2695 { (exit 1); exit 1; }; }
2696fi
2697
2698ac_ext=c
2699ac_cpp='$CPP $CPPFLAGS'
2700ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2701ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2702ac_compiler_gnu=$ac_cv_c_compiler_gnu
2703
2704if test -n "$ac_tool_prefix"; then
2705 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
2706set dummy ${ac_tool_prefix}ranlib; ac_word=$2
2707echo "$as_me:$LINENO: checking for $ac_word" >&5
2708echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2709if test "${ac_cv_prog_RANLIB+set}" = set; then
2710 echo $ECHO_N "(cached) $ECHO_C" >&6
2711else
2712 if test -n "$RANLIB"; then
2713 ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
2714else
2715as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2716for as_dir in $PATH
2717do
2718 IFS=$as_save_IFS
2719 test -z "$as_dir" && as_dir=.
2720 for ac_exec_ext in '' $ac_executable_extensions; do
2721 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2722 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
2723 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2724 break 2
2725 fi
2726done
2727done
2728
2729fi
2730fi
2731RANLIB=$ac_cv_prog_RANLIB
2732if test -n "$RANLIB"; then
2733 echo "$as_me:$LINENO: result: $RANLIB" >&5
2734echo "${ECHO_T}$RANLIB" >&6
2735else
2736 echo "$as_me:$LINENO: result: no" >&5
2737echo "${ECHO_T}no" >&6
2738fi
2739
2740fi
2741if test -z "$ac_cv_prog_RANLIB"; then
2742 ac_ct_RANLIB=$RANLIB
2743 # Extract the first word of "ranlib", so it can be a program name with args.
2744set dummy ranlib; ac_word=$2
2745echo "$as_me:$LINENO: checking for $ac_word" >&5
2746echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2747if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
2748 echo $ECHO_N "(cached) $ECHO_C" >&6
2749else
2750 if test -n "$ac_ct_RANLIB"; then
2751 ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
2752else
2753as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2754for as_dir in $PATH
2755do
2756 IFS=$as_save_IFS
2757 test -z "$as_dir" && as_dir=.
2758 for ac_exec_ext in '' $ac_executable_extensions; do
2759 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2760 ac_cv_prog_ac_ct_RANLIB="ranlib"
2761 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2762 break 2
2763 fi
2764done
2765done
2766
2767 test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
2768fi
2769fi
2770ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
2771if test -n "$ac_ct_RANLIB"; then
2772 echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
2773echo "${ECHO_T}$ac_ct_RANLIB" >&6
2774else
2775 echo "$as_me:$LINENO: result: no" >&5
2776echo "${ECHO_T}no" >&6
2777fi
2778
2779 RANLIB=$ac_ct_RANLIB
2780else
2781 RANLIB="$ac_cv_prog_RANLIB"
2782fi
2783
2784# Find a good install program. We prefer a C program (faster),
2785# so one script is as good as another. But avoid the broken or
2786# incompatible versions:
2787# SysV /etc/install, /usr/sbin/install
2788# SunOS /usr/etc/install
2789# IRIX /sbin/install
2790# AIX /bin/install
2791# AmigaOS /C/install, which installs bootblocks on floppy discs
2792# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2793# AFS /usr/afsws/bin/install, which mishandles nonexistent args
2794# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2795# ./install, which can be erroneously created by make from ./install.sh.
2796echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2797echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2798if test -z "$INSTALL"; then
2799if test "${ac_cv_path_install+set}" = set; then
2800 echo $ECHO_N "(cached) $ECHO_C" >&6
2801else
2802 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2803for as_dir in $PATH
2804do
2805 IFS=$as_save_IFS
2806 test -z "$as_dir" && as_dir=.
2807 # Account for people who put trailing slashes in PATH elements.
2808case $as_dir/ in
2809 ./ | .// | /cC/* | \
2810 /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2811 /usr/ucb/* ) ;;
2812 *)
2813 # OSF1 and SCO ODT 3.0 have their own names for install.
2814 # Don't use installbsd from OSF since it installs stuff as root
2815 # by default.
2816 for ac_prog in ginstall scoinst install; do
2817 for ac_exec_ext in '' $ac_executable_extensions; do
2818 if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2819 if test $ac_prog = install &&
2820 grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2821 # AIX install. It has an incompatible calling convention.
2822 :
2823 elif test $ac_prog = install &&
2824 grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2825 # program-specific install script used by HP pwplus--don't use.
2826 :
2827 else
2828 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2829 break 3
2830 fi
2831 fi
2832 done
2833 done
2834 ;;
2835esac
2836done
2837
2838
2839fi
2840 if test "${ac_cv_path_install+set}" = set; then
2841 INSTALL=$ac_cv_path_install
2842 else
2843 # As a last resort, use the slow shell script. We don't cache a
2844 # path for INSTALL within a source directory, because that will
2845 # break other packages using the cache if that directory is
2846 # removed, or if the path is relative.
2847 INSTALL=$ac_install_sh
2848 fi
2849fi
2850echo "$as_me:$LINENO: result: $INSTALL" >&5
2851echo "${ECHO_T}$INSTALL" >&6
2852
2853# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2854# It thinks the first close brace ends the variable substitution.
2855test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2856
2857test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2858
2859test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2860
2861# Extract the first word of "ar", so it can be a program name with args.
2862set dummy ar; ac_word=$2
2863echo "$as_me:$LINENO: checking for $ac_word" >&5
2864echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2865if test "${ac_cv_path_AR+set}" = set; then
2866 echo $ECHO_N "(cached) $ECHO_C" >&6
2867else
2868 case $AR in
2869 [\\/]* | ?:[\\/]*)
2870 ac_cv_path_AR="$AR" # Let the user override the test with a path.
2871 ;;
2872 *)
2873 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2874for as_dir in $PATH
2875do
2876 IFS=$as_save_IFS
2877 test -z "$as_dir" && as_dir=.
2878 for ac_exec_ext in '' $ac_executable_extensions; do
2879 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2880 ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
2881 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2882 break 2
2883 fi
2884done
2885done
2886
2887 ;;
2888esac
2889fi
2890AR=$ac_cv_path_AR
2891
2892if test -n "$AR"; then
2893 echo "$as_me:$LINENO: result: $AR" >&5
2894echo "${ECHO_T}$AR" >&6
2895else
2896 echo "$as_me:$LINENO: result: no" >&5
2897echo "${ECHO_T}no" >&6
2898fi
2899
2900for ac_prog in perl5 perl
2901do
2902 # Extract the first word of "$ac_prog", so it can be a program name with args.
2903set dummy $ac_prog; ac_word=$2
2904echo "$as_me:$LINENO: checking for $ac_word" >&5
2905echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2906if test "${ac_cv_path_PERL+set}" = set; then
2907 echo $ECHO_N "(cached) $ECHO_C" >&6
2908else
2909 case $PERL in
2910 [\\/]* | ?:[\\/]*)
2911 ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
2912 ;;
2913 *)
2914 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2915for as_dir in $PATH
2916do
2917 IFS=$as_save_IFS
2918 test -z "$as_dir" && as_dir=.
2919 for ac_exec_ext in '' $ac_executable_extensions; do
2920 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2921 ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
2922 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2923 break 2
2924 fi
2925done
2926done
2927
2928 ;;
2929esac
2930fi
2931PERL=$ac_cv_path_PERL
2932
2933if test -n "$PERL"; then
2934 echo "$as_me:$LINENO: result: $PERL" >&5
2935echo "${ECHO_T}$PERL" >&6
2936else
2937 echo "$as_me:$LINENO: result: no" >&5
2938echo "${ECHO_T}no" >&6
2939fi
2940
2941 test -n "$PERL" && break
2942done
2943
2944# Extract the first word of "sed", so it can be a program name with args.
2945set dummy sed; ac_word=$2
2946echo "$as_me:$LINENO: checking for $ac_word" >&5
2947echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2948if test "${ac_cv_path_SED+set}" = set; then
2949 echo $ECHO_N "(cached) $ECHO_C" >&6
2950else
2951 case $SED in
2952 [\\/]* | ?:[\\/]*)
2953 ac_cv_path_SED="$SED" # Let the user override the test with a path.
2954 ;;
2955 *)
2956 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2957for as_dir in $PATH
2958do
2959 IFS=$as_save_IFS
2960 test -z "$as_dir" && as_dir=.
2961 for ac_exec_ext in '' $ac_executable_extensions; do
2962 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2963 ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
2964 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2965 break 2
2966 fi
2967done
2968done
2969
2970 ;;
2971esac
2972fi
2973SED=$ac_cv_path_SED
2974
2975if test -n "$SED"; then
2976 echo "$as_me:$LINENO: result: $SED" >&5
2977echo "${ECHO_T}$SED" >&6
2978else
2979 echo "$as_me:$LINENO: result: no" >&5
2980echo "${ECHO_T}no" >&6
2981fi
2982
2983
2984# Extract the first word of "ent", so it can be a program name with args.
2985set dummy ent; ac_word=$2
2986echo "$as_me:$LINENO: checking for $ac_word" >&5
2987echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2988if test "${ac_cv_path_ENT+set}" = set; then
2989 echo $ECHO_N "(cached) $ECHO_C" >&6
2990else
2991 case $ENT in
2992 [\\/]* | ?:[\\/]*)
2993 ac_cv_path_ENT="$ENT" # Let the user override the test with a path.
2994 ;;
2995 *)
2996 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2997for as_dir in $PATH
2998do
2999 IFS=$as_save_IFS
3000 test -z "$as_dir" && as_dir=.
3001 for ac_exec_ext in '' $ac_executable_extensions; do
3002 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3003 ac_cv_path_ENT="$as_dir/$ac_word$ac_exec_ext"
3004 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3005 break 2
3006 fi
3007done
3008done
3009
3010 ;;
3011esac
3012fi
3013ENT=$ac_cv_path_ENT
3014
3015if test -n "$ENT"; then
3016 echo "$as_me:$LINENO: result: $ENT" >&5
3017echo "${ECHO_T}$ENT" >&6
3018else
3019 echo "$as_me:$LINENO: result: no" >&5
3020echo "${ECHO_T}no" >&6
3021fi
3022
3023
3024# Extract the first word of "bash", so it can be a program name with args.
3025set dummy bash; ac_word=$2
3026echo "$as_me:$LINENO: checking for $ac_word" >&5
3027echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3028if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
3029 echo $ECHO_N "(cached) $ECHO_C" >&6
3030else
3031 case $TEST_MINUS_S_SH in
3032 [\\/]* | ?:[\\/]*)
3033 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
3034 ;;
3035 *)
3036 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3037for as_dir in $PATH
3038do
3039 IFS=$as_save_IFS
3040 test -z "$as_dir" && as_dir=.
3041 for ac_exec_ext in '' $ac_executable_extensions; do
3042 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3043 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
3044 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3045 break 2
3046 fi
3047done
3048done
3049
3050 ;;
3051esac
3052fi
3053TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
3054
3055if test -n "$TEST_MINUS_S_SH"; then
3056 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
3057echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
3058else
3059 echo "$as_me:$LINENO: result: no" >&5
3060echo "${ECHO_T}no" >&6
3061fi
3062
3063# Extract the first word of "ksh", so it can be a program name with args.
3064set dummy ksh; ac_word=$2
3065echo "$as_me:$LINENO: checking for $ac_word" >&5
3066echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3067if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
3068 echo $ECHO_N "(cached) $ECHO_C" >&6
3069else
3070 case $TEST_MINUS_S_SH in
3071 [\\/]* | ?:[\\/]*)
3072 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
3073 ;;
3074 *)
3075 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3076for as_dir in $PATH
3077do
3078 IFS=$as_save_IFS
3079 test -z "$as_dir" && as_dir=.
3080 for ac_exec_ext in '' $ac_executable_extensions; do
3081 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3082 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
3083 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3084 break 2
3085 fi
3086done
3087done
3088
3089 ;;
3090esac
3091fi
3092TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
3093
3094if test -n "$TEST_MINUS_S_SH"; then
3095 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
3096echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
3097else
3098 echo "$as_me:$LINENO: result: no" >&5
3099echo "${ECHO_T}no" >&6
3100fi
3101
3102# Extract the first word of "sh", so it can be a program name with args.
3103set dummy sh; ac_word=$2
3104echo "$as_me:$LINENO: checking for $ac_word" >&5
3105echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3106if test "${ac_cv_path_TEST_MINUS_S_SH+set}" = set; then
3107 echo $ECHO_N "(cached) $ECHO_C" >&6
3108else
3109 case $TEST_MINUS_S_SH in
3110 [\\/]* | ?:[\\/]*)
3111 ac_cv_path_TEST_MINUS_S_SH="$TEST_MINUS_S_SH" # Let the user override the test with a path.
3112 ;;
3113 *)
3114 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3115for as_dir in $PATH
3116do
3117 IFS=$as_save_IFS
3118 test -z "$as_dir" && as_dir=.
3119 for ac_exec_ext in '' $ac_executable_extensions; do
3120 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3121 ac_cv_path_TEST_MINUS_S_SH="$as_dir/$ac_word$ac_exec_ext"
3122 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3123 break 2
3124 fi
3125done
3126done
3127
3128 ;;
3129esac
3130fi
3131TEST_MINUS_S_SH=$ac_cv_path_TEST_MINUS_S_SH
3132
3133if test -n "$TEST_MINUS_S_SH"; then
3134 echo "$as_me:$LINENO: result: $TEST_MINUS_S_SH" >&5
3135echo "${ECHO_T}$TEST_MINUS_S_SH" >&6
3136else
3137 echo "$as_me:$LINENO: result: no" >&5
3138echo "${ECHO_T}no" >&6
3139fi
3140
3141# Extract the first word of "sh", so it can be a program name with args.
3142set dummy sh; ac_word=$2
3143echo "$as_me:$LINENO: checking for $ac_word" >&5
3144echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3145if test "${ac_cv_path_SH+set}" = set; then
3146 echo $ECHO_N "(cached) $ECHO_C" >&6
3147else
3148 case $SH in
3149 [\\/]* | ?:[\\/]*)
3150 ac_cv_path_SH="$SH" # Let the user override the test with a path.
3151 ;;
3152 *)
3153 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3154for as_dir in $PATH
3155do
3156 IFS=$as_save_IFS
3157 test -z "$as_dir" && as_dir=.
3158 for ac_exec_ext in '' $ac_executable_extensions; do
3159 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3160 ac_cv_path_SH="$as_dir/$ac_word$ac_exec_ext"
3161 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3162 break 2
3163 fi
3164done
3165done
3166
3167 ;;
3168esac
3169fi
3170SH=$ac_cv_path_SH
3171
3172if test -n "$SH"; then
3173 echo "$as_me:$LINENO: result: $SH" >&5
3174echo "${ECHO_T}$SH" >&6
3175else
3176 echo "$as_me:$LINENO: result: no" >&5
3177echo "${ECHO_T}no" >&6
3178fi
3179
3180
3181# System features
3182# Check whether --enable-largefile or --disable-largefile was given.
3183if test "${enable_largefile+set}" = set; then
3184 enableval="$enable_largefile"
3185
3186fi;
3187if test "$enable_largefile" != no; then
3188
3189 echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
3190echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
3191if test "${ac_cv_sys_largefile_CC+set}" = set; then
3192 echo $ECHO_N "(cached) $ECHO_C" >&6
3193else
3194 ac_cv_sys_largefile_CC=no
3195 if test "$GCC" != yes; then
3196 ac_save_CC=$CC
3197 while :; do
3198 # IRIX 6.2 and later do not support large files by default,
3199 # so use the C compiler's -n32 option if that helps.
3200 cat >conftest.$ac_ext <<_ACEOF
3201#line $LINENO "configure"
3202/* confdefs.h. */
3203_ACEOF
3204cat confdefs.h >>conftest.$ac_ext
3205cat >>conftest.$ac_ext <<_ACEOF
3206/* end confdefs.h. */
3207@%:@include <sys/types.h>
3208 /* Check that off_t can represent 2**63 - 1 correctly.
3209 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3210 since some C++ compilers masquerading as C compilers
3211 incorrectly reject 9223372036854775807. */
3212@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3213 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3214 && LARGE_OFF_T % 2147483647 == 1)
3215 ? 1 : -1];
3216int
3217main ()
3218{
3219
3220 ;
3221 return 0;
3222}
3223_ACEOF
3224 rm -f conftest.$ac_objext
3225if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3226 (eval $ac_compile) 2>&5
3227 ac_status=$?
3228 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3229 (exit $ac_status); } &&
3230 { ac_try='test -s conftest.$ac_objext'
3231 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3232 (eval $ac_try) 2>&5
3233 ac_status=$?
3234 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3235 (exit $ac_status); }; }; then
3236 break
3237else
3238 echo "$as_me: failed program was:" >&5
3239sed 's/^/| /' conftest.$ac_ext >&5
3240
3241fi
3242rm -f conftest.$ac_objext
3243 CC="$CC -n32"
3244 rm -f conftest.$ac_objext
3245if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3246 (eval $ac_compile) 2>&5
3247 ac_status=$?
3248 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3249 (exit $ac_status); } &&
3250 { ac_try='test -s conftest.$ac_objext'
3251 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3252 (eval $ac_try) 2>&5
3253 ac_status=$?
3254 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3255 (exit $ac_status); }; }; then
3256 ac_cv_sys_largefile_CC=' -n32'; break
3257else
3258 echo "$as_me: failed program was:" >&5
3259sed 's/^/| /' conftest.$ac_ext >&5
3260
3261fi
3262rm -f conftest.$ac_objext
3263 break
3264 done
3265 CC=$ac_save_CC
3266 rm -f conftest.$ac_ext
3267 fi
3268fi
3269echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
3270echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
3271 if test "$ac_cv_sys_largefile_CC" != no; then
3272 CC=$CC$ac_cv_sys_largefile_CC
3273 fi
3274
3275 echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
3276echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
3277if test "${ac_cv_sys_file_offset_bits+set}" = set; then
3278 echo $ECHO_N "(cached) $ECHO_C" >&6
3279else
3280 while :; do
3281 ac_cv_sys_file_offset_bits=no
3282 cat >conftest.$ac_ext <<_ACEOF
3283#line $LINENO "configure"
3284/* confdefs.h. */
3285_ACEOF
3286cat confdefs.h >>conftest.$ac_ext
3287cat >>conftest.$ac_ext <<_ACEOF
3288/* end confdefs.h. */
3289@%:@include <sys/types.h>
3290 /* Check that off_t can represent 2**63 - 1 correctly.
3291 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3292 since some C++ compilers masquerading as C compilers
3293 incorrectly reject 9223372036854775807. */
3294@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3295 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3296 && LARGE_OFF_T % 2147483647 == 1)
3297 ? 1 : -1];
3298int
3299main ()
3300{
3301
3302 ;
3303 return 0;
3304}
3305_ACEOF
3306rm -f conftest.$ac_objext
3307if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3308 (eval $ac_compile) 2>&5
3309 ac_status=$?
3310 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3311 (exit $ac_status); } &&
3312 { ac_try='test -s conftest.$ac_objext'
3313 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3314 (eval $ac_try) 2>&5
3315 ac_status=$?
3316 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3317 (exit $ac_status); }; }; then
3318 break
3319else
3320 echo "$as_me: failed program was:" >&5
3321sed 's/^/| /' conftest.$ac_ext >&5
3322
3323fi
3324rm -f conftest.$ac_objext conftest.$ac_ext
3325 cat >conftest.$ac_ext <<_ACEOF
3326#line $LINENO "configure"
3327/* confdefs.h. */
3328_ACEOF
3329cat confdefs.h >>conftest.$ac_ext
3330cat >>conftest.$ac_ext <<_ACEOF
3331/* end confdefs.h. */
3332@%:@define _FILE_OFFSET_BITS 64
3333@%:@include <sys/types.h>
3334 /* Check that off_t can represent 2**63 - 1 correctly.
3335 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3336 since some C++ compilers masquerading as C compilers
3337 incorrectly reject 9223372036854775807. */
3338@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3339 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3340 && LARGE_OFF_T % 2147483647 == 1)
3341 ? 1 : -1];
3342int
3343main ()
3344{
3345
3346 ;
3347 return 0;
3348}
3349_ACEOF
3350rm -f conftest.$ac_objext
3351if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3352 (eval $ac_compile) 2>&5
3353 ac_status=$?
3354 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3355 (exit $ac_status); } &&
3356 { ac_try='test -s conftest.$ac_objext'
3357 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3358 (eval $ac_try) 2>&5
3359 ac_status=$?
3360 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3361 (exit $ac_status); }; }; then
3362 ac_cv_sys_file_offset_bits=64; break
3363else
3364 echo "$as_me: failed program was:" >&5
3365sed 's/^/| /' conftest.$ac_ext >&5
3366
3367fi
3368rm -f conftest.$ac_objext conftest.$ac_ext
3369 break
3370done
3371fi
3372echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
3373echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
3374if test "$ac_cv_sys_file_offset_bits" != no; then
3375
3376cat >>confdefs.h <<_ACEOF
3377@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
3378_ACEOF
3379
3380fi
3381rm -f conftest*
3382 echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
3383echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
3384if test "${ac_cv_sys_large_files+set}" = set; then
3385 echo $ECHO_N "(cached) $ECHO_C" >&6
3386else
3387 while :; do
3388 ac_cv_sys_large_files=no
3389 cat >conftest.$ac_ext <<_ACEOF
3390#line $LINENO "configure"
3391/* confdefs.h. */
3392_ACEOF
3393cat confdefs.h >>conftest.$ac_ext
3394cat >>conftest.$ac_ext <<_ACEOF
3395/* end confdefs.h. */
3396@%:@include <sys/types.h>
3397 /* Check that off_t can represent 2**63 - 1 correctly.
3398 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3399 since some C++ compilers masquerading as C compilers
3400 incorrectly reject 9223372036854775807. */
3401@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3402 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3403 && LARGE_OFF_T % 2147483647 == 1)
3404 ? 1 : -1];
3405int
3406main ()
3407{
3408
3409 ;
3410 return 0;
3411}
3412_ACEOF
3413rm -f conftest.$ac_objext
3414if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3415 (eval $ac_compile) 2>&5
3416 ac_status=$?
3417 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3418 (exit $ac_status); } &&
3419 { ac_try='test -s conftest.$ac_objext'
3420 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3421 (eval $ac_try) 2>&5
3422 ac_status=$?
3423 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3424 (exit $ac_status); }; }; then
3425 break
3426else
3427 echo "$as_me: failed program was:" >&5
3428sed 's/^/| /' conftest.$ac_ext >&5
3429
3430fi
3431rm -f conftest.$ac_objext conftest.$ac_ext
3432 cat >conftest.$ac_ext <<_ACEOF
3433#line $LINENO "configure"
3434/* confdefs.h. */
3435_ACEOF
3436cat confdefs.h >>conftest.$ac_ext
3437cat >>conftest.$ac_ext <<_ACEOF
3438/* end confdefs.h. */
3439@%:@define _LARGE_FILES 1
3440@%:@include <sys/types.h>
3441 /* Check that off_t can represent 2**63 - 1 correctly.
3442 We can't simply define LARGE_OFF_T to be 9223372036854775807,
3443 since some C++ compilers masquerading as C compilers
3444 incorrectly reject 9223372036854775807. */
3445@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
3446 int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
3447 && LARGE_OFF_T % 2147483647 == 1)
3448 ? 1 : -1];
3449int
3450main ()
3451{
3452
3453 ;
3454 return 0;
3455}
3456_ACEOF
3457rm -f conftest.$ac_objext
3458if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3459 (eval $ac_compile) 2>&5
3460 ac_status=$?
3461 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3462 (exit $ac_status); } &&
3463 { ac_try='test -s conftest.$ac_objext'
3464 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3465 (eval $ac_try) 2>&5
3466 ac_status=$?
3467 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3468 (exit $ac_status); }; }; then
3469 ac_cv_sys_large_files=1; break
3470else
3471 echo "$as_me: failed program was:" >&5
3472sed 's/^/| /' conftest.$ac_ext >&5
3473
3474fi
3475rm -f conftest.$ac_objext conftest.$ac_ext
3476 break
3477done
3478fi
3479echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
3480echo "${ECHO_T}$ac_cv_sys_large_files" >&6
3481if test "$ac_cv_sys_large_files" != no; then
3482
3483cat >>confdefs.h <<_ACEOF
3484@%:@define _LARGE_FILES $ac_cv_sys_large_files
3485_ACEOF
3486
3487fi
3488rm -f conftest*
3489fi
3490
3491
3492if test -z "$AR" ; then
3493 { { echo "$as_me:$LINENO: error: *** 'ar' missing, please install or fix your \$PATH ***" >&5
3494echo "$as_me: error: *** 'ar' missing, please install or fix your \$PATH ***" >&2;}
3495 { (exit 1); exit 1; }; }
3496fi
3497
3498# Use LOGIN_PROGRAM from environment if possible
3499if test ! -z "$LOGIN_PROGRAM" ; then
3500 cat >>confdefs.h <<_ACEOF
3501@%:@define LOGIN_PROGRAM_FALLBACK "$LOGIN_PROGRAM"
3502_ACEOF
3503
3504else
3505 # Search for login
3506 # Extract the first word of "login", so it can be a program name with args.
3507set dummy login; ac_word=$2
3508echo "$as_me:$LINENO: checking for $ac_word" >&5
3509echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3510if test "${ac_cv_path_LOGIN_PROGRAM_FALLBACK+set}" = set; then
3511 echo $ECHO_N "(cached) $ECHO_C" >&6
3512else
3513 case $LOGIN_PROGRAM_FALLBACK in
3514 [\\/]* | ?:[\\/]*)
3515 ac_cv_path_LOGIN_PROGRAM_FALLBACK="$LOGIN_PROGRAM_FALLBACK" # Let the user override the test with a path.
3516 ;;
3517 *)
3518 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3519for as_dir in $PATH
3520do
3521 IFS=$as_save_IFS
3522 test -z "$as_dir" && as_dir=.
3523 for ac_exec_ext in '' $ac_executable_extensions; do
3524 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3525 ac_cv_path_LOGIN_PROGRAM_FALLBACK="$as_dir/$ac_word$ac_exec_ext"
3526 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3527 break 2
3528 fi
3529done
3530done
3531
3532 ;;
3533esac
3534fi
3535LOGIN_PROGRAM_FALLBACK=$ac_cv_path_LOGIN_PROGRAM_FALLBACK
3536
3537if test -n "$LOGIN_PROGRAM_FALLBACK"; then
3538 echo "$as_me:$LINENO: result: $LOGIN_PROGRAM_FALLBACK" >&5
3539echo "${ECHO_T}$LOGIN_PROGRAM_FALLBACK" >&6
3540else
3541 echo "$as_me:$LINENO: result: no" >&5
3542echo "${ECHO_T}no" >&6
3543fi
3544
3545 if test ! -z "$LOGIN_PROGRAM_FALLBACK" ; then
3546 cat >>confdefs.h <<_ACEOF
3547@%:@define LOGIN_PROGRAM_FALLBACK "$LOGIN_PROGRAM_FALLBACK"
3548_ACEOF
3549
3550 fi
3551fi
3552
3553if test -z "$LD" ; then
3554 LD=$CC
3555fi
3556
3557
3558echo "$as_me:$LINENO: checking for inline" >&5
3559echo $ECHO_N "checking for inline... $ECHO_C" >&6
3560if test "${ac_cv_c_inline+set}" = set; then
3561 echo $ECHO_N "(cached) $ECHO_C" >&6
3562else
3563 ac_cv_c_inline=no
3564for ac_kw in inline __inline__ __inline; do
3565 cat >conftest.$ac_ext <<_ACEOF
3566#line $LINENO "configure"
3567/* confdefs.h. */
3568_ACEOF
3569cat confdefs.h >>conftest.$ac_ext
3570cat >>conftest.$ac_ext <<_ACEOF
3571/* end confdefs.h. */
3572#ifndef __cplusplus
3573typedef int foo_t;
3574static $ac_kw foo_t static_foo () {return 0; }
3575$ac_kw foo_t foo () {return 0; }
3576#endif
3577
3578_ACEOF
3579rm -f conftest.$ac_objext
3580if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3581 (eval $ac_compile) 2>&5
3582 ac_status=$?
3583 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3584 (exit $ac_status); } &&
3585 { ac_try='test -s conftest.$ac_objext'
3586 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3587 (eval $ac_try) 2>&5
3588 ac_status=$?
3589 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3590 (exit $ac_status); }; }; then
3591 ac_cv_c_inline=$ac_kw; break
3592else
3593 echo "$as_me: failed program was:" >&5
3594sed 's/^/| /' conftest.$ac_ext >&5
3595
3596fi
3597rm -f conftest.$ac_objext conftest.$ac_ext
3598done
3599
3600fi
3601echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
3602echo "${ECHO_T}$ac_cv_c_inline" >&6
3603case $ac_cv_c_inline in
3604 inline | yes) ;;
3605 no)
3606cat >>confdefs.h <<\_ACEOF
3607@%:@define inline
3608_ACEOF
3609 ;;
3610 *) cat >>confdefs.h <<_ACEOF
3611@%:@define inline $ac_cv_c_inline
3612_ACEOF
3613 ;;
3614esac
3615
3616if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
3617 CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wno-uninitialized"
3618fi
3619
3620# Check for some target-specific stuff
3621case "$host" in
3622*-*-aix*)
3623 AFS_LIBS="-lld"
3624 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
3625 LDFLAGS="$LDFLAGS -L/usr/local/lib"
3626 echo "$as_me:$LINENO: checking how to specify blibpath for linker ($LD)" >&5
3627echo $ECHO_N "checking how to specify blibpath for linker ($LD)... $ECHO_C" >&6
3628 if (test -z "$blibpath"); then
3629 blibpath="/usr/lib:/lib:/usr/local/lib"
3630 fi
3631 saved_LDFLAGS="$LDFLAGS"
3632 for tryflags in -blibpath: -Wl,-blibpath: -Wl,-rpath, ;do
3633 if (test -z "$blibflags"); then
3634 LDFLAGS="$saved_LDFLAGS $tryflags$blibpath"
3635 cat >conftest.$ac_ext <<_ACEOF
3636#line $LINENO "configure"
3637/* confdefs.h. */
3638_ACEOF
3639cat confdefs.h >>conftest.$ac_ext
3640cat >>conftest.$ac_ext <<_ACEOF
3641/* end confdefs.h. */
3642
3643int
3644main ()
3645{
3646
3647 ;
3648 return 0;
3649}
3650_ACEOF
3651rm -f conftest.$ac_objext conftest$ac_exeext
3652if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3653 (eval $ac_link) 2>&5
3654 ac_status=$?
3655 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3656 (exit $ac_status); } &&
3657 { ac_try='test -s conftest$ac_exeext'
3658 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3659 (eval $ac_try) 2>&5
3660 ac_status=$?
3661 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3662 (exit $ac_status); }; }; then
3663 blibflags=$tryflags
3664else
3665 echo "$as_me: failed program was:" >&5
3666sed 's/^/| /' conftest.$ac_ext >&5
3667
3668fi
3669rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3670 fi
3671 done
3672 if (test -z "$blibflags"); then
3673 echo "$as_me:$LINENO: result: not found" >&5
3674echo "${ECHO_T}not found" >&6
3675 { { echo "$as_me:$LINENO: error: *** must be able to specify blibpath on AIX - check config.log" >&5
3676echo "$as_me: error: *** must be able to specify blibpath on AIX - check config.log" >&2;}
3677 { (exit 1); exit 1; }; }
3678 else
3679 echo "$as_me:$LINENO: result: $blibflags" >&5
3680echo "${ECHO_T}$blibflags" >&6
3681 fi
3682 LDFLAGS="$saved_LDFLAGS"
3683 echo "$as_me:$LINENO: checking for authenticate" >&5
3684echo $ECHO_N "checking for authenticate... $ECHO_C" >&6
3685if test "${ac_cv_func_authenticate+set}" = set; then
3686 echo $ECHO_N "(cached) $ECHO_C" >&6
3687else
3688 cat >conftest.$ac_ext <<_ACEOF
3689#line $LINENO "configure"
3690/* confdefs.h. */
3691_ACEOF
3692cat confdefs.h >>conftest.$ac_ext
3693cat >>conftest.$ac_ext <<_ACEOF
3694/* end confdefs.h. */
3695/* System header to define __stub macros and hopefully few prototypes,
3696 which can conflict with char authenticate (); below.
3697 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
3698 <limits.h> exists even on freestanding compilers. */
3699#ifdef __STDC__
3700# include <limits.h>
3701#else
3702# include <assert.h>
3703#endif
3704/* Override any gcc2 internal prototype to avoid an error. */
3705#ifdef __cplusplus
3706extern "C"
3707{
3708#endif
3709/* We use char because int might match the return type of a gcc2
3710 builtin and then its argument prototype would still apply. */
3711char authenticate ();
3712/* The GNU C library defines this for functions which it implements
3713 to always fail with ENOSYS. Some functions are actually named
3714 something starting with __ and the normal name is an alias. */
3715#if defined (__stub_authenticate) || defined (__stub___authenticate)
3716choke me
3717#else
3718char (*f) () = authenticate;
3719#endif
3720#ifdef __cplusplus
3721}
3722#endif
3723
3724int
3725main ()
3726{
3727return f != authenticate;
3728 ;
3729 return 0;
3730}
3731_ACEOF
3732rm -f conftest.$ac_objext conftest$ac_exeext
3733if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3734 (eval $ac_link) 2>&5
3735 ac_status=$?
3736 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3737 (exit $ac_status); } &&
3738 { ac_try='test -s conftest$ac_exeext'
3739 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3740 (eval $ac_try) 2>&5
3741 ac_status=$?
3742 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3743 (exit $ac_status); }; }; then
3744 ac_cv_func_authenticate=yes
3745else
3746 echo "$as_me: failed program was:" >&5
3747sed 's/^/| /' conftest.$ac_ext >&5
3748
3749ac_cv_func_authenticate=no
3750fi
3751rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3752fi
3753echo "$as_me:$LINENO: result: $ac_cv_func_authenticate" >&5
3754echo "${ECHO_T}$ac_cv_func_authenticate" >&6
3755if test $ac_cv_func_authenticate = yes; then
3756 cat >>confdefs.h <<\_ACEOF
3757@%:@define WITH_AIXAUTHENTICATE 1
3758_ACEOF
3759
3760else
3761 echo "$as_me:$LINENO: checking for authenticate in -ls" >&5
3762echo $ECHO_N "checking for authenticate in -ls... $ECHO_C" >&6
3763if test "${ac_cv_lib_s_authenticate+set}" = set; then
3764 echo $ECHO_N "(cached) $ECHO_C" >&6
3765else
3766 ac_check_lib_save_LIBS=$LIBS
3767LIBS="-ls $LIBS"
3768cat >conftest.$ac_ext <<_ACEOF
3769#line $LINENO "configure"
3770/* confdefs.h. */
3771_ACEOF
3772cat confdefs.h >>conftest.$ac_ext
3773cat >>conftest.$ac_ext <<_ACEOF
3774/* end confdefs.h. */
3775
3776/* Override any gcc2 internal prototype to avoid an error. */
3777#ifdef __cplusplus
3778extern "C"
3779#endif
3780/* We use char because int might match the return type of a gcc2
3781 builtin and then its argument prototype would still apply. */
3782char authenticate ();
3783int
3784main ()
3785{
3786authenticate ();
3787 ;
3788 return 0;
3789}
3790_ACEOF
3791rm -f conftest.$ac_objext conftest$ac_exeext
3792if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3793 (eval $ac_link) 2>&5
3794 ac_status=$?
3795 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3796 (exit $ac_status); } &&
3797 { ac_try='test -s conftest$ac_exeext'
3798 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3799 (eval $ac_try) 2>&5
3800 ac_status=$?
3801 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3802 (exit $ac_status); }; }; then
3803 ac_cv_lib_s_authenticate=yes
3804else
3805 echo "$as_me: failed program was:" >&5
3806sed 's/^/| /' conftest.$ac_ext >&5
3807
3808ac_cv_lib_s_authenticate=no
3809fi
3810rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3811LIBS=$ac_check_lib_save_LIBS
3812fi
3813echo "$as_me:$LINENO: result: $ac_cv_lib_s_authenticate" >&5
3814echo "${ECHO_T}$ac_cv_lib_s_authenticate" >&6
3815if test $ac_cv_lib_s_authenticate = yes; then
3816 cat >>confdefs.h <<\_ACEOF
3817@%:@define WITH_AIXAUTHENTICATE 1
3818_ACEOF
3819
3820 LIBS="$LIBS -ls"
3821
3822fi
3823
3824
3825fi
3826
3827 cat >>confdefs.h <<\_ACEOF
3828@%:@define BROKEN_GETADDRINFO 1
3829_ACEOF
3830
3831 cat >>confdefs.h <<\_ACEOF
3832@%:@define BROKEN_REALPATH 1
3833_ACEOF
3834
3835 cat >>confdefs.h <<\_ACEOF
3836@%:@define DISABLE_LASTLOG 1
3837_ACEOF
3838
3839 cat >>confdefs.h <<\_ACEOF
3840@%:@define LOGIN_NEEDS_UTMPX 1
3841_ACEOF
3842
3843 cat >>confdefs.h <<\_ACEOF
3844@%:@define SETPROCTITLE_STRATEGY PS_USE_CLOBBER_ARGV
3845_ACEOF
3846
3847 cat >>confdefs.h <<\_ACEOF
3848@%:@define SETPROCTITLE_PS_PADDING '\0'
3849_ACEOF
3850
3851 ;;
3852*-*-cygwin*)
3853 check_for_libcrypt_later=1
3854 LIBS="$LIBS /usr/lib/textmode.o"
3855 cat >>confdefs.h <<\_ACEOF
3856@%:@define HAVE_CYGWIN 1
3857_ACEOF
3858
3859 cat >>confdefs.h <<\_ACEOF
3860@%:@define USE_PIPES 1
3861_ACEOF
3862
3863 cat >>confdefs.h <<\_ACEOF
3864@%:@define DISABLE_SHADOW 1
3865_ACEOF
3866
3867 cat >>confdefs.h <<\_ACEOF
3868@%:@define IPV4_DEFAULT 1
3869_ACEOF
3870
3871 cat >>confdefs.h <<\_ACEOF
3872@%:@define IP_TOS_IS_BROKEN 1
3873_ACEOF
3874
3875 cat >>confdefs.h <<\_ACEOF
3876@%:@define NO_X11_UNIX_SOCKETS 1
3877_ACEOF
3878
3879 cat >>confdefs.h <<\_ACEOF
3880@%:@define NO_IPPORT_RESERVED_CONCEPT 1
3881_ACEOF
3882
3883 cat >>confdefs.h <<\_ACEOF
3884@%:@define DISABLE_FD_PASSING 1
3885_ACEOF
3886
3887 cat >>confdefs.h <<\_ACEOF
3888@%:@define SETGROUPS_NOOP 1
3889_ACEOF
3890
3891 ;;
3892*-*-dgux*)
3893 cat >>confdefs.h <<\_ACEOF
3894@%:@define IP_TOS_IS_BROKEN 1
3895_ACEOF
3896
3897 ;;
3898*-*-darwin*)
3899 echo "$as_me:$LINENO: checking if we have working getaddrinfo" >&5
3900echo $ECHO_N "checking if we have working getaddrinfo... $ECHO_C" >&6
3901 if test "$cross_compiling" = yes; then
3902 echo "$as_me:$LINENO: result: assume it is working" >&5
3903echo "${ECHO_T}assume it is working" >&6
3904else
3905 cat >conftest.$ac_ext <<_ACEOF
3906#line $LINENO "configure"
3907/* confdefs.h. */
3908_ACEOF
3909cat confdefs.h >>conftest.$ac_ext
3910cat >>conftest.$ac_ext <<_ACEOF
3911/* end confdefs.h. */
3912#include <mach-o/dyld.h>
3913main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
3914 exit(0);
3915 else
3916 exit(1);
3917}
3918_ACEOF
3919rm -f conftest$ac_exeext
3920if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3921 (eval $ac_link) 2>&5
3922 ac_status=$?
3923 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3924 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
3925 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3926 (eval $ac_try) 2>&5
3927 ac_status=$?
3928 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3929 (exit $ac_status); }; }; then
3930 echo "$as_me:$LINENO: result: working" >&5
3931echo "${ECHO_T}working" >&6
3932else
3933 echo "$as_me: program exited with status $ac_status" >&5
3934echo "$as_me: failed program was:" >&5
3935sed 's/^/| /' conftest.$ac_ext >&5
3936
3937( exit $ac_status )
3938echo "$as_me:$LINENO: result: buggy" >&5
3939echo "${ECHO_T}buggy" >&6
3940 cat >>confdefs.h <<\_ACEOF
3941@%:@define BROKEN_GETADDRINFO 1
3942_ACEOF
3943
3944fi
3945rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
3946fi
3947 ;;
3948*-*-hpux10.26)
3949 if test -z "$GCC"; then
3950 CFLAGS="$CFLAGS -Ae"
3951 fi
3952 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
3953 IPADDR_IN_DISPLAY=yes
3954 cat >>confdefs.h <<\_ACEOF
3955@%:@define HAVE_SECUREWARE 1
3956_ACEOF
3957
3958 cat >>confdefs.h <<\_ACEOF
3959@%:@define USE_PIPES 1
3960_ACEOF
3961
3962 cat >>confdefs.h <<\_ACEOF
3963@%:@define LOGIN_NO_ENDOPT 1
3964_ACEOF
3965
3966 cat >>confdefs.h <<\_ACEOF
3967@%:@define LOGIN_NEEDS_UTMPX 1
3968_ACEOF
3969
3970 cat >>confdefs.h <<\_ACEOF
3971@%:@define DISABLE_SHADOW 1
3972_ACEOF
3973
3974 cat >>confdefs.h <<\_ACEOF
3975@%:@define DISABLE_UTMP 1
3976_ACEOF
3977
3978 cat >>confdefs.h <<\_ACEOF
3979@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
3980_ACEOF
3981
3982 LIBS="$LIBS -lsec -lsecpw"
3983
3984echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
3985echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
3986if test "${ac_cv_lib_xnet_t_error+set}" = set; then
3987 echo $ECHO_N "(cached) $ECHO_C" >&6
3988else
3989 ac_check_lib_save_LIBS=$LIBS
3990LIBS="-lxnet $LIBS"
3991cat >conftest.$ac_ext <<_ACEOF
3992#line $LINENO "configure"
3993/* confdefs.h. */
3994_ACEOF
3995cat confdefs.h >>conftest.$ac_ext
3996cat >>conftest.$ac_ext <<_ACEOF
3997/* end confdefs.h. */
3998
3999/* Override any gcc2 internal prototype to avoid an error. */
4000#ifdef __cplusplus
4001extern "C"
4002#endif
4003/* We use char because int might match the return type of a gcc2
4004 builtin and then its argument prototype would still apply. */
4005char t_error ();
4006int
4007main ()
4008{
4009t_error ();
4010 ;
4011 return 0;
4012}
4013_ACEOF
4014rm -f conftest.$ac_objext conftest$ac_exeext
4015if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4016 (eval $ac_link) 2>&5
4017 ac_status=$?
4018 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4019 (exit $ac_status); } &&
4020 { ac_try='test -s conftest$ac_exeext'
4021 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4022 (eval $ac_try) 2>&5
4023 ac_status=$?
4024 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4025 (exit $ac_status); }; }; then
4026 ac_cv_lib_xnet_t_error=yes
4027else
4028 echo "$as_me: failed program was:" >&5
4029sed 's/^/| /' conftest.$ac_ext >&5
4030
4031ac_cv_lib_xnet_t_error=no
4032fi
4033rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4034LIBS=$ac_check_lib_save_LIBS
4035fi
4036echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
4037echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
4038if test $ac_cv_lib_xnet_t_error = yes; then
4039 cat >>confdefs.h <<_ACEOF
4040@%:@define HAVE_LIBXNET 1
4041_ACEOF
4042
4043 LIBS="-lxnet $LIBS"
4044
4045else
4046 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
4047echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
4048 { (exit 1); exit 1; }; }
4049fi
4050
4051 disable_ptmx_check=yes
4052 ;;
4053*-*-hpux10*)
4054 if test -z "$GCC"; then
4055 CFLAGS="$CFLAGS -Ae"
4056 fi
4057 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
4058 IPADDR_IN_DISPLAY=yes
4059 cat >>confdefs.h <<\_ACEOF
4060@%:@define USE_PIPES 1
4061_ACEOF
4062
4063 cat >>confdefs.h <<\_ACEOF
4064@%:@define LOGIN_NO_ENDOPT 1
4065_ACEOF
4066
4067 cat >>confdefs.h <<\_ACEOF
4068@%:@define LOGIN_NEEDS_UTMPX 1
4069_ACEOF
4070
4071 cat >>confdefs.h <<\_ACEOF
4072@%:@define DISABLE_SHADOW 1
4073_ACEOF
4074
4075 cat >>confdefs.h <<\_ACEOF
4076@%:@define DISABLE_UTMP 1
4077_ACEOF
4078
4079 cat >>confdefs.h <<\_ACEOF
4080@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
4081_ACEOF
4082
4083 LIBS="$LIBS -lsec"
4084
4085echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
4086echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
4087if test "${ac_cv_lib_xnet_t_error+set}" = set; then
4088 echo $ECHO_N "(cached) $ECHO_C" >&6
4089else
4090 ac_check_lib_save_LIBS=$LIBS
4091LIBS="-lxnet $LIBS"
4092cat >conftest.$ac_ext <<_ACEOF
4093#line $LINENO "configure"
4094/* confdefs.h. */
4095_ACEOF
4096cat confdefs.h >>conftest.$ac_ext
4097cat >>conftest.$ac_ext <<_ACEOF
4098/* end confdefs.h. */
4099
4100/* Override any gcc2 internal prototype to avoid an error. */
4101#ifdef __cplusplus
4102extern "C"
4103#endif
4104/* We use char because int might match the return type of a gcc2
4105 builtin and then its argument prototype would still apply. */
4106char t_error ();
4107int
4108main ()
4109{
4110t_error ();
4111 ;
4112 return 0;
4113}
4114_ACEOF
4115rm -f conftest.$ac_objext conftest$ac_exeext
4116if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4117 (eval $ac_link) 2>&5
4118 ac_status=$?
4119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4120 (exit $ac_status); } &&
4121 { ac_try='test -s conftest$ac_exeext'
4122 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4123 (eval $ac_try) 2>&5
4124 ac_status=$?
4125 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4126 (exit $ac_status); }; }; then
4127 ac_cv_lib_xnet_t_error=yes
4128else
4129 echo "$as_me: failed program was:" >&5
4130sed 's/^/| /' conftest.$ac_ext >&5
4131
4132ac_cv_lib_xnet_t_error=no
4133fi
4134rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4135LIBS=$ac_check_lib_save_LIBS
4136fi
4137echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
4138echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
4139if test $ac_cv_lib_xnet_t_error = yes; then
4140 cat >>confdefs.h <<_ACEOF
4141@%:@define HAVE_LIBXNET 1
4142_ACEOF
4143
4144 LIBS="-lxnet $LIBS"
4145
4146else
4147 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
4148echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
4149 { (exit 1); exit 1; }; }
4150fi
4151
4152 ;;
4153*-*-hpux11*)
4154 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
4155 IPADDR_IN_DISPLAY=yes
4156 cat >>confdefs.h <<\_ACEOF
4157@%:@define PAM_SUN_CODEBASE 1
4158_ACEOF
4159
4160 cat >>confdefs.h <<\_ACEOF
4161@%:@define USE_PIPES 1
4162_ACEOF
4163
4164 cat >>confdefs.h <<\_ACEOF
4165@%:@define LOGIN_NO_ENDOPT 1
4166_ACEOF
4167
4168 cat >>confdefs.h <<\_ACEOF
4169@%:@define LOGIN_NEEDS_UTMPX 1
4170_ACEOF
4171
4172 cat >>confdefs.h <<\_ACEOF
4173@%:@define DISABLE_SHADOW 1
4174_ACEOF
4175
4176 cat >>confdefs.h <<\_ACEOF
4177@%:@define DISABLE_UTMP 1
4178_ACEOF
4179
4180 cat >>confdefs.h <<\_ACEOF
4181@%:@define SETPROCTITLE_STRATEGY PS_USE_PSTAT
4182_ACEOF
4183
4184 LIBS="$LIBS -lsec"
4185
4186echo "$as_me:$LINENO: checking for t_error in -lxnet" >&5
4187echo $ECHO_N "checking for t_error in -lxnet... $ECHO_C" >&6
4188if test "${ac_cv_lib_xnet_t_error+set}" = set; then
4189 echo $ECHO_N "(cached) $ECHO_C" >&6
4190else
4191 ac_check_lib_save_LIBS=$LIBS
4192LIBS="-lxnet $LIBS"
4193cat >conftest.$ac_ext <<_ACEOF
4194#line $LINENO "configure"
4195/* confdefs.h. */
4196_ACEOF
4197cat confdefs.h >>conftest.$ac_ext
4198cat >>conftest.$ac_ext <<_ACEOF
4199/* end confdefs.h. */
4200
4201/* Override any gcc2 internal prototype to avoid an error. */
4202#ifdef __cplusplus
4203extern "C"
4204#endif
4205/* We use char because int might match the return type of a gcc2
4206 builtin and then its argument prototype would still apply. */
4207char t_error ();
4208int
4209main ()
4210{
4211t_error ();
4212 ;
4213 return 0;
4214}
4215_ACEOF
4216rm -f conftest.$ac_objext conftest$ac_exeext
4217if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4218 (eval $ac_link) 2>&5
4219 ac_status=$?
4220 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4221 (exit $ac_status); } &&
4222 { ac_try='test -s conftest$ac_exeext'
4223 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4224 (eval $ac_try) 2>&5
4225 ac_status=$?
4226 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4227 (exit $ac_status); }; }; then
4228 ac_cv_lib_xnet_t_error=yes
4229else
4230 echo "$as_me: failed program was:" >&5
4231sed 's/^/| /' conftest.$ac_ext >&5
4232
4233ac_cv_lib_xnet_t_error=no
4234fi
4235rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4236LIBS=$ac_check_lib_save_LIBS
4237fi
4238echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_t_error" >&5
4239echo "${ECHO_T}$ac_cv_lib_xnet_t_error" >&6
4240if test $ac_cv_lib_xnet_t_error = yes; then
4241 cat >>confdefs.h <<_ACEOF
4242@%:@define HAVE_LIBXNET 1
4243_ACEOF
4244
4245 LIBS="-lxnet $LIBS"
4246
4247else
4248 { { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
4249echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
4250 { (exit 1); exit 1; }; }
4251fi
4252
4253 ;;
4254*-*-irix5*)
4255 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4256 LDFLAGS="$LDFLAGS"
4257 PATH="$PATH:/usr/etc"
4258 cat >>confdefs.h <<\_ACEOF
4259@%:@define BROKEN_INET_NTOA 1
4260_ACEOF
4261
4262 cat >>confdefs.h <<\_ACEOF
4263@%:@define WITH_ABBREV_NO_TTY 1
4264_ACEOF
4265
4266 ;;
4267*-*-irix6*)
4268 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4269 LDFLAGS="$LDFLAGS"
4270 PATH="$PATH:/usr/etc"
4271 cat >>confdefs.h <<\_ACEOF
4272@%:@define WITH_IRIX_ARRAY 1
4273_ACEOF
4274
4275 cat >>confdefs.h <<\_ACEOF
4276@%:@define WITH_IRIX_PROJECT 1
4277_ACEOF
4278
4279 cat >>confdefs.h <<\_ACEOF
4280@%:@define WITH_IRIX_AUDIT 1
4281_ACEOF
4282
4283 echo "$as_me:$LINENO: checking for jlimit_startjob" >&5
4284echo $ECHO_N "checking for jlimit_startjob... $ECHO_C" >&6
4285if test "${ac_cv_func_jlimit_startjob+set}" = set; then
4286 echo $ECHO_N "(cached) $ECHO_C" >&6
4287else
4288 cat >conftest.$ac_ext <<_ACEOF
4289#line $LINENO "configure"
4290/* confdefs.h. */
4291_ACEOF
4292cat confdefs.h >>conftest.$ac_ext
4293cat >>conftest.$ac_ext <<_ACEOF
4294/* end confdefs.h. */
4295/* System header to define __stub macros and hopefully few prototypes,
4296 which can conflict with char jlimit_startjob (); below.
4297 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4298 <limits.h> exists even on freestanding compilers. */
4299#ifdef __STDC__
4300# include <limits.h>
4301#else
4302# include <assert.h>
4303#endif
4304/* Override any gcc2 internal prototype to avoid an error. */
4305#ifdef __cplusplus
4306extern "C"
4307{
4308#endif
4309/* We use char because int might match the return type of a gcc2
4310 builtin and then its argument prototype would still apply. */
4311char jlimit_startjob ();
4312/* The GNU C library defines this for functions which it implements
4313 to always fail with ENOSYS. Some functions are actually named
4314 something starting with __ and the normal name is an alias. */
4315#if defined (__stub_jlimit_startjob) || defined (__stub___jlimit_startjob)
4316choke me
4317#else
4318char (*f) () = jlimit_startjob;
4319#endif
4320#ifdef __cplusplus
4321}
4322#endif
4323
4324int
4325main ()
4326{
4327return f != jlimit_startjob;
4328 ;
4329 return 0;
4330}
4331_ACEOF
4332rm -f conftest.$ac_objext conftest$ac_exeext
4333if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4334 (eval $ac_link) 2>&5
4335 ac_status=$?
4336 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4337 (exit $ac_status); } &&
4338 { ac_try='test -s conftest$ac_exeext'
4339 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4340 (eval $ac_try) 2>&5
4341 ac_status=$?
4342 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4343 (exit $ac_status); }; }; then
4344 ac_cv_func_jlimit_startjob=yes
4345else
4346 echo "$as_me: failed program was:" >&5
4347sed 's/^/| /' conftest.$ac_ext >&5
4348
4349ac_cv_func_jlimit_startjob=no
4350fi
4351rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4352fi
4353echo "$as_me:$LINENO: result: $ac_cv_func_jlimit_startjob" >&5
4354echo "${ECHO_T}$ac_cv_func_jlimit_startjob" >&6
4355if test $ac_cv_func_jlimit_startjob = yes; then
4356 cat >>confdefs.h <<\_ACEOF
4357@%:@define WITH_IRIX_JOBS 1
4358_ACEOF
4359
4360fi
4361
4362 cat >>confdefs.h <<\_ACEOF
4363@%:@define BROKEN_INET_NTOA 1
4364_ACEOF
4365
4366 cat >>confdefs.h <<\_ACEOF
4367@%:@define WITH_ABBREV_NO_TTY 1
4368_ACEOF
4369
4370 ;;
4371*-*-linux*)
4372 no_dev_ptmx=1
4373 check_for_libcrypt_later=1
4374 cat >>confdefs.h <<\_ACEOF
4375@%:@define DONT_TRY_OTHER_AF 1
4376_ACEOF
4377
4378 cat >>confdefs.h <<\_ACEOF
4379@%:@define PAM_TTY_KLUDGE 1
4380_ACEOF
4381
4382 cat >>confdefs.h <<\_ACEOF
4383@%:@define SETPROCTITLE_STRATEGY PS_USE_CLOBBER_ARGV
4384_ACEOF
4385
4386 cat >>confdefs.h <<\_ACEOF
4387@%:@define SETPROCTITLE_PS_PADDING '\0'
4388_ACEOF
4389
4390 inet6_default_4in6=yes
4391 ;;
4392mips-sony-bsd|mips-sony-newsos4)
4393 cat >>confdefs.h <<\_ACEOF
4394@%:@define HAVE_NEWS4 1
4395_ACEOF
4396
4397 SONY=1
4398 ;;
4399*-*-netbsd*)
4400 check_for_libcrypt_before=1
4401 need_dash_r=1
4402 ;;
4403*-*-freebsd*)
4404 check_for_libcrypt_later=1
4405 ;;
4406*-next-*)
4407 conf_lastlog_location="/usr/adm/lastlog"
4408 conf_utmp_location=/etc/utmp
4409 conf_wtmp_location=/usr/adm/wtmp
4410 MAIL=/usr/spool/mail
4411 cat >>confdefs.h <<\_ACEOF
4412@%:@define HAVE_NEXT 1
4413_ACEOF
4414
4415 cat >>confdefs.h <<\_ACEOF
4416@%:@define BROKEN_REALPATH 1
4417_ACEOF
4418
4419 cat >>confdefs.h <<\_ACEOF
4420@%:@define USE_PIPES 1
4421_ACEOF
4422
4423 cat >>confdefs.h <<\_ACEOF
4424@%:@define BROKEN_SAVED_UIDS 1
4425_ACEOF
4426
4427 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4428 CFLAGS="$CFLAGS"
4429 ;;
4430*-*-solaris*)
4431 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4432 LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
4433 need_dash_r=1
4434 cat >>confdefs.h <<\_ACEOF
4435@%:@define PAM_SUN_CODEBASE 1
4436_ACEOF
4437
4438 cat >>confdefs.h <<\_ACEOF
4439@%:@define LOGIN_NEEDS_UTMPX 1
4440_ACEOF
4441
4442 cat >>confdefs.h <<\_ACEOF
4443@%:@define LOGIN_NEEDS_TERM 1
4444_ACEOF
4445
4446 cat >>confdefs.h <<\_ACEOF
4447@%:@define PAM_TTY_KLUDGE 1
4448_ACEOF
4449
4450 cat >>confdefs.h <<\_ACEOF
4451@%:@define STREAMS_PUSH_ACQUIRES_CTTY 1
4452_ACEOF
4453
4454 # hardwire lastlog location (can't detect it on some versions)
4455 conf_lastlog_location="/var/adm/lastlog"
4456 echo "$as_me:$LINENO: checking for obsolete utmp and wtmp in solaris2.x" >&5
4457echo $ECHO_N "checking for obsolete utmp and wtmp in solaris2.x... $ECHO_C" >&6
4458 sol2ver=`echo "$host"| sed -e 's/.*[0-9]\.//'`
4459 if test "$sol2ver" -ge 8; then
4460 echo "$as_me:$LINENO: result: yes" >&5
4461echo "${ECHO_T}yes" >&6
4462 cat >>confdefs.h <<\_ACEOF
4463@%:@define DISABLE_UTMP 1
4464_ACEOF
4465
4466 cat >>confdefs.h <<\_ACEOF
4467@%:@define DISABLE_WTMP 1
4468_ACEOF
4469
4470 else
4471 echo "$as_me:$LINENO: result: no" >&5
4472echo "${ECHO_T}no" >&6
4473 fi
4474 ;;
4475*-*-sunos4*)
4476 CPPFLAGS="$CPPFLAGS -DSUNOS4"
4477
4478for ac_func in getpwanam
4479do
4480as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4481echo "$as_me:$LINENO: checking for $ac_func" >&5
4482echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4483if eval "test \"\${$as_ac_var+set}\" = set"; then
4484 echo $ECHO_N "(cached) $ECHO_C" >&6
4485else
4486 cat >conftest.$ac_ext <<_ACEOF
4487#line $LINENO "configure"
4488/* confdefs.h. */
4489_ACEOF
4490cat confdefs.h >>conftest.$ac_ext
4491cat >>conftest.$ac_ext <<_ACEOF
4492/* end confdefs.h. */
4493/* System header to define __stub macros and hopefully few prototypes,
4494 which can conflict with char $ac_func (); below.
4495 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4496 <limits.h> exists even on freestanding compilers. */
4497#ifdef __STDC__
4498# include <limits.h>
4499#else
4500# include <assert.h>
4501#endif
4502/* Override any gcc2 internal prototype to avoid an error. */
4503#ifdef __cplusplus
4504extern "C"
4505{
4506#endif
4507/* We use char because int might match the return type of a gcc2
4508 builtin and then its argument prototype would still apply. */
4509char $ac_func ();
4510/* The GNU C library defines this for functions which it implements
4511 to always fail with ENOSYS. Some functions are actually named
4512 something starting with __ and the normal name is an alias. */
4513#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4514choke me
4515#else
4516char (*f) () = $ac_func;
4517#endif
4518#ifdef __cplusplus
4519}
4520#endif
4521
4522int
4523main ()
4524{
4525return f != $ac_func;
4526 ;
4527 return 0;
4528}
4529_ACEOF
4530rm -f conftest.$ac_objext conftest$ac_exeext
4531if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4532 (eval $ac_link) 2>&5
4533 ac_status=$?
4534 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4535 (exit $ac_status); } &&
4536 { ac_try='test -s conftest$ac_exeext'
4537 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4538 (eval $ac_try) 2>&5
4539 ac_status=$?
4540 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4541 (exit $ac_status); }; }; then
4542 eval "$as_ac_var=yes"
4543else
4544 echo "$as_me: failed program was:" >&5
4545sed 's/^/| /' conftest.$ac_ext >&5
4546
4547eval "$as_ac_var=no"
4548fi
4549rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4550fi
4551echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4552echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4553if test `eval echo '${'$as_ac_var'}'` = yes; then
4554 cat >>confdefs.h <<_ACEOF
4555@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4556_ACEOF
4557
4558fi
4559done
4560
4561 cat >>confdefs.h <<\_ACEOF
4562@%:@define PAM_SUN_CODEBASE 1
4563_ACEOF
4564
4565 conf_utmp_location=/etc/utmp
4566 conf_wtmp_location=/var/adm/wtmp
4567 conf_lastlog_location=/var/adm/lastlog
4568 cat >>confdefs.h <<\_ACEOF
4569@%:@define USE_PIPES 1
4570_ACEOF
4571
4572 ;;
4573*-ncr-sysv*)
4574 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4575 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4576 LIBS="$LIBS -lc89"
4577 cat >>confdefs.h <<\_ACEOF
4578@%:@define USE_PIPES 1
4579_ACEOF
4580
4581 ;;
4582*-sni-sysv*)
4583 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4584 # /usr/ucblib MUST NOT be searched on ReliantUNIX
4585 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4586 IPADDR_IN_DISPLAY=yes
4587 cat >>confdefs.h <<\_ACEOF
4588@%:@define USE_PIPES 1
4589_ACEOF
4590
4591 cat >>confdefs.h <<\_ACEOF
4592@%:@define IP_TOS_IS_BROKEN 1
4593_ACEOF
4594
4595 # /usr/ucblib/libucb.a no longer needed on ReliantUNIX
4596 # Attention: always take care to bind libsocket and libnsl before libc,
4597 # otherwise you will find lots of "SIOCGPGRP errno 22" on syslog
4598 ;;
4599*-*-sysv4.2*)
4600 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4601 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4602 cat >>confdefs.h <<\_ACEOF
4603@%:@define USE_PIPES 1
4604_ACEOF
4605
4606 ;;
4607*-*-sysv5*)
4608 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4609 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4610 cat >>confdefs.h <<\_ACEOF
4611@%:@define USE_PIPES 1
4612_ACEOF
4613
4614 ;;
4615*-*-sysv*)
4616 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4617 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4618 ;;
4619*-*-sco3.2v4*)
4620 CPPFLAGS="$CPPFLAGS -Dftruncate=chsize -I/usr/local/include"
4621 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4622 LIBS="$LIBS -los -lprot -lx -ltinfo -lm"
4623 RANLIB=true
4624 no_dev_ptmx=1
4625 cat >>confdefs.h <<\_ACEOF
4626@%:@define BROKEN_SYS_TERMIO_H 1
4627_ACEOF
4628
4629 cat >>confdefs.h <<\_ACEOF
4630@%:@define USE_PIPES 1
4631_ACEOF
4632
4633 cat >>confdefs.h <<\_ACEOF
4634@%:@define HAVE_SECUREWARE 1
4635_ACEOF
4636
4637 cat >>confdefs.h <<\_ACEOF
4638@%:@define DISABLE_SHADOW 1
4639_ACEOF
4640
4641 cat >>confdefs.h <<\_ACEOF
4642@%:@define BROKEN_SAVED_UIDS 1
4643_ACEOF
4644
4645
4646
4647for ac_func in getluid setluid
4648do
4649as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4650echo "$as_me:$LINENO: checking for $ac_func" >&5
4651echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4652if eval "test \"\${$as_ac_var+set}\" = set"; then
4653 echo $ECHO_N "(cached) $ECHO_C" >&6
4654else
4655 cat >conftest.$ac_ext <<_ACEOF
4656#line $LINENO "configure"
4657/* confdefs.h. */
4658_ACEOF
4659cat confdefs.h >>conftest.$ac_ext
4660cat >>conftest.$ac_ext <<_ACEOF
4661/* end confdefs.h. */
4662/* System header to define __stub macros and hopefully few prototypes,
4663 which can conflict with char $ac_func (); below.
4664 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4665 <limits.h> exists even on freestanding compilers. */
4666#ifdef __STDC__
4667# include <limits.h>
4668#else
4669# include <assert.h>
4670#endif
4671/* Override any gcc2 internal prototype to avoid an error. */
4672#ifdef __cplusplus
4673extern "C"
4674{
4675#endif
4676/* We use char because int might match the return type of a gcc2
4677 builtin and then its argument prototype would still apply. */
4678char $ac_func ();
4679/* The GNU C library defines this for functions which it implements
4680 to always fail with ENOSYS. Some functions are actually named
4681 something starting with __ and the normal name is an alias. */
4682#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4683choke me
4684#else
4685char (*f) () = $ac_func;
4686#endif
4687#ifdef __cplusplus
4688}
4689#endif
4690
4691int
4692main ()
4693{
4694return f != $ac_func;
4695 ;
4696 return 0;
4697}
4698_ACEOF
4699rm -f conftest.$ac_objext conftest$ac_exeext
4700if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4701 (eval $ac_link) 2>&5
4702 ac_status=$?
4703 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4704 (exit $ac_status); } &&
4705 { ac_try='test -s conftest$ac_exeext'
4706 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4707 (eval $ac_try) 2>&5
4708 ac_status=$?
4709 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4710 (exit $ac_status); }; }; then
4711 eval "$as_ac_var=yes"
4712else
4713 echo "$as_me: failed program was:" >&5
4714sed 's/^/| /' conftest.$ac_ext >&5
4715
4716eval "$as_ac_var=no"
4717fi
4718rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4719fi
4720echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4721echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4722if test `eval echo '${'$as_ac_var'}'` = yes; then
4723 cat >>confdefs.h <<_ACEOF
4724@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4725_ACEOF
4726
4727fi
4728done
4729
4730 MANTYPE=man
4731 do_sco3_extra_lib_check=yes
4732 ;;
4733*-*-sco3.2v5*)
4734 if test -z "$GCC"; then
4735 CFLAGS="$CFLAGS -belf"
4736 fi
4737 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
4738 LDFLAGS="$LDFLAGS -L/usr/local/lib"
4739 LIBS="$LIBS -lprot -lx -ltinfo -lm"
4740 no_dev_ptmx=1
4741 cat >>confdefs.h <<\_ACEOF
4742@%:@define USE_PIPES 1
4743_ACEOF
4744
4745 cat >>confdefs.h <<\_ACEOF
4746@%:@define HAVE_SECUREWARE 1
4747_ACEOF
4748
4749 cat >>confdefs.h <<\_ACEOF
4750@%:@define DISABLE_SHADOW 1
4751_ACEOF
4752
4753 cat >>confdefs.h <<\_ACEOF
4754@%:@define DISABLE_FD_PASSING 1
4755_ACEOF
4756
4757
4758
4759for ac_func in getluid setluid
4760do
4761as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
4762echo "$as_me:$LINENO: checking for $ac_func" >&5
4763echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
4764if eval "test \"\${$as_ac_var+set}\" = set"; then
4765 echo $ECHO_N "(cached) $ECHO_C" >&6
4766else
4767 cat >conftest.$ac_ext <<_ACEOF
4768#line $LINENO "configure"
4769/* confdefs.h. */
4770_ACEOF
4771cat confdefs.h >>conftest.$ac_ext
4772cat >>conftest.$ac_ext <<_ACEOF
4773/* end confdefs.h. */
4774/* System header to define __stub macros and hopefully few prototypes,
4775 which can conflict with char $ac_func (); below.
4776 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4777 <limits.h> exists even on freestanding compilers. */
4778#ifdef __STDC__
4779# include <limits.h>
4780#else
4781# include <assert.h>
4782#endif
4783/* Override any gcc2 internal prototype to avoid an error. */
4784#ifdef __cplusplus
4785extern "C"
4786{
4787#endif
4788/* We use char because int might match the return type of a gcc2
4789 builtin and then its argument prototype would still apply. */
4790char $ac_func ();
4791/* The GNU C library defines this for functions which it implements
4792 to always fail with ENOSYS. Some functions are actually named
4793 something starting with __ and the normal name is an alias. */
4794#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
4795choke me
4796#else
4797char (*f) () = $ac_func;
4798#endif
4799#ifdef __cplusplus
4800}
4801#endif
4802
4803int
4804main ()
4805{
4806return f != $ac_func;
4807 ;
4808 return 0;
4809}
4810_ACEOF
4811rm -f conftest.$ac_objext conftest$ac_exeext
4812if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4813 (eval $ac_link) 2>&5
4814 ac_status=$?
4815 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4816 (exit $ac_status); } &&
4817 { ac_try='test -s conftest$ac_exeext'
4818 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4819 (eval $ac_try) 2>&5
4820 ac_status=$?
4821 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4822 (exit $ac_status); }; }; then
4823 eval "$as_ac_var=yes"
4824else
4825 echo "$as_me: failed program was:" >&5
4826sed 's/^/| /' conftest.$ac_ext >&5
4827
4828eval "$as_ac_var=no"
4829fi
4830rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4831fi
4832echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4833echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4834if test `eval echo '${'$as_ac_var'}'` = yes; then
4835 cat >>confdefs.h <<_ACEOF
4836@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
4837_ACEOF
4838
4839fi
4840done
4841
4842 MANTYPE=man
4843 ;;
4844*-*-unicosmk*)
4845 cat >>confdefs.h <<\_ACEOF
4846@%:@define USE_PIPES 1
4847_ACEOF
4848
4849 cat >>confdefs.h <<\_ACEOF
4850@%:@define DISABLE_FD_PASSING 1
4851_ACEOF
4852
4853 LDFLAGS="$LDFLAGS"
4854 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
4855 MANTYPE=cat
4856 ;;
4857*-*-unicos*)
4858 cat >>confdefs.h <<\_ACEOF
4859@%:@define USE_PIPES 1
4860_ACEOF
4861
4862 cat >>confdefs.h <<\_ACEOF
4863@%:@define DISABLE_FD_PASSING 1
4864_ACEOF
4865
4866 cat >>confdefs.h <<\_ACEOF
4867@%:@define NO_SSH_LASTLOG 1
4868_ACEOF
4869
4870 LDFLAGS="$LDFLAGS -Wl,-Dmsglevel=334:fatal"
4871 LIBS="$LIBS -lgen -lrsc -lshare -luex -lacm"
4872 MANTYPE=cat
4873 ;;
4874*-dec-osf*)
4875 echo "$as_me:$LINENO: checking for Digital Unix SIA" >&5
4876echo $ECHO_N "checking for Digital Unix SIA... $ECHO_C" >&6
4877 no_osfsia=""
4878
4879# Check whether --with-osfsia or --without-osfsia was given.
4880if test "${with_osfsia+set}" = set; then
4881 withval="$with_osfsia"
4882
4883 if test "x$withval" = "xno" ; then
4884 echo "$as_me:$LINENO: result: disabled" >&5
4885echo "${ECHO_T}disabled" >&6
4886 no_osfsia=1
4887 fi
4888
4889fi;
4890 if test -z "$no_osfsia" ; then
4891 if test -f /etc/sia/matrix.conf; then
4892 echo "$as_me:$LINENO: result: yes" >&5
4893echo "${ECHO_T}yes" >&6
4894 cat >>confdefs.h <<\_ACEOF
4895@%:@define HAVE_OSF_SIA 1
4896_ACEOF
4897
4898 cat >>confdefs.h <<\_ACEOF
4899@%:@define DISABLE_LOGIN 1
4900_ACEOF
4901
4902 cat >>confdefs.h <<\_ACEOF
4903@%:@define DISABLE_FD_PASSING 1
4904_ACEOF
4905
4906 LIBS="$LIBS -lsecurity -ldb -lm -laud"
4907 else
4908 echo "$as_me:$LINENO: result: no" >&5
4909echo "${ECHO_T}no" >&6
4910 fi
4911 fi
4912 cat >>confdefs.h <<\_ACEOF
4913@%:@define DISABLE_FD_PASSING 1
4914_ACEOF
4915
4916 ;;
4917
4918*-*-nto-qnx)
4919 cat >>confdefs.h <<\_ACEOF
4920@%:@define USE_PIPES 1
4921_ACEOF
4922
4923 cat >>confdefs.h <<\_ACEOF
4924@%:@define NO_X11_UNIX_SOCKETS 1
4925_ACEOF
4926
4927 cat >>confdefs.h <<\_ACEOF
4928@%:@define MISSING_NFDBITS 1
4929_ACEOF
4930
4931 cat >>confdefs.h <<\_ACEOF
4932@%:@define MISSING_HOWMANY 1
4933_ACEOF
4934
4935 cat >>confdefs.h <<\_ACEOF
4936@%:@define MISSING_FD_MASK 1
4937_ACEOF
4938
4939 ;;
4940esac
4941
4942# Allow user to specify flags
4943
4944# Check whether --with-cflags or --without-cflags was given.
4945if test "${with_cflags+set}" = set; then
4946 withval="$with_cflags"
4947
4948 if test "x$withval" != "xno" ; then
4949 CFLAGS="$CFLAGS $withval"
4950 fi
4951
4952
4953fi;
4954
4955# Check whether --with-cppflags or --without-cppflags was given.
4956if test "${with_cppflags+set}" = set; then
4957 withval="$with_cppflags"
4958
4959 if test "x$withval" != "xno"; then
4960 CPPFLAGS="$CPPFLAGS $withval"
4961 fi
4962
4963
4964fi;
4965
4966# Check whether --with-ldflags or --without-ldflags was given.
4967if test "${with_ldflags+set}" = set; then
4968 withval="$with_ldflags"
4969
4970 if test "x$withval" != "xno" ; then
4971 LDFLAGS="$LDFLAGS $withval"
4972 fi
4973
4974
4975fi;
4976
4977# Check whether --with-libs or --without-libs was given.
4978if test "${with_libs+set}" = set; then
4979 withval="$with_libs"
4980
4981 if test "x$withval" != "xno" ; then
4982 LIBS="$LIBS $withval"
4983 fi
4984
4985
4986fi;
4987
4988# Checks for header files.
4989
4990echo "$as_me:$LINENO: checking for egrep" >&5
4991echo $ECHO_N "checking for egrep... $ECHO_C" >&6
4992if test "${ac_cv_prog_egrep+set}" = set; then
4993 echo $ECHO_N "(cached) $ECHO_C" >&6
4994else
4995 if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4996 then ac_cv_prog_egrep='grep -E'
4997 else ac_cv_prog_egrep='egrep'
4998 fi
4999fi
5000echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
5001echo "${ECHO_T}$ac_cv_prog_egrep" >&6
5002 EGREP=$ac_cv_prog_egrep
5003
5004
5005echo "$as_me:$LINENO: checking for ANSI C header files" >&5
5006echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
5007if test "${ac_cv_header_stdc+set}" = set; then
5008 echo $ECHO_N "(cached) $ECHO_C" >&6
5009else
5010 cat >conftest.$ac_ext <<_ACEOF
5011#line $LINENO "configure"
5012/* confdefs.h. */
5013_ACEOF
5014cat confdefs.h >>conftest.$ac_ext
5015cat >>conftest.$ac_ext <<_ACEOF
5016/* end confdefs.h. */
5017#include <stdlib.h>
5018#include <stdarg.h>
5019#include <string.h>
5020#include <float.h>
5021
5022int
5023main ()
5024{
5025
5026 ;
5027 return 0;
5028}
5029_ACEOF
5030rm -f conftest.$ac_objext
5031if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5032 (eval $ac_compile) 2>&5
5033 ac_status=$?
5034 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5035 (exit $ac_status); } &&
5036 { ac_try='test -s conftest.$ac_objext'
5037 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5038 (eval $ac_try) 2>&5
5039 ac_status=$?
5040 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5041 (exit $ac_status); }; }; then
5042 ac_cv_header_stdc=yes
5043else
5044 echo "$as_me: failed program was:" >&5
5045sed 's/^/| /' conftest.$ac_ext >&5
5046
5047ac_cv_header_stdc=no
5048fi
5049rm -f conftest.$ac_objext conftest.$ac_ext
5050
5051if test $ac_cv_header_stdc = yes; then
5052 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
5053 cat >conftest.$ac_ext <<_ACEOF
5054#line $LINENO "configure"
5055/* confdefs.h. */
5056_ACEOF
5057cat confdefs.h >>conftest.$ac_ext
5058cat >>conftest.$ac_ext <<_ACEOF
5059/* end confdefs.h. */
5060#include <string.h>
5061
5062_ACEOF
5063if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
5064 $EGREP "memchr" >/dev/null 2>&1; then
5065 :
5066else
5067 ac_cv_header_stdc=no
5068fi
5069rm -f conftest*
5070
5071fi
5072
5073if test $ac_cv_header_stdc = yes; then
5074 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
5075 cat >conftest.$ac_ext <<_ACEOF
5076#line $LINENO "configure"
5077/* confdefs.h. */
5078_ACEOF
5079cat confdefs.h >>conftest.$ac_ext
5080cat >>conftest.$ac_ext <<_ACEOF
5081/* end confdefs.h. */
5082#include <stdlib.h>
5083
5084_ACEOF
5085if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
5086 $EGREP "free" >/dev/null 2>&1; then
5087 :
5088else
5089 ac_cv_header_stdc=no
5090fi
5091rm -f conftest*
5092
5093fi
5094
5095if test $ac_cv_header_stdc = yes; then
5096 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
5097 if test "$cross_compiling" = yes; then
5098 :
5099else
5100 cat >conftest.$ac_ext <<_ACEOF
5101#line $LINENO "configure"
5102/* confdefs.h. */
5103_ACEOF
5104cat confdefs.h >>conftest.$ac_ext
5105cat >>conftest.$ac_ext <<_ACEOF
5106/* end confdefs.h. */
5107#include <ctype.h>
5108#if ((' ' & 0x0FF) == 0x020)
5109# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
5110# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
5111#else
5112# define ISLOWER(c) \
5113 (('a' <= (c) && (c) <= 'i') \
5114 || ('j' <= (c) && (c) <= 'r') \
5115 || ('s' <= (c) && (c) <= 'z'))
5116# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
5117#endif
5118
5119#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
5120int
5121main ()
5122{
5123 int i;
5124 for (i = 0; i < 256; i++)
5125 if (XOR (islower (i), ISLOWER (i))
5126 || toupper (i) != TOUPPER (i))
5127 exit(2);
5128 exit (0);
5129}
5130_ACEOF
5131rm -f conftest$ac_exeext
5132if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5133 (eval $ac_link) 2>&5
5134 ac_status=$?
5135 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5136 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
5137 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5138 (eval $ac_try) 2>&5
5139 ac_status=$?
5140 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5141 (exit $ac_status); }; }; then
5142 :
5143else
5144 echo "$as_me: program exited with status $ac_status" >&5
5145echo "$as_me: failed program was:" >&5
5146sed 's/^/| /' conftest.$ac_ext >&5
5147
5148( exit $ac_status )
5149ac_cv_header_stdc=no
5150fi
5151rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
5152fi
5153fi
5154fi
5155echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
5156echo "${ECHO_T}$ac_cv_header_stdc" >&6
5157if test $ac_cv_header_stdc = yes; then
5158
5159cat >>confdefs.h <<\_ACEOF
5160@%:@define STDC_HEADERS 1
5161_ACEOF
5162
5163fi
5164
5165# On IRIX 5.3, sys/types and inttypes.h are conflicting.
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
5176 inttypes.h stdint.h unistd.h
5177do
5178as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
5179echo "$as_me:$LINENO: checking for $ac_header" >&5
5180echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5181if eval "test \"\${$as_ac_Header+set}\" = set"; then
5182 echo $ECHO_N "(cached) $ECHO_C" >&6
5183else
5184 cat >conftest.$ac_ext <<_ACEOF
5185#line $LINENO "configure"
5186/* confdefs.h. */
5187_ACEOF
5188cat confdefs.h >>conftest.$ac_ext
5189cat >>conftest.$ac_ext <<_ACEOF
5190/* end confdefs.h. */
5191$ac_includes_default
5192
5193@%:@include <$ac_header>
5194_ACEOF
5195rm -f conftest.$ac_objext
5196if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5197 (eval $ac_compile) 2>&5
5198 ac_status=$?
5199 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5200 (exit $ac_status); } &&
5201 { ac_try='test -s conftest.$ac_objext'
5202 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5203 (eval $ac_try) 2>&5
5204 ac_status=$?
5205 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5206 (exit $ac_status); }; }; then
5207 eval "$as_ac_Header=yes"
5208else
5209 echo "$as_me: failed program was:" >&5
5210sed 's/^/| /' conftest.$ac_ext >&5
5211
5212eval "$as_ac_Header=no"
5213fi
5214rm -f conftest.$ac_objext conftest.$ac_ext
5215fi
5216echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5217echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5218if test `eval echo '${'$as_ac_Header'}'` = yes; then
5219 cat >>confdefs.h <<_ACEOF
5220@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
5221_ACEOF
5222
5223fi
5224
5225done
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273for ac_header in bstring.h crypt.h endian.h floatingpoint.h \
5274 getopt.h glob.h ia.h lastlog.h libgen.h limits.h login.h \
5275 login_cap.h maillock.h netdb.h netgroup.h \
5276 netinet/in_systm.h paths.h pty.h readpassphrase.h \
5277 rpc/types.h security/pam_appl.h shadow.h stddef.h stdint.h \
5278 strings.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h \
5279 sys/mman.h sys/pstat.h sys/select.h sys/stat.h \
5280 sys/stropts.h sys/sysmacros.h sys/time.h sys/timers.h \
5281 sys/un.h time.h tmpdir.h ttyent.h usersec.h \
5282 util.h utime.h utmp.h utmpx.h
5283do
5284as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
5285if eval "test \"\${$as_ac_Header+set}\" = set"; then
5286 echo "$as_me:$LINENO: checking for $ac_header" >&5
5287echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5288if eval "test \"\${$as_ac_Header+set}\" = set"; then
5289 echo $ECHO_N "(cached) $ECHO_C" >&6
5290fi
5291echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5292echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5293else
5294 # Is the header compilable?
5295echo "$as_me:$LINENO: checking $ac_header usability" >&5
5296echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5297cat >conftest.$ac_ext <<_ACEOF
5298#line $LINENO "configure"
5299/* confdefs.h. */
5300_ACEOF
5301cat confdefs.h >>conftest.$ac_ext
5302cat >>conftest.$ac_ext <<_ACEOF
5303/* end confdefs.h. */
5304$ac_includes_default
5305@%:@include <$ac_header>
5306_ACEOF
5307rm -f conftest.$ac_objext
5308if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5309 (eval $ac_compile) 2>&5
5310 ac_status=$?
5311 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5312 (exit $ac_status); } &&
5313 { ac_try='test -s conftest.$ac_objext'
5314 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5315 (eval $ac_try) 2>&5
5316 ac_status=$?
5317 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5318 (exit $ac_status); }; }; then
5319 ac_header_compiler=yes
5320else
5321 echo "$as_me: failed program was:" >&5
5322sed 's/^/| /' conftest.$ac_ext >&5
5323
5324ac_header_compiler=no
5325fi
5326rm -f conftest.$ac_objext conftest.$ac_ext
5327echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5328echo "${ECHO_T}$ac_header_compiler" >&6
5329
5330# Is the header present?
5331echo "$as_me:$LINENO: checking $ac_header presence" >&5
5332echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5333cat >conftest.$ac_ext <<_ACEOF
5334#line $LINENO "configure"
5335/* confdefs.h. */
5336_ACEOF
5337cat confdefs.h >>conftest.$ac_ext
5338cat >>conftest.$ac_ext <<_ACEOF
5339/* end confdefs.h. */
5340@%:@include <$ac_header>
5341_ACEOF
5342if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
5343 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
5344 ac_status=$?
5345 grep -v '^ *+' conftest.er1 >conftest.err
5346 rm -f conftest.er1
5347 cat conftest.err >&5
5348 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5349 (exit $ac_status); } >/dev/null; then
5350 if test -s conftest.err; then
5351 ac_cpp_err=$ac_c_preproc_warn_flag
5352 else
5353 ac_cpp_err=
5354 fi
5355else
5356 ac_cpp_err=yes
5357fi
5358if test -z "$ac_cpp_err"; then
5359 ac_header_preproc=yes
5360else
5361 echo "$as_me: failed program was:" >&5
5362sed 's/^/| /' conftest.$ac_ext >&5
5363
5364 ac_header_preproc=no
5365fi
5366rm -f conftest.err conftest.$ac_ext
5367echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
5368echo "${ECHO_T}$ac_header_preproc" >&6
5369
5370# So? What about this header?
5371case $ac_header_compiler:$ac_header_preproc in
5372 yes:no )
5373 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5374echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5375 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5376echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5377 (
5378 cat <<\_ASBOX
5379@%:@@%:@ ------------------------------------ @%:@@%:@
5380@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
5381@%:@@%:@ ------------------------------------ @%:@@%:@
5382_ASBOX
5383 ) |
5384 sed "s/^/$as_me: WARNING: /" >&2
5385 ;;
5386 no:yes )
5387 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5388echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5389 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5390echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5391 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5392echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5393 (
5394 cat <<\_ASBOX
5395@%:@@%:@ ------------------------------------ @%:@@%:@
5396@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
5397@%:@@%:@ ------------------------------------ @%:@@%:@
5398_ASBOX
5399 ) |
5400 sed "s/^/$as_me: WARNING: /" >&2
5401 ;;
5402esac
5403echo "$as_me:$LINENO: checking for $ac_header" >&5
5404echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
5405if eval "test \"\${$as_ac_Header+set}\" = set"; then
5406 echo $ECHO_N "(cached) $ECHO_C" >&6
5407else
5408 eval "$as_ac_Header=$ac_header_preproc"
5409fi
5410echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5411echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5412
5413fi
5414if test `eval echo '${'$as_ac_Header'}'` = yes; then
5415 cat >>confdefs.h <<_ACEOF
5416@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
5417_ACEOF
5418
5419fi
5420
5421done
5422
5423
5424# Checks for libraries.
5425echo "$as_me:$LINENO: checking for yp_match" >&5
5426echo $ECHO_N "checking for yp_match... $ECHO_C" >&6
5427if test "${ac_cv_func_yp_match+set}" = set; then
5428 echo $ECHO_N "(cached) $ECHO_C" >&6
5429else
5430 cat >conftest.$ac_ext <<_ACEOF
5431#line $LINENO "configure"
5432/* confdefs.h. */
5433_ACEOF
5434cat confdefs.h >>conftest.$ac_ext
5435cat >>conftest.$ac_ext <<_ACEOF
5436/* end confdefs.h. */
5437/* System header to define __stub macros and hopefully few prototypes,
5438 which can conflict with char yp_match (); below.
5439 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5440 <limits.h> exists even on freestanding compilers. */
5441#ifdef __STDC__
5442# include <limits.h>
5443#else
5444# include <assert.h>
5445#endif
5446/* Override any gcc2 internal prototype to avoid an error. */
5447#ifdef __cplusplus
5448extern "C"
5449{
5450#endif
5451/* We use char because int might match the return type of a gcc2
5452 builtin and then its argument prototype would still apply. */
5453char yp_match ();
5454/* The GNU C library defines this for functions which it implements
5455 to always fail with ENOSYS. Some functions are actually named
5456 something starting with __ and the normal name is an alias. */
5457#if defined (__stub_yp_match) || defined (__stub___yp_match)
5458choke me
5459#else
5460char (*f) () = yp_match;
5461#endif
5462#ifdef __cplusplus
5463}
5464#endif
5465
5466int
5467main ()
5468{
5469return f != yp_match;
5470 ;
5471 return 0;
5472}
5473_ACEOF
5474rm -f conftest.$ac_objext conftest$ac_exeext
5475if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5476 (eval $ac_link) 2>&5
5477 ac_status=$?
5478 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5479 (exit $ac_status); } &&
5480 { ac_try='test -s conftest$ac_exeext'
5481 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5482 (eval $ac_try) 2>&5
5483 ac_status=$?
5484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5485 (exit $ac_status); }; }; then
5486 ac_cv_func_yp_match=yes
5487else
5488 echo "$as_me: failed program was:" >&5
5489sed 's/^/| /' conftest.$ac_ext >&5
5490
5491ac_cv_func_yp_match=no
5492fi
5493rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5494fi
5495echo "$as_me:$LINENO: result: $ac_cv_func_yp_match" >&5
5496echo "${ECHO_T}$ac_cv_func_yp_match" >&6
5497if test $ac_cv_func_yp_match = yes; then
5498 :
5499else
5500
5501echo "$as_me:$LINENO: checking for yp_match in -lnsl" >&5
5502echo $ECHO_N "checking for yp_match in -lnsl... $ECHO_C" >&6
5503if test "${ac_cv_lib_nsl_yp_match+set}" = set; then
5504 echo $ECHO_N "(cached) $ECHO_C" >&6
5505else
5506 ac_check_lib_save_LIBS=$LIBS
5507LIBS="-lnsl $LIBS"
5508cat >conftest.$ac_ext <<_ACEOF
5509#line $LINENO "configure"
5510/* confdefs.h. */
5511_ACEOF
5512cat confdefs.h >>conftest.$ac_ext
5513cat >>conftest.$ac_ext <<_ACEOF
5514/* end confdefs.h. */
5515
5516/* Override any gcc2 internal prototype to avoid an error. */
5517#ifdef __cplusplus
5518extern "C"
5519#endif
5520/* We use char because int might match the return type of a gcc2
5521 builtin and then its argument prototype would still apply. */
5522char yp_match ();
5523int
5524main ()
5525{
5526yp_match ();
5527 ;
5528 return 0;
5529}
5530_ACEOF
5531rm -f conftest.$ac_objext conftest$ac_exeext
5532if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5533 (eval $ac_link) 2>&5
5534 ac_status=$?
5535 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5536 (exit $ac_status); } &&
5537 { ac_try='test -s conftest$ac_exeext'
5538 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5539 (eval $ac_try) 2>&5
5540 ac_status=$?
5541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5542 (exit $ac_status); }; }; then
5543 ac_cv_lib_nsl_yp_match=yes
5544else
5545 echo "$as_me: failed program was:" >&5
5546sed 's/^/| /' conftest.$ac_ext >&5
5547
5548ac_cv_lib_nsl_yp_match=no
5549fi
5550rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5551LIBS=$ac_check_lib_save_LIBS
5552fi
5553echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_yp_match" >&5
5554echo "${ECHO_T}$ac_cv_lib_nsl_yp_match" >&6
5555if test $ac_cv_lib_nsl_yp_match = yes; then
5556 cat >>confdefs.h <<_ACEOF
5557@%:@define HAVE_LIBNSL 1
5558_ACEOF
5559
5560 LIBS="-lnsl $LIBS"
5561
5562fi
5563
5564fi
5565
5566echo "$as_me:$LINENO: checking for setsockopt" >&5
5567echo $ECHO_N "checking for setsockopt... $ECHO_C" >&6
5568if test "${ac_cv_func_setsockopt+set}" = set; then
5569 echo $ECHO_N "(cached) $ECHO_C" >&6
5570else
5571 cat >conftest.$ac_ext <<_ACEOF
5572#line $LINENO "configure"
5573/* confdefs.h. */
5574_ACEOF
5575cat confdefs.h >>conftest.$ac_ext
5576cat >>conftest.$ac_ext <<_ACEOF
5577/* end confdefs.h. */
5578/* System header to define __stub macros and hopefully few prototypes,
5579 which can conflict with char setsockopt (); below.
5580 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5581 <limits.h> exists even on freestanding compilers. */
5582#ifdef __STDC__
5583# include <limits.h>
5584#else
5585# include <assert.h>
5586#endif
5587/* Override any gcc2 internal prototype to avoid an error. */
5588#ifdef __cplusplus
5589extern "C"
5590{
5591#endif
5592/* We use char because int might match the return type of a gcc2
5593 builtin and then its argument prototype would still apply. */
5594char setsockopt ();
5595/* The GNU C library defines this for functions which it implements
5596 to always fail with ENOSYS. Some functions are actually named
5597 something starting with __ and the normal name is an alias. */
5598#if defined (__stub_setsockopt) || defined (__stub___setsockopt)
5599choke me
5600#else
5601char (*f) () = setsockopt;
5602#endif
5603#ifdef __cplusplus
5604}
5605#endif
5606
5607int
5608main ()
5609{
5610return f != setsockopt;
5611 ;
5612 return 0;
5613}
5614_ACEOF
5615rm -f conftest.$ac_objext conftest$ac_exeext
5616if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5617 (eval $ac_link) 2>&5
5618 ac_status=$?
5619 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5620 (exit $ac_status); } &&
5621 { ac_try='test -s conftest$ac_exeext'
5622 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5623 (eval $ac_try) 2>&5
5624 ac_status=$?
5625 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5626 (exit $ac_status); }; }; then
5627 ac_cv_func_setsockopt=yes
5628else
5629 echo "$as_me: failed program was:" >&5
5630sed 's/^/| /' conftest.$ac_ext >&5
5631
5632ac_cv_func_setsockopt=no
5633fi
5634rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5635fi
5636echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5
5637echo "${ECHO_T}$ac_cv_func_setsockopt" >&6
5638if test $ac_cv_func_setsockopt = yes; then
5639 :
5640else
5641
5642echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5
5643echo $ECHO_N "checking for setsockopt in -lsocket... $ECHO_C" >&6
5644if test "${ac_cv_lib_socket_setsockopt+set}" = set; then
5645 echo $ECHO_N "(cached) $ECHO_C" >&6
5646else
5647 ac_check_lib_save_LIBS=$LIBS
5648LIBS="-lsocket $LIBS"
5649cat >conftest.$ac_ext <<_ACEOF
5650#line $LINENO "configure"
5651/* confdefs.h. */
5652_ACEOF
5653cat confdefs.h >>conftest.$ac_ext
5654cat >>conftest.$ac_ext <<_ACEOF
5655/* end confdefs.h. */
5656
5657/* Override any gcc2 internal prototype to avoid an error. */
5658#ifdef __cplusplus
5659extern "C"
5660#endif
5661/* We use char because int might match the return type of a gcc2
5662 builtin and then its argument prototype would still apply. */
5663char setsockopt ();
5664int
5665main ()
5666{
5667setsockopt ();
5668 ;
5669 return 0;
5670}
5671_ACEOF
5672rm -f conftest.$ac_objext conftest$ac_exeext
5673if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5674 (eval $ac_link) 2>&5
5675 ac_status=$?
5676 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5677 (exit $ac_status); } &&
5678 { ac_try='test -s conftest$ac_exeext'
5679 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5680 (eval $ac_try) 2>&5
5681 ac_status=$?
5682 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5683 (exit $ac_status); }; }; then
5684 ac_cv_lib_socket_setsockopt=yes
5685else
5686 echo "$as_me: failed program was:" >&5
5687sed 's/^/| /' conftest.$ac_ext >&5
5688
5689ac_cv_lib_socket_setsockopt=no
5690fi
5691rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5692LIBS=$ac_check_lib_save_LIBS
5693fi
5694echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5
5695echo "${ECHO_T}$ac_cv_lib_socket_setsockopt" >&6
5696if test $ac_cv_lib_socket_setsockopt = yes; then
5697 cat >>confdefs.h <<_ACEOF
5698@%:@define HAVE_LIBSOCKET 1
5699_ACEOF
5700
5701 LIBS="-lsocket $LIBS"
5702
5703fi
5704
5705fi
5706
5707
5708if test "x$with_tcp_wrappers" != "xno" ; then
5709 if test "x$do_sco3_extra_lib_check" = "xyes" ; then
5710 echo "$as_me:$LINENO: checking for innetgr in -lrpc" >&5
5711echo $ECHO_N "checking for innetgr in -lrpc... $ECHO_C" >&6
5712if test "${ac_cv_lib_rpc_innetgr+set}" = set; then
5713 echo $ECHO_N "(cached) $ECHO_C" >&6
5714else
5715 ac_check_lib_save_LIBS=$LIBS
5716LIBS="-lrpc -lyp -lrpc $LIBS"
5717cat >conftest.$ac_ext <<_ACEOF
5718#line $LINENO "configure"
5719/* confdefs.h. */
5720_ACEOF
5721cat confdefs.h >>conftest.$ac_ext
5722cat >>conftest.$ac_ext <<_ACEOF
5723/* end confdefs.h. */
5724
5725/* Override any gcc2 internal prototype to avoid an error. */
5726#ifdef __cplusplus
5727extern "C"
5728#endif
5729/* We use char because int might match the return type of a gcc2
5730 builtin and then its argument prototype would still apply. */
5731char innetgr ();
5732int
5733main ()
5734{
5735innetgr ();
5736 ;
5737 return 0;
5738}
5739_ACEOF
5740rm -f conftest.$ac_objext conftest$ac_exeext
5741if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5742 (eval $ac_link) 2>&5
5743 ac_status=$?
5744 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5745 (exit $ac_status); } &&
5746 { ac_try='test -s conftest$ac_exeext'
5747 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5748 (eval $ac_try) 2>&5
5749 ac_status=$?
5750 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5751 (exit $ac_status); }; }; then
5752 ac_cv_lib_rpc_innetgr=yes
5753else
5754 echo "$as_me: failed program was:" >&5
5755sed 's/^/| /' conftest.$ac_ext >&5
5756
5757ac_cv_lib_rpc_innetgr=no
5758fi
5759rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5760LIBS=$ac_check_lib_save_LIBS
5761fi
5762echo "$as_me:$LINENO: result: $ac_cv_lib_rpc_innetgr" >&5
5763echo "${ECHO_T}$ac_cv_lib_rpc_innetgr" >&6
5764if test $ac_cv_lib_rpc_innetgr = yes; then
5765 LIBS="-lrpc -lyp -lrpc $LIBS"
5766fi
5767
5768 fi
5769fi
5770
5771echo "$as_me:$LINENO: checking for getspnam" >&5
5772echo $ECHO_N "checking for getspnam... $ECHO_C" >&6
5773if test "${ac_cv_func_getspnam+set}" = set; then
5774 echo $ECHO_N "(cached) $ECHO_C" >&6
5775else
5776 cat >conftest.$ac_ext <<_ACEOF
5777#line $LINENO "configure"
5778/* confdefs.h. */
5779_ACEOF
5780cat confdefs.h >>conftest.$ac_ext
5781cat >>conftest.$ac_ext <<_ACEOF
5782/* end confdefs.h. */
5783/* System header to define __stub macros and hopefully few prototypes,
5784 which can conflict with char getspnam (); below.
5785 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5786 <limits.h> exists even on freestanding compilers. */
5787#ifdef __STDC__
5788# include <limits.h>
5789#else
5790# include <assert.h>
5791#endif
5792/* Override any gcc2 internal prototype to avoid an error. */
5793#ifdef __cplusplus
5794extern "C"
5795{
5796#endif
5797/* We use char because int might match the return type of a gcc2
5798 builtin and then its argument prototype would still apply. */
5799char getspnam ();
5800/* The GNU C library defines this for functions which it implements
5801 to always fail with ENOSYS. Some functions are actually named
5802 something starting with __ and the normal name is an alias. */
5803#if defined (__stub_getspnam) || defined (__stub___getspnam)
5804choke me
5805#else
5806char (*f) () = getspnam;
5807#endif
5808#ifdef __cplusplus
5809}
5810#endif
5811
5812int
5813main ()
5814{
5815return f != getspnam;
5816 ;
5817 return 0;
5818}
5819_ACEOF
5820rm -f conftest.$ac_objext conftest$ac_exeext
5821if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5822 (eval $ac_link) 2>&5
5823 ac_status=$?
5824 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5825 (exit $ac_status); } &&
5826 { ac_try='test -s conftest$ac_exeext'
5827 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5828 (eval $ac_try) 2>&5
5829 ac_status=$?
5830 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5831 (exit $ac_status); }; }; then
5832 ac_cv_func_getspnam=yes
5833else
5834 echo "$as_me: failed program was:" >&5
5835sed 's/^/| /' conftest.$ac_ext >&5
5836
5837ac_cv_func_getspnam=no
5838fi
5839rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5840fi
5841echo "$as_me:$LINENO: result: $ac_cv_func_getspnam" >&5
5842echo "${ECHO_T}$ac_cv_func_getspnam" >&6
5843if test $ac_cv_func_getspnam = yes; then
5844 :
5845else
5846 echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5
5847echo $ECHO_N "checking for getspnam in -lgen... $ECHO_C" >&6
5848if test "${ac_cv_lib_gen_getspnam+set}" = set; then
5849 echo $ECHO_N "(cached) $ECHO_C" >&6
5850else
5851 ac_check_lib_save_LIBS=$LIBS
5852LIBS="-lgen $LIBS"
5853cat >conftest.$ac_ext <<_ACEOF
5854#line $LINENO "configure"
5855/* confdefs.h. */
5856_ACEOF
5857cat confdefs.h >>conftest.$ac_ext
5858cat >>conftest.$ac_ext <<_ACEOF
5859/* end confdefs.h. */
5860
5861/* Override any gcc2 internal prototype to avoid an error. */
5862#ifdef __cplusplus
5863extern "C"
5864#endif
5865/* We use char because int might match the return type of a gcc2
5866 builtin and then its argument prototype would still apply. */
5867char getspnam ();
5868int
5869main ()
5870{
5871getspnam ();
5872 ;
5873 return 0;
5874}
5875_ACEOF
5876rm -f conftest.$ac_objext conftest$ac_exeext
5877if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5878 (eval $ac_link) 2>&5
5879 ac_status=$?
5880 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5881 (exit $ac_status); } &&
5882 { ac_try='test -s conftest$ac_exeext'
5883 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5884 (eval $ac_try) 2>&5
5885 ac_status=$?
5886 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5887 (exit $ac_status); }; }; then
5888 ac_cv_lib_gen_getspnam=yes
5889else
5890 echo "$as_me: failed program was:" >&5
5891sed 's/^/| /' conftest.$ac_ext >&5
5892
5893ac_cv_lib_gen_getspnam=no
5894fi
5895rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5896LIBS=$ac_check_lib_save_LIBS
5897fi
5898echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5
5899echo "${ECHO_T}$ac_cv_lib_gen_getspnam" >&6
5900if test $ac_cv_lib_gen_getspnam = yes; then
5901 LIBS="$LIBS -lgen"
5902fi
5903
5904fi
5905
5906
5907
5908# Check whether --with-rpath or --without-rpath was given.
5909if test "${with_rpath+set}" = set; then
5910 withval="$with_rpath"
5911
5912 if test "x$withval" = "xno" ; then
5913 need_dash_r=""
5914 fi
5915 if test "x$withval" = "xyes" ; then
5916 need_dash_r=1
5917 fi
5918
5919
5920fi;
5921
5922
5923# Check whether --with-zlib or --without-zlib was given.
5924if test "${with_zlib+set}" = set; then
5925 withval="$with_zlib"
5926
5927 if test "x$withval" = "xno" ; then
5928 { { echo "$as_me:$LINENO: error: *** zlib is required ***" >&5
5929echo "$as_me: error: *** zlib is required ***" >&2;}
5930 { (exit 1); exit 1; }; }
5931 fi
5932 if test -d "$withval/lib"; then
5933 if test -n "${need_dash_r}"; then
5934 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
5935 else
5936 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
5937 fi
5938 else
5939 if test -n "${need_dash_r}"; then
5940 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
5941 else
5942 LDFLAGS="-L${withval} ${LDFLAGS}"
5943 fi
5944 fi
5945 if test -d "$withval/include"; then
5946 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
5947 else
5948 CPPFLAGS="-I${withval} ${CPPFLAGS}"
5949 fi
5950
5951
5952fi;
5953
5954
5955echo "$as_me:$LINENO: checking for deflate in -lz" >&5
5956echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6
5957if test "${ac_cv_lib_z_deflate+set}" = set; then
5958 echo $ECHO_N "(cached) $ECHO_C" >&6
5959else
5960 ac_check_lib_save_LIBS=$LIBS
5961LIBS="-lz $LIBS"
5962cat >conftest.$ac_ext <<_ACEOF
5963#line $LINENO "configure"
5964/* confdefs.h. */
5965_ACEOF
5966cat confdefs.h >>conftest.$ac_ext
5967cat >>conftest.$ac_ext <<_ACEOF
5968/* end confdefs.h. */
5969
5970/* Override any gcc2 internal prototype to avoid an error. */
5971#ifdef __cplusplus
5972extern "C"
5973#endif
5974/* We use char because int might match the return type of a gcc2
5975 builtin and then its argument prototype would still apply. */
5976char deflate ();
5977int
5978main ()
5979{
5980deflate ();
5981 ;
5982 return 0;
5983}
5984_ACEOF
5985rm -f conftest.$ac_objext conftest$ac_exeext
5986if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5987 (eval $ac_link) 2>&5
5988 ac_status=$?
5989 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5990 (exit $ac_status); } &&
5991 { ac_try='test -s conftest$ac_exeext'
5992 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5993 (eval $ac_try) 2>&5
5994 ac_status=$?
5995 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5996 (exit $ac_status); }; }; then
5997 ac_cv_lib_z_deflate=yes
5998else
5999 echo "$as_me: failed program was:" >&5
6000sed 's/^/| /' conftest.$ac_ext >&5
6001
6002ac_cv_lib_z_deflate=no
6003fi
6004rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6005LIBS=$ac_check_lib_save_LIBS
6006fi
6007echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5
6008echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6
6009if test $ac_cv_lib_z_deflate = yes; then
6010 cat >>confdefs.h <<_ACEOF
6011@%:@define HAVE_LIBZ 1
6012_ACEOF
6013
6014 LIBS="-lz $LIBS"
6015
6016else
6017 { { echo "$as_me:$LINENO: error: *** zlib missing - please install first or check config.log ***" >&5
6018echo "$as_me: error: *** zlib missing - please install first or check config.log ***" >&2;}
6019 { (exit 1); exit 1; }; }
6020fi
6021
6022
6023echo "$as_me:$LINENO: checking for strcasecmp" >&5
6024echo $ECHO_N "checking for strcasecmp... $ECHO_C" >&6
6025if test "${ac_cv_func_strcasecmp+set}" = set; then
6026 echo $ECHO_N "(cached) $ECHO_C" >&6
6027else
6028 cat >conftest.$ac_ext <<_ACEOF
6029#line $LINENO "configure"
6030/* confdefs.h. */
6031_ACEOF
6032cat confdefs.h >>conftest.$ac_ext
6033cat >>conftest.$ac_ext <<_ACEOF
6034/* end confdefs.h. */
6035/* System header to define __stub macros and hopefully few prototypes,
6036 which can conflict with char strcasecmp (); below.
6037 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6038 <limits.h> exists even on freestanding compilers. */
6039#ifdef __STDC__
6040# include <limits.h>
6041#else
6042# include <assert.h>
6043#endif
6044/* Override any gcc2 internal prototype to avoid an error. */
6045#ifdef __cplusplus
6046extern "C"
6047{
6048#endif
6049/* We use char because int might match the return type of a gcc2
6050 builtin and then its argument prototype would still apply. */
6051char strcasecmp ();
6052/* The GNU C library defines this for functions which it implements
6053 to always fail with ENOSYS. Some functions are actually named
6054 something starting with __ and the normal name is an alias. */
6055#if defined (__stub_strcasecmp) || defined (__stub___strcasecmp)
6056choke me
6057#else
6058char (*f) () = strcasecmp;
6059#endif
6060#ifdef __cplusplus
6061}
6062#endif
6063
6064int
6065main ()
6066{
6067return f != strcasecmp;
6068 ;
6069 return 0;
6070}
6071_ACEOF
6072rm -f conftest.$ac_objext conftest$ac_exeext
6073if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6074 (eval $ac_link) 2>&5
6075 ac_status=$?
6076 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6077 (exit $ac_status); } &&
6078 { ac_try='test -s conftest$ac_exeext'
6079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6080 (eval $ac_try) 2>&5
6081 ac_status=$?
6082 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6083 (exit $ac_status); }; }; then
6084 ac_cv_func_strcasecmp=yes
6085else
6086 echo "$as_me: failed program was:" >&5
6087sed 's/^/| /' conftest.$ac_ext >&5
6088
6089ac_cv_func_strcasecmp=no
6090fi
6091rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6092fi
6093echo "$as_me:$LINENO: result: $ac_cv_func_strcasecmp" >&5
6094echo "${ECHO_T}$ac_cv_func_strcasecmp" >&6
6095if test $ac_cv_func_strcasecmp = yes; then
6096 :
6097else
6098 echo "$as_me:$LINENO: checking for strcasecmp in -lresolv" >&5
6099echo $ECHO_N "checking for strcasecmp in -lresolv... $ECHO_C" >&6
6100if test "${ac_cv_lib_resolv_strcasecmp+set}" = set; then
6101 echo $ECHO_N "(cached) $ECHO_C" >&6
6102else
6103 ac_check_lib_save_LIBS=$LIBS
6104LIBS="-lresolv $LIBS"
6105cat >conftest.$ac_ext <<_ACEOF
6106#line $LINENO "configure"
6107/* confdefs.h. */
6108_ACEOF
6109cat confdefs.h >>conftest.$ac_ext
6110cat >>conftest.$ac_ext <<_ACEOF
6111/* end confdefs.h. */
6112
6113/* Override any gcc2 internal prototype to avoid an error. */
6114#ifdef __cplusplus
6115extern "C"
6116#endif
6117/* We use char because int might match the return type of a gcc2
6118 builtin and then its argument prototype would still apply. */
6119char strcasecmp ();
6120int
6121main ()
6122{
6123strcasecmp ();
6124 ;
6125 return 0;
6126}
6127_ACEOF
6128rm -f conftest.$ac_objext conftest$ac_exeext
6129if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6130 (eval $ac_link) 2>&5
6131 ac_status=$?
6132 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6133 (exit $ac_status); } &&
6134 { ac_try='test -s conftest$ac_exeext'
6135 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6136 (eval $ac_try) 2>&5
6137 ac_status=$?
6138 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6139 (exit $ac_status); }; }; then
6140 ac_cv_lib_resolv_strcasecmp=yes
6141else
6142 echo "$as_me: failed program was:" >&5
6143sed 's/^/| /' conftest.$ac_ext >&5
6144
6145ac_cv_lib_resolv_strcasecmp=no
6146fi
6147rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6148LIBS=$ac_check_lib_save_LIBS
6149fi
6150echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_strcasecmp" >&5
6151echo "${ECHO_T}$ac_cv_lib_resolv_strcasecmp" >&6
6152if test $ac_cv_lib_resolv_strcasecmp = yes; then
6153 LIBS="$LIBS -lresolv"
6154fi
6155
6156
6157fi
6158
6159echo "$as_me:$LINENO: checking for utimes" >&5
6160echo $ECHO_N "checking for utimes... $ECHO_C" >&6
6161if test "${ac_cv_func_utimes+set}" = set; then
6162 echo $ECHO_N "(cached) $ECHO_C" >&6
6163else
6164 cat >conftest.$ac_ext <<_ACEOF
6165#line $LINENO "configure"
6166/* confdefs.h. */
6167_ACEOF
6168cat confdefs.h >>conftest.$ac_ext
6169cat >>conftest.$ac_ext <<_ACEOF
6170/* end confdefs.h. */
6171/* System header to define __stub macros and hopefully few prototypes,
6172 which can conflict with char utimes (); below.
6173 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6174 <limits.h> exists even on freestanding compilers. */
6175#ifdef __STDC__
6176# include <limits.h>
6177#else
6178# include <assert.h>
6179#endif
6180/* Override any gcc2 internal prototype to avoid an error. */
6181#ifdef __cplusplus
6182extern "C"
6183{
6184#endif
6185/* We use char because int might match the return type of a gcc2
6186 builtin and then its argument prototype would still apply. */
6187char utimes ();
6188/* The GNU C library defines this for functions which it implements
6189 to always fail with ENOSYS. Some functions are actually named
6190 something starting with __ and the normal name is an alias. */
6191#if defined (__stub_utimes) || defined (__stub___utimes)
6192choke me
6193#else
6194char (*f) () = utimes;
6195#endif
6196#ifdef __cplusplus
6197}
6198#endif
6199
6200int
6201main ()
6202{
6203return f != utimes;
6204 ;
6205 return 0;
6206}
6207_ACEOF
6208rm -f conftest.$ac_objext conftest$ac_exeext
6209if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6210 (eval $ac_link) 2>&5
6211 ac_status=$?
6212 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6213 (exit $ac_status); } &&
6214 { ac_try='test -s conftest$ac_exeext'
6215 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6216 (eval $ac_try) 2>&5
6217 ac_status=$?
6218 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6219 (exit $ac_status); }; }; then
6220 ac_cv_func_utimes=yes
6221else
6222 echo "$as_me: failed program was:" >&5
6223sed 's/^/| /' conftest.$ac_ext >&5
6224
6225ac_cv_func_utimes=no
6226fi
6227rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6228fi
6229echo "$as_me:$LINENO: result: $ac_cv_func_utimes" >&5
6230echo "${ECHO_T}$ac_cv_func_utimes" >&6
6231if test $ac_cv_func_utimes = yes; then
6232 :
6233else
6234 echo "$as_me:$LINENO: checking for utimes in -lc89" >&5
6235echo $ECHO_N "checking for utimes in -lc89... $ECHO_C" >&6
6236if test "${ac_cv_lib_c89_utimes+set}" = set; then
6237 echo $ECHO_N "(cached) $ECHO_C" >&6
6238else
6239 ac_check_lib_save_LIBS=$LIBS
6240LIBS="-lc89 $LIBS"
6241cat >conftest.$ac_ext <<_ACEOF
6242#line $LINENO "configure"
6243/* confdefs.h. */
6244_ACEOF
6245cat confdefs.h >>conftest.$ac_ext
6246cat >>conftest.$ac_ext <<_ACEOF
6247/* end confdefs.h. */
6248
6249/* Override any gcc2 internal prototype to avoid an error. */
6250#ifdef __cplusplus
6251extern "C"
6252#endif
6253/* We use char because int might match the return type of a gcc2
6254 builtin and then its argument prototype would still apply. */
6255char utimes ();
6256int
6257main ()
6258{
6259utimes ();
6260 ;
6261 return 0;
6262}
6263_ACEOF
6264rm -f conftest.$ac_objext conftest$ac_exeext
6265if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6266 (eval $ac_link) 2>&5
6267 ac_status=$?
6268 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6269 (exit $ac_status); } &&
6270 { ac_try='test -s conftest$ac_exeext'
6271 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6272 (eval $ac_try) 2>&5
6273 ac_status=$?
6274 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6275 (exit $ac_status); }; }; then
6276 ac_cv_lib_c89_utimes=yes
6277else
6278 echo "$as_me: failed program was:" >&5
6279sed 's/^/| /' conftest.$ac_ext >&5
6280
6281ac_cv_lib_c89_utimes=no
6282fi
6283rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6284LIBS=$ac_check_lib_save_LIBS
6285fi
6286echo "$as_me:$LINENO: result: $ac_cv_lib_c89_utimes" >&5
6287echo "${ECHO_T}$ac_cv_lib_c89_utimes" >&6
6288if test $ac_cv_lib_c89_utimes = yes; then
6289 cat >>confdefs.h <<\_ACEOF
6290@%:@define HAVE_UTIMES 1
6291_ACEOF
6292
6293 LIBS="$LIBS -lc89"
6294fi
6295
6296
6297fi
6298
6299
6300
6301for ac_header in libutil.h
6302do
6303as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
6304if eval "test \"\${$as_ac_Header+set}\" = set"; then
6305 echo "$as_me:$LINENO: checking for $ac_header" >&5
6306echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6307if eval "test \"\${$as_ac_Header+set}\" = set"; then
6308 echo $ECHO_N "(cached) $ECHO_C" >&6
6309fi
6310echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6311echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6312else
6313 # Is the header compilable?
6314echo "$as_me:$LINENO: checking $ac_header usability" >&5
6315echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6316cat >conftest.$ac_ext <<_ACEOF
6317#line $LINENO "configure"
6318/* confdefs.h. */
6319_ACEOF
6320cat confdefs.h >>conftest.$ac_ext
6321cat >>conftest.$ac_ext <<_ACEOF
6322/* end confdefs.h. */
6323$ac_includes_default
6324@%:@include <$ac_header>
6325_ACEOF
6326rm -f conftest.$ac_objext
6327if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6328 (eval $ac_compile) 2>&5
6329 ac_status=$?
6330 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6331 (exit $ac_status); } &&
6332 { ac_try='test -s conftest.$ac_objext'
6333 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6334 (eval $ac_try) 2>&5
6335 ac_status=$?
6336 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6337 (exit $ac_status); }; }; then
6338 ac_header_compiler=yes
6339else
6340 echo "$as_me: failed program was:" >&5
6341sed 's/^/| /' conftest.$ac_ext >&5
6342
6343ac_header_compiler=no
6344fi
6345rm -f conftest.$ac_objext conftest.$ac_ext
6346echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6347echo "${ECHO_T}$ac_header_compiler" >&6
6348
6349# Is the header present?
6350echo "$as_me:$LINENO: checking $ac_header presence" >&5
6351echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6352cat >conftest.$ac_ext <<_ACEOF
6353#line $LINENO "configure"
6354/* confdefs.h. */
6355_ACEOF
6356cat confdefs.h >>conftest.$ac_ext
6357cat >>conftest.$ac_ext <<_ACEOF
6358/* end confdefs.h. */
6359@%:@include <$ac_header>
6360_ACEOF
6361if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6362 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6363 ac_status=$?
6364 grep -v '^ *+' conftest.er1 >conftest.err
6365 rm -f conftest.er1
6366 cat conftest.err >&5
6367 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6368 (exit $ac_status); } >/dev/null; then
6369 if test -s conftest.err; then
6370 ac_cpp_err=$ac_c_preproc_warn_flag
6371 else
6372 ac_cpp_err=
6373 fi
6374else
6375 ac_cpp_err=yes
6376fi
6377if test -z "$ac_cpp_err"; then
6378 ac_header_preproc=yes
6379else
6380 echo "$as_me: failed program was:" >&5
6381sed 's/^/| /' conftest.$ac_ext >&5
6382
6383 ac_header_preproc=no
6384fi
6385rm -f conftest.err conftest.$ac_ext
6386echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
6387echo "${ECHO_T}$ac_header_preproc" >&6
6388
6389# So? What about this header?
6390case $ac_header_compiler:$ac_header_preproc in
6391 yes:no )
6392 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6393echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6394 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6395echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6396 (
6397 cat <<\_ASBOX
6398@%:@@%:@ ------------------------------------ @%:@@%:@
6399@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
6400@%:@@%:@ ------------------------------------ @%:@@%:@
6401_ASBOX
6402 ) |
6403 sed "s/^/$as_me: WARNING: /" >&2
6404 ;;
6405 no:yes )
6406 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6407echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6408 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6409echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6410 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6411echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6412 (
6413 cat <<\_ASBOX
6414@%:@@%:@ ------------------------------------ @%:@@%:@
6415@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
6416@%:@@%:@ ------------------------------------ @%:@@%:@
6417_ASBOX
6418 ) |
6419 sed "s/^/$as_me: WARNING: /" >&2
6420 ;;
6421esac
6422echo "$as_me:$LINENO: checking for $ac_header" >&5
6423echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6424if eval "test \"\${$as_ac_Header+set}\" = set"; then
6425 echo $ECHO_N "(cached) $ECHO_C" >&6
6426else
6427 eval "$as_ac_Header=$ac_header_preproc"
6428fi
6429echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6430echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6431
6432fi
6433if test `eval echo '${'$as_ac_Header'}'` = yes; then
6434 cat >>confdefs.h <<_ACEOF
6435@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
6436_ACEOF
6437
6438fi
6439
6440done
6441
6442echo "$as_me:$LINENO: checking for library containing login" >&5
6443echo $ECHO_N "checking for library containing login... $ECHO_C" >&6
6444if test "${ac_cv_search_login+set}" = set; then
6445 echo $ECHO_N "(cached) $ECHO_C" >&6
6446else
6447 ac_func_search_save_LIBS=$LIBS
6448ac_cv_search_login=no
6449cat >conftest.$ac_ext <<_ACEOF
6450#line $LINENO "configure"
6451/* confdefs.h. */
6452_ACEOF
6453cat confdefs.h >>conftest.$ac_ext
6454cat >>conftest.$ac_ext <<_ACEOF
6455/* end confdefs.h. */
6456
6457/* Override any gcc2 internal prototype to avoid an error. */
6458#ifdef __cplusplus
6459extern "C"
6460#endif
6461/* We use char because int might match the return type of a gcc2
6462 builtin and then its argument prototype would still apply. */
6463char login ();
6464int
6465main ()
6466{
6467login ();
6468 ;
6469 return 0;
6470}
6471_ACEOF
6472rm -f conftest.$ac_objext conftest$ac_exeext
6473if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6474 (eval $ac_link) 2>&5
6475 ac_status=$?
6476 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6477 (exit $ac_status); } &&
6478 { ac_try='test -s conftest$ac_exeext'
6479 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6480 (eval $ac_try) 2>&5
6481 ac_status=$?
6482 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6483 (exit $ac_status); }; }; then
6484 ac_cv_search_login="none required"
6485else
6486 echo "$as_me: failed program was:" >&5
6487sed 's/^/| /' conftest.$ac_ext >&5
6488
6489fi
6490rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6491if test "$ac_cv_search_login" = no; then
6492 for ac_lib in util bsd; do
6493 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
6494 cat >conftest.$ac_ext <<_ACEOF
6495#line $LINENO "configure"
6496/* confdefs.h. */
6497_ACEOF
6498cat confdefs.h >>conftest.$ac_ext
6499cat >>conftest.$ac_ext <<_ACEOF
6500/* end confdefs.h. */
6501
6502/* Override any gcc2 internal prototype to avoid an error. */
6503#ifdef __cplusplus
6504extern "C"
6505#endif
6506/* We use char because int might match the return type of a gcc2
6507 builtin and then its argument prototype would still apply. */
6508char login ();
6509int
6510main ()
6511{
6512login ();
6513 ;
6514 return 0;
6515}
6516_ACEOF
6517rm -f conftest.$ac_objext conftest$ac_exeext
6518if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6519 (eval $ac_link) 2>&5
6520 ac_status=$?
6521 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6522 (exit $ac_status); } &&
6523 { ac_try='test -s conftest$ac_exeext'
6524 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6525 (eval $ac_try) 2>&5
6526 ac_status=$?
6527 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6528 (exit $ac_status); }; }; then
6529 ac_cv_search_login="-l$ac_lib"
6530break
6531else
6532 echo "$as_me: failed program was:" >&5
6533sed 's/^/| /' conftest.$ac_ext >&5
6534
6535fi
6536rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6537 done
6538fi
6539LIBS=$ac_func_search_save_LIBS
6540fi
6541echo "$as_me:$LINENO: result: $ac_cv_search_login" >&5
6542echo "${ECHO_T}$ac_cv_search_login" >&6
6543if test "$ac_cv_search_login" != no; then
6544 test "$ac_cv_search_login" = "none required" || LIBS="$ac_cv_search_login $LIBS"
6545 cat >>confdefs.h <<\_ACEOF
6546@%:@define HAVE_LOGIN 1
6547_ACEOF
6548
6549fi
6550
6551
6552
6553
6554for ac_func in logout updwtmp logwtmp
6555do
6556as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6557echo "$as_me:$LINENO: checking for $ac_func" >&5
6558echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6559if eval "test \"\${$as_ac_var+set}\" = set"; then
6560 echo $ECHO_N "(cached) $ECHO_C" >&6
6561else
6562 cat >conftest.$ac_ext <<_ACEOF
6563#line $LINENO "configure"
6564/* confdefs.h. */
6565_ACEOF
6566cat confdefs.h >>conftest.$ac_ext
6567cat >>conftest.$ac_ext <<_ACEOF
6568/* end confdefs.h. */
6569/* System header to define __stub macros and hopefully few prototypes,
6570 which can conflict with char $ac_func (); below.
6571 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6572 <limits.h> exists even on freestanding compilers. */
6573#ifdef __STDC__
6574# include <limits.h>
6575#else
6576# include <assert.h>
6577#endif
6578/* Override any gcc2 internal prototype to avoid an error. */
6579#ifdef __cplusplus
6580extern "C"
6581{
6582#endif
6583/* We use char because int might match the return type of a gcc2
6584 builtin and then its argument prototype would still apply. */
6585char $ac_func ();
6586/* The GNU C library defines this for functions which it implements
6587 to always fail with ENOSYS. Some functions are actually named
6588 something starting with __ and the normal name is an alias. */
6589#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6590choke me
6591#else
6592char (*f) () = $ac_func;
6593#endif
6594#ifdef __cplusplus
6595}
6596#endif
6597
6598int
6599main ()
6600{
6601return f != $ac_func;
6602 ;
6603 return 0;
6604}
6605_ACEOF
6606rm -f conftest.$ac_objext conftest$ac_exeext
6607if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6608 (eval $ac_link) 2>&5
6609 ac_status=$?
6610 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6611 (exit $ac_status); } &&
6612 { ac_try='test -s conftest$ac_exeext'
6613 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6614 (eval $ac_try) 2>&5
6615 ac_status=$?
6616 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6617 (exit $ac_status); }; }; then
6618 eval "$as_ac_var=yes"
6619else
6620 echo "$as_me: failed program was:" >&5
6621sed 's/^/| /' conftest.$ac_ext >&5
6622
6623eval "$as_ac_var=no"
6624fi
6625rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6626fi
6627echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6628echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6629if test `eval echo '${'$as_ac_var'}'` = yes; then
6630 cat >>confdefs.h <<_ACEOF
6631@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6632_ACEOF
6633
6634fi
6635done
6636
6637
6638
6639for ac_func in strftime
6640do
6641as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6642echo "$as_me:$LINENO: checking for $ac_func" >&5
6643echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6644if eval "test \"\${$as_ac_var+set}\" = set"; then
6645 echo $ECHO_N "(cached) $ECHO_C" >&6
6646else
6647 cat >conftest.$ac_ext <<_ACEOF
6648#line $LINENO "configure"
6649/* confdefs.h. */
6650_ACEOF
6651cat confdefs.h >>conftest.$ac_ext
6652cat >>conftest.$ac_ext <<_ACEOF
6653/* end confdefs.h. */
6654/* System header to define __stub macros and hopefully few prototypes,
6655 which can conflict with char $ac_func (); below.
6656 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6657 <limits.h> exists even on freestanding compilers. */
6658#ifdef __STDC__
6659# include <limits.h>
6660#else
6661# include <assert.h>
6662#endif
6663/* Override any gcc2 internal prototype to avoid an error. */
6664#ifdef __cplusplus
6665extern "C"
6666{
6667#endif
6668/* We use char because int might match the return type of a gcc2
6669 builtin and then its argument prototype would still apply. */
6670char $ac_func ();
6671/* The GNU C library defines this for functions which it implements
6672 to always fail with ENOSYS. Some functions are actually named
6673 something starting with __ and the normal name is an alias. */
6674#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6675choke me
6676#else
6677char (*f) () = $ac_func;
6678#endif
6679#ifdef __cplusplus
6680}
6681#endif
6682
6683int
6684main ()
6685{
6686return f != $ac_func;
6687 ;
6688 return 0;
6689}
6690_ACEOF
6691rm -f conftest.$ac_objext conftest$ac_exeext
6692if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6693 (eval $ac_link) 2>&5
6694 ac_status=$?
6695 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6696 (exit $ac_status); } &&
6697 { ac_try='test -s conftest$ac_exeext'
6698 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6699 (eval $ac_try) 2>&5
6700 ac_status=$?
6701 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6702 (exit $ac_status); }; }; then
6703 eval "$as_ac_var=yes"
6704else
6705 echo "$as_me: failed program was:" >&5
6706sed 's/^/| /' conftest.$ac_ext >&5
6707
6708eval "$as_ac_var=no"
6709fi
6710rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6711fi
6712echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6713echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6714if test `eval echo '${'$as_ac_var'}'` = yes; then
6715 cat >>confdefs.h <<_ACEOF
6716@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
6717_ACEOF
6718
6719else
6720 # strftime is in -lintl on SCO UNIX.
6721echo "$as_me:$LINENO: checking for strftime in -lintl" >&5
6722echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6
6723if test "${ac_cv_lib_intl_strftime+set}" = set; then
6724 echo $ECHO_N "(cached) $ECHO_C" >&6
6725else
6726 ac_check_lib_save_LIBS=$LIBS
6727LIBS="-lintl $LIBS"
6728cat >conftest.$ac_ext <<_ACEOF
6729#line $LINENO "configure"
6730/* confdefs.h. */
6731_ACEOF
6732cat confdefs.h >>conftest.$ac_ext
6733cat >>conftest.$ac_ext <<_ACEOF
6734/* end confdefs.h. */
6735
6736/* Override any gcc2 internal prototype to avoid an error. */
6737#ifdef __cplusplus
6738extern "C"
6739#endif
6740/* We use char because int might match the return type of a gcc2
6741 builtin and then its argument prototype would still apply. */
6742char strftime ();
6743int
6744main ()
6745{
6746strftime ();
6747 ;
6748 return 0;
6749}
6750_ACEOF
6751rm -f conftest.$ac_objext conftest$ac_exeext
6752if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6753 (eval $ac_link) 2>&5
6754 ac_status=$?
6755 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6756 (exit $ac_status); } &&
6757 { ac_try='test -s conftest$ac_exeext'
6758 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6759 (eval $ac_try) 2>&5
6760 ac_status=$?
6761 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6762 (exit $ac_status); }; }; then
6763 ac_cv_lib_intl_strftime=yes
6764else
6765 echo "$as_me: failed program was:" >&5
6766sed 's/^/| /' conftest.$ac_ext >&5
6767
6768ac_cv_lib_intl_strftime=no
6769fi
6770rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6771LIBS=$ac_check_lib_save_LIBS
6772fi
6773echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5
6774echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6
6775if test $ac_cv_lib_intl_strftime = yes; then
6776 cat >>confdefs.h <<\_ACEOF
6777@%:@define HAVE_STRFTIME 1
6778_ACEOF
6779
6780LIBS="-lintl $LIBS"
6781fi
6782
6783fi
6784done
6785
6786
6787# Check for ALTDIRFUNC glob() extension
6788echo "$as_me:$LINENO: checking for GLOB_ALTDIRFUNC support" >&5
6789echo $ECHO_N "checking for GLOB_ALTDIRFUNC support... $ECHO_C" >&6
6790cat >conftest.$ac_ext <<_ACEOF
6791#line $LINENO "configure"
6792/* confdefs.h. */
6793_ACEOF
6794cat confdefs.h >>conftest.$ac_ext
6795cat >>conftest.$ac_ext <<_ACEOF
6796/* end confdefs.h. */
6797
6798 #include <glob.h>
6799 #ifdef GLOB_ALTDIRFUNC
6800 FOUNDIT
6801 #endif
6802
6803_ACEOF
6804if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6805 $EGREP "FOUNDIT" >/dev/null 2>&1; then
6806
6807 cat >>confdefs.h <<\_ACEOF
6808@%:@define GLOB_HAS_ALTDIRFUNC 1
6809_ACEOF
6810
6811 echo "$as_me:$LINENO: result: yes" >&5
6812echo "${ECHO_T}yes" >&6
6813
6814else
6815
6816 echo "$as_me:$LINENO: result: no" >&5
6817echo "${ECHO_T}no" >&6
6818
6819
6820fi
6821rm -f conftest*
6822
6823
6824# Check for g.gl_matchc glob() extension
6825echo "$as_me:$LINENO: checking for gl_matchc field in glob_t" >&5
6826echo $ECHO_N "checking for gl_matchc field in glob_t... $ECHO_C" >&6
6827cat >conftest.$ac_ext <<_ACEOF
6828#line $LINENO "configure"
6829/* confdefs.h. */
6830_ACEOF
6831cat confdefs.h >>conftest.$ac_ext
6832cat >>conftest.$ac_ext <<_ACEOF
6833/* end confdefs.h. */
6834
6835 #include <glob.h>
6836 int main(void){glob_t g; g.gl_matchc = 1;}
6837
6838_ACEOF
6839if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6840 $EGREP "FOUNDIT" >/dev/null 2>&1; then
6841
6842 cat >>confdefs.h <<\_ACEOF
6843@%:@define GLOB_HAS_GL_MATCHC 1
6844_ACEOF
6845
6846 echo "$as_me:$LINENO: result: yes" >&5
6847echo "${ECHO_T}yes" >&6
6848
6849else
6850
6851 echo "$as_me:$LINENO: result: no" >&5
6852echo "${ECHO_T}no" >&6
6853
6854
6855fi
6856rm -f conftest*
6857
6858
6859echo "$as_me:$LINENO: checking whether struct dirent allocates space for d_name" >&5
6860echo $ECHO_N "checking whether struct dirent allocates space for d_name... $ECHO_C" >&6
6861if test "$cross_compiling" = yes; then
6862 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6863See \`config.log' for more details." >&5
6864echo "$as_me: error: cannot run test program while cross compiling
6865See \`config.log' for more details." >&2;}
6866 { (exit 1); exit 1; }; }
6867else
6868 cat >conftest.$ac_ext <<_ACEOF
6869#line $LINENO "configure"
6870/* confdefs.h. */
6871_ACEOF
6872cat confdefs.h >>conftest.$ac_ext
6873cat >>conftest.$ac_ext <<_ACEOF
6874/* end confdefs.h. */
6875
6876#include <sys/types.h>
6877#include <dirent.h>
6878int main(void){struct dirent d;exit(sizeof(d.d_name)<=sizeof(char));}
6879
6880_ACEOF
6881rm -f conftest$ac_exeext
6882if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6883 (eval $ac_link) 2>&5
6884 ac_status=$?
6885 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6886 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6887 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6888 (eval $ac_try) 2>&5
6889 ac_status=$?
6890 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6891 (exit $ac_status); }; }; then
6892 echo "$as_me:$LINENO: result: yes" >&5
6893echo "${ECHO_T}yes" >&6
6894else
6895 echo "$as_me: program exited with status $ac_status" >&5
6896echo "$as_me: failed program was:" >&5
6897sed 's/^/| /' conftest.$ac_ext >&5
6898
6899( exit $ac_status )
6900
6901 echo "$as_me:$LINENO: result: no" >&5
6902echo "${ECHO_T}no" >&6
6903 cat >>confdefs.h <<\_ACEOF
6904@%:@define BROKEN_ONE_BYTE_DIRENT_D_NAME 1
6905_ACEOF
6906
6907
6908
6909fi
6910rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6911fi
6912
6913# Check whether user wants S/Key support
6914SKEY_MSG="no"
6915
6916# Check whether --with-skey or --without-skey was given.
6917if test "${with_skey+set}" = set; then
6918 withval="$with_skey"
6919
6920 if test "x$withval" != "xno" ; then
6921
6922 if test "x$withval" != "xyes" ; then
6923 CPPFLAGS="$CPPFLAGS -I${withval}/include"
6924 LDFLAGS="$LDFLAGS -L${withval}/lib"
6925 fi
6926
6927 cat >>confdefs.h <<\_ACEOF
6928@%:@define SKEY 1
6929_ACEOF
6930
6931 LIBS="-lskey $LIBS"
6932 SKEY_MSG="yes"
6933
6934 echo "$as_me:$LINENO: checking for s/key support" >&5
6935echo $ECHO_N "checking for s/key support... $ECHO_C" >&6
6936 if test "$cross_compiling" = yes; then
6937 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
6938See \`config.log' for more details." >&5
6939echo "$as_me: error: cannot run test program while cross compiling
6940See \`config.log' for more details." >&2;}
6941 { (exit 1); exit 1; }; }
6942else
6943 cat >conftest.$ac_ext <<_ACEOF
6944#line $LINENO "configure"
6945/* confdefs.h. */
6946_ACEOF
6947cat confdefs.h >>conftest.$ac_ext
6948cat >>conftest.$ac_ext <<_ACEOF
6949/* end confdefs.h. */
6950
6951#include <stdio.h>
6952#include <skey.h>
6953int main() { char *ff = skey_keyinfo(""); ff=""; exit(0); }
6954
6955_ACEOF
6956rm -f conftest$ac_exeext
6957if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6958 (eval $ac_link) 2>&5
6959 ac_status=$?
6960 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6961 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
6962 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6963 (eval $ac_try) 2>&5
6964 ac_status=$?
6965 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6966 (exit $ac_status); }; }; then
6967 echo "$as_me:$LINENO: result: yes" >&5
6968echo "${ECHO_T}yes" >&6
6969else
6970 echo "$as_me: program exited with status $ac_status" >&5
6971echo "$as_me: failed program was:" >&5
6972sed 's/^/| /' conftest.$ac_ext >&5
6973
6974( exit $ac_status )
6975
6976 echo "$as_me:$LINENO: result: no" >&5
6977echo "${ECHO_T}no" >&6
6978 { { echo "$as_me:$LINENO: error: ** Incomplete or missing s/key libraries." >&5
6979echo "$as_me: error: ** Incomplete or missing s/key libraries." >&2;}
6980 { (exit 1); exit 1; }; }
6981
6982fi
6983rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6984fi
6985 fi
6986
6987
6988fi;
6989
6990# Check whether user wants TCP wrappers support
6991TCPW_MSG="no"
6992
6993# Check whether --with-tcp-wrappers or --without-tcp-wrappers was given.
6994if test "${with_tcp_wrappers+set}" = set; then
6995 withval="$with_tcp_wrappers"
6996
6997 if test "x$withval" != "xno" ; then
6998 saved_LIBS="$LIBS"
6999 saved_LDFLAGS="$LDFLAGS"
7000 saved_CPPFLAGS="$CPPFLAGS"
7001 if test -n "${withval}" -a "${withval}" != "yes"; then
7002 if test -d "${withval}/lib"; then
7003 if test -n "${need_dash_r}"; then
7004 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
7005 else
7006 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
7007 fi
7008 else
7009 if test -n "${need_dash_r}"; then
7010 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
7011 else
7012 LDFLAGS="-L${withval} ${LDFLAGS}"
7013 fi
7014 fi
7015 if test -d "${withval}/include"; then
7016 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
7017 else
7018 CPPFLAGS="-I${withval} ${CPPFLAGS}"
7019 fi
7020 fi
7021 LIBWRAP="-lwrap"
7022 LIBS="$LIBWRAP $LIBS"
7023 echo "$as_me:$LINENO: checking for libwrap" >&5
7024echo $ECHO_N "checking for libwrap... $ECHO_C" >&6
7025 cat >conftest.$ac_ext <<_ACEOF
7026#line $LINENO "configure"
7027/* confdefs.h. */
7028_ACEOF
7029cat confdefs.h >>conftest.$ac_ext
7030cat >>conftest.$ac_ext <<_ACEOF
7031/* end confdefs.h. */
7032
7033#include <tcpd.h>
7034 int deny_severity = 0, allow_severity = 0;
7035
7036int
7037main ()
7038{
7039hosts_access(0);
7040 ;
7041 return 0;
7042}
7043_ACEOF
7044rm -f conftest.$ac_objext conftest$ac_exeext
7045if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7046 (eval $ac_link) 2>&5
7047 ac_status=$?
7048 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7049 (exit $ac_status); } &&
7050 { ac_try='test -s conftest$ac_exeext'
7051 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7052 (eval $ac_try) 2>&5
7053 ac_status=$?
7054 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7055 (exit $ac_status); }; }; then
7056
7057 echo "$as_me:$LINENO: result: yes" >&5
7058echo "${ECHO_T}yes" >&6
7059 cat >>confdefs.h <<\_ACEOF
7060@%:@define LIBWRAP 1
7061_ACEOF
7062
7063
7064 TCPW_MSG="yes"
7065
7066else
7067 echo "$as_me: failed program was:" >&5
7068sed 's/^/| /' conftest.$ac_ext >&5
7069
7070
7071 { { echo "$as_me:$LINENO: error: *** libwrap missing" >&5
7072echo "$as_me: error: *** libwrap missing" >&2;}
7073 { (exit 1); exit 1; }; }
7074
7075
7076fi
7077rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7078 LIBS="$saved_LIBS"
7079 fi
7080
7081
7082fi;
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157for ac_func in \
7158 arc4random __b64_ntop b64_ntop __b64_pton b64_pton basename bcopy \
7159 bindresvport_sa clock fchmod fchown freeaddrinfo futimes \
7160 gai_strerror getaddrinfo getcwd getgrouplist getnameinfo getopt \
7161 getpeereid _getpty getrlimit getrusage getttyent glob inet_aton \
7162 inet_ntoa inet_ntop innetgr login_getcapbool md5_crypt memmove \
7163 mkdtemp mmap ngetaddrinfo nsleep ogetaddrinfo openpty pstat \
7164 readpassphrase realpath recvmsg rresvport_af sendmsg setdtablesize \
7165 setegid setenv seteuid setgroups setlogin setpcred setproctitle \
7166 setresgid setreuid setrlimit setsid setvbuf sigaction sigvec \
7167 snprintf socketpair strerror strlcat strlcpy strmode strnvis \
7168 sysconf tcgetpgrp truncate utimes vhangup vsnprintf waitpid \
7169
7170do
7171as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7172echo "$as_me:$LINENO: checking for $ac_func" >&5
7173echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7174if eval "test \"\${$as_ac_var+set}\" = set"; then
7175 echo $ECHO_N "(cached) $ECHO_C" >&6
7176else
7177 cat >conftest.$ac_ext <<_ACEOF
7178#line $LINENO "configure"
7179/* confdefs.h. */
7180_ACEOF
7181cat confdefs.h >>conftest.$ac_ext
7182cat >>conftest.$ac_ext <<_ACEOF
7183/* end confdefs.h. */
7184/* System header to define __stub macros and hopefully few prototypes,
7185 which can conflict with char $ac_func (); below.
7186 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7187 <limits.h> exists even on freestanding compilers. */
7188#ifdef __STDC__
7189# include <limits.h>
7190#else
7191# include <assert.h>
7192#endif
7193/* Override any gcc2 internal prototype to avoid an error. */
7194#ifdef __cplusplus
7195extern "C"
7196{
7197#endif
7198/* We use char because int might match the return type of a gcc2
7199 builtin and then its argument prototype would still apply. */
7200char $ac_func ();
7201/* The GNU C library defines this for functions which it implements
7202 to always fail with ENOSYS. Some functions are actually named
7203 something starting with __ and the normal name is an alias. */
7204#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7205choke me
7206#else
7207char (*f) () = $ac_func;
7208#endif
7209#ifdef __cplusplus
7210}
7211#endif
7212
7213int
7214main ()
7215{
7216return f != $ac_func;
7217 ;
7218 return 0;
7219}
7220_ACEOF
7221rm -f conftest.$ac_objext conftest$ac_exeext
7222if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7223 (eval $ac_link) 2>&5
7224 ac_status=$?
7225 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7226 (exit $ac_status); } &&
7227 { ac_try='test -s conftest$ac_exeext'
7228 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7229 (eval $ac_try) 2>&5
7230 ac_status=$?
7231 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7232 (exit $ac_status); }; }; then
7233 eval "$as_ac_var=yes"
7234else
7235 echo "$as_me: failed program was:" >&5
7236sed 's/^/| /' conftest.$ac_ext >&5
7237
7238eval "$as_ac_var=no"
7239fi
7240rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7241fi
7242echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7243echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7244if test `eval echo '${'$as_ac_var'}'` = yes; then
7245 cat >>confdefs.h <<_ACEOF
7246@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7247_ACEOF
7248
7249fi
7250done
7251
7252
7253echo "$as_me:$LINENO: checking for library containing nanosleep" >&5
7254echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6
7255if test "${ac_cv_search_nanosleep+set}" = set; then
7256 echo $ECHO_N "(cached) $ECHO_C" >&6
7257else
7258 ac_func_search_save_LIBS=$LIBS
7259ac_cv_search_nanosleep=no
7260cat >conftest.$ac_ext <<_ACEOF
7261#line $LINENO "configure"
7262/* confdefs.h. */
7263_ACEOF
7264cat confdefs.h >>conftest.$ac_ext
7265cat >>conftest.$ac_ext <<_ACEOF
7266/* end confdefs.h. */
7267
7268/* Override any gcc2 internal prototype to avoid an error. */
7269#ifdef __cplusplus
7270extern "C"
7271#endif
7272/* We use char because int might match the return type of a gcc2
7273 builtin and then its argument prototype would still apply. */
7274char nanosleep ();
7275int
7276main ()
7277{
7278nanosleep ();
7279 ;
7280 return 0;
7281}
7282_ACEOF
7283rm -f conftest.$ac_objext conftest$ac_exeext
7284if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7285 (eval $ac_link) 2>&5
7286 ac_status=$?
7287 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7288 (exit $ac_status); } &&
7289 { ac_try='test -s conftest$ac_exeext'
7290 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7291 (eval $ac_try) 2>&5
7292 ac_status=$?
7293 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7294 (exit $ac_status); }; }; then
7295 ac_cv_search_nanosleep="none required"
7296else
7297 echo "$as_me: failed program was:" >&5
7298sed 's/^/| /' conftest.$ac_ext >&5
7299
7300fi
7301rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7302if test "$ac_cv_search_nanosleep" = no; then
7303 for ac_lib in rt posix4; do
7304 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
7305 cat >conftest.$ac_ext <<_ACEOF
7306#line $LINENO "configure"
7307/* confdefs.h. */
7308_ACEOF
7309cat confdefs.h >>conftest.$ac_ext
7310cat >>conftest.$ac_ext <<_ACEOF
7311/* end confdefs.h. */
7312
7313/* Override any gcc2 internal prototype to avoid an error. */
7314#ifdef __cplusplus
7315extern "C"
7316#endif
7317/* We use char because int might match the return type of a gcc2
7318 builtin and then its argument prototype would still apply. */
7319char nanosleep ();
7320int
7321main ()
7322{
7323nanosleep ();
7324 ;
7325 return 0;
7326}
7327_ACEOF
7328rm -f conftest.$ac_objext conftest$ac_exeext
7329if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7330 (eval $ac_link) 2>&5
7331 ac_status=$?
7332 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7333 (exit $ac_status); } &&
7334 { ac_try='test -s conftest$ac_exeext'
7335 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7336 (eval $ac_try) 2>&5
7337 ac_status=$?
7338 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7339 (exit $ac_status); }; }; then
7340 ac_cv_search_nanosleep="-l$ac_lib"
7341break
7342else
7343 echo "$as_me: failed program was:" >&5
7344sed 's/^/| /' conftest.$ac_ext >&5
7345
7346fi
7347rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7348 done
7349fi
7350LIBS=$ac_func_search_save_LIBS
7351fi
7352echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5
7353echo "${ECHO_T}$ac_cv_search_nanosleep" >&6
7354if test "$ac_cv_search_nanosleep" != no; then
7355 test "$ac_cv_search_nanosleep" = "none required" || LIBS="$ac_cv_search_nanosleep $LIBS"
7356 cat >>confdefs.h <<\_ACEOF
7357@%:@define HAVE_NANOSLEEP 1
7358_ACEOF
7359
7360fi
7361
7362echo "$as_me:$LINENO: checking for library containing basename" >&5
7363echo $ECHO_N "checking for library containing basename... $ECHO_C" >&6
7364if test "${ac_cv_search_basename+set}" = set; then
7365 echo $ECHO_N "(cached) $ECHO_C" >&6
7366else
7367 ac_func_search_save_LIBS=$LIBS
7368ac_cv_search_basename=no
7369cat >conftest.$ac_ext <<_ACEOF
7370#line $LINENO "configure"
7371/* confdefs.h. */
7372_ACEOF
7373cat confdefs.h >>conftest.$ac_ext
7374cat >>conftest.$ac_ext <<_ACEOF
7375/* end confdefs.h. */
7376
7377/* Override any gcc2 internal prototype to avoid an error. */
7378#ifdef __cplusplus
7379extern "C"
7380#endif
7381/* We use char because int might match the return type of a gcc2
7382 builtin and then its argument prototype would still apply. */
7383char basename ();
7384int
7385main ()
7386{
7387basename ();
7388 ;
7389 return 0;
7390}
7391_ACEOF
7392rm -f conftest.$ac_objext conftest$ac_exeext
7393if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7394 (eval $ac_link) 2>&5
7395 ac_status=$?
7396 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7397 (exit $ac_status); } &&
7398 { ac_try='test -s conftest$ac_exeext'
7399 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7400 (eval $ac_try) 2>&5
7401 ac_status=$?
7402 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7403 (exit $ac_status); }; }; then
7404 ac_cv_search_basename="none required"
7405else
7406 echo "$as_me: failed program was:" >&5
7407sed 's/^/| /' conftest.$ac_ext >&5
7408
7409fi
7410rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7411if test "$ac_cv_search_basename" = no; then
7412 for ac_lib in gen; do
7413 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
7414 cat >conftest.$ac_ext <<_ACEOF
7415#line $LINENO "configure"
7416/* confdefs.h. */
7417_ACEOF
7418cat confdefs.h >>conftest.$ac_ext
7419cat >>conftest.$ac_ext <<_ACEOF
7420/* end confdefs.h. */
7421
7422/* Override any gcc2 internal prototype to avoid an error. */
7423#ifdef __cplusplus
7424extern "C"
7425#endif
7426/* We use char because int might match the return type of a gcc2
7427 builtin and then its argument prototype would still apply. */
7428char basename ();
7429int
7430main ()
7431{
7432basename ();
7433 ;
7434 return 0;
7435}
7436_ACEOF
7437rm -f conftest.$ac_objext conftest$ac_exeext
7438if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7439 (eval $ac_link) 2>&5
7440 ac_status=$?
7441 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7442 (exit $ac_status); } &&
7443 { ac_try='test -s conftest$ac_exeext'
7444 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7445 (eval $ac_try) 2>&5
7446 ac_status=$?
7447 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7448 (exit $ac_status); }; }; then
7449 ac_cv_search_basename="-l$ac_lib"
7450break
7451else
7452 echo "$as_me: failed program was:" >&5
7453sed 's/^/| /' conftest.$ac_ext >&5
7454
7455fi
7456rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7457 done
7458fi
7459LIBS=$ac_func_search_save_LIBS
7460fi
7461echo "$as_me:$LINENO: result: $ac_cv_search_basename" >&5
7462echo "${ECHO_T}$ac_cv_search_basename" >&6
7463if test "$ac_cv_search_basename" != no; then
7464 test "$ac_cv_search_basename" = "none required" || LIBS="$ac_cv_search_basename $LIBS"
7465 cat >>confdefs.h <<\_ACEOF
7466@%:@define HAVE_BASENAME 1
7467_ACEOF
7468
7469fi
7470
7471
7472echo "$as_me:$LINENO: checking whether strsep is declared" >&5
7473echo $ECHO_N "checking whether strsep is declared... $ECHO_C" >&6
7474if test "${ac_cv_have_decl_strsep+set}" = set; then
7475 echo $ECHO_N "(cached) $ECHO_C" >&6
7476else
7477 cat >conftest.$ac_ext <<_ACEOF
7478#line $LINENO "configure"
7479/* confdefs.h. */
7480_ACEOF
7481cat confdefs.h >>conftest.$ac_ext
7482cat >>conftest.$ac_ext <<_ACEOF
7483/* end confdefs.h. */
7484$ac_includes_default
7485int
7486main ()
7487{
7488#ifndef strsep
7489 char *p = (char *) strsep;
7490#endif
7491
7492 ;
7493 return 0;
7494}
7495_ACEOF
7496rm -f conftest.$ac_objext
7497if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7498 (eval $ac_compile) 2>&5
7499 ac_status=$?
7500 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7501 (exit $ac_status); } &&
7502 { ac_try='test -s conftest.$ac_objext'
7503 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7504 (eval $ac_try) 2>&5
7505 ac_status=$?
7506 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7507 (exit $ac_status); }; }; then
7508 ac_cv_have_decl_strsep=yes
7509else
7510 echo "$as_me: failed program was:" >&5
7511sed 's/^/| /' conftest.$ac_ext >&5
7512
7513ac_cv_have_decl_strsep=no
7514fi
7515rm -f conftest.$ac_objext conftest.$ac_ext
7516fi
7517echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsep" >&5
7518echo "${ECHO_T}$ac_cv_have_decl_strsep" >&6
7519if test $ac_cv_have_decl_strsep = yes; then
7520
7521for ac_func in strsep
7522do
7523as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7524echo "$as_me:$LINENO: checking for $ac_func" >&5
7525echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7526if eval "test \"\${$as_ac_var+set}\" = set"; then
7527 echo $ECHO_N "(cached) $ECHO_C" >&6
7528else
7529 cat >conftest.$ac_ext <<_ACEOF
7530#line $LINENO "configure"
7531/* confdefs.h. */
7532_ACEOF
7533cat confdefs.h >>conftest.$ac_ext
7534cat >>conftest.$ac_ext <<_ACEOF
7535/* end confdefs.h. */
7536/* System header to define __stub macros and hopefully few prototypes,
7537 which can conflict with char $ac_func (); below.
7538 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7539 <limits.h> exists even on freestanding compilers. */
7540#ifdef __STDC__
7541# include <limits.h>
7542#else
7543# include <assert.h>
7544#endif
7545/* Override any gcc2 internal prototype to avoid an error. */
7546#ifdef __cplusplus
7547extern "C"
7548{
7549#endif
7550/* We use char because int might match the return type of a gcc2
7551 builtin and then its argument prototype would still apply. */
7552char $ac_func ();
7553/* The GNU C library defines this for functions which it implements
7554 to always fail with ENOSYS. Some functions are actually named
7555 something starting with __ and the normal name is an alias. */
7556#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7557choke me
7558#else
7559char (*f) () = $ac_func;
7560#endif
7561#ifdef __cplusplus
7562}
7563#endif
7564
7565int
7566main ()
7567{
7568return f != $ac_func;
7569 ;
7570 return 0;
7571}
7572_ACEOF
7573rm -f conftest.$ac_objext conftest$ac_exeext
7574if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7575 (eval $ac_link) 2>&5
7576 ac_status=$?
7577 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7578 (exit $ac_status); } &&
7579 { ac_try='test -s conftest$ac_exeext'
7580 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7581 (eval $ac_try) 2>&5
7582 ac_status=$?
7583 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7584 (exit $ac_status); }; }; then
7585 eval "$as_ac_var=yes"
7586else
7587 echo "$as_me: failed program was:" >&5
7588sed 's/^/| /' conftest.$ac_ext >&5
7589
7590eval "$as_ac_var=no"
7591fi
7592rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7593fi
7594echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7595echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7596if test `eval echo '${'$as_ac_var'}'` = yes; then
7597 cat >>confdefs.h <<_ACEOF
7598@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7599_ACEOF
7600
7601fi
7602done
7603
7604fi
7605
7606
7607
7608for ac_func in dirname
7609do
7610as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7611echo "$as_me:$LINENO: checking for $ac_func" >&5
7612echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7613if eval "test \"\${$as_ac_var+set}\" = set"; then
7614 echo $ECHO_N "(cached) $ECHO_C" >&6
7615else
7616 cat >conftest.$ac_ext <<_ACEOF
7617#line $LINENO "configure"
7618/* confdefs.h. */
7619_ACEOF
7620cat confdefs.h >>conftest.$ac_ext
7621cat >>conftest.$ac_ext <<_ACEOF
7622/* end confdefs.h. */
7623/* System header to define __stub macros and hopefully few prototypes,
7624 which can conflict with char $ac_func (); below.
7625 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7626 <limits.h> exists even on freestanding compilers. */
7627#ifdef __STDC__
7628# include <limits.h>
7629#else
7630# include <assert.h>
7631#endif
7632/* Override any gcc2 internal prototype to avoid an error. */
7633#ifdef __cplusplus
7634extern "C"
7635{
7636#endif
7637/* We use char because int might match the return type of a gcc2
7638 builtin and then its argument prototype would still apply. */
7639char $ac_func ();
7640/* The GNU C library defines this for functions which it implements
7641 to always fail with ENOSYS. Some functions are actually named
7642 something starting with __ and the normal name is an alias. */
7643#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7644choke me
7645#else
7646char (*f) () = $ac_func;
7647#endif
7648#ifdef __cplusplus
7649}
7650#endif
7651
7652int
7653main ()
7654{
7655return f != $ac_func;
7656 ;
7657 return 0;
7658}
7659_ACEOF
7660rm -f conftest.$ac_objext conftest$ac_exeext
7661if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7662 (eval $ac_link) 2>&5
7663 ac_status=$?
7664 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7665 (exit $ac_status); } &&
7666 { ac_try='test -s conftest$ac_exeext'
7667 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7668 (eval $ac_try) 2>&5
7669 ac_status=$?
7670 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7671 (exit $ac_status); }; }; then
7672 eval "$as_ac_var=yes"
7673else
7674 echo "$as_me: failed program was:" >&5
7675sed 's/^/| /' conftest.$ac_ext >&5
7676
7677eval "$as_ac_var=no"
7678fi
7679rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7680fi
7681echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7682echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7683if test `eval echo '${'$as_ac_var'}'` = yes; then
7684 cat >>confdefs.h <<_ACEOF
7685@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
7686_ACEOF
7687
7688for ac_header in libgen.h
7689do
7690as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7691if eval "test \"\${$as_ac_Header+set}\" = set"; then
7692 echo "$as_me:$LINENO: checking for $ac_header" >&5
7693echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7694if eval "test \"\${$as_ac_Header+set}\" = set"; then
7695 echo $ECHO_N "(cached) $ECHO_C" >&6
7696fi
7697echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7698echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7699else
7700 # Is the header compilable?
7701echo "$as_me:$LINENO: checking $ac_header usability" >&5
7702echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7703cat >conftest.$ac_ext <<_ACEOF
7704#line $LINENO "configure"
7705/* confdefs.h. */
7706_ACEOF
7707cat confdefs.h >>conftest.$ac_ext
7708cat >>conftest.$ac_ext <<_ACEOF
7709/* end confdefs.h. */
7710$ac_includes_default
7711@%:@include <$ac_header>
7712_ACEOF
7713rm -f conftest.$ac_objext
7714if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7715 (eval $ac_compile) 2>&5
7716 ac_status=$?
7717 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7718 (exit $ac_status); } &&
7719 { ac_try='test -s conftest.$ac_objext'
7720 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7721 (eval $ac_try) 2>&5
7722 ac_status=$?
7723 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7724 (exit $ac_status); }; }; then
7725 ac_header_compiler=yes
7726else
7727 echo "$as_me: failed program was:" >&5
7728sed 's/^/| /' conftest.$ac_ext >&5
7729
7730ac_header_compiler=no
7731fi
7732rm -f conftest.$ac_objext conftest.$ac_ext
7733echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
7734echo "${ECHO_T}$ac_header_compiler" >&6
7735
7736# Is the header present?
7737echo "$as_me:$LINENO: checking $ac_header presence" >&5
7738echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
7739cat >conftest.$ac_ext <<_ACEOF
7740#line $LINENO "configure"
7741/* confdefs.h. */
7742_ACEOF
7743cat confdefs.h >>conftest.$ac_ext
7744cat >>conftest.$ac_ext <<_ACEOF
7745/* end confdefs.h. */
7746@%:@include <$ac_header>
7747_ACEOF
7748if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7749 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7750 ac_status=$?
7751 grep -v '^ *+' conftest.er1 >conftest.err
7752 rm -f conftest.er1
7753 cat conftest.err >&5
7754 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7755 (exit $ac_status); } >/dev/null; then
7756 if test -s conftest.err; then
7757 ac_cpp_err=$ac_c_preproc_warn_flag
7758 else
7759 ac_cpp_err=
7760 fi
7761else
7762 ac_cpp_err=yes
7763fi
7764if test -z "$ac_cpp_err"; then
7765 ac_header_preproc=yes
7766else
7767 echo "$as_me: failed program was:" >&5
7768sed 's/^/| /' conftest.$ac_ext >&5
7769
7770 ac_header_preproc=no
7771fi
7772rm -f conftest.err conftest.$ac_ext
7773echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
7774echo "${ECHO_T}$ac_header_preproc" >&6
7775
7776# So? What about this header?
7777case $ac_header_compiler:$ac_header_preproc in
7778 yes:no )
7779 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
7780echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
7781 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7782echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
7783 (
7784 cat <<\_ASBOX
7785@%:@@%:@ ------------------------------------ @%:@@%:@
7786@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
7787@%:@@%:@ ------------------------------------ @%:@@%:@
7788_ASBOX
7789 ) |
7790 sed "s/^/$as_me: WARNING: /" >&2
7791 ;;
7792 no:yes )
7793 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
7794echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
7795 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7796echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7797 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7798echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
7799 (
7800 cat <<\_ASBOX
7801@%:@@%:@ ------------------------------------ @%:@@%:@
7802@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
7803@%:@@%:@ ------------------------------------ @%:@@%:@
7804_ASBOX
7805 ) |
7806 sed "s/^/$as_me: WARNING: /" >&2
7807 ;;
7808esac
7809echo "$as_me:$LINENO: checking for $ac_header" >&5
7810echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7811if eval "test \"\${$as_ac_Header+set}\" = set"; then
7812 echo $ECHO_N "(cached) $ECHO_C" >&6
7813else
7814 eval "$as_ac_Header=$ac_header_preproc"
7815fi
7816echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7817echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7818
7819fi
7820if test `eval echo '${'$as_ac_Header'}'` = yes; then
7821 cat >>confdefs.h <<_ACEOF
7822@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
7823_ACEOF
7824
7825fi
7826
7827done
7828
7829else
7830
7831 echo "$as_me:$LINENO: checking for dirname in -lgen" >&5
7832echo $ECHO_N "checking for dirname in -lgen... $ECHO_C" >&6
7833if test "${ac_cv_lib_gen_dirname+set}" = set; then
7834 echo $ECHO_N "(cached) $ECHO_C" >&6
7835else
7836 ac_check_lib_save_LIBS=$LIBS
7837LIBS="-lgen $LIBS"
7838cat >conftest.$ac_ext <<_ACEOF
7839#line $LINENO "configure"
7840/* confdefs.h. */
7841_ACEOF
7842cat confdefs.h >>conftest.$ac_ext
7843cat >>conftest.$ac_ext <<_ACEOF
7844/* end confdefs.h. */
7845
7846/* Override any gcc2 internal prototype to avoid an error. */
7847#ifdef __cplusplus
7848extern "C"
7849#endif
7850/* We use char because int might match the return type of a gcc2
7851 builtin and then its argument prototype would still apply. */
7852char dirname ();
7853int
7854main ()
7855{
7856dirname ();
7857 ;
7858 return 0;
7859}
7860_ACEOF
7861rm -f conftest.$ac_objext conftest$ac_exeext
7862if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7863 (eval $ac_link) 2>&5
7864 ac_status=$?
7865 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7866 (exit $ac_status); } &&
7867 { ac_try='test -s conftest$ac_exeext'
7868 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7869 (eval $ac_try) 2>&5
7870 ac_status=$?
7871 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7872 (exit $ac_status); }; }; then
7873 ac_cv_lib_gen_dirname=yes
7874else
7875 echo "$as_me: failed program was:" >&5
7876sed 's/^/| /' conftest.$ac_ext >&5
7877
7878ac_cv_lib_gen_dirname=no
7879fi
7880rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7881LIBS=$ac_check_lib_save_LIBS
7882fi
7883echo "$as_me:$LINENO: result: $ac_cv_lib_gen_dirname" >&5
7884echo "${ECHO_T}$ac_cv_lib_gen_dirname" >&6
7885if test $ac_cv_lib_gen_dirname = yes; then
7886
7887 echo "$as_me:$LINENO: checking for broken dirname" >&5
7888echo $ECHO_N "checking for broken dirname... $ECHO_C" >&6
7889if test "${ac_cv_have_broken_dirname+set}" = set; then
7890 echo $ECHO_N "(cached) $ECHO_C" >&6
7891else
7892
7893 save_LIBS="$LIBS"
7894 LIBS="$LIBS -lgen"
7895 if test "$cross_compiling" = yes; then
7896 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
7897See \`config.log' for more details." >&5
7898echo "$as_me: error: cannot run test program while cross compiling
7899See \`config.log' for more details." >&2;}
7900 { (exit 1); exit 1; }; }
7901else
7902 cat >conftest.$ac_ext <<_ACEOF
7903#line $LINENO "configure"
7904/* confdefs.h. */
7905_ACEOF
7906cat confdefs.h >>conftest.$ac_ext
7907cat >>conftest.$ac_ext <<_ACEOF
7908/* end confdefs.h. */
7909
7910#include <libgen.h>
7911#include <string.h>
7912
7913int main(int argc, char **argv) {
7914 char *s, buf[32];
7915
7916 strncpy(buf,"/etc", 32);
7917 s = dirname(buf);
7918 if (!s || strncmp(s, "/", 32) != 0) {
7919 exit(1);
7920 } else {
7921 exit(0);
7922 }
7923}
7924
7925_ACEOF
7926rm -f conftest$ac_exeext
7927if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7928 (eval $ac_link) 2>&5
7929 ac_status=$?
7930 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7931 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
7932 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7933 (eval $ac_try) 2>&5
7934 ac_status=$?
7935 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7936 (exit $ac_status); }; }; then
7937 ac_cv_have_broken_dirname="no"
7938else
7939 echo "$as_me: program exited with status $ac_status" >&5
7940echo "$as_me: failed program was:" >&5
7941sed 's/^/| /' conftest.$ac_ext >&5
7942
7943( exit $ac_status )
7944 ac_cv_have_broken_dirname="yes"
7945
7946fi
7947rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
7948fi
7949 LIBS="$save_LIBS"
7950
7951fi
7952echo "$as_me:$LINENO: result: $ac_cv_have_broken_dirname" >&5
7953echo "${ECHO_T}$ac_cv_have_broken_dirname" >&6
7954 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
7955 LIBS="$LIBS -lgen"
7956 cat >>confdefs.h <<\_ACEOF
7957@%:@define HAVE_DIRNAME 1
7958_ACEOF
7959
7960
7961for ac_header in libgen.h
7962do
7963as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7964if eval "test \"\${$as_ac_Header+set}\" = set"; then
7965 echo "$as_me:$LINENO: checking for $ac_header" >&5
7966echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7967if eval "test \"\${$as_ac_Header+set}\" = set"; then
7968 echo $ECHO_N "(cached) $ECHO_C" >&6
7969fi
7970echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7971echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7972else
7973 # Is the header compilable?
7974echo "$as_me:$LINENO: checking $ac_header usability" >&5
7975echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7976cat >conftest.$ac_ext <<_ACEOF
7977#line $LINENO "configure"
7978/* confdefs.h. */
7979_ACEOF
7980cat confdefs.h >>conftest.$ac_ext
7981cat >>conftest.$ac_ext <<_ACEOF
7982/* end confdefs.h. */
7983$ac_includes_default
7984@%:@include <$ac_header>
7985_ACEOF
7986rm -f conftest.$ac_objext
7987if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7988 (eval $ac_compile) 2>&5
7989 ac_status=$?
7990 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7991 (exit $ac_status); } &&
7992 { ac_try='test -s conftest.$ac_objext'
7993 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7994 (eval $ac_try) 2>&5
7995 ac_status=$?
7996 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7997 (exit $ac_status); }; }; then
7998 ac_header_compiler=yes
7999else
8000 echo "$as_me: failed program was:" >&5
8001sed 's/^/| /' conftest.$ac_ext >&5
8002
8003ac_header_compiler=no
8004fi
8005rm -f conftest.$ac_objext conftest.$ac_ext
8006echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
8007echo "${ECHO_T}$ac_header_compiler" >&6
8008
8009# Is the header present?
8010echo "$as_me:$LINENO: checking $ac_header presence" >&5
8011echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
8012cat >conftest.$ac_ext <<_ACEOF
8013#line $LINENO "configure"
8014/* confdefs.h. */
8015_ACEOF
8016cat confdefs.h >>conftest.$ac_ext
8017cat >>conftest.$ac_ext <<_ACEOF
8018/* end confdefs.h. */
8019@%:@include <$ac_header>
8020_ACEOF
8021if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
8022 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
8023 ac_status=$?
8024 grep -v '^ *+' conftest.er1 >conftest.err
8025 rm -f conftest.er1
8026 cat conftest.err >&5
8027 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8028 (exit $ac_status); } >/dev/null; then
8029 if test -s conftest.err; then
8030 ac_cpp_err=$ac_c_preproc_warn_flag
8031 else
8032 ac_cpp_err=
8033 fi
8034else
8035 ac_cpp_err=yes
8036fi
8037if test -z "$ac_cpp_err"; then
8038 ac_header_preproc=yes
8039else
8040 echo "$as_me: failed program was:" >&5
8041sed 's/^/| /' conftest.$ac_ext >&5
8042
8043 ac_header_preproc=no
8044fi
8045rm -f conftest.err conftest.$ac_ext
8046echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
8047echo "${ECHO_T}$ac_header_preproc" >&6
8048
8049# So? What about this header?
8050case $ac_header_compiler:$ac_header_preproc in
8051 yes:no )
8052 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
8053echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
8054 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
8055echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
8056 (
8057 cat <<\_ASBOX
8058@%:@@%:@ ------------------------------------ @%:@@%:@
8059@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
8060@%:@@%:@ ------------------------------------ @%:@@%:@
8061_ASBOX
8062 ) |
8063 sed "s/^/$as_me: WARNING: /" >&2
8064 ;;
8065 no:yes )
8066 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
8067echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
8068 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
8069echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
8070 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
8071echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
8072 (
8073 cat <<\_ASBOX
8074@%:@@%:@ ------------------------------------ @%:@@%:@
8075@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
8076@%:@@%:@ ------------------------------------ @%:@@%:@
8077_ASBOX
8078 ) |
8079 sed "s/^/$as_me: WARNING: /" >&2
8080 ;;
8081esac
8082echo "$as_me:$LINENO: checking for $ac_header" >&5
8083echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
8084if eval "test \"\${$as_ac_Header+set}\" = set"; then
8085 echo $ECHO_N "(cached) $ECHO_C" >&6
8086else
8087 eval "$as_ac_Header=$ac_header_preproc"
8088fi
8089echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
8090echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
8091
8092fi
8093if test `eval echo '${'$as_ac_Header'}'` = yes; then
8094 cat >>confdefs.h <<_ACEOF
8095@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
8096_ACEOF
8097
8098fi
8099
8100done
8101
8102 fi
8103
8104fi
8105
8106
8107fi
8108done
8109
8110
8111
8112
8113for ac_func in gettimeofday time
8114do
8115as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8116echo "$as_me:$LINENO: checking for $ac_func" >&5
8117echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8118if eval "test \"\${$as_ac_var+set}\" = set"; then
8119 echo $ECHO_N "(cached) $ECHO_C" >&6
8120else
8121 cat >conftest.$ac_ext <<_ACEOF
8122#line $LINENO "configure"
8123/* confdefs.h. */
8124_ACEOF
8125cat confdefs.h >>conftest.$ac_ext
8126cat >>conftest.$ac_ext <<_ACEOF
8127/* end confdefs.h. */
8128/* System header to define __stub macros and hopefully few prototypes,
8129 which can conflict with char $ac_func (); below.
8130 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8131 <limits.h> exists even on freestanding compilers. */
8132#ifdef __STDC__
8133# include <limits.h>
8134#else
8135# include <assert.h>
8136#endif
8137/* Override any gcc2 internal prototype to avoid an error. */
8138#ifdef __cplusplus
8139extern "C"
8140{
8141#endif
8142/* We use char because int might match the return type of a gcc2
8143 builtin and then its argument prototype would still apply. */
8144char $ac_func ();
8145/* The GNU C library defines this for functions which it implements
8146 to always fail with ENOSYS. Some functions are actually named
8147 something starting with __ and the normal name is an alias. */
8148#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8149choke me
8150#else
8151char (*f) () = $ac_func;
8152#endif
8153#ifdef __cplusplus
8154}
8155#endif
8156
8157int
8158main ()
8159{
8160return f != $ac_func;
8161 ;
8162 return 0;
8163}
8164_ACEOF
8165rm -f conftest.$ac_objext conftest$ac_exeext
8166if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8167 (eval $ac_link) 2>&5
8168 ac_status=$?
8169 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8170 (exit $ac_status); } &&
8171 { ac_try='test -s conftest$ac_exeext'
8172 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8173 (eval $ac_try) 2>&5
8174 ac_status=$?
8175 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8176 (exit $ac_status); }; }; then
8177 eval "$as_ac_var=yes"
8178else
8179 echo "$as_me: failed program was:" >&5
8180sed 's/^/| /' conftest.$ac_ext >&5
8181
8182eval "$as_ac_var=no"
8183fi
8184rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8185fi
8186echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8187echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8188if test `eval echo '${'$as_ac_var'}'` = yes; then
8189 cat >>confdefs.h <<_ACEOF
8190@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8191_ACEOF
8192
8193fi
8194done
8195
8196
8197
8198
8199
8200
8201
8202for ac_func in endutent getutent getutid getutline pututline setutent
8203do
8204as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8205echo "$as_me:$LINENO: checking for $ac_func" >&5
8206echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8207if eval "test \"\${$as_ac_var+set}\" = set"; then
8208 echo $ECHO_N "(cached) $ECHO_C" >&6
8209else
8210 cat >conftest.$ac_ext <<_ACEOF
8211#line $LINENO "configure"
8212/* confdefs.h. */
8213_ACEOF
8214cat confdefs.h >>conftest.$ac_ext
8215cat >>conftest.$ac_ext <<_ACEOF
8216/* end confdefs.h. */
8217/* System header to define __stub macros and hopefully few prototypes,
8218 which can conflict with char $ac_func (); below.
8219 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8220 <limits.h> exists even on freestanding compilers. */
8221#ifdef __STDC__
8222# include <limits.h>
8223#else
8224# include <assert.h>
8225#endif
8226/* Override any gcc2 internal prototype to avoid an error. */
8227#ifdef __cplusplus
8228extern "C"
8229{
8230#endif
8231/* We use char because int might match the return type of a gcc2
8232 builtin and then its argument prototype would still apply. */
8233char $ac_func ();
8234/* The GNU C library defines this for functions which it implements
8235 to always fail with ENOSYS. Some functions are actually named
8236 something starting with __ and the normal name is an alias. */
8237#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8238choke me
8239#else
8240char (*f) () = $ac_func;
8241#endif
8242#ifdef __cplusplus
8243}
8244#endif
8245
8246int
8247main ()
8248{
8249return f != $ac_func;
8250 ;
8251 return 0;
8252}
8253_ACEOF
8254rm -f conftest.$ac_objext conftest$ac_exeext
8255if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8256 (eval $ac_link) 2>&5
8257 ac_status=$?
8258 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8259 (exit $ac_status); } &&
8260 { ac_try='test -s conftest$ac_exeext'
8261 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8262 (eval $ac_try) 2>&5
8263 ac_status=$?
8264 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8265 (exit $ac_status); }; }; then
8266 eval "$as_ac_var=yes"
8267else
8268 echo "$as_me: failed program was:" >&5
8269sed 's/^/| /' conftest.$ac_ext >&5
8270
8271eval "$as_ac_var=no"
8272fi
8273rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8274fi
8275echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8276echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8277if test `eval echo '${'$as_ac_var'}'` = yes; then
8278 cat >>confdefs.h <<_ACEOF
8279@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8280_ACEOF
8281
8282fi
8283done
8284
8285
8286for ac_func in utmpname
8287do
8288as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8289echo "$as_me:$LINENO: checking for $ac_func" >&5
8290echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8291if eval "test \"\${$as_ac_var+set}\" = set"; then
8292 echo $ECHO_N "(cached) $ECHO_C" >&6
8293else
8294 cat >conftest.$ac_ext <<_ACEOF
8295#line $LINENO "configure"
8296/* confdefs.h. */
8297_ACEOF
8298cat confdefs.h >>conftest.$ac_ext
8299cat >>conftest.$ac_ext <<_ACEOF
8300/* end confdefs.h. */
8301/* System header to define __stub macros and hopefully few prototypes,
8302 which can conflict with char $ac_func (); below.
8303 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8304 <limits.h> exists even on freestanding compilers. */
8305#ifdef __STDC__
8306# include <limits.h>
8307#else
8308# include <assert.h>
8309#endif
8310/* Override any gcc2 internal prototype to avoid an error. */
8311#ifdef __cplusplus
8312extern "C"
8313{
8314#endif
8315/* We use char because int might match the return type of a gcc2
8316 builtin and then its argument prototype would still apply. */
8317char $ac_func ();
8318/* The GNU C library defines this for functions which it implements
8319 to always fail with ENOSYS. Some functions are actually named
8320 something starting with __ and the normal name is an alias. */
8321#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8322choke me
8323#else
8324char (*f) () = $ac_func;
8325#endif
8326#ifdef __cplusplus
8327}
8328#endif
8329
8330int
8331main ()
8332{
8333return f != $ac_func;
8334 ;
8335 return 0;
8336}
8337_ACEOF
8338rm -f conftest.$ac_objext conftest$ac_exeext
8339if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8340 (eval $ac_link) 2>&5
8341 ac_status=$?
8342 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8343 (exit $ac_status); } &&
8344 { ac_try='test -s conftest$ac_exeext'
8345 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8346 (eval $ac_try) 2>&5
8347 ac_status=$?
8348 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8349 (exit $ac_status); }; }; then
8350 eval "$as_ac_var=yes"
8351else
8352 echo "$as_me: failed program was:" >&5
8353sed 's/^/| /' conftest.$ac_ext >&5
8354
8355eval "$as_ac_var=no"
8356fi
8357rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8358fi
8359echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8360echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8361if test `eval echo '${'$as_ac_var'}'` = yes; then
8362 cat >>confdefs.h <<_ACEOF
8363@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8364_ACEOF
8365
8366fi
8367done
8368
8369
8370
8371
8372
8373
8374for ac_func in endutxent getutxent getutxid getutxline pututxline
8375do
8376as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8377echo "$as_me:$LINENO: checking for $ac_func" >&5
8378echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8379if eval "test \"\${$as_ac_var+set}\" = set"; then
8380 echo $ECHO_N "(cached) $ECHO_C" >&6
8381else
8382 cat >conftest.$ac_ext <<_ACEOF
8383#line $LINENO "configure"
8384/* confdefs.h. */
8385_ACEOF
8386cat confdefs.h >>conftest.$ac_ext
8387cat >>conftest.$ac_ext <<_ACEOF
8388/* end confdefs.h. */
8389/* System header to define __stub macros and hopefully few prototypes,
8390 which can conflict with char $ac_func (); below.
8391 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8392 <limits.h> exists even on freestanding compilers. */
8393#ifdef __STDC__
8394# include <limits.h>
8395#else
8396# include <assert.h>
8397#endif
8398/* Override any gcc2 internal prototype to avoid an error. */
8399#ifdef __cplusplus
8400extern "C"
8401{
8402#endif
8403/* We use char because int might match the return type of a gcc2
8404 builtin and then its argument prototype would still apply. */
8405char $ac_func ();
8406/* The GNU C library defines this for functions which it implements
8407 to always fail with ENOSYS. Some functions are actually named
8408 something starting with __ and the normal name is an alias. */
8409#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8410choke me
8411#else
8412char (*f) () = $ac_func;
8413#endif
8414#ifdef __cplusplus
8415}
8416#endif
8417
8418int
8419main ()
8420{
8421return f != $ac_func;
8422 ;
8423 return 0;
8424}
8425_ACEOF
8426rm -f conftest.$ac_objext conftest$ac_exeext
8427if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8428 (eval $ac_link) 2>&5
8429 ac_status=$?
8430 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8431 (exit $ac_status); } &&
8432 { ac_try='test -s conftest$ac_exeext'
8433 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8434 (eval $ac_try) 2>&5
8435 ac_status=$?
8436 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8437 (exit $ac_status); }; }; then
8438 eval "$as_ac_var=yes"
8439else
8440 echo "$as_me: failed program was:" >&5
8441sed 's/^/| /' conftest.$ac_ext >&5
8442
8443eval "$as_ac_var=no"
8444fi
8445rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8446fi
8447echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8448echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8449if test `eval echo '${'$as_ac_var'}'` = yes; then
8450 cat >>confdefs.h <<_ACEOF
8451@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8452_ACEOF
8453
8454fi
8455done
8456
8457
8458
8459for ac_func in setutxent utmpxname
8460do
8461as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8462echo "$as_me:$LINENO: checking for $ac_func" >&5
8463echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
8464if eval "test \"\${$as_ac_var+set}\" = set"; then
8465 echo $ECHO_N "(cached) $ECHO_C" >&6
8466else
8467 cat >conftest.$ac_ext <<_ACEOF
8468#line $LINENO "configure"
8469/* confdefs.h. */
8470_ACEOF
8471cat confdefs.h >>conftest.$ac_ext
8472cat >>conftest.$ac_ext <<_ACEOF
8473/* end confdefs.h. */
8474/* System header to define __stub macros and hopefully few prototypes,
8475 which can conflict with char $ac_func (); below.
8476 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8477 <limits.h> exists even on freestanding compilers. */
8478#ifdef __STDC__
8479# include <limits.h>
8480#else
8481# include <assert.h>
8482#endif
8483/* Override any gcc2 internal prototype to avoid an error. */
8484#ifdef __cplusplus
8485extern "C"
8486{
8487#endif
8488/* We use char because int might match the return type of a gcc2
8489 builtin and then its argument prototype would still apply. */
8490char $ac_func ();
8491/* The GNU C library defines this for functions which it implements
8492 to always fail with ENOSYS. Some functions are actually named
8493 something starting with __ and the normal name is an alias. */
8494#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
8495choke me
8496#else
8497char (*f) () = $ac_func;
8498#endif
8499#ifdef __cplusplus
8500}
8501#endif
8502
8503int
8504main ()
8505{
8506return f != $ac_func;
8507 ;
8508 return 0;
8509}
8510_ACEOF
8511rm -f conftest.$ac_objext conftest$ac_exeext
8512if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8513 (eval $ac_link) 2>&5
8514 ac_status=$?
8515 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8516 (exit $ac_status); } &&
8517 { ac_try='test -s conftest$ac_exeext'
8518 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8519 (eval $ac_try) 2>&5
8520 ac_status=$?
8521 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8522 (exit $ac_status); }; }; then
8523 eval "$as_ac_var=yes"
8524else
8525 echo "$as_me: failed program was:" >&5
8526sed 's/^/| /' conftest.$ac_ext >&5
8527
8528eval "$as_ac_var=no"
8529fi
8530rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8531fi
8532echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8533echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8534if test `eval echo '${'$as_ac_var'}'` = yes; then
8535 cat >>confdefs.h <<_ACEOF
8536@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8537_ACEOF
8538
8539fi
8540done
8541
8542
8543echo "$as_me:$LINENO: checking for daemon" >&5
8544echo $ECHO_N "checking for daemon... $ECHO_C" >&6
8545if test "${ac_cv_func_daemon+set}" = set; then
8546 echo $ECHO_N "(cached) $ECHO_C" >&6
8547else
8548 cat >conftest.$ac_ext <<_ACEOF
8549#line $LINENO "configure"
8550/* confdefs.h. */
8551_ACEOF
8552cat confdefs.h >>conftest.$ac_ext
8553cat >>conftest.$ac_ext <<_ACEOF
8554/* end confdefs.h. */
8555/* System header to define __stub macros and hopefully few prototypes,
8556 which can conflict with char daemon (); below.
8557 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8558 <limits.h> exists even on freestanding compilers. */
8559#ifdef __STDC__
8560# include <limits.h>
8561#else
8562# include <assert.h>
8563#endif
8564/* Override any gcc2 internal prototype to avoid an error. */
8565#ifdef __cplusplus
8566extern "C"
8567{
8568#endif
8569/* We use char because int might match the return type of a gcc2
8570 builtin and then its argument prototype would still apply. */
8571char daemon ();
8572/* The GNU C library defines this for functions which it implements
8573 to always fail with ENOSYS. Some functions are actually named
8574 something starting with __ and the normal name is an alias. */
8575#if defined (__stub_daemon) || defined (__stub___daemon)
8576choke me
8577#else
8578char (*f) () = daemon;
8579#endif
8580#ifdef __cplusplus
8581}
8582#endif
8583
8584int
8585main ()
8586{
8587return f != daemon;
8588 ;
8589 return 0;
8590}
8591_ACEOF
8592rm -f conftest.$ac_objext conftest$ac_exeext
8593if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8594 (eval $ac_link) 2>&5
8595 ac_status=$?
8596 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8597 (exit $ac_status); } &&
8598 { ac_try='test -s conftest$ac_exeext'
8599 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8600 (eval $ac_try) 2>&5
8601 ac_status=$?
8602 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8603 (exit $ac_status); }; }; then
8604 ac_cv_func_daemon=yes
8605else
8606 echo "$as_me: failed program was:" >&5
8607sed 's/^/| /' conftest.$ac_ext >&5
8608
8609ac_cv_func_daemon=no
8610fi
8611rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8612fi
8613echo "$as_me:$LINENO: result: $ac_cv_func_daemon" >&5
8614echo "${ECHO_T}$ac_cv_func_daemon" >&6
8615if test $ac_cv_func_daemon = yes; then
8616 cat >>confdefs.h <<\_ACEOF
8617@%:@define HAVE_DAEMON 1
8618_ACEOF
8619
8620else
8621 echo "$as_me:$LINENO: checking for daemon in -lbsd" >&5
8622echo $ECHO_N "checking for daemon in -lbsd... $ECHO_C" >&6
8623if test "${ac_cv_lib_bsd_daemon+set}" = set; then
8624 echo $ECHO_N "(cached) $ECHO_C" >&6
8625else
8626 ac_check_lib_save_LIBS=$LIBS
8627LIBS="-lbsd $LIBS"
8628cat >conftest.$ac_ext <<_ACEOF
8629#line $LINENO "configure"
8630/* confdefs.h. */
8631_ACEOF
8632cat confdefs.h >>conftest.$ac_ext
8633cat >>conftest.$ac_ext <<_ACEOF
8634/* end confdefs.h. */
8635
8636/* Override any gcc2 internal prototype to avoid an error. */
8637#ifdef __cplusplus
8638extern "C"
8639#endif
8640/* We use char because int might match the return type of a gcc2
8641 builtin and then its argument prototype would still apply. */
8642char daemon ();
8643int
8644main ()
8645{
8646daemon ();
8647 ;
8648 return 0;
8649}
8650_ACEOF
8651rm -f conftest.$ac_objext conftest$ac_exeext
8652if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8653 (eval $ac_link) 2>&5
8654 ac_status=$?
8655 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8656 (exit $ac_status); } &&
8657 { ac_try='test -s conftest$ac_exeext'
8658 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8659 (eval $ac_try) 2>&5
8660 ac_status=$?
8661 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8662 (exit $ac_status); }; }; then
8663 ac_cv_lib_bsd_daemon=yes
8664else
8665 echo "$as_me: failed program was:" >&5
8666sed 's/^/| /' conftest.$ac_ext >&5
8667
8668ac_cv_lib_bsd_daemon=no
8669fi
8670rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8671LIBS=$ac_check_lib_save_LIBS
8672fi
8673echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_daemon" >&5
8674echo "${ECHO_T}$ac_cv_lib_bsd_daemon" >&6
8675if test $ac_cv_lib_bsd_daemon = yes; then
8676 LIBS="$LIBS -lbsd"; cat >>confdefs.h <<\_ACEOF
8677@%:@define HAVE_DAEMON 1
8678_ACEOF
8679
8680fi
8681
8682
8683fi
8684
8685
8686echo "$as_me:$LINENO: checking for getpagesize" >&5
8687echo $ECHO_N "checking for getpagesize... $ECHO_C" >&6
8688if test "${ac_cv_func_getpagesize+set}" = set; then
8689 echo $ECHO_N "(cached) $ECHO_C" >&6
8690else
8691 cat >conftest.$ac_ext <<_ACEOF
8692#line $LINENO "configure"
8693/* confdefs.h. */
8694_ACEOF
8695cat confdefs.h >>conftest.$ac_ext
8696cat >>conftest.$ac_ext <<_ACEOF
8697/* end confdefs.h. */
8698/* System header to define __stub macros and hopefully few prototypes,
8699 which can conflict with char getpagesize (); below.
8700 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8701 <limits.h> exists even on freestanding compilers. */
8702#ifdef __STDC__
8703# include <limits.h>
8704#else
8705# include <assert.h>
8706#endif
8707/* Override any gcc2 internal prototype to avoid an error. */
8708#ifdef __cplusplus
8709extern "C"
8710{
8711#endif
8712/* We use char because int might match the return type of a gcc2
8713 builtin and then its argument prototype would still apply. */
8714char getpagesize ();
8715/* The GNU C library defines this for functions which it implements
8716 to always fail with ENOSYS. Some functions are actually named
8717 something starting with __ and the normal name is an alias. */
8718#if defined (__stub_getpagesize) || defined (__stub___getpagesize)
8719choke me
8720#else
8721char (*f) () = getpagesize;
8722#endif
8723#ifdef __cplusplus
8724}
8725#endif
8726
8727int
8728main ()
8729{
8730return f != getpagesize;
8731 ;
8732 return 0;
8733}
8734_ACEOF
8735rm -f conftest.$ac_objext conftest$ac_exeext
8736if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8737 (eval $ac_link) 2>&5
8738 ac_status=$?
8739 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8740 (exit $ac_status); } &&
8741 { ac_try='test -s conftest$ac_exeext'
8742 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8743 (eval $ac_try) 2>&5
8744 ac_status=$?
8745 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8746 (exit $ac_status); }; }; then
8747 ac_cv_func_getpagesize=yes
8748else
8749 echo "$as_me: failed program was:" >&5
8750sed 's/^/| /' conftest.$ac_ext >&5
8751
8752ac_cv_func_getpagesize=no
8753fi
8754rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8755fi
8756echo "$as_me:$LINENO: result: $ac_cv_func_getpagesize" >&5
8757echo "${ECHO_T}$ac_cv_func_getpagesize" >&6
8758if test $ac_cv_func_getpagesize = yes; then
8759 cat >>confdefs.h <<\_ACEOF
8760@%:@define HAVE_GETPAGESIZE 1
8761_ACEOF
8762
8763else
8764 echo "$as_me:$LINENO: checking for getpagesize in -lucb" >&5
8765echo $ECHO_N "checking for getpagesize in -lucb... $ECHO_C" >&6
8766if test "${ac_cv_lib_ucb_getpagesize+set}" = set; then
8767 echo $ECHO_N "(cached) $ECHO_C" >&6
8768else
8769 ac_check_lib_save_LIBS=$LIBS
8770LIBS="-lucb $LIBS"
8771cat >conftest.$ac_ext <<_ACEOF
8772#line $LINENO "configure"
8773/* confdefs.h. */
8774_ACEOF
8775cat confdefs.h >>conftest.$ac_ext
8776cat >>conftest.$ac_ext <<_ACEOF
8777/* end confdefs.h. */
8778
8779/* Override any gcc2 internal prototype to avoid an error. */
8780#ifdef __cplusplus
8781extern "C"
8782#endif
8783/* We use char because int might match the return type of a gcc2
8784 builtin and then its argument prototype would still apply. */
8785char getpagesize ();
8786int
8787main ()
8788{
8789getpagesize ();
8790 ;
8791 return 0;
8792}
8793_ACEOF
8794rm -f conftest.$ac_objext conftest$ac_exeext
8795if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8796 (eval $ac_link) 2>&5
8797 ac_status=$?
8798 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8799 (exit $ac_status); } &&
8800 { ac_try='test -s conftest$ac_exeext'
8801 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8802 (eval $ac_try) 2>&5
8803 ac_status=$?
8804 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8805 (exit $ac_status); }; }; then
8806 ac_cv_lib_ucb_getpagesize=yes
8807else
8808 echo "$as_me: failed program was:" >&5
8809sed 's/^/| /' conftest.$ac_ext >&5
8810
8811ac_cv_lib_ucb_getpagesize=no
8812fi
8813rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8814LIBS=$ac_check_lib_save_LIBS
8815fi
8816echo "$as_me:$LINENO: result: $ac_cv_lib_ucb_getpagesize" >&5
8817echo "${ECHO_T}$ac_cv_lib_ucb_getpagesize" >&6
8818if test $ac_cv_lib_ucb_getpagesize = yes; then
8819 LIBS="$LIBS -lucb"; cat >>confdefs.h <<\_ACEOF
8820@%:@define HAVE_GETPAGESIZE 1
8821_ACEOF
8822
8823fi
8824
8825
8826fi
8827
8828
8829# Check for broken snprintf
8830if test "x$ac_cv_func_snprintf" = "xyes" ; then
8831 echo "$as_me:$LINENO: checking whether snprintf correctly terminates long strings" >&5
8832echo $ECHO_N "checking whether snprintf correctly terminates long strings... $ECHO_C" >&6
8833 if test "$cross_compiling" = yes; then
8834 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
8835See \`config.log' for more details." >&5
8836echo "$as_me: error: cannot run test program while cross compiling
8837See \`config.log' for more details." >&2;}
8838 { (exit 1); exit 1; }; }
8839else
8840 cat >conftest.$ac_ext <<_ACEOF
8841#line $LINENO "configure"
8842/* confdefs.h. */
8843_ACEOF
8844cat confdefs.h >>conftest.$ac_ext
8845cat >>conftest.$ac_ext <<_ACEOF
8846/* end confdefs.h. */
8847
8848#include <stdio.h>
8849int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');}
8850
8851_ACEOF
8852rm -f conftest$ac_exeext
8853if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8854 (eval $ac_link) 2>&5
8855 ac_status=$?
8856 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8857 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
8858 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8859 (eval $ac_try) 2>&5
8860 ac_status=$?
8861 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8862 (exit $ac_status); }; }; then
8863 echo "$as_me:$LINENO: result: yes" >&5
8864echo "${ECHO_T}yes" >&6
8865else
8866 echo "$as_me: program exited with status $ac_status" >&5
8867echo "$as_me: failed program was:" >&5
8868sed 's/^/| /' conftest.$ac_ext >&5
8869
8870( exit $ac_status )
8871
8872 echo "$as_me:$LINENO: result: no" >&5
8873echo "${ECHO_T}no" >&6
8874 cat >>confdefs.h <<\_ACEOF
8875@%:@define BROKEN_SNPRINTF 1
8876_ACEOF
8877
8878 { echo "$as_me:$LINENO: WARNING: ****** Your snprintf() function is broken, complain to your vendor" >&5
8879echo "$as_me: WARNING: ****** Your snprintf() function is broken, complain to your vendor" >&2;}
8880
8881
8882fi
8883rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8884fi
8885fi
8886
8887if test "x$ac_cv_func_mkdtemp" = "xyes" ; then
8888echo "$as_me:$LINENO: checking for (overly) strict mkstemp" >&5
8889echo $ECHO_N "checking for (overly) strict mkstemp... $ECHO_C" >&6
8890if test "$cross_compiling" = yes; then
8891
8892 echo "$as_me:$LINENO: result: yes" >&5
8893echo "${ECHO_T}yes" >&6
8894 cat >>confdefs.h <<\_ACEOF
8895@%:@define HAVE_STRICT_MKSTEMP 1
8896_ACEOF
8897
8898
8899
8900else
8901 cat >conftest.$ac_ext <<_ACEOF
8902#line $LINENO "configure"
8903/* confdefs.h. */
8904_ACEOF
8905cat confdefs.h >>conftest.$ac_ext
8906cat >>conftest.$ac_ext <<_ACEOF
8907/* end confdefs.h. */
8908
8909#include <stdlib.h>
8910main() { char template[]="conftest.mkstemp-test";
8911if (mkstemp(template) == -1)
8912 exit(1);
8913unlink(template); exit(0);
8914}
8915
8916_ACEOF
8917rm -f conftest$ac_exeext
8918if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8919 (eval $ac_link) 2>&5
8920 ac_status=$?
8921 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8922 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
8923 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8924 (eval $ac_try) 2>&5
8925 ac_status=$?
8926 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8927 (exit $ac_status); }; }; then
8928
8929 echo "$as_me:$LINENO: result: no" >&5
8930echo "${ECHO_T}no" >&6
8931
8932else
8933 echo "$as_me: program exited with status $ac_status" >&5
8934echo "$as_me: failed program was:" >&5
8935sed 's/^/| /' conftest.$ac_ext >&5
8936
8937( exit $ac_status )
8938
8939 echo "$as_me:$LINENO: result: yes" >&5
8940echo "${ECHO_T}yes" >&6
8941 cat >>confdefs.h <<\_ACEOF
8942@%:@define HAVE_STRICT_MKSTEMP 1
8943_ACEOF
8944
8945
8946fi
8947rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8948fi
8949fi
8950
8951echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
8952echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6
8953if test "${ac_cv_func_getpgrp_void+set}" = set; then
8954 echo $ECHO_N "(cached) $ECHO_C" >&6
8955else
8956 # Use it with a single arg.
8957cat >conftest.$ac_ext <<_ACEOF
8958#line $LINENO "configure"
8959/* confdefs.h. */
8960_ACEOF
8961cat confdefs.h >>conftest.$ac_ext
8962cat >>conftest.$ac_ext <<_ACEOF
8963/* end confdefs.h. */
8964$ac_includes_default
8965int
8966main ()
8967{
8968getpgrp (0);
8969 ;
8970 return 0;
8971}
8972_ACEOF
8973rm -f conftest.$ac_objext
8974if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8975 (eval $ac_compile) 2>&5
8976 ac_status=$?
8977 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8978 (exit $ac_status); } &&
8979 { ac_try='test -s conftest.$ac_objext'
8980 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8981 (eval $ac_try) 2>&5
8982 ac_status=$?
8983 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8984 (exit $ac_status); }; }; then
8985 ac_cv_func_getpgrp_void=no
8986else
8987 echo "$as_me: failed program was:" >&5
8988sed 's/^/| /' conftest.$ac_ext >&5
8989
8990ac_cv_func_getpgrp_void=yes
8991fi
8992rm -f conftest.$ac_objext conftest.$ac_ext
8993
8994fi
8995echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5
8996echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6
8997if test $ac_cv_func_getpgrp_void = yes; then
8998
8999cat >>confdefs.h <<\_ACEOF
9000@%:@define GETPGRP_VOID 1
9001_ACEOF
9002
9003fi
9004
9005
9006# Check for PAM libs
9007PAM_MSG="no"
9008
9009# Check whether --with-pam or --without-pam was given.
9010if test "${with_pam+set}" = set; then
9011 withval="$with_pam"
9012
9013 if test "x$withval" != "xno" ; then
9014 if test "x$ac_cv_header_security_pam_appl_h" != "xyes" ; then
9015 { { echo "$as_me:$LINENO: error: PAM headers not found" >&5
9016echo "$as_me: error: PAM headers not found" >&2;}
9017 { (exit 1); exit 1; }; }
9018 fi
9019
9020
9021echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
9022echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
9023if test "${ac_cv_lib_dl_dlopen+set}" = set; then
9024 echo $ECHO_N "(cached) $ECHO_C" >&6
9025else
9026 ac_check_lib_save_LIBS=$LIBS
9027LIBS="-ldl $LIBS"
9028cat >conftest.$ac_ext <<_ACEOF
9029#line $LINENO "configure"
9030/* confdefs.h. */
9031_ACEOF
9032cat confdefs.h >>conftest.$ac_ext
9033cat >>conftest.$ac_ext <<_ACEOF
9034/* end confdefs.h. */
9035
9036/* Override any gcc2 internal prototype to avoid an error. */
9037#ifdef __cplusplus
9038extern "C"
9039#endif
9040/* We use char because int might match the return type of a gcc2
9041 builtin and then its argument prototype would still apply. */
9042char dlopen ();
9043int
9044main ()
9045{
9046dlopen ();
9047 ;
9048 return 0;
9049}
9050_ACEOF
9051rm -f conftest.$ac_objext conftest$ac_exeext
9052if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9053 (eval $ac_link) 2>&5
9054 ac_status=$?
9055 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9056 (exit $ac_status); } &&
9057 { ac_try='test -s conftest$ac_exeext'
9058 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9059 (eval $ac_try) 2>&5
9060 ac_status=$?
9061 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9062 (exit $ac_status); }; }; then
9063 ac_cv_lib_dl_dlopen=yes
9064else
9065 echo "$as_me: failed program was:" >&5
9066sed 's/^/| /' conftest.$ac_ext >&5
9067
9068ac_cv_lib_dl_dlopen=no
9069fi
9070rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9071LIBS=$ac_check_lib_save_LIBS
9072fi
9073echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
9074echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
9075if test $ac_cv_lib_dl_dlopen = yes; then
9076 cat >>confdefs.h <<_ACEOF
9077@%:@define HAVE_LIBDL 1
9078_ACEOF
9079
9080 LIBS="-ldl $LIBS"
9081
9082fi
9083
9084
9085echo "$as_me:$LINENO: checking for pam_set_item in -lpam" >&5
9086echo $ECHO_N "checking for pam_set_item in -lpam... $ECHO_C" >&6
9087if test "${ac_cv_lib_pam_pam_set_item+set}" = set; then
9088 echo $ECHO_N "(cached) $ECHO_C" >&6
9089else
9090 ac_check_lib_save_LIBS=$LIBS
9091LIBS="-lpam $LIBS"
9092cat >conftest.$ac_ext <<_ACEOF
9093#line $LINENO "configure"
9094/* confdefs.h. */
9095_ACEOF
9096cat confdefs.h >>conftest.$ac_ext
9097cat >>conftest.$ac_ext <<_ACEOF
9098/* end confdefs.h. */
9099
9100/* Override any gcc2 internal prototype to avoid an error. */
9101#ifdef __cplusplus
9102extern "C"
9103#endif
9104/* We use char because int might match the return type of a gcc2
9105 builtin and then its argument prototype would still apply. */
9106char pam_set_item ();
9107int
9108main ()
9109{
9110pam_set_item ();
9111 ;
9112 return 0;
9113}
9114_ACEOF
9115rm -f conftest.$ac_objext conftest$ac_exeext
9116if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9117 (eval $ac_link) 2>&5
9118 ac_status=$?
9119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9120 (exit $ac_status); } &&
9121 { ac_try='test -s conftest$ac_exeext'
9122 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9123 (eval $ac_try) 2>&5
9124 ac_status=$?
9125 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9126 (exit $ac_status); }; }; then
9127 ac_cv_lib_pam_pam_set_item=yes
9128else
9129 echo "$as_me: failed program was:" >&5
9130sed 's/^/| /' conftest.$ac_ext >&5
9131
9132ac_cv_lib_pam_pam_set_item=no
9133fi
9134rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9135LIBS=$ac_check_lib_save_LIBS
9136fi
9137echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_set_item" >&5
9138echo "${ECHO_T}$ac_cv_lib_pam_pam_set_item" >&6
9139if test $ac_cv_lib_pam_pam_set_item = yes; then
9140 cat >>confdefs.h <<_ACEOF
9141@%:@define HAVE_LIBPAM 1
9142_ACEOF
9143
9144 LIBS="-lpam $LIBS"
9145
9146else
9147 { { echo "$as_me:$LINENO: error: *** libpam missing" >&5
9148echo "$as_me: error: *** libpam missing" >&2;}
9149 { (exit 1); exit 1; }; }
9150fi
9151
9152
9153for ac_func in pam_getenvlist
9154do
9155as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
9156echo "$as_me:$LINENO: checking for $ac_func" >&5
9157echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
9158if eval "test \"\${$as_ac_var+set}\" = set"; then
9159 echo $ECHO_N "(cached) $ECHO_C" >&6
9160else
9161 cat >conftest.$ac_ext <<_ACEOF
9162#line $LINENO "configure"
9163/* confdefs.h. */
9164_ACEOF
9165cat confdefs.h >>conftest.$ac_ext
9166cat >>conftest.$ac_ext <<_ACEOF
9167/* end confdefs.h. */
9168/* System header to define __stub macros and hopefully few prototypes,
9169 which can conflict with char $ac_func (); below.
9170 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
9171 <limits.h> exists even on freestanding compilers. */
9172#ifdef __STDC__
9173# include <limits.h>
9174#else
9175# include <assert.h>
9176#endif
9177/* Override any gcc2 internal prototype to avoid an error. */
9178#ifdef __cplusplus
9179extern "C"
9180{
9181#endif
9182/* We use char because int might match the return type of a gcc2
9183 builtin and then its argument prototype would still apply. */
9184char $ac_func ();
9185/* The GNU C library defines this for functions which it implements
9186 to always fail with ENOSYS. Some functions are actually named
9187 something starting with __ and the normal name is an alias. */
9188#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
9189choke me
9190#else
9191char (*f) () = $ac_func;
9192#endif
9193#ifdef __cplusplus
9194}
9195#endif
9196
9197int
9198main ()
9199{
9200return f != $ac_func;
9201 ;
9202 return 0;
9203}
9204_ACEOF
9205rm -f conftest.$ac_objext conftest$ac_exeext
9206if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9207 (eval $ac_link) 2>&5
9208 ac_status=$?
9209 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9210 (exit $ac_status); } &&
9211 { ac_try='test -s conftest$ac_exeext'
9212 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9213 (eval $ac_try) 2>&5
9214 ac_status=$?
9215 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9216 (exit $ac_status); }; }; then
9217 eval "$as_ac_var=yes"
9218else
9219 echo "$as_me: failed program was:" >&5
9220sed 's/^/| /' conftest.$ac_ext >&5
9221
9222eval "$as_ac_var=no"
9223fi
9224rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9225fi
9226echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
9227echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
9228if test `eval echo '${'$as_ac_var'}'` = yes; then
9229 cat >>confdefs.h <<_ACEOF
9230@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
9231_ACEOF
9232
9233fi
9234done
9235
9236
9237 disable_shadow=yes
9238 PAM_MSG="yes"
9239
9240 cat >>confdefs.h <<\_ACEOF
9241@%:@define USE_PAM 1
9242_ACEOF
9243
9244 if test $ac_cv_lib_dl_dlopen = yes; then
9245 LIBPAM="-lpam -ldl"
9246 else
9247 LIBPAM="-lpam"
9248 fi
9249
9250 fi
9251
9252
9253fi;
9254
9255# Check for older PAM
9256if test "x$PAM_MSG" = "xyes" ; then
9257 # Check PAM strerror arguments (old PAM)
9258 echo "$as_me:$LINENO: checking whether pam_strerror takes only one argument" >&5
9259echo $ECHO_N "checking whether pam_strerror takes only one argument... $ECHO_C" >&6
9260 cat >conftest.$ac_ext <<_ACEOF
9261#line $LINENO "configure"
9262/* confdefs.h. */
9263_ACEOF
9264cat confdefs.h >>conftest.$ac_ext
9265cat >>conftest.$ac_ext <<_ACEOF
9266/* end confdefs.h. */
9267
9268#include <stdlib.h>
9269#include <security/pam_appl.h>
9270
9271int
9272main ()
9273{
9274(void)pam_strerror((pam_handle_t *)NULL, -1);
9275 ;
9276 return 0;
9277}
9278_ACEOF
9279rm -f conftest.$ac_objext
9280if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9281 (eval $ac_compile) 2>&5
9282 ac_status=$?
9283 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9284 (exit $ac_status); } &&
9285 { ac_try='test -s conftest.$ac_objext'
9286 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9287 (eval $ac_try) 2>&5
9288 ac_status=$?
9289 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9290 (exit $ac_status); }; }; then
9291 echo "$as_me:$LINENO: result: no" >&5
9292echo "${ECHO_T}no" >&6
9293else
9294 echo "$as_me: failed program was:" >&5
9295sed 's/^/| /' conftest.$ac_ext >&5
9296
9297
9298 cat >>confdefs.h <<\_ACEOF
9299@%:@define HAVE_OLD_PAM 1
9300_ACEOF
9301
9302 echo "$as_me:$LINENO: result: yes" >&5
9303echo "${ECHO_T}yes" >&6
9304 PAM_MSG="yes (old library)"
9305
9306
9307fi
9308rm -f conftest.$ac_objext conftest.$ac_ext
9309fi
9310
9311# Some systems want crypt() from libcrypt, *not* the version in OpenSSL,
9312# because the system crypt() is more featureful.
9313if test "x$check_for_libcrypt_before" = "x1"; then
9314
9315echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
9316echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
9317if test "${ac_cv_lib_crypt_crypt+set}" = set; then
9318 echo $ECHO_N "(cached) $ECHO_C" >&6
9319else
9320 ac_check_lib_save_LIBS=$LIBS
9321LIBS="-lcrypt $LIBS"
9322cat >conftest.$ac_ext <<_ACEOF
9323#line $LINENO "configure"
9324/* confdefs.h. */
9325_ACEOF
9326cat confdefs.h >>conftest.$ac_ext
9327cat >>conftest.$ac_ext <<_ACEOF
9328/* end confdefs.h. */
9329
9330/* Override any gcc2 internal prototype to avoid an error. */
9331#ifdef __cplusplus
9332extern "C"
9333#endif
9334/* We use char because int might match the return type of a gcc2
9335 builtin and then its argument prototype would still apply. */
9336char crypt ();
9337int
9338main ()
9339{
9340crypt ();
9341 ;
9342 return 0;
9343}
9344_ACEOF
9345rm -f conftest.$ac_objext conftest$ac_exeext
9346if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9347 (eval $ac_link) 2>&5
9348 ac_status=$?
9349 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9350 (exit $ac_status); } &&
9351 { ac_try='test -s conftest$ac_exeext'
9352 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9353 (eval $ac_try) 2>&5
9354 ac_status=$?
9355 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9356 (exit $ac_status); }; }; then
9357 ac_cv_lib_crypt_crypt=yes
9358else
9359 echo "$as_me: failed program was:" >&5
9360sed 's/^/| /' conftest.$ac_ext >&5
9361
9362ac_cv_lib_crypt_crypt=no
9363fi
9364rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9365LIBS=$ac_check_lib_save_LIBS
9366fi
9367echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
9368echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
9369if test $ac_cv_lib_crypt_crypt = yes; then
9370 cat >>confdefs.h <<_ACEOF
9371@%:@define HAVE_LIBCRYPT 1
9372_ACEOF
9373
9374 LIBS="-lcrypt $LIBS"
9375
9376fi
9377
9378fi
9379
9380# Search for OpenSSL
9381saved_CPPFLAGS="$CPPFLAGS"
9382saved_LDFLAGS="$LDFLAGS"
9383
9384# Check whether --with-ssl-dir or --without-ssl-dir was given.
9385if test "${with_ssl_dir+set}" = set; then
9386 withval="$with_ssl_dir"
9387
9388 if test "x$withval" != "xno" ; then
9389 if test -d "$withval/lib"; then
9390 if test -n "${need_dash_r}"; then
9391 LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
9392 else
9393 LDFLAGS="-L${withval}/lib ${LDFLAGS}"
9394 fi
9395 else
9396 if test -n "${need_dash_r}"; then
9397 LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
9398 else
9399 LDFLAGS="-L${withval} ${LDFLAGS}"
9400 fi
9401 fi
9402 if test -d "$withval/include"; then
9403 CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
9404 else
9405 CPPFLAGS="-I${withval} ${CPPFLAGS}"
9406 fi
9407 fi
9408
9409
9410fi;
9411LIBS="$LIBS -lcrypto"
9412cat >conftest.$ac_ext <<_ACEOF
9413#line $LINENO "configure"
9414/* confdefs.h. */
9415_ACEOF
9416cat confdefs.h >>conftest.$ac_ext
9417cat >>conftest.$ac_ext <<_ACEOF
9418/* end confdefs.h. */
9419
9420/* Override any gcc2 internal prototype to avoid an error. */
9421#ifdef __cplusplus
9422extern "C"
9423#endif
9424/* We use char because int might match the return type of a gcc2
9425 builtin and then its argument prototype would still apply. */
9426char RAND_add ();
9427int
9428main ()
9429{
9430RAND_add ();
9431 ;
9432 return 0;
9433}
9434_ACEOF
9435rm -f conftest.$ac_objext conftest$ac_exeext
9436if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9437 (eval $ac_link) 2>&5
9438 ac_status=$?
9439 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9440 (exit $ac_status); } &&
9441 { ac_try='test -s conftest$ac_exeext'
9442 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9443 (eval $ac_try) 2>&5
9444 ac_status=$?
9445 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9446 (exit $ac_status); }; }; then
9447 cat >>confdefs.h <<\_ACEOF
9448@%:@define HAVE_OPENSSL 1
9449_ACEOF
9450
9451else
9452 echo "$as_me: failed program was:" >&5
9453sed 's/^/| /' conftest.$ac_ext >&5
9454
9455
9456 if test -n "${need_dash_r}"; then
9457 LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib ${saved_LDFLAGS}"
9458 else
9459 LDFLAGS="-L/usr/local/ssl/lib ${saved_LDFLAGS}"
9460 fi
9461 CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}"
9462 cat >conftest.$ac_ext <<_ACEOF
9463#line $LINENO "configure"
9464/* confdefs.h. */
9465_ACEOF
9466cat confdefs.h >>conftest.$ac_ext
9467cat >>conftest.$ac_ext <<_ACEOF
9468/* end confdefs.h. */
9469
9470/* Override any gcc2 internal prototype to avoid an error. */
9471#ifdef __cplusplus
9472extern "C"
9473#endif
9474/* We use char because int might match the return type of a gcc2
9475 builtin and then its argument prototype would still apply. */
9476char RAND_add ();
9477int
9478main ()
9479{
9480RAND_add ();
9481 ;
9482 return 0;
9483}
9484_ACEOF
9485rm -f conftest.$ac_objext conftest$ac_exeext
9486if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9487 (eval $ac_link) 2>&5
9488 ac_status=$?
9489 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9490 (exit $ac_status); } &&
9491 { ac_try='test -s conftest$ac_exeext'
9492 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9493 (eval $ac_try) 2>&5
9494 ac_status=$?
9495 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9496 (exit $ac_status); }; }; then
9497 cat >>confdefs.h <<\_ACEOF
9498@%:@define HAVE_OPENSSL 1
9499_ACEOF
9500
9501else
9502 echo "$as_me: failed program was:" >&5
9503sed 's/^/| /' conftest.$ac_ext >&5
9504
9505
9506 { { echo "$as_me:$LINENO: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***" >&5
9507echo "$as_me: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***" >&2;}
9508 { (exit 1); exit 1; }; }
9509
9510
9511fi
9512rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9513
9514
9515fi
9516rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9517
9518# Determine OpenSSL header version
9519echo "$as_me:$LINENO: checking OpenSSL header version" >&5
9520echo $ECHO_N "checking OpenSSL header version... $ECHO_C" >&6
9521if test "$cross_compiling" = yes; then
9522 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
9523See \`config.log' for more details." >&5
9524echo "$as_me: error: cannot run test program while cross compiling
9525See \`config.log' for more details." >&2;}
9526 { (exit 1); exit 1; }; }
9527else
9528 cat >conftest.$ac_ext <<_ACEOF
9529#line $LINENO "configure"
9530/* confdefs.h. */
9531_ACEOF
9532cat confdefs.h >>conftest.$ac_ext
9533cat >>conftest.$ac_ext <<_ACEOF
9534/* end confdefs.h. */
9535
9536#include <stdio.h>
9537#include <string.h>
9538#include <openssl/opensslv.h>
9539#define DATA "conftest.sslincver"
9540int main(void) {
9541 FILE *fd;
9542 int rc;
9543
9544 fd = fopen(DATA,"w");
9545 if(fd == NULL)
9546 exit(1);
9547
9548 if ((rc = fprintf(fd ,"%x (%s)\n", OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT)) <0)
9549 exit(1);
9550
9551 exit(0);
9552}
9553
9554_ACEOF
9555rm -f conftest$ac_exeext
9556if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9557 (eval $ac_link) 2>&5
9558 ac_status=$?
9559 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9560 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9561 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9562 (eval $ac_try) 2>&5
9563 ac_status=$?
9564 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9565 (exit $ac_status); }; }; then
9566
9567 ssl_header_ver=`cat conftest.sslincver`
9568 echo "$as_me:$LINENO: result: $ssl_header_ver" >&5
9569echo "${ECHO_T}$ssl_header_ver" >&6
9570
9571else
9572 echo "$as_me: program exited with status $ac_status" >&5
9573echo "$as_me: failed program was:" >&5
9574sed 's/^/| /' conftest.$ac_ext >&5
9575
9576( exit $ac_status )
9577
9578 echo "$as_me:$LINENO: result: not found" >&5
9579echo "${ECHO_T}not found" >&6
9580 { { echo "$as_me:$LINENO: error: OpenSSL version header not found." >&5
9581echo "$as_me: error: OpenSSL version header not found." >&2;}
9582 { (exit 1); exit 1; }; }
9583
9584
9585fi
9586rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9587fi
9588
9589# Determine OpenSSL library version
9590echo "$as_me:$LINENO: checking OpenSSL library version" >&5
9591echo $ECHO_N "checking OpenSSL library version... $ECHO_C" >&6
9592if test "$cross_compiling" = yes; then
9593 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
9594See \`config.log' for more details." >&5
9595echo "$as_me: error: cannot run test program while cross compiling
9596See \`config.log' for more details." >&2;}
9597 { (exit 1); exit 1; }; }
9598else
9599 cat >conftest.$ac_ext <<_ACEOF
9600#line $LINENO "configure"
9601/* confdefs.h. */
9602_ACEOF
9603cat confdefs.h >>conftest.$ac_ext
9604cat >>conftest.$ac_ext <<_ACEOF
9605/* end confdefs.h. */
9606
9607#include <stdio.h>
9608#include <string.h>
9609#include <openssl/opensslv.h>
9610#include <openssl/crypto.h>
9611#define DATA "conftest.ssllibver"
9612int main(void) {
9613 FILE *fd;
9614 int rc;
9615
9616 fd = fopen(DATA,"w");
9617 if(fd == NULL)
9618 exit(1);
9619
9620 if ((rc = fprintf(fd ,"%x (%s)\n", SSLeay(), SSLeay_version(SSLEAY_VERSION))) <0)
9621 exit(1);
9622
9623 exit(0);
9624}
9625
9626_ACEOF
9627rm -f conftest$ac_exeext
9628if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9629 (eval $ac_link) 2>&5
9630 ac_status=$?
9631 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9632 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9633 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9634 (eval $ac_try) 2>&5
9635 ac_status=$?
9636 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9637 (exit $ac_status); }; }; then
9638
9639 ssl_library_ver=`cat conftest.ssllibver`
9640 echo "$as_me:$LINENO: result: $ssl_library_ver" >&5
9641echo "${ECHO_T}$ssl_library_ver" >&6
9642
9643else
9644 echo "$as_me: program exited with status $ac_status" >&5
9645echo "$as_me: failed program was:" >&5
9646sed 's/^/| /' conftest.$ac_ext >&5
9647
9648( exit $ac_status )
9649
9650 echo "$as_me:$LINENO: result: not found" >&5
9651echo "${ECHO_T}not found" >&6
9652 { { echo "$as_me:$LINENO: error: OpenSSL library not found." >&5
9653echo "$as_me: error: OpenSSL library not found." >&2;}
9654 { (exit 1); exit 1; }; }
9655
9656
9657fi
9658rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9659fi
9660
9661# Sanity check OpenSSL headers
9662echo "$as_me:$LINENO: checking whether OpenSSL's headers match the library" >&5
9663echo $ECHO_N "checking whether OpenSSL's headers match the library... $ECHO_C" >&6
9664if test "$cross_compiling" = yes; then
9665 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
9666See \`config.log' for more details." >&5
9667echo "$as_me: error: cannot run test program while cross compiling
9668See \`config.log' for more details." >&2;}
9669 { (exit 1); exit 1; }; }
9670else
9671 cat >conftest.$ac_ext <<_ACEOF
9672#line $LINENO "configure"
9673/* confdefs.h. */
9674_ACEOF
9675cat confdefs.h >>conftest.$ac_ext
9676cat >>conftest.$ac_ext <<_ACEOF
9677/* end confdefs.h. */
9678
9679#include <string.h>
9680#include <openssl/opensslv.h>
9681int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }
9682
9683_ACEOF
9684rm -f conftest$ac_exeext
9685if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9686 (eval $ac_link) 2>&5
9687 ac_status=$?
9688 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9689 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9690 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9691 (eval $ac_try) 2>&5
9692 ac_status=$?
9693 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9694 (exit $ac_status); }; }; then
9695
9696 echo "$as_me:$LINENO: result: yes" >&5
9697echo "${ECHO_T}yes" >&6
9698
9699else
9700 echo "$as_me: program exited with status $ac_status" >&5
9701echo "$as_me: failed program was:" >&5
9702sed 's/^/| /' conftest.$ac_ext >&5
9703
9704( exit $ac_status )
9705
9706 echo "$as_me:$LINENO: result: no" >&5
9707echo "${ECHO_T}no" >&6
9708 { { echo "$as_me:$LINENO: error: Your OpenSSL headers do not match your library" >&5
9709echo "$as_me: error: Your OpenSSL headers do not match your library" >&2;}
9710 { (exit 1); exit 1; }; }
9711
9712
9713fi
9714rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9715fi
9716
9717# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the
9718# version in OpenSSL. Skip this for PAM
9719if test "x$PAM_MSG" = "xno" -a "x$check_for_libcrypt_later" = "x1"; then
9720 echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
9721echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
9722if test "${ac_cv_lib_crypt_crypt+set}" = set; then
9723 echo $ECHO_N "(cached) $ECHO_C" >&6
9724else
9725 ac_check_lib_save_LIBS=$LIBS
9726LIBS="-lcrypt $LIBS"
9727cat >conftest.$ac_ext <<_ACEOF
9728#line $LINENO "configure"
9729/* confdefs.h. */
9730_ACEOF
9731cat confdefs.h >>conftest.$ac_ext
9732cat >>conftest.$ac_ext <<_ACEOF
9733/* end confdefs.h. */
9734
9735/* Override any gcc2 internal prototype to avoid an error. */
9736#ifdef __cplusplus
9737extern "C"
9738#endif
9739/* We use char because int might match the return type of a gcc2
9740 builtin and then its argument prototype would still apply. */
9741char crypt ();
9742int
9743main ()
9744{
9745crypt ();
9746 ;
9747 return 0;
9748}
9749_ACEOF
9750rm -f conftest.$ac_objext conftest$ac_exeext
9751if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9752 (eval $ac_link) 2>&5
9753 ac_status=$?
9754 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9755 (exit $ac_status); } &&
9756 { ac_try='test -s conftest$ac_exeext'
9757 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9758 (eval $ac_try) 2>&5
9759 ac_status=$?
9760 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9761 (exit $ac_status); }; }; then
9762 ac_cv_lib_crypt_crypt=yes
9763else
9764 echo "$as_me: failed program was:" >&5
9765sed 's/^/| /' conftest.$ac_ext >&5
9766
9767ac_cv_lib_crypt_crypt=no
9768fi
9769rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
9770LIBS=$ac_check_lib_save_LIBS
9771fi
9772echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
9773echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
9774if test $ac_cv_lib_crypt_crypt = yes; then
9775 LIBS="$LIBS -lcrypt"
9776fi
9777
9778fi
9779
9780
9781### Configure cryptographic random number support
9782
9783# Check wheter OpenSSL seeds itself
9784echo "$as_me:$LINENO: checking whether OpenSSL's PRNG is internally seeded" >&5
9785echo $ECHO_N "checking whether OpenSSL's PRNG is internally seeded... $ECHO_C" >&6
9786if test "$cross_compiling" = yes; then
9787 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
9788See \`config.log' for more details." >&5
9789echo "$as_me: error: cannot run test program while cross compiling
9790See \`config.log' for more details." >&2;}
9791 { (exit 1); exit 1; }; }
9792else
9793 cat >conftest.$ac_ext <<_ACEOF
9794#line $LINENO "configure"
9795/* confdefs.h. */
9796_ACEOF
9797cat confdefs.h >>conftest.$ac_ext
9798cat >>conftest.$ac_ext <<_ACEOF
9799/* end confdefs.h. */
9800
9801#include <string.h>
9802#include <openssl/rand.h>
9803int main(void) { exit(RAND_status() == 1 ? 0 : 1); }
9804
9805_ACEOF
9806rm -f conftest$ac_exeext
9807if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9808 (eval $ac_link) 2>&5
9809 ac_status=$?
9810 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9811 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
9812 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9813 (eval $ac_try) 2>&5
9814 ac_status=$?
9815 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9816 (exit $ac_status); }; }; then
9817
9818 OPENSSL_SEEDS_ITSELF=yes
9819 echo "$as_me:$LINENO: result: yes" >&5
9820echo "${ECHO_T}yes" >&6
9821
9822else
9823 echo "$as_me: program exited with status $ac_status" >&5
9824echo "$as_me: failed program was:" >&5
9825sed 's/^/| /' conftest.$ac_ext >&5
9826
9827( exit $ac_status )
9828
9829 echo "$as_me:$LINENO: result: no" >&5
9830echo "${ECHO_T}no" >&6
9831 # Default to use of the rand helper if OpenSSL doesn't
9832 # seed itself
9833 USE_RAND_HELPER=yes
9834
9835
9836fi
9837rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
9838fi
9839
9840
9841# Do we want to force the use of the rand helper?
9842
9843# Check whether --with-rand-helper or --without-rand-helper was given.
9844if test "${with_rand_helper+set}" = set; then
9845 withval="$with_rand_helper"
9846
9847 if test "x$withval" = "xno" ; then
9848 # Force use of OpenSSL's internal RNG, even if
9849 # the previous test showed it to be unseeded.
9850 if test -z "$OPENSSL_SEEDS_ITSELF" ; then
9851 { echo "$as_me:$LINENO: WARNING: *** Forcing use of OpenSSL's non-self-seeding PRNG" >&5
9852echo "$as_me: WARNING: *** Forcing use of OpenSSL's non-self-seeding PRNG" >&2;}
9853 OPENSSL_SEEDS_ITSELF=yes
9854 USE_RAND_HELPER=""
9855 fi
9856 else
9857 USE_RAND_HELPER=yes
9858 fi
9859
9860fi;
9861
9862# Which randomness source do we use?
9863if test ! -z "$OPENSSL_SEEDS_ITSELF" -a -z "$USE_RAND_HELPER" ; then
9864 # OpenSSL only
9865 cat >>confdefs.h <<\_ACEOF
9866@%:@define OPENSSL_PRNG_ONLY 1
9867_ACEOF
9868
9869 RAND_MSG="OpenSSL internal ONLY"
9870 INSTALL_SSH_RAND_HELPER=""
9871elif test ! -z "$USE_RAND_HELPER" ; then
9872 # install rand helper
9873 RAND_MSG="ssh-rand-helper"
9874 INSTALL_SSH_RAND_HELPER="yes"
9875fi
9876
9877
9878### Configuration of ssh-rand-helper
9879
9880# PRNGD TCP socket
9881
9882# Check whether --with-prngd-port or --without-prngd-port was given.
9883if test "${with_prngd_port+set}" = set; then
9884 withval="$with_prngd_port"
9885
9886 case "$withval" in
9887 no)
9888 withval=""
9889 ;;
9890 [0-9]*)
9891 ;;
9892 *)
9893 { { echo "$as_me:$LINENO: error: You must specify a numeric port number for --with-prngd-port" >&5
9894echo "$as_me: error: You must specify a numeric port number for --with-prngd-port" >&2;}
9895 { (exit 1); exit 1; }; }
9896 ;;
9897 esac
9898 if test ! -z "$withval" ; then
9899 PRNGD_PORT="$withval"
9900 cat >>confdefs.h <<_ACEOF
9901@%:@define PRNGD_PORT $PRNGD_PORT
9902_ACEOF
9903
9904 fi
9905
9906
9907fi;
9908
9909# PRNGD Unix domain socket
9910
9911# Check whether --with-prngd-socket or --without-prngd-socket was given.
9912if test "${with_prngd_socket+set}" = set; then
9913 withval="$with_prngd_socket"
9914
9915 case "$withval" in
9916 yes)
9917 withval="/var/run/egd-pool"
9918 ;;
9919 no)
9920 withval=""
9921 ;;
9922 /*)
9923 ;;
9924 *)
9925 { { echo "$as_me:$LINENO: error: You must specify an absolute path to the entropy socket" >&5
9926echo "$as_me: error: You must specify an absolute path to the entropy socket" >&2;}
9927 { (exit 1); exit 1; }; }
9928 ;;
9929 esac
9930
9931 if test ! -z "$withval" ; then
9932 if test ! -z "$PRNGD_PORT" ; then
9933 { { echo "$as_me:$LINENO: error: You may not specify both a PRNGD/EGD port and socket" >&5
9934echo "$as_me: error: You may not specify both a PRNGD/EGD port and socket" >&2;}
9935 { (exit 1); exit 1; }; }
9936 fi
9937 if test ! -r "$withval" ; then
9938 { echo "$as_me:$LINENO: WARNING: Entropy socket is not readable" >&5
9939echo "$as_me: WARNING: Entropy socket is not readable" >&2;}
9940 fi
9941 PRNGD_SOCKET="$withval"
9942 cat >>confdefs.h <<_ACEOF
9943@%:@define PRNGD_SOCKET "$PRNGD_SOCKET"
9944_ACEOF
9945
9946 fi
9947
9948else
9949
9950 # Check for existing socket only if we don't have a random device already
9951 if test "$USE_RAND_HELPER" = yes ; then
9952 echo "$as_me:$LINENO: checking for PRNGD/EGD socket" >&5
9953echo $ECHO_N "checking for PRNGD/EGD socket... $ECHO_C" >&6
9954 # Insert other locations here
9955 for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do
9956 if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then
9957 PRNGD_SOCKET="$sock"
9958 cat >>confdefs.h <<_ACEOF
9959@%:@define PRNGD_SOCKET "$PRNGD_SOCKET"
9960_ACEOF
9961
9962 break;
9963 fi
9964 done
9965 if test ! -z "$PRNGD_SOCKET" ; then
9966 echo "$as_me:$LINENO: result: $PRNGD_SOCKET" >&5
9967echo "${ECHO_T}$PRNGD_SOCKET" >&6
9968 else
9969 echo "$as_me:$LINENO: result: not found" >&5
9970echo "${ECHO_T}not found" >&6
9971 fi
9972 fi
9973
9974
9975fi;
9976
9977# Change default command timeout for hashing entropy source
9978entropy_timeout=200
9979
9980# Check whether --with-entropy-timeout or --without-entropy-timeout was given.
9981if test "${with_entropy_timeout+set}" = set; then
9982 withval="$with_entropy_timeout"
9983
9984 if test "x$withval" != "xno" ; then
9985 entropy_timeout=$withval
9986 fi
9987
9988
9989fi;
9990cat >>confdefs.h <<_ACEOF
9991@%:@define ENTROPY_TIMEOUT_MSEC $entropy_timeout
9992_ACEOF
9993
9994
9995SSH_PRIVSEP_USER=sshd
9996
9997# Check whether --with-privsep-user or --without-privsep-user was given.
9998if test "${with_privsep_user+set}" = set; then
9999 withval="$with_privsep_user"
10000
10001 if test -n "$withval"; then
10002 SSH_PRIVSEP_USER=$withval
10003 fi
10004
10005
10006fi;
10007cat >>confdefs.h <<_ACEOF
10008@%:@define SSH_PRIVSEP_USER "$SSH_PRIVSEP_USER"
10009_ACEOF
10010
10011
10012
10013# We do this little dance with the search path to insure
10014# that programs that we select for use by installed programs
10015# (which may be run by the super-user) come from trusted
10016# locations before they come from the user's private area.
10017# This should help avoid accidentally configuring some
10018# random version of a program in someone's personal bin.
10019
10020OPATH=$PATH
10021PATH=/bin:/usr/bin
10022test -h /bin 2> /dev/null && PATH=/usr/bin
10023test -d /sbin && PATH=$PATH:/sbin
10024test -d /usr/sbin && PATH=$PATH:/usr/sbin
10025PATH=$PATH:/etc:$OPATH
10026
10027# These programs are used by the command hashing source to gather entropy
10028
10029 # Extract the first word of "ls", so it can be a program name with args.
10030set dummy ls; ac_word=$2
10031echo "$as_me:$LINENO: checking for $ac_word" >&5
10032echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10033if test "${ac_cv_path_PROG_LS+set}" = set; then
10034 echo $ECHO_N "(cached) $ECHO_C" >&6
10035else
10036 case $PROG_LS in
10037 [\\/]* | ?:[\\/]*)
10038 ac_cv_path_PROG_LS="$PROG_LS" # Let the user override the test with a path.
10039 ;;
10040 *)
10041 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10042for as_dir in $PATH
10043do
10044 IFS=$as_save_IFS
10045 test -z "$as_dir" && as_dir=.
10046 for ac_exec_ext in '' $ac_executable_extensions; do
10047 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10048 ac_cv_path_PROG_LS="$as_dir/$ac_word$ac_exec_ext"
10049 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10050 break 2
10051 fi
10052done
10053done
10054
10055 ;;
10056esac
10057fi
10058PROG_LS=$ac_cv_path_PROG_LS
10059
10060if test -n "$PROG_LS"; then
10061 echo "$as_me:$LINENO: result: $PROG_LS" >&5
10062echo "${ECHO_T}$PROG_LS" >&6
10063else
10064 echo "$as_me:$LINENO: result: no" >&5
10065echo "${ECHO_T}no" >&6
10066fi
10067
10068 if test -z "$PROG_LS" ; then
10069 PROG_LS="undef"
10070 fi
10071
10072
10073
10074 # Extract the first word of "netstat", so it can be a program name with args.
10075set dummy netstat; ac_word=$2
10076echo "$as_me:$LINENO: checking for $ac_word" >&5
10077echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10078if test "${ac_cv_path_PROG_NETSTAT+set}" = set; then
10079 echo $ECHO_N "(cached) $ECHO_C" >&6
10080else
10081 case $PROG_NETSTAT in
10082 [\\/]* | ?:[\\/]*)
10083 ac_cv_path_PROG_NETSTAT="$PROG_NETSTAT" # Let the user override the test with a path.
10084 ;;
10085 *)
10086 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10087for as_dir in $PATH
10088do
10089 IFS=$as_save_IFS
10090 test -z "$as_dir" && as_dir=.
10091 for ac_exec_ext in '' $ac_executable_extensions; do
10092 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10093 ac_cv_path_PROG_NETSTAT="$as_dir/$ac_word$ac_exec_ext"
10094 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10095 break 2
10096 fi
10097done
10098done
10099
10100 ;;
10101esac
10102fi
10103PROG_NETSTAT=$ac_cv_path_PROG_NETSTAT
10104
10105if test -n "$PROG_NETSTAT"; then
10106 echo "$as_me:$LINENO: result: $PROG_NETSTAT" >&5
10107echo "${ECHO_T}$PROG_NETSTAT" >&6
10108else
10109 echo "$as_me:$LINENO: result: no" >&5
10110echo "${ECHO_T}no" >&6
10111fi
10112
10113 if test -z "$PROG_NETSTAT" ; then
10114 PROG_NETSTAT="undef"
10115 fi
10116
10117
10118
10119 # Extract the first word of "arp", so it can be a program name with args.
10120set dummy arp; ac_word=$2
10121echo "$as_me:$LINENO: checking for $ac_word" >&5
10122echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10123if test "${ac_cv_path_PROG_ARP+set}" = set; then
10124 echo $ECHO_N "(cached) $ECHO_C" >&6
10125else
10126 case $PROG_ARP in
10127 [\\/]* | ?:[\\/]*)
10128 ac_cv_path_PROG_ARP="$PROG_ARP" # Let the user override the test with a path.
10129 ;;
10130 *)
10131 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10132for as_dir in $PATH
10133do
10134 IFS=$as_save_IFS
10135 test -z "$as_dir" && as_dir=.
10136 for ac_exec_ext in '' $ac_executable_extensions; do
10137 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10138 ac_cv_path_PROG_ARP="$as_dir/$ac_word$ac_exec_ext"
10139 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10140 break 2
10141 fi
10142done
10143done
10144
10145 ;;
10146esac
10147fi
10148PROG_ARP=$ac_cv_path_PROG_ARP
10149
10150if test -n "$PROG_ARP"; then
10151 echo "$as_me:$LINENO: result: $PROG_ARP" >&5
10152echo "${ECHO_T}$PROG_ARP" >&6
10153else
10154 echo "$as_me:$LINENO: result: no" >&5
10155echo "${ECHO_T}no" >&6
10156fi
10157
10158 if test -z "$PROG_ARP" ; then
10159 PROG_ARP="undef"
10160 fi
10161
10162
10163
10164 # Extract the first word of "ifconfig", so it can be a program name with args.
10165set dummy ifconfig; ac_word=$2
10166echo "$as_me:$LINENO: checking for $ac_word" >&5
10167echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10168if test "${ac_cv_path_PROG_IFCONFIG+set}" = set; then
10169 echo $ECHO_N "(cached) $ECHO_C" >&6
10170else
10171 case $PROG_IFCONFIG in
10172 [\\/]* | ?:[\\/]*)
10173 ac_cv_path_PROG_IFCONFIG="$PROG_IFCONFIG" # Let the user override the test with a path.
10174 ;;
10175 *)
10176 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10177for as_dir in $PATH
10178do
10179 IFS=$as_save_IFS
10180 test -z "$as_dir" && as_dir=.
10181 for ac_exec_ext in '' $ac_executable_extensions; do
10182 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10183 ac_cv_path_PROG_IFCONFIG="$as_dir/$ac_word$ac_exec_ext"
10184 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10185 break 2
10186 fi
10187done
10188done
10189
10190 ;;
10191esac
10192fi
10193PROG_IFCONFIG=$ac_cv_path_PROG_IFCONFIG
10194
10195if test -n "$PROG_IFCONFIG"; then
10196 echo "$as_me:$LINENO: result: $PROG_IFCONFIG" >&5
10197echo "${ECHO_T}$PROG_IFCONFIG" >&6
10198else
10199 echo "$as_me:$LINENO: result: no" >&5
10200echo "${ECHO_T}no" >&6
10201fi
10202
10203 if test -z "$PROG_IFCONFIG" ; then
10204 PROG_IFCONFIG="undef"
10205 fi
10206
10207
10208
10209 # Extract the first word of "jstat", so it can be a program name with args.
10210set dummy jstat; ac_word=$2
10211echo "$as_me:$LINENO: checking for $ac_word" >&5
10212echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10213if test "${ac_cv_path_PROG_JSTAT+set}" = set; then
10214 echo $ECHO_N "(cached) $ECHO_C" >&6
10215else
10216 case $PROG_JSTAT in
10217 [\\/]* | ?:[\\/]*)
10218 ac_cv_path_PROG_JSTAT="$PROG_JSTAT" # Let the user override the test with a path.
10219 ;;
10220 *)
10221 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10222for as_dir in $PATH
10223do
10224 IFS=$as_save_IFS
10225 test -z "$as_dir" && as_dir=.
10226 for ac_exec_ext in '' $ac_executable_extensions; do
10227 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10228 ac_cv_path_PROG_JSTAT="$as_dir/$ac_word$ac_exec_ext"
10229 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10230 break 2
10231 fi
10232done
10233done
10234
10235 ;;
10236esac
10237fi
10238PROG_JSTAT=$ac_cv_path_PROG_JSTAT
10239
10240if test -n "$PROG_JSTAT"; then
10241 echo "$as_me:$LINENO: result: $PROG_JSTAT" >&5
10242echo "${ECHO_T}$PROG_JSTAT" >&6
10243else
10244 echo "$as_me:$LINENO: result: no" >&5
10245echo "${ECHO_T}no" >&6
10246fi
10247
10248 if test -z "$PROG_JSTAT" ; then
10249 PROG_JSTAT="undef"
10250 fi
10251
10252
10253
10254 # Extract the first word of "ps", so it can be a program name with args.
10255set dummy ps; ac_word=$2
10256echo "$as_me:$LINENO: checking for $ac_word" >&5
10257echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10258if test "${ac_cv_path_PROG_PS+set}" = set; then
10259 echo $ECHO_N "(cached) $ECHO_C" >&6
10260else
10261 case $PROG_PS in
10262 [\\/]* | ?:[\\/]*)
10263 ac_cv_path_PROG_PS="$PROG_PS" # Let the user override the test with a path.
10264 ;;
10265 *)
10266 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10267for as_dir in $PATH
10268do
10269 IFS=$as_save_IFS
10270 test -z "$as_dir" && as_dir=.
10271 for ac_exec_ext in '' $ac_executable_extensions; do
10272 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10273 ac_cv_path_PROG_PS="$as_dir/$ac_word$ac_exec_ext"
10274 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10275 break 2
10276 fi
10277done
10278done
10279
10280 ;;
10281esac
10282fi
10283PROG_PS=$ac_cv_path_PROG_PS
10284
10285if test -n "$PROG_PS"; then
10286 echo "$as_me:$LINENO: result: $PROG_PS" >&5
10287echo "${ECHO_T}$PROG_PS" >&6
10288else
10289 echo "$as_me:$LINENO: result: no" >&5
10290echo "${ECHO_T}no" >&6
10291fi
10292
10293 if test -z "$PROG_PS" ; then
10294 PROG_PS="undef"
10295 fi
10296
10297
10298
10299 # Extract the first word of "sar", so it can be a program name with args.
10300set dummy sar; ac_word=$2
10301echo "$as_me:$LINENO: checking for $ac_word" >&5
10302echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10303if test "${ac_cv_path_PROG_SAR+set}" = set; then
10304 echo $ECHO_N "(cached) $ECHO_C" >&6
10305else
10306 case $PROG_SAR in
10307 [\\/]* | ?:[\\/]*)
10308 ac_cv_path_PROG_SAR="$PROG_SAR" # Let the user override the test with a path.
10309 ;;
10310 *)
10311 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10312for as_dir in $PATH
10313do
10314 IFS=$as_save_IFS
10315 test -z "$as_dir" && as_dir=.
10316 for ac_exec_ext in '' $ac_executable_extensions; do
10317 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10318 ac_cv_path_PROG_SAR="$as_dir/$ac_word$ac_exec_ext"
10319 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10320 break 2
10321 fi
10322done
10323done
10324
10325 ;;
10326esac
10327fi
10328PROG_SAR=$ac_cv_path_PROG_SAR
10329
10330if test -n "$PROG_SAR"; then
10331 echo "$as_me:$LINENO: result: $PROG_SAR" >&5
10332echo "${ECHO_T}$PROG_SAR" >&6
10333else
10334 echo "$as_me:$LINENO: result: no" >&5
10335echo "${ECHO_T}no" >&6
10336fi
10337
10338 if test -z "$PROG_SAR" ; then
10339 PROG_SAR="undef"
10340 fi
10341
10342
10343
10344 # Extract the first word of "w", so it can be a program name with args.
10345set dummy w; ac_word=$2
10346echo "$as_me:$LINENO: checking for $ac_word" >&5
10347echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10348if test "${ac_cv_path_PROG_W+set}" = set; then
10349 echo $ECHO_N "(cached) $ECHO_C" >&6
10350else
10351 case $PROG_W in
10352 [\\/]* | ?:[\\/]*)
10353 ac_cv_path_PROG_W="$PROG_W" # Let the user override the test with a path.
10354 ;;
10355 *)
10356 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10357for as_dir in $PATH
10358do
10359 IFS=$as_save_IFS
10360 test -z "$as_dir" && as_dir=.
10361 for ac_exec_ext in '' $ac_executable_extensions; do
10362 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10363 ac_cv_path_PROG_W="$as_dir/$ac_word$ac_exec_ext"
10364 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10365 break 2
10366 fi
10367done
10368done
10369
10370 ;;
10371esac
10372fi
10373PROG_W=$ac_cv_path_PROG_W
10374
10375if test -n "$PROG_W"; then
10376 echo "$as_me:$LINENO: result: $PROG_W" >&5
10377echo "${ECHO_T}$PROG_W" >&6
10378else
10379 echo "$as_me:$LINENO: result: no" >&5
10380echo "${ECHO_T}no" >&6
10381fi
10382
10383 if test -z "$PROG_W" ; then
10384 PROG_W="undef"
10385 fi
10386
10387
10388
10389 # Extract the first word of "who", so it can be a program name with args.
10390set dummy who; ac_word=$2
10391echo "$as_me:$LINENO: checking for $ac_word" >&5
10392echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10393if test "${ac_cv_path_PROG_WHO+set}" = set; then
10394 echo $ECHO_N "(cached) $ECHO_C" >&6
10395else
10396 case $PROG_WHO in
10397 [\\/]* | ?:[\\/]*)
10398 ac_cv_path_PROG_WHO="$PROG_WHO" # Let the user override the test with a path.
10399 ;;
10400 *)
10401 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10402for as_dir in $PATH
10403do
10404 IFS=$as_save_IFS
10405 test -z "$as_dir" && as_dir=.
10406 for ac_exec_ext in '' $ac_executable_extensions; do
10407 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10408 ac_cv_path_PROG_WHO="$as_dir/$ac_word$ac_exec_ext"
10409 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10410 break 2
10411 fi
10412done
10413done
10414
10415 ;;
10416esac
10417fi
10418PROG_WHO=$ac_cv_path_PROG_WHO
10419
10420if test -n "$PROG_WHO"; then
10421 echo "$as_me:$LINENO: result: $PROG_WHO" >&5
10422echo "${ECHO_T}$PROG_WHO" >&6
10423else
10424 echo "$as_me:$LINENO: result: no" >&5
10425echo "${ECHO_T}no" >&6
10426fi
10427
10428 if test -z "$PROG_WHO" ; then
10429 PROG_WHO="undef"
10430 fi
10431
10432
10433
10434 # Extract the first word of "last", so it can be a program name with args.
10435set dummy last; ac_word=$2
10436echo "$as_me:$LINENO: checking for $ac_word" >&5
10437echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10438if test "${ac_cv_path_PROG_LAST+set}" = set; then
10439 echo $ECHO_N "(cached) $ECHO_C" >&6
10440else
10441 case $PROG_LAST in
10442 [\\/]* | ?:[\\/]*)
10443 ac_cv_path_PROG_LAST="$PROG_LAST" # Let the user override the test with a path.
10444 ;;
10445 *)
10446 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10447for as_dir in $PATH
10448do
10449 IFS=$as_save_IFS
10450 test -z "$as_dir" && as_dir=.
10451 for ac_exec_ext in '' $ac_executable_extensions; do
10452 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10453 ac_cv_path_PROG_LAST="$as_dir/$ac_word$ac_exec_ext"
10454 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10455 break 2
10456 fi
10457done
10458done
10459
10460 ;;
10461esac
10462fi
10463PROG_LAST=$ac_cv_path_PROG_LAST
10464
10465if test -n "$PROG_LAST"; then
10466 echo "$as_me:$LINENO: result: $PROG_LAST" >&5
10467echo "${ECHO_T}$PROG_LAST" >&6
10468else
10469 echo "$as_me:$LINENO: result: no" >&5
10470echo "${ECHO_T}no" >&6
10471fi
10472
10473 if test -z "$PROG_LAST" ; then
10474 PROG_LAST="undef"
10475 fi
10476
10477
10478
10479 # Extract the first word of "lastlog", so it can be a program name with args.
10480set dummy lastlog; ac_word=$2
10481echo "$as_me:$LINENO: checking for $ac_word" >&5
10482echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10483if test "${ac_cv_path_PROG_LASTLOG+set}" = set; then
10484 echo $ECHO_N "(cached) $ECHO_C" >&6
10485else
10486 case $PROG_LASTLOG in
10487 [\\/]* | ?:[\\/]*)
10488 ac_cv_path_PROG_LASTLOG="$PROG_LASTLOG" # Let the user override the test with a path.
10489 ;;
10490 *)
10491 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10492for as_dir in $PATH
10493do
10494 IFS=$as_save_IFS
10495 test -z "$as_dir" && as_dir=.
10496 for ac_exec_ext in '' $ac_executable_extensions; do
10497 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10498 ac_cv_path_PROG_LASTLOG="$as_dir/$ac_word$ac_exec_ext"
10499 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10500 break 2
10501 fi
10502done
10503done
10504
10505 ;;
10506esac
10507fi
10508PROG_LASTLOG=$ac_cv_path_PROG_LASTLOG
10509
10510if test -n "$PROG_LASTLOG"; then
10511 echo "$as_me:$LINENO: result: $PROG_LASTLOG" >&5
10512echo "${ECHO_T}$PROG_LASTLOG" >&6
10513else
10514 echo "$as_me:$LINENO: result: no" >&5
10515echo "${ECHO_T}no" >&6
10516fi
10517
10518 if test -z "$PROG_LASTLOG" ; then
10519 PROG_LASTLOG="undef"
10520 fi
10521
10522
10523
10524 # Extract the first word of "df", so it can be a program name with args.
10525set dummy df; ac_word=$2
10526echo "$as_me:$LINENO: checking for $ac_word" >&5
10527echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10528if test "${ac_cv_path_PROG_DF+set}" = set; then
10529 echo $ECHO_N "(cached) $ECHO_C" >&6
10530else
10531 case $PROG_DF in
10532 [\\/]* | ?:[\\/]*)
10533 ac_cv_path_PROG_DF="$PROG_DF" # Let the user override the test with a path.
10534 ;;
10535 *)
10536 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10537for as_dir in $PATH
10538do
10539 IFS=$as_save_IFS
10540 test -z "$as_dir" && as_dir=.
10541 for ac_exec_ext in '' $ac_executable_extensions; do
10542 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10543 ac_cv_path_PROG_DF="$as_dir/$ac_word$ac_exec_ext"
10544 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10545 break 2
10546 fi
10547done
10548done
10549
10550 ;;
10551esac
10552fi
10553PROG_DF=$ac_cv_path_PROG_DF
10554
10555if test -n "$PROG_DF"; then
10556 echo "$as_me:$LINENO: result: $PROG_DF" >&5
10557echo "${ECHO_T}$PROG_DF" >&6
10558else
10559 echo "$as_me:$LINENO: result: no" >&5
10560echo "${ECHO_T}no" >&6
10561fi
10562
10563 if test -z "$PROG_DF" ; then
10564 PROG_DF="undef"
10565 fi
10566
10567
10568
10569 # Extract the first word of "vmstat", so it can be a program name with args.
10570set dummy vmstat; ac_word=$2
10571echo "$as_me:$LINENO: checking for $ac_word" >&5
10572echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10573if test "${ac_cv_path_PROG_VMSTAT+set}" = set; then
10574 echo $ECHO_N "(cached) $ECHO_C" >&6
10575else
10576 case $PROG_VMSTAT in
10577 [\\/]* | ?:[\\/]*)
10578 ac_cv_path_PROG_VMSTAT="$PROG_VMSTAT" # Let the user override the test with a path.
10579 ;;
10580 *)
10581 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10582for as_dir in $PATH
10583do
10584 IFS=$as_save_IFS
10585 test -z "$as_dir" && as_dir=.
10586 for ac_exec_ext in '' $ac_executable_extensions; do
10587 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10588 ac_cv_path_PROG_VMSTAT="$as_dir/$ac_word$ac_exec_ext"
10589 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10590 break 2
10591 fi
10592done
10593done
10594
10595 ;;
10596esac
10597fi
10598PROG_VMSTAT=$ac_cv_path_PROG_VMSTAT
10599
10600if test -n "$PROG_VMSTAT"; then
10601 echo "$as_me:$LINENO: result: $PROG_VMSTAT" >&5
10602echo "${ECHO_T}$PROG_VMSTAT" >&6
10603else
10604 echo "$as_me:$LINENO: result: no" >&5
10605echo "${ECHO_T}no" >&6
10606fi
10607
10608 if test -z "$PROG_VMSTAT" ; then
10609 PROG_VMSTAT="undef"
10610 fi
10611
10612
10613
10614 # Extract the first word of "uptime", so it can be a program name with args.
10615set dummy uptime; ac_word=$2
10616echo "$as_me:$LINENO: checking for $ac_word" >&5
10617echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10618if test "${ac_cv_path_PROG_UPTIME+set}" = set; then
10619 echo $ECHO_N "(cached) $ECHO_C" >&6
10620else
10621 case $PROG_UPTIME in
10622 [\\/]* | ?:[\\/]*)
10623 ac_cv_path_PROG_UPTIME="$PROG_UPTIME" # Let the user override the test with a path.
10624 ;;
10625 *)
10626 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10627for as_dir in $PATH
10628do
10629 IFS=$as_save_IFS
10630 test -z "$as_dir" && as_dir=.
10631 for ac_exec_ext in '' $ac_executable_extensions; do
10632 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10633 ac_cv_path_PROG_UPTIME="$as_dir/$ac_word$ac_exec_ext"
10634 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10635 break 2
10636 fi
10637done
10638done
10639
10640 ;;
10641esac
10642fi
10643PROG_UPTIME=$ac_cv_path_PROG_UPTIME
10644
10645if test -n "$PROG_UPTIME"; then
10646 echo "$as_me:$LINENO: result: $PROG_UPTIME" >&5
10647echo "${ECHO_T}$PROG_UPTIME" >&6
10648else
10649 echo "$as_me:$LINENO: result: no" >&5
10650echo "${ECHO_T}no" >&6
10651fi
10652
10653 if test -z "$PROG_UPTIME" ; then
10654 PROG_UPTIME="undef"
10655 fi
10656
10657
10658
10659 # Extract the first word of "ipcs", so it can be a program name with args.
10660set dummy ipcs; ac_word=$2
10661echo "$as_me:$LINENO: checking for $ac_word" >&5
10662echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10663if test "${ac_cv_path_PROG_IPCS+set}" = set; then
10664 echo $ECHO_N "(cached) $ECHO_C" >&6
10665else
10666 case $PROG_IPCS in
10667 [\\/]* | ?:[\\/]*)
10668 ac_cv_path_PROG_IPCS="$PROG_IPCS" # Let the user override the test with a path.
10669 ;;
10670 *)
10671 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10672for as_dir in $PATH
10673do
10674 IFS=$as_save_IFS
10675 test -z "$as_dir" && as_dir=.
10676 for ac_exec_ext in '' $ac_executable_extensions; do
10677 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10678 ac_cv_path_PROG_IPCS="$as_dir/$ac_word$ac_exec_ext"
10679 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10680 break 2
10681 fi
10682done
10683done
10684
10685 ;;
10686esac
10687fi
10688PROG_IPCS=$ac_cv_path_PROG_IPCS
10689
10690if test -n "$PROG_IPCS"; then
10691 echo "$as_me:$LINENO: result: $PROG_IPCS" >&5
10692echo "${ECHO_T}$PROG_IPCS" >&6
10693else
10694 echo "$as_me:$LINENO: result: no" >&5
10695echo "${ECHO_T}no" >&6
10696fi
10697
10698 if test -z "$PROG_IPCS" ; then
10699 PROG_IPCS="undef"
10700 fi
10701
10702
10703
10704 # Extract the first word of "tail", so it can be a program name with args.
10705set dummy tail; ac_word=$2
10706echo "$as_me:$LINENO: checking for $ac_word" >&5
10707echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10708if test "${ac_cv_path_PROG_TAIL+set}" = set; then
10709 echo $ECHO_N "(cached) $ECHO_C" >&6
10710else
10711 case $PROG_TAIL in
10712 [\\/]* | ?:[\\/]*)
10713 ac_cv_path_PROG_TAIL="$PROG_TAIL" # Let the user override the test with a path.
10714 ;;
10715 *)
10716 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10717for as_dir in $PATH
10718do
10719 IFS=$as_save_IFS
10720 test -z "$as_dir" && as_dir=.
10721 for ac_exec_ext in '' $ac_executable_extensions; do
10722 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10723 ac_cv_path_PROG_TAIL="$as_dir/$ac_word$ac_exec_ext"
10724 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10725 break 2
10726 fi
10727done
10728done
10729
10730 ;;
10731esac
10732fi
10733PROG_TAIL=$ac_cv_path_PROG_TAIL
10734
10735if test -n "$PROG_TAIL"; then
10736 echo "$as_me:$LINENO: result: $PROG_TAIL" >&5
10737echo "${ECHO_T}$PROG_TAIL" >&6
10738else
10739 echo "$as_me:$LINENO: result: no" >&5
10740echo "${ECHO_T}no" >&6
10741fi
10742
10743 if test -z "$PROG_TAIL" ; then
10744 PROG_TAIL="undef"
10745 fi
10746
10747
10748# restore PATH
10749PATH=$OPATH
10750
10751# Where does ssh-rand-helper get its randomness from?
10752INSTALL_SSH_PRNG_CMDS=""
10753if test ! -z "$INSTALL_SSH_RAND_HELPER" ; then
10754 if test ! -z "$PRNGD_PORT" ; then
10755 RAND_HELPER_MSG="TCP localhost:$PRNGD_PORT"
10756 elif test ! -z "$PRNGD_SOCKET" ; then
10757 RAND_HELPER_MSG="Unix domain socket \"$PRNGD_SOCKET\""
10758 else
10759 RAND_HELPER_MSG="Command hashing (timeout $entropy_timeout)"
10760 RAND_HELPER_CMDHASH=yes
10761 INSTALL_SSH_PRNG_CMDS="yes"
10762 fi
10763fi
10764
10765
10766
10767# Cheap hack to ensure NEWS-OS libraries are arranged right.
10768if test ! -z "$SONY" ; then
10769 LIBS="$LIBS -liberty";
10770fi
10771
10772# Checks for data types
10773echo "$as_me:$LINENO: checking for char" >&5
10774echo $ECHO_N "checking for char... $ECHO_C" >&6
10775if test "${ac_cv_type_char+set}" = set; then
10776 echo $ECHO_N "(cached) $ECHO_C" >&6
10777else
10778 cat >conftest.$ac_ext <<_ACEOF
10779#line $LINENO "configure"
10780/* confdefs.h. */
10781_ACEOF
10782cat confdefs.h >>conftest.$ac_ext
10783cat >>conftest.$ac_ext <<_ACEOF
10784/* end confdefs.h. */
10785$ac_includes_default
10786int
10787main ()
10788{
10789if ((char *) 0)
10790 return 0;
10791if (sizeof (char))
10792 return 0;
10793 ;
10794 return 0;
10795}
10796_ACEOF
10797rm -f conftest.$ac_objext
10798if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10799 (eval $ac_compile) 2>&5
10800 ac_status=$?
10801 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10802 (exit $ac_status); } &&
10803 { ac_try='test -s conftest.$ac_objext'
10804 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10805 (eval $ac_try) 2>&5
10806 ac_status=$?
10807 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10808 (exit $ac_status); }; }; then
10809 ac_cv_type_char=yes
10810else
10811 echo "$as_me: failed program was:" >&5
10812sed 's/^/| /' conftest.$ac_ext >&5
10813
10814ac_cv_type_char=no
10815fi
10816rm -f conftest.$ac_objext conftest.$ac_ext
10817fi
10818echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5
10819echo "${ECHO_T}$ac_cv_type_char" >&6
10820
10821echo "$as_me:$LINENO: checking size of char" >&5
10822echo $ECHO_N "checking size of char... $ECHO_C" >&6
10823if test "${ac_cv_sizeof_char+set}" = set; then
10824 echo $ECHO_N "(cached) $ECHO_C" >&6
10825else
10826 if test "$ac_cv_type_char" = yes; then
10827 # The cast to unsigned long works around a bug in the HP C Compiler
10828 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
10829 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
10830 # This bug is HP SR number 8606223364.
10831 if test "$cross_compiling" = yes; then
10832 # Depending upon the size, compute the lo and hi bounds.
10833cat >conftest.$ac_ext <<_ACEOF
10834#line $LINENO "configure"
10835/* confdefs.h. */
10836_ACEOF
10837cat confdefs.h >>conftest.$ac_ext
10838cat >>conftest.$ac_ext <<_ACEOF
10839/* end confdefs.h. */
10840$ac_includes_default
10841int
10842main ()
10843{
10844static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) >= 0)@:>@;
10845test_array @<:@0@:>@ = 0
10846
10847 ;
10848 return 0;
10849}
10850_ACEOF
10851rm -f conftest.$ac_objext
10852if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10853 (eval $ac_compile) 2>&5
10854 ac_status=$?
10855 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10856 (exit $ac_status); } &&
10857 { ac_try='test -s conftest.$ac_objext'
10858 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10859 (eval $ac_try) 2>&5
10860 ac_status=$?
10861 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10862 (exit $ac_status); }; }; then
10863 ac_lo=0 ac_mid=0
10864 while :; do
10865 cat >conftest.$ac_ext <<_ACEOF
10866#line $LINENO "configure"
10867/* confdefs.h. */
10868_ACEOF
10869cat confdefs.h >>conftest.$ac_ext
10870cat >>conftest.$ac_ext <<_ACEOF
10871/* end confdefs.h. */
10872$ac_includes_default
10873int
10874main ()
10875{
10876static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)@:>@;
10877test_array @<:@0@:>@ = 0
10878
10879 ;
10880 return 0;
10881}
10882_ACEOF
10883rm -f conftest.$ac_objext
10884if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10885 (eval $ac_compile) 2>&5
10886 ac_status=$?
10887 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10888 (exit $ac_status); } &&
10889 { ac_try='test -s conftest.$ac_objext'
10890 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10891 (eval $ac_try) 2>&5
10892 ac_status=$?
10893 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10894 (exit $ac_status); }; }; then
10895 ac_hi=$ac_mid; break
10896else
10897 echo "$as_me: failed program was:" >&5
10898sed 's/^/| /' conftest.$ac_ext >&5
10899
10900ac_lo=`expr $ac_mid + 1`
10901 if test $ac_lo -le $ac_mid; then
10902 ac_lo= ac_hi=
10903 break
10904 fi
10905 ac_mid=`expr 2 '*' $ac_mid + 1`
10906fi
10907rm -f conftest.$ac_objext conftest.$ac_ext
10908 done
10909else
10910 echo "$as_me: failed program was:" >&5
10911sed 's/^/| /' conftest.$ac_ext >&5
10912
10913cat >conftest.$ac_ext <<_ACEOF
10914#line $LINENO "configure"
10915/* confdefs.h. */
10916_ACEOF
10917cat confdefs.h >>conftest.$ac_ext
10918cat >>conftest.$ac_ext <<_ACEOF
10919/* end confdefs.h. */
10920$ac_includes_default
10921int
10922main ()
10923{
10924static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) < 0)@:>@;
10925test_array @<:@0@:>@ = 0
10926
10927 ;
10928 return 0;
10929}
10930_ACEOF
10931rm -f conftest.$ac_objext
10932if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10933 (eval $ac_compile) 2>&5
10934 ac_status=$?
10935 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10936 (exit $ac_status); } &&
10937 { ac_try='test -s conftest.$ac_objext'
10938 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10939 (eval $ac_try) 2>&5
10940 ac_status=$?
10941 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10942 (exit $ac_status); }; }; then
10943 ac_hi=-1 ac_mid=-1
10944 while :; do
10945 cat >conftest.$ac_ext <<_ACEOF
10946#line $LINENO "configure"
10947/* confdefs.h. */
10948_ACEOF
10949cat confdefs.h >>conftest.$ac_ext
10950cat >>conftest.$ac_ext <<_ACEOF
10951/* end confdefs.h. */
10952$ac_includes_default
10953int
10954main ()
10955{
10956static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)@:>@;
10957test_array @<:@0@:>@ = 0
10958
10959 ;
10960 return 0;
10961}
10962_ACEOF
10963rm -f conftest.$ac_objext
10964if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10965 (eval $ac_compile) 2>&5
10966 ac_status=$?
10967 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10968 (exit $ac_status); } &&
10969 { ac_try='test -s conftest.$ac_objext'
10970 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10971 (eval $ac_try) 2>&5
10972 ac_status=$?
10973 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10974 (exit $ac_status); }; }; then
10975 ac_lo=$ac_mid; break
10976else
10977 echo "$as_me: failed program was:" >&5
10978sed 's/^/| /' conftest.$ac_ext >&5
10979
10980ac_hi=`expr '(' $ac_mid ')' - 1`
10981 if test $ac_mid -le $ac_hi; then
10982 ac_lo= ac_hi=
10983 break
10984 fi
10985 ac_mid=`expr 2 '*' $ac_mid`
10986fi
10987rm -f conftest.$ac_objext conftest.$ac_ext
10988 done
10989else
10990 echo "$as_me: failed program was:" >&5
10991sed 's/^/| /' conftest.$ac_ext >&5
10992
10993ac_lo= ac_hi=
10994fi
10995rm -f conftest.$ac_objext conftest.$ac_ext
10996fi
10997rm -f conftest.$ac_objext conftest.$ac_ext
10998# Binary search between lo and hi bounds.
10999while test "x$ac_lo" != "x$ac_hi"; do
11000 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11001 cat >conftest.$ac_ext <<_ACEOF
11002#line $LINENO "configure"
11003/* confdefs.h. */
11004_ACEOF
11005cat confdefs.h >>conftest.$ac_ext
11006cat >>conftest.$ac_ext <<_ACEOF
11007/* end confdefs.h. */
11008$ac_includes_default
11009int
11010main ()
11011{
11012static int test_array @<:@1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)@:>@;
11013test_array @<:@0@:>@ = 0
11014
11015 ;
11016 return 0;
11017}
11018_ACEOF
11019rm -f conftest.$ac_objext
11020if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11021 (eval $ac_compile) 2>&5
11022 ac_status=$?
11023 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11024 (exit $ac_status); } &&
11025 { ac_try='test -s conftest.$ac_objext'
11026 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11027 (eval $ac_try) 2>&5
11028 ac_status=$?
11029 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11030 (exit $ac_status); }; }; then
11031 ac_hi=$ac_mid
11032else
11033 echo "$as_me: failed program was:" >&5
11034sed 's/^/| /' conftest.$ac_ext >&5
11035
11036ac_lo=`expr '(' $ac_mid ')' + 1`
11037fi
11038rm -f conftest.$ac_objext conftest.$ac_ext
11039done
11040case $ac_lo in
11041?*) ac_cv_sizeof_char=$ac_lo;;
11042'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77
11043See \`config.log' for more details." >&5
11044echo "$as_me: error: cannot compute sizeof (char), 77
11045See \`config.log' for more details." >&2;}
11046 { (exit 1); exit 1; }; } ;;
11047esac
11048else
11049 if test "$cross_compiling" = yes; then
11050 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
11051See \`config.log' for more details." >&5
11052echo "$as_me: error: cannot run test program while cross compiling
11053See \`config.log' for more details." >&2;}
11054 { (exit 1); exit 1; }; }
11055else
11056 cat >conftest.$ac_ext <<_ACEOF
11057#line $LINENO "configure"
11058/* confdefs.h. */
11059_ACEOF
11060cat confdefs.h >>conftest.$ac_ext
11061cat >>conftest.$ac_ext <<_ACEOF
11062/* end confdefs.h. */
11063$ac_includes_default
11064long longval () { return (long) (sizeof (char)); }
11065unsigned long ulongval () { return (long) (sizeof (char)); }
11066@%:@include <stdio.h>
11067@%:@include <stdlib.h>
11068int
11069main ()
11070{
11071
11072 FILE *f = fopen ("conftest.val", "w");
11073 if (! f)
11074 exit (1);
11075 if (((long) (sizeof (char))) < 0)
11076 {
11077 long i = longval ();
11078 if (i != ((long) (sizeof (char))))
11079 exit (1);
11080 fprintf (f, "%ld\n", i);
11081 }
11082 else
11083 {
11084 unsigned long i = ulongval ();
11085 if (i != ((long) (sizeof (char))))
11086 exit (1);
11087 fprintf (f, "%lu\n", i);
11088 }
11089 exit (ferror (f) || fclose (f) != 0);
11090
11091 ;
11092 return 0;
11093}
11094_ACEOF
11095rm -f conftest$ac_exeext
11096if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11097 (eval $ac_link) 2>&5
11098 ac_status=$?
11099 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11100 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11101 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11102 (eval $ac_try) 2>&5
11103 ac_status=$?
11104 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11105 (exit $ac_status); }; }; then
11106 ac_cv_sizeof_char=`cat conftest.val`
11107else
11108 echo "$as_me: program exited with status $ac_status" >&5
11109echo "$as_me: failed program was:" >&5
11110sed 's/^/| /' conftest.$ac_ext >&5
11111
11112( exit $ac_status )
11113{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77
11114See \`config.log' for more details." >&5
11115echo "$as_me: error: cannot compute sizeof (char), 77
11116See \`config.log' for more details." >&2;}
11117 { (exit 1); exit 1; }; }
11118fi
11119rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11120fi
11121fi
11122rm -f conftest.val
11123else
11124 ac_cv_sizeof_char=0
11125fi
11126fi
11127echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5
11128echo "${ECHO_T}$ac_cv_sizeof_char" >&6
11129cat >>confdefs.h <<_ACEOF
11130@%:@define SIZEOF_CHAR $ac_cv_sizeof_char
11131_ACEOF
11132
11133
11134echo "$as_me:$LINENO: checking for short int" >&5
11135echo $ECHO_N "checking for short int... $ECHO_C" >&6
11136if test "${ac_cv_type_short_int+set}" = set; then
11137 echo $ECHO_N "(cached) $ECHO_C" >&6
11138else
11139 cat >conftest.$ac_ext <<_ACEOF
11140#line $LINENO "configure"
11141/* confdefs.h. */
11142_ACEOF
11143cat confdefs.h >>conftest.$ac_ext
11144cat >>conftest.$ac_ext <<_ACEOF
11145/* end confdefs.h. */
11146$ac_includes_default
11147int
11148main ()
11149{
11150if ((short int *) 0)
11151 return 0;
11152if (sizeof (short int))
11153 return 0;
11154 ;
11155 return 0;
11156}
11157_ACEOF
11158rm -f conftest.$ac_objext
11159if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11160 (eval $ac_compile) 2>&5
11161 ac_status=$?
11162 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11163 (exit $ac_status); } &&
11164 { ac_try='test -s conftest.$ac_objext'
11165 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11166 (eval $ac_try) 2>&5
11167 ac_status=$?
11168 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11169 (exit $ac_status); }; }; then
11170 ac_cv_type_short_int=yes
11171else
11172 echo "$as_me: failed program was:" >&5
11173sed 's/^/| /' conftest.$ac_ext >&5
11174
11175ac_cv_type_short_int=no
11176fi
11177rm -f conftest.$ac_objext conftest.$ac_ext
11178fi
11179echo "$as_me:$LINENO: result: $ac_cv_type_short_int" >&5
11180echo "${ECHO_T}$ac_cv_type_short_int" >&6
11181
11182echo "$as_me:$LINENO: checking size of short int" >&5
11183echo $ECHO_N "checking size of short int... $ECHO_C" >&6
11184if test "${ac_cv_sizeof_short_int+set}" = set; then
11185 echo $ECHO_N "(cached) $ECHO_C" >&6
11186else
11187 if test "$ac_cv_type_short_int" = yes; then
11188 # The cast to unsigned long works around a bug in the HP C Compiler
11189 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
11190 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
11191 # This bug is HP SR number 8606223364.
11192 if test "$cross_compiling" = yes; then
11193 # Depending upon the size, compute the lo and hi bounds.
11194cat >conftest.$ac_ext <<_ACEOF
11195#line $LINENO "configure"
11196/* confdefs.h. */
11197_ACEOF
11198cat confdefs.h >>conftest.$ac_ext
11199cat >>conftest.$ac_ext <<_ACEOF
11200/* end confdefs.h. */
11201$ac_includes_default
11202int
11203main ()
11204{
11205static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) >= 0)@:>@;
11206test_array @<:@0@:>@ = 0
11207
11208 ;
11209 return 0;
11210}
11211_ACEOF
11212rm -f conftest.$ac_objext
11213if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11214 (eval $ac_compile) 2>&5
11215 ac_status=$?
11216 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11217 (exit $ac_status); } &&
11218 { ac_try='test -s conftest.$ac_objext'
11219 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11220 (eval $ac_try) 2>&5
11221 ac_status=$?
11222 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11223 (exit $ac_status); }; }; then
11224 ac_lo=0 ac_mid=0
11225 while :; do
11226 cat >conftest.$ac_ext <<_ACEOF
11227#line $LINENO "configure"
11228/* confdefs.h. */
11229_ACEOF
11230cat confdefs.h >>conftest.$ac_ext
11231cat >>conftest.$ac_ext <<_ACEOF
11232/* end confdefs.h. */
11233$ac_includes_default
11234int
11235main ()
11236{
11237static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)@:>@;
11238test_array @<:@0@:>@ = 0
11239
11240 ;
11241 return 0;
11242}
11243_ACEOF
11244rm -f conftest.$ac_objext
11245if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11246 (eval $ac_compile) 2>&5
11247 ac_status=$?
11248 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11249 (exit $ac_status); } &&
11250 { ac_try='test -s conftest.$ac_objext'
11251 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11252 (eval $ac_try) 2>&5
11253 ac_status=$?
11254 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11255 (exit $ac_status); }; }; then
11256 ac_hi=$ac_mid; break
11257else
11258 echo "$as_me: failed program was:" >&5
11259sed 's/^/| /' conftest.$ac_ext >&5
11260
11261ac_lo=`expr $ac_mid + 1`
11262 if test $ac_lo -le $ac_mid; then
11263 ac_lo= ac_hi=
11264 break
11265 fi
11266 ac_mid=`expr 2 '*' $ac_mid + 1`
11267fi
11268rm -f conftest.$ac_objext conftest.$ac_ext
11269 done
11270else
11271 echo "$as_me: failed program was:" >&5
11272sed 's/^/| /' conftest.$ac_ext >&5
11273
11274cat >conftest.$ac_ext <<_ACEOF
11275#line $LINENO "configure"
11276/* confdefs.h. */
11277_ACEOF
11278cat confdefs.h >>conftest.$ac_ext
11279cat >>conftest.$ac_ext <<_ACEOF
11280/* end confdefs.h. */
11281$ac_includes_default
11282int
11283main ()
11284{
11285static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) < 0)@:>@;
11286test_array @<:@0@:>@ = 0
11287
11288 ;
11289 return 0;
11290}
11291_ACEOF
11292rm -f conftest.$ac_objext
11293if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11294 (eval $ac_compile) 2>&5
11295 ac_status=$?
11296 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11297 (exit $ac_status); } &&
11298 { ac_try='test -s conftest.$ac_objext'
11299 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11300 (eval $ac_try) 2>&5
11301 ac_status=$?
11302 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11303 (exit $ac_status); }; }; then
11304 ac_hi=-1 ac_mid=-1
11305 while :; do
11306 cat >conftest.$ac_ext <<_ACEOF
11307#line $LINENO "configure"
11308/* confdefs.h. */
11309_ACEOF
11310cat confdefs.h >>conftest.$ac_ext
11311cat >>conftest.$ac_ext <<_ACEOF
11312/* end confdefs.h. */
11313$ac_includes_default
11314int
11315main ()
11316{
11317static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) >= $ac_mid)@:>@;
11318test_array @<:@0@:>@ = 0
11319
11320 ;
11321 return 0;
11322}
11323_ACEOF
11324rm -f conftest.$ac_objext
11325if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11326 (eval $ac_compile) 2>&5
11327 ac_status=$?
11328 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11329 (exit $ac_status); } &&
11330 { ac_try='test -s conftest.$ac_objext'
11331 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11332 (eval $ac_try) 2>&5
11333 ac_status=$?
11334 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11335 (exit $ac_status); }; }; then
11336 ac_lo=$ac_mid; break
11337else
11338 echo "$as_me: failed program was:" >&5
11339sed 's/^/| /' conftest.$ac_ext >&5
11340
11341ac_hi=`expr '(' $ac_mid ')' - 1`
11342 if test $ac_mid -le $ac_hi; then
11343 ac_lo= ac_hi=
11344 break
11345 fi
11346 ac_mid=`expr 2 '*' $ac_mid`
11347fi
11348rm -f conftest.$ac_objext conftest.$ac_ext
11349 done
11350else
11351 echo "$as_me: failed program was:" >&5
11352sed 's/^/| /' conftest.$ac_ext >&5
11353
11354ac_lo= ac_hi=
11355fi
11356rm -f conftest.$ac_objext conftest.$ac_ext
11357fi
11358rm -f conftest.$ac_objext conftest.$ac_ext
11359# Binary search between lo and hi bounds.
11360while test "x$ac_lo" != "x$ac_hi"; do
11361 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11362 cat >conftest.$ac_ext <<_ACEOF
11363#line $LINENO "configure"
11364/* confdefs.h. */
11365_ACEOF
11366cat confdefs.h >>conftest.$ac_ext
11367cat >>conftest.$ac_ext <<_ACEOF
11368/* end confdefs.h. */
11369$ac_includes_default
11370int
11371main ()
11372{
11373static int test_array @<:@1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)@:>@;
11374test_array @<:@0@:>@ = 0
11375
11376 ;
11377 return 0;
11378}
11379_ACEOF
11380rm -f conftest.$ac_objext
11381if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11382 (eval $ac_compile) 2>&5
11383 ac_status=$?
11384 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11385 (exit $ac_status); } &&
11386 { ac_try='test -s conftest.$ac_objext'
11387 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11388 (eval $ac_try) 2>&5
11389 ac_status=$?
11390 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11391 (exit $ac_status); }; }; then
11392 ac_hi=$ac_mid
11393else
11394 echo "$as_me: failed program was:" >&5
11395sed 's/^/| /' conftest.$ac_ext >&5
11396
11397ac_lo=`expr '(' $ac_mid ')' + 1`
11398fi
11399rm -f conftest.$ac_objext conftest.$ac_ext
11400done
11401case $ac_lo in
11402?*) ac_cv_sizeof_short_int=$ac_lo;;
11403'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77
11404See \`config.log' for more details." >&5
11405echo "$as_me: error: cannot compute sizeof (short int), 77
11406See \`config.log' for more details." >&2;}
11407 { (exit 1); exit 1; }; } ;;
11408esac
11409else
11410 if test "$cross_compiling" = yes; then
11411 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
11412See \`config.log' for more details." >&5
11413echo "$as_me: error: cannot run test program while cross compiling
11414See \`config.log' for more details." >&2;}
11415 { (exit 1); exit 1; }; }
11416else
11417 cat >conftest.$ac_ext <<_ACEOF
11418#line $LINENO "configure"
11419/* confdefs.h. */
11420_ACEOF
11421cat confdefs.h >>conftest.$ac_ext
11422cat >>conftest.$ac_ext <<_ACEOF
11423/* end confdefs.h. */
11424$ac_includes_default
11425long longval () { return (long) (sizeof (short int)); }
11426unsigned long ulongval () { return (long) (sizeof (short int)); }
11427@%:@include <stdio.h>
11428@%:@include <stdlib.h>
11429int
11430main ()
11431{
11432
11433 FILE *f = fopen ("conftest.val", "w");
11434 if (! f)
11435 exit (1);
11436 if (((long) (sizeof (short int))) < 0)
11437 {
11438 long i = longval ();
11439 if (i != ((long) (sizeof (short int))))
11440 exit (1);
11441 fprintf (f, "%ld\n", i);
11442 }
11443 else
11444 {
11445 unsigned long i = ulongval ();
11446 if (i != ((long) (sizeof (short int))))
11447 exit (1);
11448 fprintf (f, "%lu\n", i);
11449 }
11450 exit (ferror (f) || fclose (f) != 0);
11451
11452 ;
11453 return 0;
11454}
11455_ACEOF
11456rm -f conftest$ac_exeext
11457if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11458 (eval $ac_link) 2>&5
11459 ac_status=$?
11460 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11461 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11462 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11463 (eval $ac_try) 2>&5
11464 ac_status=$?
11465 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11466 (exit $ac_status); }; }; then
11467 ac_cv_sizeof_short_int=`cat conftest.val`
11468else
11469 echo "$as_me: program exited with status $ac_status" >&5
11470echo "$as_me: failed program was:" >&5
11471sed 's/^/| /' conftest.$ac_ext >&5
11472
11473( exit $ac_status )
11474{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77
11475See \`config.log' for more details." >&5
11476echo "$as_me: error: cannot compute sizeof (short int), 77
11477See \`config.log' for more details." >&2;}
11478 { (exit 1); exit 1; }; }
11479fi
11480rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11481fi
11482fi
11483rm -f conftest.val
11484else
11485 ac_cv_sizeof_short_int=0
11486fi
11487fi
11488echo "$as_me:$LINENO: result: $ac_cv_sizeof_short_int" >&5
11489echo "${ECHO_T}$ac_cv_sizeof_short_int" >&6
11490cat >>confdefs.h <<_ACEOF
11491@%:@define SIZEOF_SHORT_INT $ac_cv_sizeof_short_int
11492_ACEOF
11493
11494
11495echo "$as_me:$LINENO: checking for int" >&5
11496echo $ECHO_N "checking for int... $ECHO_C" >&6
11497if test "${ac_cv_type_int+set}" = set; then
11498 echo $ECHO_N "(cached) $ECHO_C" >&6
11499else
11500 cat >conftest.$ac_ext <<_ACEOF
11501#line $LINENO "configure"
11502/* confdefs.h. */
11503_ACEOF
11504cat confdefs.h >>conftest.$ac_ext
11505cat >>conftest.$ac_ext <<_ACEOF
11506/* end confdefs.h. */
11507$ac_includes_default
11508int
11509main ()
11510{
11511if ((int *) 0)
11512 return 0;
11513if (sizeof (int))
11514 return 0;
11515 ;
11516 return 0;
11517}
11518_ACEOF
11519rm -f conftest.$ac_objext
11520if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11521 (eval $ac_compile) 2>&5
11522 ac_status=$?
11523 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11524 (exit $ac_status); } &&
11525 { ac_try='test -s conftest.$ac_objext'
11526 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11527 (eval $ac_try) 2>&5
11528 ac_status=$?
11529 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11530 (exit $ac_status); }; }; then
11531 ac_cv_type_int=yes
11532else
11533 echo "$as_me: failed program was:" >&5
11534sed 's/^/| /' conftest.$ac_ext >&5
11535
11536ac_cv_type_int=no
11537fi
11538rm -f conftest.$ac_objext conftest.$ac_ext
11539fi
11540echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
11541echo "${ECHO_T}$ac_cv_type_int" >&6
11542
11543echo "$as_me:$LINENO: checking size of int" >&5
11544echo $ECHO_N "checking size of int... $ECHO_C" >&6
11545if test "${ac_cv_sizeof_int+set}" = set; then
11546 echo $ECHO_N "(cached) $ECHO_C" >&6
11547else
11548 if test "$ac_cv_type_int" = yes; then
11549 # The cast to unsigned long works around a bug in the HP C Compiler
11550 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
11551 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
11552 # This bug is HP SR number 8606223364.
11553 if test "$cross_compiling" = yes; then
11554 # Depending upon the size, compute the lo and hi bounds.
11555cat >conftest.$ac_ext <<_ACEOF
11556#line $LINENO "configure"
11557/* confdefs.h. */
11558_ACEOF
11559cat confdefs.h >>conftest.$ac_ext
11560cat >>conftest.$ac_ext <<_ACEOF
11561/* end confdefs.h. */
11562$ac_includes_default
11563int
11564main ()
11565{
11566static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= 0)@:>@;
11567test_array @<:@0@:>@ = 0
11568
11569 ;
11570 return 0;
11571}
11572_ACEOF
11573rm -f conftest.$ac_objext
11574if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11575 (eval $ac_compile) 2>&5
11576 ac_status=$?
11577 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11578 (exit $ac_status); } &&
11579 { ac_try='test -s conftest.$ac_objext'
11580 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11581 (eval $ac_try) 2>&5
11582 ac_status=$?
11583 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11584 (exit $ac_status); }; }; then
11585 ac_lo=0 ac_mid=0
11586 while :; do
11587 cat >conftest.$ac_ext <<_ACEOF
11588#line $LINENO "configure"
11589/* confdefs.h. */
11590_ACEOF
11591cat confdefs.h >>conftest.$ac_ext
11592cat >>conftest.$ac_ext <<_ACEOF
11593/* end confdefs.h. */
11594$ac_includes_default
11595int
11596main ()
11597{
11598static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@;
11599test_array @<:@0@:>@ = 0
11600
11601 ;
11602 return 0;
11603}
11604_ACEOF
11605rm -f conftest.$ac_objext
11606if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11607 (eval $ac_compile) 2>&5
11608 ac_status=$?
11609 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11610 (exit $ac_status); } &&
11611 { ac_try='test -s conftest.$ac_objext'
11612 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11613 (eval $ac_try) 2>&5
11614 ac_status=$?
11615 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11616 (exit $ac_status); }; }; then
11617 ac_hi=$ac_mid; break
11618else
11619 echo "$as_me: failed program was:" >&5
11620sed 's/^/| /' conftest.$ac_ext >&5
11621
11622ac_lo=`expr $ac_mid + 1`
11623 if test $ac_lo -le $ac_mid; then
11624 ac_lo= ac_hi=
11625 break
11626 fi
11627 ac_mid=`expr 2 '*' $ac_mid + 1`
11628fi
11629rm -f conftest.$ac_objext conftest.$ac_ext
11630 done
11631else
11632 echo "$as_me: failed program was:" >&5
11633sed 's/^/| /' conftest.$ac_ext >&5
11634
11635cat >conftest.$ac_ext <<_ACEOF
11636#line $LINENO "configure"
11637/* confdefs.h. */
11638_ACEOF
11639cat confdefs.h >>conftest.$ac_ext
11640cat >>conftest.$ac_ext <<_ACEOF
11641/* end confdefs.h. */
11642$ac_includes_default
11643int
11644main ()
11645{
11646static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) < 0)@:>@;
11647test_array @<:@0@:>@ = 0
11648
11649 ;
11650 return 0;
11651}
11652_ACEOF
11653rm -f conftest.$ac_objext
11654if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11655 (eval $ac_compile) 2>&5
11656 ac_status=$?
11657 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11658 (exit $ac_status); } &&
11659 { ac_try='test -s conftest.$ac_objext'
11660 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11661 (eval $ac_try) 2>&5
11662 ac_status=$?
11663 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11664 (exit $ac_status); }; }; then
11665 ac_hi=-1 ac_mid=-1
11666 while :; do
11667 cat >conftest.$ac_ext <<_ACEOF
11668#line $LINENO "configure"
11669/* confdefs.h. */
11670_ACEOF
11671cat confdefs.h >>conftest.$ac_ext
11672cat >>conftest.$ac_ext <<_ACEOF
11673/* end confdefs.h. */
11674$ac_includes_default
11675int
11676main ()
11677{
11678static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)@:>@;
11679test_array @<:@0@:>@ = 0
11680
11681 ;
11682 return 0;
11683}
11684_ACEOF
11685rm -f conftest.$ac_objext
11686if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11687 (eval $ac_compile) 2>&5
11688 ac_status=$?
11689 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11690 (exit $ac_status); } &&
11691 { ac_try='test -s conftest.$ac_objext'
11692 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11693 (eval $ac_try) 2>&5
11694 ac_status=$?
11695 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11696 (exit $ac_status); }; }; then
11697 ac_lo=$ac_mid; break
11698else
11699 echo "$as_me: failed program was:" >&5
11700sed 's/^/| /' conftest.$ac_ext >&5
11701
11702ac_hi=`expr '(' $ac_mid ')' - 1`
11703 if test $ac_mid -le $ac_hi; then
11704 ac_lo= ac_hi=
11705 break
11706 fi
11707 ac_mid=`expr 2 '*' $ac_mid`
11708fi
11709rm -f conftest.$ac_objext conftest.$ac_ext
11710 done
11711else
11712 echo "$as_me: failed program was:" >&5
11713sed 's/^/| /' conftest.$ac_ext >&5
11714
11715ac_lo= ac_hi=
11716fi
11717rm -f conftest.$ac_objext conftest.$ac_ext
11718fi
11719rm -f conftest.$ac_objext conftest.$ac_ext
11720# Binary search between lo and hi bounds.
11721while test "x$ac_lo" != "x$ac_hi"; do
11722 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
11723 cat >conftest.$ac_ext <<_ACEOF
11724#line $LINENO "configure"
11725/* confdefs.h. */
11726_ACEOF
11727cat confdefs.h >>conftest.$ac_ext
11728cat >>conftest.$ac_ext <<_ACEOF
11729/* end confdefs.h. */
11730$ac_includes_default
11731int
11732main ()
11733{
11734static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@;
11735test_array @<:@0@:>@ = 0
11736
11737 ;
11738 return 0;
11739}
11740_ACEOF
11741rm -f conftest.$ac_objext
11742if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11743 (eval $ac_compile) 2>&5
11744 ac_status=$?
11745 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11746 (exit $ac_status); } &&
11747 { ac_try='test -s conftest.$ac_objext'
11748 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11749 (eval $ac_try) 2>&5
11750 ac_status=$?
11751 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11752 (exit $ac_status); }; }; then
11753 ac_hi=$ac_mid
11754else
11755 echo "$as_me: failed program was:" >&5
11756sed 's/^/| /' conftest.$ac_ext >&5
11757
11758ac_lo=`expr '(' $ac_mid ')' + 1`
11759fi
11760rm -f conftest.$ac_objext conftest.$ac_ext
11761done
11762case $ac_lo in
11763?*) ac_cv_sizeof_int=$ac_lo;;
11764'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
11765See \`config.log' for more details." >&5
11766echo "$as_me: error: cannot compute sizeof (int), 77
11767See \`config.log' for more details." >&2;}
11768 { (exit 1); exit 1; }; } ;;
11769esac
11770else
11771 if test "$cross_compiling" = yes; then
11772 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
11773See \`config.log' for more details." >&5
11774echo "$as_me: error: cannot run test program while cross compiling
11775See \`config.log' for more details." >&2;}
11776 { (exit 1); exit 1; }; }
11777else
11778 cat >conftest.$ac_ext <<_ACEOF
11779#line $LINENO "configure"
11780/* confdefs.h. */
11781_ACEOF
11782cat confdefs.h >>conftest.$ac_ext
11783cat >>conftest.$ac_ext <<_ACEOF
11784/* end confdefs.h. */
11785$ac_includes_default
11786long longval () { return (long) (sizeof (int)); }
11787unsigned long ulongval () { return (long) (sizeof (int)); }
11788@%:@include <stdio.h>
11789@%:@include <stdlib.h>
11790int
11791main ()
11792{
11793
11794 FILE *f = fopen ("conftest.val", "w");
11795 if (! f)
11796 exit (1);
11797 if (((long) (sizeof (int))) < 0)
11798 {
11799 long i = longval ();
11800 if (i != ((long) (sizeof (int))))
11801 exit (1);
11802 fprintf (f, "%ld\n", i);
11803 }
11804 else
11805 {
11806 unsigned long i = ulongval ();
11807 if (i != ((long) (sizeof (int))))
11808 exit (1);
11809 fprintf (f, "%lu\n", i);
11810 }
11811 exit (ferror (f) || fclose (f) != 0);
11812
11813 ;
11814 return 0;
11815}
11816_ACEOF
11817rm -f conftest$ac_exeext
11818if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11819 (eval $ac_link) 2>&5
11820 ac_status=$?
11821 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11822 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
11823 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11824 (eval $ac_try) 2>&5
11825 ac_status=$?
11826 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11827 (exit $ac_status); }; }; then
11828 ac_cv_sizeof_int=`cat conftest.val`
11829else
11830 echo "$as_me: program exited with status $ac_status" >&5
11831echo "$as_me: failed program was:" >&5
11832sed 's/^/| /' conftest.$ac_ext >&5
11833
11834( exit $ac_status )
11835{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
11836See \`config.log' for more details." >&5
11837echo "$as_me: error: cannot compute sizeof (int), 77
11838See \`config.log' for more details." >&2;}
11839 { (exit 1); exit 1; }; }
11840fi
11841rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
11842fi
11843fi
11844rm -f conftest.val
11845else
11846 ac_cv_sizeof_int=0
11847fi
11848fi
11849echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
11850echo "${ECHO_T}$ac_cv_sizeof_int" >&6
11851cat >>confdefs.h <<_ACEOF
11852@%:@define SIZEOF_INT $ac_cv_sizeof_int
11853_ACEOF
11854
11855
11856echo "$as_me:$LINENO: checking for long int" >&5
11857echo $ECHO_N "checking for long int... $ECHO_C" >&6
11858if test "${ac_cv_type_long_int+set}" = set; then
11859 echo $ECHO_N "(cached) $ECHO_C" >&6
11860else
11861 cat >conftest.$ac_ext <<_ACEOF
11862#line $LINENO "configure"
11863/* confdefs.h. */
11864_ACEOF
11865cat confdefs.h >>conftest.$ac_ext
11866cat >>conftest.$ac_ext <<_ACEOF
11867/* end confdefs.h. */
11868$ac_includes_default
11869int
11870main ()
11871{
11872if ((long int *) 0)
11873 return 0;
11874if (sizeof (long int))
11875 return 0;
11876 ;
11877 return 0;
11878}
11879_ACEOF
11880rm -f conftest.$ac_objext
11881if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11882 (eval $ac_compile) 2>&5
11883 ac_status=$?
11884 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11885 (exit $ac_status); } &&
11886 { ac_try='test -s conftest.$ac_objext'
11887 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11888 (eval $ac_try) 2>&5
11889 ac_status=$?
11890 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11891 (exit $ac_status); }; }; then
11892 ac_cv_type_long_int=yes
11893else
11894 echo "$as_me: failed program was:" >&5
11895sed 's/^/| /' conftest.$ac_ext >&5
11896
11897ac_cv_type_long_int=no
11898fi
11899rm -f conftest.$ac_objext conftest.$ac_ext
11900fi
11901echo "$as_me:$LINENO: result: $ac_cv_type_long_int" >&5
11902echo "${ECHO_T}$ac_cv_type_long_int" >&6
11903
11904echo "$as_me:$LINENO: checking size of long int" >&5
11905echo $ECHO_N "checking size of long int... $ECHO_C" >&6
11906if test "${ac_cv_sizeof_long_int+set}" = set; then
11907 echo $ECHO_N "(cached) $ECHO_C" >&6
11908else
11909 if test "$ac_cv_type_long_int" = yes; then
11910 # The cast to unsigned long works around a bug in the HP C Compiler
11911 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
11912 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
11913 # This bug is HP SR number 8606223364.
11914 if test "$cross_compiling" = yes; then
11915 # Depending upon the size, compute the lo and hi bounds.
11916cat >conftest.$ac_ext <<_ACEOF
11917#line $LINENO "configure"
11918/* confdefs.h. */
11919_ACEOF
11920cat confdefs.h >>conftest.$ac_ext
11921cat >>conftest.$ac_ext <<_ACEOF
11922/* end confdefs.h. */
11923$ac_includes_default
11924int
11925main ()
11926{
11927static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) >= 0)@:>@;
11928test_array @<:@0@:>@ = 0
11929
11930 ;
11931 return 0;
11932}
11933_ACEOF
11934rm -f conftest.$ac_objext
11935if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11936 (eval $ac_compile) 2>&5
11937 ac_status=$?
11938 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11939 (exit $ac_status); } &&
11940 { ac_try='test -s conftest.$ac_objext'
11941 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11942 (eval $ac_try) 2>&5
11943 ac_status=$?
11944 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11945 (exit $ac_status); }; }; then
11946 ac_lo=0 ac_mid=0
11947 while :; do
11948 cat >conftest.$ac_ext <<_ACEOF
11949#line $LINENO "configure"
11950/* confdefs.h. */
11951_ACEOF
11952cat confdefs.h >>conftest.$ac_ext
11953cat >>conftest.$ac_ext <<_ACEOF
11954/* end confdefs.h. */
11955$ac_includes_default
11956int
11957main ()
11958{
11959static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)@:>@;
11960test_array @<:@0@:>@ = 0
11961
11962 ;
11963 return 0;
11964}
11965_ACEOF
11966rm -f conftest.$ac_objext
11967if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11968 (eval $ac_compile) 2>&5
11969 ac_status=$?
11970 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11971 (exit $ac_status); } &&
11972 { ac_try='test -s conftest.$ac_objext'
11973 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11974 (eval $ac_try) 2>&5
11975 ac_status=$?
11976 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11977 (exit $ac_status); }; }; then
11978 ac_hi=$ac_mid; break
11979else
11980 echo "$as_me: failed program was:" >&5
11981sed 's/^/| /' conftest.$ac_ext >&5
11982
11983ac_lo=`expr $ac_mid + 1`
11984 if test $ac_lo -le $ac_mid; then
11985 ac_lo= ac_hi=
11986 break
11987 fi
11988 ac_mid=`expr 2 '*' $ac_mid + 1`
11989fi
11990rm -f conftest.$ac_objext conftest.$ac_ext
11991 done
11992else
11993 echo "$as_me: failed program was:" >&5
11994sed 's/^/| /' conftest.$ac_ext >&5
11995
11996cat >conftest.$ac_ext <<_ACEOF
11997#line $LINENO "configure"
11998/* confdefs.h. */
11999_ACEOF
12000cat confdefs.h >>conftest.$ac_ext
12001cat >>conftest.$ac_ext <<_ACEOF
12002/* end confdefs.h. */
12003$ac_includes_default
12004int
12005main ()
12006{
12007static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) < 0)@:>@;
12008test_array @<:@0@:>@ = 0
12009
12010 ;
12011 return 0;
12012}
12013_ACEOF
12014rm -f conftest.$ac_objext
12015if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12016 (eval $ac_compile) 2>&5
12017 ac_status=$?
12018 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12019 (exit $ac_status); } &&
12020 { ac_try='test -s conftest.$ac_objext'
12021 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12022 (eval $ac_try) 2>&5
12023 ac_status=$?
12024 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12025 (exit $ac_status); }; }; then
12026 ac_hi=-1 ac_mid=-1
12027 while :; do
12028 cat >conftest.$ac_ext <<_ACEOF
12029#line $LINENO "configure"
12030/* confdefs.h. */
12031_ACEOF
12032cat confdefs.h >>conftest.$ac_ext
12033cat >>conftest.$ac_ext <<_ACEOF
12034/* end confdefs.h. */
12035$ac_includes_default
12036int
12037main ()
12038{
12039static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) >= $ac_mid)@:>@;
12040test_array @<:@0@:>@ = 0
12041
12042 ;
12043 return 0;
12044}
12045_ACEOF
12046rm -f conftest.$ac_objext
12047if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12048 (eval $ac_compile) 2>&5
12049 ac_status=$?
12050 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12051 (exit $ac_status); } &&
12052 { ac_try='test -s conftest.$ac_objext'
12053 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12054 (eval $ac_try) 2>&5
12055 ac_status=$?
12056 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12057 (exit $ac_status); }; }; then
12058 ac_lo=$ac_mid; break
12059else
12060 echo "$as_me: failed program was:" >&5
12061sed 's/^/| /' conftest.$ac_ext >&5
12062
12063ac_hi=`expr '(' $ac_mid ')' - 1`
12064 if test $ac_mid -le $ac_hi; then
12065 ac_lo= ac_hi=
12066 break
12067 fi
12068 ac_mid=`expr 2 '*' $ac_mid`
12069fi
12070rm -f conftest.$ac_objext conftest.$ac_ext
12071 done
12072else
12073 echo "$as_me: failed program was:" >&5
12074sed 's/^/| /' conftest.$ac_ext >&5
12075
12076ac_lo= ac_hi=
12077fi
12078rm -f conftest.$ac_objext conftest.$ac_ext
12079fi
12080rm -f conftest.$ac_objext conftest.$ac_ext
12081# Binary search between lo and hi bounds.
12082while test "x$ac_lo" != "x$ac_hi"; do
12083 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
12084 cat >conftest.$ac_ext <<_ACEOF
12085#line $LINENO "configure"
12086/* confdefs.h. */
12087_ACEOF
12088cat confdefs.h >>conftest.$ac_ext
12089cat >>conftest.$ac_ext <<_ACEOF
12090/* end confdefs.h. */
12091$ac_includes_default
12092int
12093main ()
12094{
12095static int test_array @<:@1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)@:>@;
12096test_array @<:@0@:>@ = 0
12097
12098 ;
12099 return 0;
12100}
12101_ACEOF
12102rm -f conftest.$ac_objext
12103if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12104 (eval $ac_compile) 2>&5
12105 ac_status=$?
12106 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12107 (exit $ac_status); } &&
12108 { ac_try='test -s conftest.$ac_objext'
12109 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12110 (eval $ac_try) 2>&5
12111 ac_status=$?
12112 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12113 (exit $ac_status); }; }; then
12114 ac_hi=$ac_mid
12115else
12116 echo "$as_me: failed program was:" >&5
12117sed 's/^/| /' conftest.$ac_ext >&5
12118
12119ac_lo=`expr '(' $ac_mid ')' + 1`
12120fi
12121rm -f conftest.$ac_objext conftest.$ac_ext
12122done
12123case $ac_lo in
12124?*) ac_cv_sizeof_long_int=$ac_lo;;
12125'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77
12126See \`config.log' for more details." >&5
12127echo "$as_me: error: cannot compute sizeof (long int), 77
12128See \`config.log' for more details." >&2;}
12129 { (exit 1); exit 1; }; } ;;
12130esac
12131else
12132 if test "$cross_compiling" = yes; then
12133 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
12134See \`config.log' for more details." >&5
12135echo "$as_me: error: cannot run test program while cross compiling
12136See \`config.log' for more details." >&2;}
12137 { (exit 1); exit 1; }; }
12138else
12139 cat >conftest.$ac_ext <<_ACEOF
12140#line $LINENO "configure"
12141/* confdefs.h. */
12142_ACEOF
12143cat confdefs.h >>conftest.$ac_ext
12144cat >>conftest.$ac_ext <<_ACEOF
12145/* end confdefs.h. */
12146$ac_includes_default
12147long longval () { return (long) (sizeof (long int)); }
12148unsigned long ulongval () { return (long) (sizeof (long int)); }
12149@%:@include <stdio.h>
12150@%:@include <stdlib.h>
12151int
12152main ()
12153{
12154
12155 FILE *f = fopen ("conftest.val", "w");
12156 if (! f)
12157 exit (1);
12158 if (((long) (sizeof (long int))) < 0)
12159 {
12160 long i = longval ();
12161 if (i != ((long) (sizeof (long int))))
12162 exit (1);
12163 fprintf (f, "%ld\n", i);
12164 }
12165 else
12166 {
12167 unsigned long i = ulongval ();
12168 if (i != ((long) (sizeof (long int))))
12169 exit (1);
12170 fprintf (f, "%lu\n", i);
12171 }
12172 exit (ferror (f) || fclose (f) != 0);
12173
12174 ;
12175 return 0;
12176}
12177_ACEOF
12178rm -f conftest$ac_exeext
12179if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12180 (eval $ac_link) 2>&5
12181 ac_status=$?
12182 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12183 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
12184 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12185 (eval $ac_try) 2>&5
12186 ac_status=$?
12187 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12188 (exit $ac_status); }; }; then
12189 ac_cv_sizeof_long_int=`cat conftest.val`
12190else
12191 echo "$as_me: program exited with status $ac_status" >&5
12192echo "$as_me: failed program was:" >&5
12193sed 's/^/| /' conftest.$ac_ext >&5
12194
12195( exit $ac_status )
12196{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77
12197See \`config.log' for more details." >&5
12198echo "$as_me: error: cannot compute sizeof (long int), 77
12199See \`config.log' for more details." >&2;}
12200 { (exit 1); exit 1; }; }
12201fi
12202rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
12203fi
12204fi
12205rm -f conftest.val
12206else
12207 ac_cv_sizeof_long_int=0
12208fi
12209fi
12210echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_int" >&5
12211echo "${ECHO_T}$ac_cv_sizeof_long_int" >&6
12212cat >>confdefs.h <<_ACEOF
12213@%:@define SIZEOF_LONG_INT $ac_cv_sizeof_long_int
12214_ACEOF
12215
12216
12217echo "$as_me:$LINENO: checking for long long int" >&5
12218echo $ECHO_N "checking for long long int... $ECHO_C" >&6
12219if test "${ac_cv_type_long_long_int+set}" = set; then
12220 echo $ECHO_N "(cached) $ECHO_C" >&6
12221else
12222 cat >conftest.$ac_ext <<_ACEOF
12223#line $LINENO "configure"
12224/* confdefs.h. */
12225_ACEOF
12226cat confdefs.h >>conftest.$ac_ext
12227cat >>conftest.$ac_ext <<_ACEOF
12228/* end confdefs.h. */
12229$ac_includes_default
12230int
12231main ()
12232{
12233if ((long long int *) 0)
12234 return 0;
12235if (sizeof (long long int))
12236 return 0;
12237 ;
12238 return 0;
12239}
12240_ACEOF
12241rm -f conftest.$ac_objext
12242if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12243 (eval $ac_compile) 2>&5
12244 ac_status=$?
12245 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12246 (exit $ac_status); } &&
12247 { ac_try='test -s conftest.$ac_objext'
12248 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12249 (eval $ac_try) 2>&5
12250 ac_status=$?
12251 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12252 (exit $ac_status); }; }; then
12253 ac_cv_type_long_long_int=yes
12254else
12255 echo "$as_me: failed program was:" >&5
12256sed 's/^/| /' conftest.$ac_ext >&5
12257
12258ac_cv_type_long_long_int=no
12259fi
12260rm -f conftest.$ac_objext conftest.$ac_ext
12261fi
12262echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
12263echo "${ECHO_T}$ac_cv_type_long_long_int" >&6
12264
12265echo "$as_me:$LINENO: checking size of long long int" >&5
12266echo $ECHO_N "checking size of long long int... $ECHO_C" >&6
12267if test "${ac_cv_sizeof_long_long_int+set}" = set; then
12268 echo $ECHO_N "(cached) $ECHO_C" >&6
12269else
12270 if test "$ac_cv_type_long_long_int" = yes; then
12271 # The cast to unsigned long works around a bug in the HP C Compiler
12272 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
12273 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
12274 # This bug is HP SR number 8606223364.
12275 if test "$cross_compiling" = yes; then
12276 # Depending upon the size, compute the lo and hi bounds.
12277cat >conftest.$ac_ext <<_ACEOF
12278#line $LINENO "configure"
12279/* confdefs.h. */
12280_ACEOF
12281cat confdefs.h >>conftest.$ac_ext
12282cat >>conftest.$ac_ext <<_ACEOF
12283/* end confdefs.h. */
12284$ac_includes_default
12285int
12286main ()
12287{
12288static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) >= 0)@:>@;
12289test_array @<:@0@:>@ = 0
12290
12291 ;
12292 return 0;
12293}
12294_ACEOF
12295rm -f conftest.$ac_objext
12296if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12297 (eval $ac_compile) 2>&5
12298 ac_status=$?
12299 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12300 (exit $ac_status); } &&
12301 { ac_try='test -s conftest.$ac_objext'
12302 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12303 (eval $ac_try) 2>&5
12304 ac_status=$?
12305 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12306 (exit $ac_status); }; }; then
12307 ac_lo=0 ac_mid=0
12308 while :; do
12309 cat >conftest.$ac_ext <<_ACEOF
12310#line $LINENO "configure"
12311/* confdefs.h. */
12312_ACEOF
12313cat confdefs.h >>conftest.$ac_ext
12314cat >>conftest.$ac_ext <<_ACEOF
12315/* end confdefs.h. */
12316$ac_includes_default
12317int
12318main ()
12319{
12320static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)@:>@;
12321test_array @<:@0@:>@ = 0
12322
12323 ;
12324 return 0;
12325}
12326_ACEOF
12327rm -f conftest.$ac_objext
12328if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12329 (eval $ac_compile) 2>&5
12330 ac_status=$?
12331 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12332 (exit $ac_status); } &&
12333 { ac_try='test -s conftest.$ac_objext'
12334 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12335 (eval $ac_try) 2>&5
12336 ac_status=$?
12337 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12338 (exit $ac_status); }; }; then
12339 ac_hi=$ac_mid; break
12340else
12341 echo "$as_me: failed program was:" >&5
12342sed 's/^/| /' conftest.$ac_ext >&5
12343
12344ac_lo=`expr $ac_mid + 1`
12345 if test $ac_lo -le $ac_mid; then
12346 ac_lo= ac_hi=
12347 break
12348 fi
12349 ac_mid=`expr 2 '*' $ac_mid + 1`
12350fi
12351rm -f conftest.$ac_objext conftest.$ac_ext
12352 done
12353else
12354 echo "$as_me: failed program was:" >&5
12355sed 's/^/| /' conftest.$ac_ext >&5
12356
12357cat >conftest.$ac_ext <<_ACEOF
12358#line $LINENO "configure"
12359/* confdefs.h. */
12360_ACEOF
12361cat confdefs.h >>conftest.$ac_ext
12362cat >>conftest.$ac_ext <<_ACEOF
12363/* end confdefs.h. */
12364$ac_includes_default
12365int
12366main ()
12367{
12368static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) < 0)@:>@;
12369test_array @<:@0@:>@ = 0
12370
12371 ;
12372 return 0;
12373}
12374_ACEOF
12375rm -f conftest.$ac_objext
12376if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12377 (eval $ac_compile) 2>&5
12378 ac_status=$?
12379 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12380 (exit $ac_status); } &&
12381 { ac_try='test -s conftest.$ac_objext'
12382 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12383 (eval $ac_try) 2>&5
12384 ac_status=$?
12385 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12386 (exit $ac_status); }; }; then
12387 ac_hi=-1 ac_mid=-1
12388 while :; do
12389 cat >conftest.$ac_ext <<_ACEOF
12390#line $LINENO "configure"
12391/* confdefs.h. */
12392_ACEOF
12393cat confdefs.h >>conftest.$ac_ext
12394cat >>conftest.$ac_ext <<_ACEOF
12395/* end confdefs.h. */
12396$ac_includes_default
12397int
12398main ()
12399{
12400static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) >= $ac_mid)@:>@;
12401test_array @<:@0@:>@ = 0
12402
12403 ;
12404 return 0;
12405}
12406_ACEOF
12407rm -f conftest.$ac_objext
12408if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12409 (eval $ac_compile) 2>&5
12410 ac_status=$?
12411 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12412 (exit $ac_status); } &&
12413 { ac_try='test -s conftest.$ac_objext'
12414 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12415 (eval $ac_try) 2>&5
12416 ac_status=$?
12417 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12418 (exit $ac_status); }; }; then
12419 ac_lo=$ac_mid; break
12420else
12421 echo "$as_me: failed program was:" >&5
12422sed 's/^/| /' conftest.$ac_ext >&5
12423
12424ac_hi=`expr '(' $ac_mid ')' - 1`
12425 if test $ac_mid -le $ac_hi; then
12426 ac_lo= ac_hi=
12427 break
12428 fi
12429 ac_mid=`expr 2 '*' $ac_mid`
12430fi
12431rm -f conftest.$ac_objext conftest.$ac_ext
12432 done
12433else
12434 echo "$as_me: failed program was:" >&5
12435sed 's/^/| /' conftest.$ac_ext >&5
12436
12437ac_lo= ac_hi=
12438fi
12439rm -f conftest.$ac_objext conftest.$ac_ext
12440fi
12441rm -f conftest.$ac_objext conftest.$ac_ext
12442# Binary search between lo and hi bounds.
12443while test "x$ac_lo" != "x$ac_hi"; do
12444 ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
12445 cat >conftest.$ac_ext <<_ACEOF
12446#line $LINENO "configure"
12447/* confdefs.h. */
12448_ACEOF
12449cat confdefs.h >>conftest.$ac_ext
12450cat >>conftest.$ac_ext <<_ACEOF
12451/* end confdefs.h. */
12452$ac_includes_default
12453int
12454main ()
12455{
12456static int test_array @<:@1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)@:>@;
12457test_array @<:@0@:>@ = 0
12458
12459 ;
12460 return 0;
12461}
12462_ACEOF
12463rm -f conftest.$ac_objext
12464if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12465 (eval $ac_compile) 2>&5
12466 ac_status=$?
12467 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12468 (exit $ac_status); } &&
12469 { ac_try='test -s conftest.$ac_objext'
12470 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12471 (eval $ac_try) 2>&5
12472 ac_status=$?
12473 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12474 (exit $ac_status); }; }; then
12475 ac_hi=$ac_mid
12476else
12477 echo "$as_me: failed program was:" >&5
12478sed 's/^/| /' conftest.$ac_ext >&5
12479
12480ac_lo=`expr '(' $ac_mid ')' + 1`
12481fi
12482rm -f conftest.$ac_objext conftest.$ac_ext
12483done
12484case $ac_lo in
12485?*) ac_cv_sizeof_long_long_int=$ac_lo;;
12486'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77
12487See \`config.log' for more details." >&5
12488echo "$as_me: error: cannot compute sizeof (long long int), 77
12489See \`config.log' for more details." >&2;}
12490 { (exit 1); exit 1; }; } ;;
12491esac
12492else
12493 if test "$cross_compiling" = yes; then
12494 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
12495See \`config.log' for more details." >&5
12496echo "$as_me: error: cannot run test program while cross compiling
12497See \`config.log' for more details." >&2;}
12498 { (exit 1); exit 1; }; }
12499else
12500 cat >conftest.$ac_ext <<_ACEOF
12501#line $LINENO "configure"
12502/* confdefs.h. */
12503_ACEOF
12504cat confdefs.h >>conftest.$ac_ext
12505cat >>conftest.$ac_ext <<_ACEOF
12506/* end confdefs.h. */
12507$ac_includes_default
12508long longval () { return (long) (sizeof (long long int)); }
12509unsigned long ulongval () { return (long) (sizeof (long long int)); }
12510@%:@include <stdio.h>
12511@%:@include <stdlib.h>
12512int
12513main ()
12514{
12515
12516 FILE *f = fopen ("conftest.val", "w");
12517 if (! f)
12518 exit (1);
12519 if (((long) (sizeof (long long int))) < 0)
12520 {
12521 long i = longval ();
12522 if (i != ((long) (sizeof (long long int))))
12523 exit (1);
12524 fprintf (f, "%ld\n", i);
12525 }
12526 else
12527 {
12528 unsigned long i = ulongval ();
12529 if (i != ((long) (sizeof (long long int))))
12530 exit (1);
12531 fprintf (f, "%lu\n", i);
12532 }
12533 exit (ferror (f) || fclose (f) != 0);
12534
12535 ;
12536 return 0;
12537}
12538_ACEOF
12539rm -f conftest$ac_exeext
12540if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12541 (eval $ac_link) 2>&5
12542 ac_status=$?
12543 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12544 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
12545 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12546 (eval $ac_try) 2>&5
12547 ac_status=$?
12548 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12549 (exit $ac_status); }; }; then
12550 ac_cv_sizeof_long_long_int=`cat conftest.val`
12551else
12552 echo "$as_me: program exited with status $ac_status" >&5
12553echo "$as_me: failed program was:" >&5
12554sed 's/^/| /' conftest.$ac_ext >&5
12555
12556( exit $ac_status )
12557{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77
12558See \`config.log' for more details." >&5
12559echo "$as_me: error: cannot compute sizeof (long long int), 77
12560See \`config.log' for more details." >&2;}
12561 { (exit 1); exit 1; }; }
12562fi
12563rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
12564fi
12565fi
12566rm -f conftest.val
12567else
12568 ac_cv_sizeof_long_long_int=0
12569fi
12570fi
12571echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long_int" >&5
12572echo "${ECHO_T}$ac_cv_sizeof_long_long_int" >&6
12573cat >>confdefs.h <<_ACEOF
12574@%:@define SIZEOF_LONG_LONG_INT $ac_cv_sizeof_long_long_int
12575_ACEOF
12576
12577
12578
12579# Sanity check long long for some platforms (AIX)
12580if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then
12581 ac_cv_sizeof_long_long_int=0
12582fi
12583
12584# More checks for data types
12585echo "$as_me:$LINENO: checking for u_int type" >&5
12586echo $ECHO_N "checking for u_int type... $ECHO_C" >&6
12587if test "${ac_cv_have_u_int+set}" = set; then
12588 echo $ECHO_N "(cached) $ECHO_C" >&6
12589else
12590
12591 cat >conftest.$ac_ext <<_ACEOF
12592#line $LINENO "configure"
12593/* confdefs.h. */
12594_ACEOF
12595cat confdefs.h >>conftest.$ac_ext
12596cat >>conftest.$ac_ext <<_ACEOF
12597/* end confdefs.h. */
12598 #include <sys/types.h>
12599int
12600main ()
12601{
12602 u_int a; a = 1;
12603 ;
12604 return 0;
12605}
12606_ACEOF
12607rm -f conftest.$ac_objext
12608if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12609 (eval $ac_compile) 2>&5
12610 ac_status=$?
12611 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12612 (exit $ac_status); } &&
12613 { ac_try='test -s conftest.$ac_objext'
12614 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12615 (eval $ac_try) 2>&5
12616 ac_status=$?
12617 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12618 (exit $ac_status); }; }; then
12619 ac_cv_have_u_int="yes"
12620else
12621 echo "$as_me: failed program was:" >&5
12622sed 's/^/| /' conftest.$ac_ext >&5
12623
12624 ac_cv_have_u_int="no"
12625
12626fi
12627rm -f conftest.$ac_objext conftest.$ac_ext
12628
12629fi
12630echo "$as_me:$LINENO: result: $ac_cv_have_u_int" >&5
12631echo "${ECHO_T}$ac_cv_have_u_int" >&6
12632if test "x$ac_cv_have_u_int" = "xyes" ; then
12633 cat >>confdefs.h <<\_ACEOF
12634@%:@define HAVE_U_INT 1
12635_ACEOF
12636
12637 have_u_int=1
12638fi
12639
12640echo "$as_me:$LINENO: checking for intXX_t types" >&5
12641echo $ECHO_N "checking for intXX_t types... $ECHO_C" >&6
12642if test "${ac_cv_have_intxx_t+set}" = set; then
12643 echo $ECHO_N "(cached) $ECHO_C" >&6
12644else
12645
12646 cat >conftest.$ac_ext <<_ACEOF
12647#line $LINENO "configure"
12648/* confdefs.h. */
12649_ACEOF
12650cat confdefs.h >>conftest.$ac_ext
12651cat >>conftest.$ac_ext <<_ACEOF
12652/* end confdefs.h. */
12653 #include <sys/types.h>
12654int
12655main ()
12656{
12657 int8_t a; int16_t b; int32_t c; a = b = c = 1;
12658 ;
12659 return 0;
12660}
12661_ACEOF
12662rm -f conftest.$ac_objext
12663if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12664 (eval $ac_compile) 2>&5
12665 ac_status=$?
12666 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12667 (exit $ac_status); } &&
12668 { ac_try='test -s conftest.$ac_objext'
12669 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12670 (eval $ac_try) 2>&5
12671 ac_status=$?
12672 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12673 (exit $ac_status); }; }; then
12674 ac_cv_have_intxx_t="yes"
12675else
12676 echo "$as_me: failed program was:" >&5
12677sed 's/^/| /' conftest.$ac_ext >&5
12678
12679 ac_cv_have_intxx_t="no"
12680
12681fi
12682rm -f conftest.$ac_objext conftest.$ac_ext
12683
12684fi
12685echo "$as_me:$LINENO: result: $ac_cv_have_intxx_t" >&5
12686echo "${ECHO_T}$ac_cv_have_intxx_t" >&6
12687if test "x$ac_cv_have_intxx_t" = "xyes" ; then
12688 cat >>confdefs.h <<\_ACEOF
12689@%:@define HAVE_INTXX_T 1
12690_ACEOF
12691
12692 have_intxx_t=1
12693fi
12694
12695if (test -z "$have_intxx_t" && \
12696 test "x$ac_cv_header_stdint_h" = "xyes")
12697then
12698 echo "$as_me:$LINENO: checking for intXX_t types in stdint.h" >&5
12699echo $ECHO_N "checking for intXX_t types in stdint.h... $ECHO_C" >&6
12700 cat >conftest.$ac_ext <<_ACEOF
12701#line $LINENO "configure"
12702/* confdefs.h. */
12703_ACEOF
12704cat confdefs.h >>conftest.$ac_ext
12705cat >>conftest.$ac_ext <<_ACEOF
12706/* end confdefs.h. */
12707 #include <stdint.h>
12708int
12709main ()
12710{
12711 int8_t a; int16_t b; int32_t c; a = b = c = 1;
12712 ;
12713 return 0;
12714}
12715_ACEOF
12716rm -f conftest.$ac_objext
12717if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12718 (eval $ac_compile) 2>&5
12719 ac_status=$?
12720 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12721 (exit $ac_status); } &&
12722 { ac_try='test -s conftest.$ac_objext'
12723 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12724 (eval $ac_try) 2>&5
12725 ac_status=$?
12726 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12727 (exit $ac_status); }; }; then
12728
12729 cat >>confdefs.h <<\_ACEOF
12730@%:@define HAVE_INTXX_T 1
12731_ACEOF
12732
12733 echo "$as_me:$LINENO: result: yes" >&5
12734echo "${ECHO_T}yes" >&6
12735
12736else
12737 echo "$as_me: failed program was:" >&5
12738sed 's/^/| /' conftest.$ac_ext >&5
12739
12740 echo "$as_me:$LINENO: result: no" >&5
12741echo "${ECHO_T}no" >&6
12742
12743fi
12744rm -f conftest.$ac_objext conftest.$ac_ext
12745fi
12746
12747echo "$as_me:$LINENO: checking for int64_t type" >&5
12748echo $ECHO_N "checking for int64_t type... $ECHO_C" >&6
12749if test "${ac_cv_have_int64_t+set}" = set; then
12750 echo $ECHO_N "(cached) $ECHO_C" >&6
12751else
12752
12753 cat >conftest.$ac_ext <<_ACEOF
12754#line $LINENO "configure"
12755/* confdefs.h. */
12756_ACEOF
12757cat confdefs.h >>conftest.$ac_ext
12758cat >>conftest.$ac_ext <<_ACEOF
12759/* end confdefs.h. */
12760
12761#include <sys/types.h>
12762#ifdef HAVE_STDINT_H
12763# include <stdint.h>
12764#endif
12765#include <sys/socket.h>
12766#ifdef HAVE_SYS_BITYPES_H
12767# include <sys/bitypes.h>
12768#endif
12769
12770int
12771main ()
12772{
12773 int64_t a; a = 1;
12774 ;
12775 return 0;
12776}
12777_ACEOF
12778rm -f conftest.$ac_objext
12779if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12780 (eval $ac_compile) 2>&5
12781 ac_status=$?
12782 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12783 (exit $ac_status); } &&
12784 { ac_try='test -s conftest.$ac_objext'
12785 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12786 (eval $ac_try) 2>&5
12787 ac_status=$?
12788 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12789 (exit $ac_status); }; }; then
12790 ac_cv_have_int64_t="yes"
12791else
12792 echo "$as_me: failed program was:" >&5
12793sed 's/^/| /' conftest.$ac_ext >&5
12794
12795 ac_cv_have_int64_t="no"
12796
12797fi
12798rm -f conftest.$ac_objext conftest.$ac_ext
12799
12800fi
12801echo "$as_me:$LINENO: result: $ac_cv_have_int64_t" >&5
12802echo "${ECHO_T}$ac_cv_have_int64_t" >&6
12803if test "x$ac_cv_have_int64_t" = "xyes" ; then
12804 cat >>confdefs.h <<\_ACEOF
12805@%:@define HAVE_INT64_T 1
12806_ACEOF
12807
12808fi
12809
12810echo "$as_me:$LINENO: checking for u_intXX_t types" >&5
12811echo $ECHO_N "checking for u_intXX_t types... $ECHO_C" >&6
12812if test "${ac_cv_have_u_intxx_t+set}" = set; then
12813 echo $ECHO_N "(cached) $ECHO_C" >&6
12814else
12815
12816 cat >conftest.$ac_ext <<_ACEOF
12817#line $LINENO "configure"
12818/* confdefs.h. */
12819_ACEOF
12820cat confdefs.h >>conftest.$ac_ext
12821cat >>conftest.$ac_ext <<_ACEOF
12822/* end confdefs.h. */
12823 #include <sys/types.h>
12824int
12825main ()
12826{
12827 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
12828 ;
12829 return 0;
12830}
12831_ACEOF
12832rm -f conftest.$ac_objext
12833if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12834 (eval $ac_compile) 2>&5
12835 ac_status=$?
12836 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12837 (exit $ac_status); } &&
12838 { ac_try='test -s conftest.$ac_objext'
12839 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12840 (eval $ac_try) 2>&5
12841 ac_status=$?
12842 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12843 (exit $ac_status); }; }; then
12844 ac_cv_have_u_intxx_t="yes"
12845else
12846 echo "$as_me: failed program was:" >&5
12847sed 's/^/| /' conftest.$ac_ext >&5
12848
12849 ac_cv_have_u_intxx_t="no"
12850
12851fi
12852rm -f conftest.$ac_objext conftest.$ac_ext
12853
12854fi
12855echo "$as_me:$LINENO: result: $ac_cv_have_u_intxx_t" >&5
12856echo "${ECHO_T}$ac_cv_have_u_intxx_t" >&6
12857if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
12858 cat >>confdefs.h <<\_ACEOF
12859@%:@define HAVE_U_INTXX_T 1
12860_ACEOF
12861
12862 have_u_intxx_t=1
12863fi
12864
12865if test -z "$have_u_intxx_t" ; then
12866 echo "$as_me:$LINENO: checking for u_intXX_t types in sys/socket.h" >&5
12867echo $ECHO_N "checking for u_intXX_t types in sys/socket.h... $ECHO_C" >&6
12868 cat >conftest.$ac_ext <<_ACEOF
12869#line $LINENO "configure"
12870/* confdefs.h. */
12871_ACEOF
12872cat confdefs.h >>conftest.$ac_ext
12873cat >>conftest.$ac_ext <<_ACEOF
12874/* end confdefs.h. */
12875 #include <sys/socket.h>
12876int
12877main ()
12878{
12879 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
12880 ;
12881 return 0;
12882}
12883_ACEOF
12884rm -f conftest.$ac_objext
12885if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12886 (eval $ac_compile) 2>&5
12887 ac_status=$?
12888 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12889 (exit $ac_status); } &&
12890 { ac_try='test -s conftest.$ac_objext'
12891 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12892 (eval $ac_try) 2>&5
12893 ac_status=$?
12894 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12895 (exit $ac_status); }; }; then
12896
12897 cat >>confdefs.h <<\_ACEOF
12898@%:@define HAVE_U_INTXX_T 1
12899_ACEOF
12900
12901 echo "$as_me:$LINENO: result: yes" >&5
12902echo "${ECHO_T}yes" >&6
12903
12904else
12905 echo "$as_me: failed program was:" >&5
12906sed 's/^/| /' conftest.$ac_ext >&5
12907
12908 echo "$as_me:$LINENO: result: no" >&5
12909echo "${ECHO_T}no" >&6
12910
12911fi
12912rm -f conftest.$ac_objext conftest.$ac_ext
12913fi
12914
12915echo "$as_me:$LINENO: checking for u_int64_t types" >&5
12916echo $ECHO_N "checking for u_int64_t types... $ECHO_C" >&6
12917if test "${ac_cv_have_u_int64_t+set}" = set; then
12918 echo $ECHO_N "(cached) $ECHO_C" >&6
12919else
12920
12921 cat >conftest.$ac_ext <<_ACEOF
12922#line $LINENO "configure"
12923/* confdefs.h. */
12924_ACEOF
12925cat confdefs.h >>conftest.$ac_ext
12926cat >>conftest.$ac_ext <<_ACEOF
12927/* end confdefs.h. */
12928 #include <sys/types.h>
12929int
12930main ()
12931{
12932 u_int64_t a; a = 1;
12933 ;
12934 return 0;
12935}
12936_ACEOF
12937rm -f conftest.$ac_objext
12938if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12939 (eval $ac_compile) 2>&5
12940 ac_status=$?
12941 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12942 (exit $ac_status); } &&
12943 { ac_try='test -s conftest.$ac_objext'
12944 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12945 (eval $ac_try) 2>&5
12946 ac_status=$?
12947 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12948 (exit $ac_status); }; }; then
12949 ac_cv_have_u_int64_t="yes"
12950else
12951 echo "$as_me: failed program was:" >&5
12952sed 's/^/| /' conftest.$ac_ext >&5
12953
12954 ac_cv_have_u_int64_t="no"
12955
12956fi
12957rm -f conftest.$ac_objext conftest.$ac_ext
12958
12959fi
12960echo "$as_me:$LINENO: result: $ac_cv_have_u_int64_t" >&5
12961echo "${ECHO_T}$ac_cv_have_u_int64_t" >&6
12962if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
12963 cat >>confdefs.h <<\_ACEOF
12964@%:@define HAVE_U_INT64_T 1
12965_ACEOF
12966
12967 have_u_int64_t=1
12968fi
12969
12970if test -z "$have_u_int64_t" ; then
12971 echo "$as_me:$LINENO: checking for u_int64_t type in sys/bitypes.h" >&5
12972echo $ECHO_N "checking for u_int64_t type in sys/bitypes.h... $ECHO_C" >&6
12973 cat >conftest.$ac_ext <<_ACEOF
12974#line $LINENO "configure"
12975/* confdefs.h. */
12976_ACEOF
12977cat confdefs.h >>conftest.$ac_ext
12978cat >>conftest.$ac_ext <<_ACEOF
12979/* end confdefs.h. */
12980 #include <sys/bitypes.h>
12981int
12982main ()
12983{
12984 u_int64_t a; a = 1
12985 ;
12986 return 0;
12987}
12988_ACEOF
12989rm -f conftest.$ac_objext
12990if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12991 (eval $ac_compile) 2>&5
12992 ac_status=$?
12993 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12994 (exit $ac_status); } &&
12995 { ac_try='test -s conftest.$ac_objext'
12996 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12997 (eval $ac_try) 2>&5
12998 ac_status=$?
12999 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13000 (exit $ac_status); }; }; then
13001
13002 cat >>confdefs.h <<\_ACEOF
13003@%:@define HAVE_U_INT64_T 1
13004_ACEOF
13005
13006 echo "$as_me:$LINENO: result: yes" >&5
13007echo "${ECHO_T}yes" >&6
13008
13009else
13010 echo "$as_me: failed program was:" >&5
13011sed 's/^/| /' conftest.$ac_ext >&5
13012
13013 echo "$as_me:$LINENO: result: no" >&5
13014echo "${ECHO_T}no" >&6
13015
13016fi
13017rm -f conftest.$ac_objext conftest.$ac_ext
13018fi
13019
13020if test -z "$have_u_intxx_t" ; then
13021 echo "$as_me:$LINENO: checking for uintXX_t types" >&5
13022echo $ECHO_N "checking for uintXX_t types... $ECHO_C" >&6
13023if test "${ac_cv_have_uintxx_t+set}" = set; then
13024 echo $ECHO_N "(cached) $ECHO_C" >&6
13025else
13026
13027 cat >conftest.$ac_ext <<_ACEOF
13028#line $LINENO "configure"
13029/* confdefs.h. */
13030_ACEOF
13031cat confdefs.h >>conftest.$ac_ext
13032cat >>conftest.$ac_ext <<_ACEOF
13033/* end confdefs.h. */
13034
13035#include <sys/types.h>
13036
13037int
13038main ()
13039{
13040 uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;
13041 ;
13042 return 0;
13043}
13044_ACEOF
13045rm -f conftest.$ac_objext
13046if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13047 (eval $ac_compile) 2>&5
13048 ac_status=$?
13049 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13050 (exit $ac_status); } &&
13051 { ac_try='test -s conftest.$ac_objext'
13052 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13053 (eval $ac_try) 2>&5
13054 ac_status=$?
13055 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13056 (exit $ac_status); }; }; then
13057 ac_cv_have_uintxx_t="yes"
13058else
13059 echo "$as_me: failed program was:" >&5
13060sed 's/^/| /' conftest.$ac_ext >&5
13061
13062 ac_cv_have_uintxx_t="no"
13063
13064fi
13065rm -f conftest.$ac_objext conftest.$ac_ext
13066
13067fi
13068echo "$as_me:$LINENO: result: $ac_cv_have_uintxx_t" >&5
13069echo "${ECHO_T}$ac_cv_have_uintxx_t" >&6
13070 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
13071 cat >>confdefs.h <<\_ACEOF
13072@%:@define HAVE_UINTXX_T 1
13073_ACEOF
13074
13075 fi
13076fi
13077
13078if test -z "$have_uintxx_t" ; then
13079 echo "$as_me:$LINENO: checking for uintXX_t types in stdint.h" >&5
13080echo $ECHO_N "checking for uintXX_t types in stdint.h... $ECHO_C" >&6
13081 cat >conftest.$ac_ext <<_ACEOF
13082#line $LINENO "configure"
13083/* confdefs.h. */
13084_ACEOF
13085cat confdefs.h >>conftest.$ac_ext
13086cat >>conftest.$ac_ext <<_ACEOF
13087/* end confdefs.h. */
13088 #include <stdint.h>
13089int
13090main ()
13091{
13092 uint8_t a; uint16_t b; uint32_t c; a = b = c = 1;
13093 ;
13094 return 0;
13095}
13096_ACEOF
13097rm -f conftest.$ac_objext
13098if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13099 (eval $ac_compile) 2>&5
13100 ac_status=$?
13101 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13102 (exit $ac_status); } &&
13103 { ac_try='test -s conftest.$ac_objext'
13104 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13105 (eval $ac_try) 2>&5
13106 ac_status=$?
13107 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13108 (exit $ac_status); }; }; then
13109
13110 cat >>confdefs.h <<\_ACEOF
13111@%:@define HAVE_UINTXX_T 1
13112_ACEOF
13113
13114 echo "$as_me:$LINENO: result: yes" >&5
13115echo "${ECHO_T}yes" >&6
13116
13117else
13118 echo "$as_me: failed program was:" >&5
13119sed 's/^/| /' conftest.$ac_ext >&5
13120
13121 echo "$as_me:$LINENO: result: no" >&5
13122echo "${ECHO_T}no" >&6
13123
13124fi
13125rm -f conftest.$ac_objext conftest.$ac_ext
13126fi
13127
13128if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
13129 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
13130then
13131 echo "$as_me:$LINENO: checking for intXX_t and u_intXX_t types in sys/bitypes.h" >&5
13132echo $ECHO_N "checking for intXX_t and u_intXX_t types in sys/bitypes.h... $ECHO_C" >&6
13133 cat >conftest.$ac_ext <<_ACEOF
13134#line $LINENO "configure"
13135/* confdefs.h. */
13136_ACEOF
13137cat confdefs.h >>conftest.$ac_ext
13138cat >>conftest.$ac_ext <<_ACEOF
13139/* end confdefs.h. */
13140
13141#include <sys/bitypes.h>
13142
13143int
13144main ()
13145{
13146
13147 int8_t a; int16_t b; int32_t c;
13148 u_int8_t e; u_int16_t f; u_int32_t g;
13149 a = b = c = e = f = g = 1;
13150
13151 ;
13152 return 0;
13153}
13154_ACEOF
13155rm -f conftest.$ac_objext
13156if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13157 (eval $ac_compile) 2>&5
13158 ac_status=$?
13159 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13160 (exit $ac_status); } &&
13161 { ac_try='test -s conftest.$ac_objext'
13162 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13163 (eval $ac_try) 2>&5
13164 ac_status=$?
13165 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13166 (exit $ac_status); }; }; then
13167
13168 cat >>confdefs.h <<\_ACEOF
13169@%:@define HAVE_U_INTXX_T 1
13170_ACEOF
13171
13172 cat >>confdefs.h <<\_ACEOF
13173@%:@define HAVE_INTXX_T 1
13174_ACEOF
13175
13176 echo "$as_me:$LINENO: result: yes" >&5
13177echo "${ECHO_T}yes" >&6
13178
13179else
13180 echo "$as_me: failed program was:" >&5
13181sed 's/^/| /' conftest.$ac_ext >&5
13182
13183echo "$as_me:$LINENO: result: no" >&5
13184echo "${ECHO_T}no" >&6
13185
13186fi
13187rm -f conftest.$ac_objext conftest.$ac_ext
13188fi
13189
13190
13191echo "$as_me:$LINENO: checking for u_char" >&5
13192echo $ECHO_N "checking for u_char... $ECHO_C" >&6
13193if test "${ac_cv_have_u_char+set}" = set; then
13194 echo $ECHO_N "(cached) $ECHO_C" >&6
13195else
13196
13197 cat >conftest.$ac_ext <<_ACEOF
13198#line $LINENO "configure"
13199/* confdefs.h. */
13200_ACEOF
13201cat confdefs.h >>conftest.$ac_ext
13202cat >>conftest.$ac_ext <<_ACEOF
13203/* end confdefs.h. */
13204
13205#include <sys/types.h>
13206
13207int
13208main ()
13209{
13210 u_char foo; foo = 125;
13211 ;
13212 return 0;
13213}
13214_ACEOF
13215rm -f conftest.$ac_objext
13216if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13217 (eval $ac_compile) 2>&5
13218 ac_status=$?
13219 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13220 (exit $ac_status); } &&
13221 { ac_try='test -s conftest.$ac_objext'
13222 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13223 (eval $ac_try) 2>&5
13224 ac_status=$?
13225 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13226 (exit $ac_status); }; }; then
13227 ac_cv_have_u_char="yes"
13228else
13229 echo "$as_me: failed program was:" >&5
13230sed 's/^/| /' conftest.$ac_ext >&5
13231
13232 ac_cv_have_u_char="no"
13233
13234fi
13235rm -f conftest.$ac_objext conftest.$ac_ext
13236
13237fi
13238echo "$as_me:$LINENO: result: $ac_cv_have_u_char" >&5
13239echo "${ECHO_T}$ac_cv_have_u_char" >&6
13240if test "x$ac_cv_have_u_char" = "xyes" ; then
13241 cat >>confdefs.h <<\_ACEOF
13242@%:@define HAVE_U_CHAR 1
13243_ACEOF
13244
13245fi
13246
13247
13248 echo "$as_me:$LINENO: checking for socklen_t" >&5
13249echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
13250if test "${ac_cv_type_socklen_t+set}" = set; then
13251 echo $ECHO_N "(cached) $ECHO_C" >&6
13252else
13253 cat >conftest.$ac_ext <<_ACEOF
13254#line $LINENO "configure"
13255/* confdefs.h. */
13256_ACEOF
13257cat confdefs.h >>conftest.$ac_ext
13258cat >>conftest.$ac_ext <<_ACEOF
13259/* end confdefs.h. */
13260#include <sys/types.h>
13261#include <sys/socket.h>
13262
13263int
13264main ()
13265{
13266if ((socklen_t *) 0)
13267 return 0;
13268if (sizeof (socklen_t))
13269 return 0;
13270 ;
13271 return 0;
13272}
13273_ACEOF
13274rm -f conftest.$ac_objext
13275if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13276 (eval $ac_compile) 2>&5
13277 ac_status=$?
13278 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13279 (exit $ac_status); } &&
13280 { ac_try='test -s conftest.$ac_objext'
13281 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13282 (eval $ac_try) 2>&5
13283 ac_status=$?
13284 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13285 (exit $ac_status); }; }; then
13286 ac_cv_type_socklen_t=yes
13287else
13288 echo "$as_me: failed program was:" >&5
13289sed 's/^/| /' conftest.$ac_ext >&5
13290
13291ac_cv_type_socklen_t=no
13292fi
13293rm -f conftest.$ac_objext conftest.$ac_ext
13294fi
13295echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5
13296echo "${ECHO_T}$ac_cv_type_socklen_t" >&6
13297if test $ac_cv_type_socklen_t = yes; then
13298 :
13299else
13300
13301 echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5
13302echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6
13303 if test "${curl_cv_socklen_t_equiv+set}" = set; then
13304 echo $ECHO_N "(cached) $ECHO_C" >&6
13305else
13306
13307 # Systems have either "struct sockaddr *" or
13308 # "void *" as the second argument to getpeername
13309 curl_cv_socklen_t_equiv=
13310 for arg2 in "struct sockaddr" void; do
13311 for t in int size_t unsigned long "unsigned long"; do
13312 cat >conftest.$ac_ext <<_ACEOF
13313#line $LINENO "configure"
13314/* confdefs.h. */
13315_ACEOF
13316cat confdefs.h >>conftest.$ac_ext
13317cat >>conftest.$ac_ext <<_ACEOF
13318/* end confdefs.h. */
13319
13320 #include <sys/types.h>
13321 #include <sys/socket.h>
13322
13323 int getpeername (int, $arg2 *, $t *);
13324
13325int
13326main ()
13327{
13328
13329 $t len;
13330 getpeername(0,0,&len);
13331
13332 ;
13333 return 0;
13334}
13335_ACEOF
13336rm -f conftest.$ac_objext
13337if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13338 (eval $ac_compile) 2>&5
13339 ac_status=$?
13340 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13341 (exit $ac_status); } &&
13342 { ac_try='test -s conftest.$ac_objext'
13343 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13344 (eval $ac_try) 2>&5
13345 ac_status=$?
13346 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13347 (exit $ac_status); }; }; then
13348
13349 curl_cv_socklen_t_equiv="$t"
13350 break
13351
13352else
13353 echo "$as_me: failed program was:" >&5
13354sed 's/^/| /' conftest.$ac_ext >&5
13355
13356fi
13357rm -f conftest.$ac_objext conftest.$ac_ext
13358 done
13359 done
13360
13361 if test "x$curl_cv_socklen_t_equiv" = x; then
13362 { { echo "$as_me:$LINENO: error: Cannot find a type to use in place of socklen_t" >&5
13363echo "$as_me: error: Cannot find a type to use in place of socklen_t" >&2;}
13364 { (exit 1); exit 1; }; }
13365 fi
13366
13367fi
13368
13369 echo "$as_me:$LINENO: result: $curl_cv_socklen_t_equiv" >&5
13370echo "${ECHO_T}$curl_cv_socklen_t_equiv" >&6
13371
13372cat >>confdefs.h <<_ACEOF
13373@%:@define socklen_t $curl_cv_socklen_t_equiv
13374_ACEOF
13375
13376fi
13377
13378
13379
13380echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
13381echo $ECHO_N "checking for sig_atomic_t... $ECHO_C" >&6
13382if test "${ac_cv_type_sig_atomic_t+set}" = set; then
13383 echo $ECHO_N "(cached) $ECHO_C" >&6
13384else
13385 cat >conftest.$ac_ext <<_ACEOF
13386#line $LINENO "configure"
13387/* confdefs.h. */
13388_ACEOF
13389cat confdefs.h >>conftest.$ac_ext
13390cat >>conftest.$ac_ext <<_ACEOF
13391/* end confdefs.h. */
13392#include <signal.h>
13393
13394int
13395main ()
13396{
13397if ((sig_atomic_t *) 0)
13398 return 0;
13399if (sizeof (sig_atomic_t))
13400 return 0;
13401 ;
13402 return 0;
13403}
13404_ACEOF
13405rm -f conftest.$ac_objext
13406if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13407 (eval $ac_compile) 2>&5
13408 ac_status=$?
13409 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13410 (exit $ac_status); } &&
13411 { ac_try='test -s conftest.$ac_objext'
13412 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13413 (eval $ac_try) 2>&5
13414 ac_status=$?
13415 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13416 (exit $ac_status); }; }; then
13417 ac_cv_type_sig_atomic_t=yes
13418else
13419 echo "$as_me: failed program was:" >&5
13420sed 's/^/| /' conftest.$ac_ext >&5
13421
13422ac_cv_type_sig_atomic_t=no
13423fi
13424rm -f conftest.$ac_objext conftest.$ac_ext
13425fi
13426echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
13427echo "${ECHO_T}$ac_cv_type_sig_atomic_t" >&6
13428if test $ac_cv_type_sig_atomic_t = yes; then
13429
13430cat >>confdefs.h <<_ACEOF
13431@%:@define HAVE_SIG_ATOMIC_T 1
13432_ACEOF
13433
13434
13435fi
13436
13437
13438echo "$as_me:$LINENO: checking for size_t" >&5
13439echo $ECHO_N "checking for size_t... $ECHO_C" >&6
13440if test "${ac_cv_have_size_t+set}" = set; then
13441 echo $ECHO_N "(cached) $ECHO_C" >&6
13442else
13443
13444 cat >conftest.$ac_ext <<_ACEOF
13445#line $LINENO "configure"
13446/* confdefs.h. */
13447_ACEOF
13448cat confdefs.h >>conftest.$ac_ext
13449cat >>conftest.$ac_ext <<_ACEOF
13450/* end confdefs.h. */
13451
13452#include <sys/types.h>
13453
13454int
13455main ()
13456{
13457 size_t foo; foo = 1235;
13458 ;
13459 return 0;
13460}
13461_ACEOF
13462rm -f conftest.$ac_objext
13463if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13464 (eval $ac_compile) 2>&5
13465 ac_status=$?
13466 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13467 (exit $ac_status); } &&
13468 { ac_try='test -s conftest.$ac_objext'
13469 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13470 (eval $ac_try) 2>&5
13471 ac_status=$?
13472 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13473 (exit $ac_status); }; }; then
13474 ac_cv_have_size_t="yes"
13475else
13476 echo "$as_me: failed program was:" >&5
13477sed 's/^/| /' conftest.$ac_ext >&5
13478
13479 ac_cv_have_size_t="no"
13480
13481fi
13482rm -f conftest.$ac_objext conftest.$ac_ext
13483
13484fi
13485echo "$as_me:$LINENO: result: $ac_cv_have_size_t" >&5
13486echo "${ECHO_T}$ac_cv_have_size_t" >&6
13487if test "x$ac_cv_have_size_t" = "xyes" ; then
13488 cat >>confdefs.h <<\_ACEOF
13489@%:@define HAVE_SIZE_T 1
13490_ACEOF
13491
13492fi
13493
13494echo "$as_me:$LINENO: checking for ssize_t" >&5
13495echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
13496if test "${ac_cv_have_ssize_t+set}" = set; then
13497 echo $ECHO_N "(cached) $ECHO_C" >&6
13498else
13499
13500 cat >conftest.$ac_ext <<_ACEOF
13501#line $LINENO "configure"
13502/* confdefs.h. */
13503_ACEOF
13504cat confdefs.h >>conftest.$ac_ext
13505cat >>conftest.$ac_ext <<_ACEOF
13506/* end confdefs.h. */
13507
13508#include <sys/types.h>
13509
13510int
13511main ()
13512{
13513 ssize_t foo; foo = 1235;
13514 ;
13515 return 0;
13516}
13517_ACEOF
13518rm -f conftest.$ac_objext
13519if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13520 (eval $ac_compile) 2>&5
13521 ac_status=$?
13522 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13523 (exit $ac_status); } &&
13524 { ac_try='test -s conftest.$ac_objext'
13525 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13526 (eval $ac_try) 2>&5
13527 ac_status=$?
13528 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13529 (exit $ac_status); }; }; then
13530 ac_cv_have_ssize_t="yes"
13531else
13532 echo "$as_me: failed program was:" >&5
13533sed 's/^/| /' conftest.$ac_ext >&5
13534
13535 ac_cv_have_ssize_t="no"
13536
13537fi
13538rm -f conftest.$ac_objext conftest.$ac_ext
13539
13540fi
13541echo "$as_me:$LINENO: result: $ac_cv_have_ssize_t" >&5
13542echo "${ECHO_T}$ac_cv_have_ssize_t" >&6
13543if test "x$ac_cv_have_ssize_t" = "xyes" ; then
13544 cat >>confdefs.h <<\_ACEOF
13545@%:@define HAVE_SSIZE_T 1
13546_ACEOF
13547
13548fi
13549
13550echo "$as_me:$LINENO: checking for clock_t" >&5
13551echo $ECHO_N "checking for clock_t... $ECHO_C" >&6
13552if test "${ac_cv_have_clock_t+set}" = set; then
13553 echo $ECHO_N "(cached) $ECHO_C" >&6
13554else
13555
13556 cat >conftest.$ac_ext <<_ACEOF
13557#line $LINENO "configure"
13558/* confdefs.h. */
13559_ACEOF
13560cat confdefs.h >>conftest.$ac_ext
13561cat >>conftest.$ac_ext <<_ACEOF
13562/* end confdefs.h. */
13563
13564#include <time.h>
13565
13566int
13567main ()
13568{
13569 clock_t foo; foo = 1235;
13570 ;
13571 return 0;
13572}
13573_ACEOF
13574rm -f conftest.$ac_objext
13575if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13576 (eval $ac_compile) 2>&5
13577 ac_status=$?
13578 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13579 (exit $ac_status); } &&
13580 { ac_try='test -s conftest.$ac_objext'
13581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13582 (eval $ac_try) 2>&5
13583 ac_status=$?
13584 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13585 (exit $ac_status); }; }; then
13586 ac_cv_have_clock_t="yes"
13587else
13588 echo "$as_me: failed program was:" >&5
13589sed 's/^/| /' conftest.$ac_ext >&5
13590
13591 ac_cv_have_clock_t="no"
13592
13593fi
13594rm -f conftest.$ac_objext conftest.$ac_ext
13595
13596fi
13597echo "$as_me:$LINENO: result: $ac_cv_have_clock_t" >&5
13598echo "${ECHO_T}$ac_cv_have_clock_t" >&6
13599if test "x$ac_cv_have_clock_t" = "xyes" ; then
13600 cat >>confdefs.h <<\_ACEOF
13601@%:@define HAVE_CLOCK_T 1
13602_ACEOF
13603
13604fi
13605
13606echo "$as_me:$LINENO: checking for sa_family_t" >&5
13607echo $ECHO_N "checking for sa_family_t... $ECHO_C" >&6
13608if test "${ac_cv_have_sa_family_t+set}" = set; then
13609 echo $ECHO_N "(cached) $ECHO_C" >&6
13610else
13611
13612 cat >conftest.$ac_ext <<_ACEOF
13613#line $LINENO "configure"
13614/* confdefs.h. */
13615_ACEOF
13616cat confdefs.h >>conftest.$ac_ext
13617cat >>conftest.$ac_ext <<_ACEOF
13618/* end confdefs.h. */
13619
13620#include <sys/types.h>
13621#include <sys/socket.h>
13622
13623int
13624main ()
13625{
13626 sa_family_t foo; foo = 1235;
13627 ;
13628 return 0;
13629}
13630_ACEOF
13631rm -f conftest.$ac_objext
13632if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13633 (eval $ac_compile) 2>&5
13634 ac_status=$?
13635 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13636 (exit $ac_status); } &&
13637 { ac_try='test -s conftest.$ac_objext'
13638 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13639 (eval $ac_try) 2>&5
13640 ac_status=$?
13641 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13642 (exit $ac_status); }; }; then
13643 ac_cv_have_sa_family_t="yes"
13644else
13645 echo "$as_me: failed program was:" >&5
13646sed 's/^/| /' conftest.$ac_ext >&5
13647
13648 cat >conftest.$ac_ext <<_ACEOF
13649#line $LINENO "configure"
13650/* confdefs.h. */
13651_ACEOF
13652cat confdefs.h >>conftest.$ac_ext
13653cat >>conftest.$ac_ext <<_ACEOF
13654/* end confdefs.h. */
13655
13656#include <sys/types.h>
13657#include <sys/socket.h>
13658#include <netinet/in.h>
13659
13660int
13661main ()
13662{
13663 sa_family_t foo; foo = 1235;
13664 ;
13665 return 0;
13666}
13667_ACEOF
13668rm -f conftest.$ac_objext
13669if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13670 (eval $ac_compile) 2>&5
13671 ac_status=$?
13672 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13673 (exit $ac_status); } &&
13674 { ac_try='test -s conftest.$ac_objext'
13675 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13676 (eval $ac_try) 2>&5
13677 ac_status=$?
13678 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13679 (exit $ac_status); }; }; then
13680 ac_cv_have_sa_family_t="yes"
13681else
13682 echo "$as_me: failed program was:" >&5
13683sed 's/^/| /' conftest.$ac_ext >&5
13684
13685 ac_cv_have_sa_family_t="no"
13686
13687fi
13688rm -f conftest.$ac_objext conftest.$ac_ext
13689
13690fi
13691rm -f conftest.$ac_objext conftest.$ac_ext
13692
13693fi
13694echo "$as_me:$LINENO: result: $ac_cv_have_sa_family_t" >&5
13695echo "${ECHO_T}$ac_cv_have_sa_family_t" >&6
13696if test "x$ac_cv_have_sa_family_t" = "xyes" ; then
13697 cat >>confdefs.h <<\_ACEOF
13698@%:@define HAVE_SA_FAMILY_T 1
13699_ACEOF
13700
13701fi
13702
13703echo "$as_me:$LINENO: checking for pid_t" >&5
13704echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
13705if test "${ac_cv_have_pid_t+set}" = set; then
13706 echo $ECHO_N "(cached) $ECHO_C" >&6
13707else
13708
13709 cat >conftest.$ac_ext <<_ACEOF
13710#line $LINENO "configure"
13711/* confdefs.h. */
13712_ACEOF
13713cat confdefs.h >>conftest.$ac_ext
13714cat >>conftest.$ac_ext <<_ACEOF
13715/* end confdefs.h. */
13716
13717#include <sys/types.h>
13718
13719int
13720main ()
13721{
13722 pid_t foo; foo = 1235;
13723 ;
13724 return 0;
13725}
13726_ACEOF
13727rm -f conftest.$ac_objext
13728if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13729 (eval $ac_compile) 2>&5
13730 ac_status=$?
13731 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13732 (exit $ac_status); } &&
13733 { ac_try='test -s conftest.$ac_objext'
13734 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13735 (eval $ac_try) 2>&5
13736 ac_status=$?
13737 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13738 (exit $ac_status); }; }; then
13739 ac_cv_have_pid_t="yes"
13740else
13741 echo "$as_me: failed program was:" >&5
13742sed 's/^/| /' conftest.$ac_ext >&5
13743
13744 ac_cv_have_pid_t="no"
13745
13746fi
13747rm -f conftest.$ac_objext conftest.$ac_ext
13748
13749fi
13750echo "$as_me:$LINENO: result: $ac_cv_have_pid_t" >&5
13751echo "${ECHO_T}$ac_cv_have_pid_t" >&6
13752if test "x$ac_cv_have_pid_t" = "xyes" ; then
13753 cat >>confdefs.h <<\_ACEOF
13754@%:@define HAVE_PID_T 1
13755_ACEOF
13756
13757fi
13758
13759echo "$as_me:$LINENO: checking for mode_t" >&5
13760echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
13761if test "${ac_cv_have_mode_t+set}" = set; then
13762 echo $ECHO_N "(cached) $ECHO_C" >&6
13763else
13764
13765 cat >conftest.$ac_ext <<_ACEOF
13766#line $LINENO "configure"
13767/* confdefs.h. */
13768_ACEOF
13769cat confdefs.h >>conftest.$ac_ext
13770cat >>conftest.$ac_ext <<_ACEOF
13771/* end confdefs.h. */
13772
13773#include <sys/types.h>
13774
13775int
13776main ()
13777{
13778 mode_t foo; foo = 1235;
13779 ;
13780 return 0;
13781}
13782_ACEOF
13783rm -f conftest.$ac_objext
13784if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13785 (eval $ac_compile) 2>&5
13786 ac_status=$?
13787 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13788 (exit $ac_status); } &&
13789 { ac_try='test -s conftest.$ac_objext'
13790 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13791 (eval $ac_try) 2>&5
13792 ac_status=$?
13793 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13794 (exit $ac_status); }; }; then
13795 ac_cv_have_mode_t="yes"
13796else
13797 echo "$as_me: failed program was:" >&5
13798sed 's/^/| /' conftest.$ac_ext >&5
13799
13800 ac_cv_have_mode_t="no"
13801
13802fi
13803rm -f conftest.$ac_objext conftest.$ac_ext
13804
13805fi
13806echo "$as_me:$LINENO: result: $ac_cv_have_mode_t" >&5
13807echo "${ECHO_T}$ac_cv_have_mode_t" >&6
13808if test "x$ac_cv_have_mode_t" = "xyes" ; then
13809 cat >>confdefs.h <<\_ACEOF
13810@%:@define HAVE_MODE_T 1
13811_ACEOF
13812
13813fi
13814
13815
13816echo "$as_me:$LINENO: checking for struct sockaddr_storage" >&5
13817echo $ECHO_N "checking for struct sockaddr_storage... $ECHO_C" >&6
13818if test "${ac_cv_have_struct_sockaddr_storage+set}" = set; then
13819 echo $ECHO_N "(cached) $ECHO_C" >&6
13820else
13821
13822 cat >conftest.$ac_ext <<_ACEOF
13823#line $LINENO "configure"
13824/* confdefs.h. */
13825_ACEOF
13826cat confdefs.h >>conftest.$ac_ext
13827cat >>conftest.$ac_ext <<_ACEOF
13828/* end confdefs.h. */
13829
13830#include <sys/types.h>
13831#include <sys/socket.h>
13832
13833int
13834main ()
13835{
13836 struct sockaddr_storage s;
13837 ;
13838 return 0;
13839}
13840_ACEOF
13841rm -f conftest.$ac_objext
13842if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13843 (eval $ac_compile) 2>&5
13844 ac_status=$?
13845 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13846 (exit $ac_status); } &&
13847 { ac_try='test -s conftest.$ac_objext'
13848 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13849 (eval $ac_try) 2>&5
13850 ac_status=$?
13851 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13852 (exit $ac_status); }; }; then
13853 ac_cv_have_struct_sockaddr_storage="yes"
13854else
13855 echo "$as_me: failed program was:" >&5
13856sed 's/^/| /' conftest.$ac_ext >&5
13857
13858 ac_cv_have_struct_sockaddr_storage="no"
13859
13860fi
13861rm -f conftest.$ac_objext conftest.$ac_ext
13862
13863fi
13864echo "$as_me:$LINENO: result: $ac_cv_have_struct_sockaddr_storage" >&5
13865echo "${ECHO_T}$ac_cv_have_struct_sockaddr_storage" >&6
13866if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then
13867 cat >>confdefs.h <<\_ACEOF
13868@%:@define HAVE_STRUCT_SOCKADDR_STORAGE 1
13869_ACEOF
13870
13871fi
13872
13873echo "$as_me:$LINENO: checking for struct sockaddr_in6" >&5
13874echo $ECHO_N "checking for struct sockaddr_in6... $ECHO_C" >&6
13875if test "${ac_cv_have_struct_sockaddr_in6+set}" = set; then
13876 echo $ECHO_N "(cached) $ECHO_C" >&6
13877else
13878
13879 cat >conftest.$ac_ext <<_ACEOF
13880#line $LINENO "configure"
13881/* confdefs.h. */
13882_ACEOF
13883cat confdefs.h >>conftest.$ac_ext
13884cat >>conftest.$ac_ext <<_ACEOF
13885/* end confdefs.h. */
13886
13887#include <sys/types.h>
13888#include <netinet/in.h>
13889
13890int
13891main ()
13892{
13893 struct sockaddr_in6 s; s.sin6_family = 0;
13894 ;
13895 return 0;
13896}
13897_ACEOF
13898rm -f conftest.$ac_objext
13899if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13900 (eval $ac_compile) 2>&5
13901 ac_status=$?
13902 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13903 (exit $ac_status); } &&
13904 { ac_try='test -s conftest.$ac_objext'
13905 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13906 (eval $ac_try) 2>&5
13907 ac_status=$?
13908 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13909 (exit $ac_status); }; }; then
13910 ac_cv_have_struct_sockaddr_in6="yes"
13911else
13912 echo "$as_me: failed program was:" >&5
13913sed 's/^/| /' conftest.$ac_ext >&5
13914
13915 ac_cv_have_struct_sockaddr_in6="no"
13916
13917fi
13918rm -f conftest.$ac_objext conftest.$ac_ext
13919
13920fi
13921echo "$as_me:$LINENO: result: $ac_cv_have_struct_sockaddr_in6" >&5
13922echo "${ECHO_T}$ac_cv_have_struct_sockaddr_in6" >&6
13923if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then
13924 cat >>confdefs.h <<\_ACEOF
13925@%:@define HAVE_STRUCT_SOCKADDR_IN6 1
13926_ACEOF
13927
13928fi
13929
13930echo "$as_me:$LINENO: checking for struct in6_addr" >&5
13931echo $ECHO_N "checking for struct in6_addr... $ECHO_C" >&6
13932if test "${ac_cv_have_struct_in6_addr+set}" = set; then
13933 echo $ECHO_N "(cached) $ECHO_C" >&6
13934else
13935
13936 cat >conftest.$ac_ext <<_ACEOF
13937#line $LINENO "configure"
13938/* confdefs.h. */
13939_ACEOF
13940cat confdefs.h >>conftest.$ac_ext
13941cat >>conftest.$ac_ext <<_ACEOF
13942/* end confdefs.h. */
13943
13944#include <sys/types.h>
13945#include <netinet/in.h>
13946
13947int
13948main ()
13949{
13950 struct in6_addr s; s.s6_addr[0] = 0;
13951 ;
13952 return 0;
13953}
13954_ACEOF
13955rm -f conftest.$ac_objext
13956if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13957 (eval $ac_compile) 2>&5
13958 ac_status=$?
13959 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13960 (exit $ac_status); } &&
13961 { ac_try='test -s conftest.$ac_objext'
13962 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13963 (eval $ac_try) 2>&5
13964 ac_status=$?
13965 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13966 (exit $ac_status); }; }; then
13967 ac_cv_have_struct_in6_addr="yes"
13968else
13969 echo "$as_me: failed program was:" >&5
13970sed 's/^/| /' conftest.$ac_ext >&5
13971
13972 ac_cv_have_struct_in6_addr="no"
13973
13974fi
13975rm -f conftest.$ac_objext conftest.$ac_ext
13976
13977fi
13978echo "$as_me:$LINENO: result: $ac_cv_have_struct_in6_addr" >&5
13979echo "${ECHO_T}$ac_cv_have_struct_in6_addr" >&6
13980if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
13981 cat >>confdefs.h <<\_ACEOF
13982@%:@define HAVE_STRUCT_IN6_ADDR 1
13983_ACEOF
13984
13985fi
13986
13987echo "$as_me:$LINENO: checking for struct addrinfo" >&5
13988echo $ECHO_N "checking for struct addrinfo... $ECHO_C" >&6
13989if test "${ac_cv_have_struct_addrinfo+set}" = set; then
13990 echo $ECHO_N "(cached) $ECHO_C" >&6
13991else
13992
13993 cat >conftest.$ac_ext <<_ACEOF
13994#line $LINENO "configure"
13995/* confdefs.h. */
13996_ACEOF
13997cat confdefs.h >>conftest.$ac_ext
13998cat >>conftest.$ac_ext <<_ACEOF
13999/* end confdefs.h. */
14000
14001#include <sys/types.h>
14002#include <sys/socket.h>
14003#include <netdb.h>
14004
14005int
14006main ()
14007{
14008 struct addrinfo s; s.ai_flags = AI_PASSIVE;
14009 ;
14010 return 0;
14011}
14012_ACEOF
14013rm -f conftest.$ac_objext
14014if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14015 (eval $ac_compile) 2>&5
14016 ac_status=$?
14017 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14018 (exit $ac_status); } &&
14019 { ac_try='test -s conftest.$ac_objext'
14020 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14021 (eval $ac_try) 2>&5
14022 ac_status=$?
14023 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14024 (exit $ac_status); }; }; then
14025 ac_cv_have_struct_addrinfo="yes"
14026else
14027 echo "$as_me: failed program was:" >&5
14028sed 's/^/| /' conftest.$ac_ext >&5
14029
14030 ac_cv_have_struct_addrinfo="no"
14031
14032fi
14033rm -f conftest.$ac_objext conftest.$ac_ext
14034
14035fi
14036echo "$as_me:$LINENO: result: $ac_cv_have_struct_addrinfo" >&5
14037echo "${ECHO_T}$ac_cv_have_struct_addrinfo" >&6
14038if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then
14039 cat >>confdefs.h <<\_ACEOF
14040@%:@define HAVE_STRUCT_ADDRINFO 1
14041_ACEOF
14042
14043fi
14044
14045echo "$as_me:$LINENO: checking for struct timeval" >&5
14046echo $ECHO_N "checking for struct timeval... $ECHO_C" >&6
14047if test "${ac_cv_have_struct_timeval+set}" = set; then
14048 echo $ECHO_N "(cached) $ECHO_C" >&6
14049else
14050
14051 cat >conftest.$ac_ext <<_ACEOF
14052#line $LINENO "configure"
14053/* confdefs.h. */
14054_ACEOF
14055cat confdefs.h >>conftest.$ac_ext
14056cat >>conftest.$ac_ext <<_ACEOF
14057/* end confdefs.h. */
14058 #include <sys/time.h>
14059int
14060main ()
14061{
14062 struct timeval tv; tv.tv_sec = 1;
14063 ;
14064 return 0;
14065}
14066_ACEOF
14067rm -f conftest.$ac_objext
14068if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14069 (eval $ac_compile) 2>&5
14070 ac_status=$?
14071 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14072 (exit $ac_status); } &&
14073 { ac_try='test -s conftest.$ac_objext'
14074 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14075 (eval $ac_try) 2>&5
14076 ac_status=$?
14077 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14078 (exit $ac_status); }; }; then
14079 ac_cv_have_struct_timeval="yes"
14080else
14081 echo "$as_me: failed program was:" >&5
14082sed 's/^/| /' conftest.$ac_ext >&5
14083
14084 ac_cv_have_struct_timeval="no"
14085
14086fi
14087rm -f conftest.$ac_objext conftest.$ac_ext
14088
14089fi
14090echo "$as_me:$LINENO: result: $ac_cv_have_struct_timeval" >&5
14091echo "${ECHO_T}$ac_cv_have_struct_timeval" >&6
14092if test "x$ac_cv_have_struct_timeval" = "xyes" ; then
14093 cat >>confdefs.h <<\_ACEOF
14094@%:@define HAVE_STRUCT_TIMEVAL 1
14095_ACEOF
14096
14097 have_struct_timeval=1
14098fi
14099
14100echo "$as_me:$LINENO: checking for struct timespec" >&5
14101echo $ECHO_N "checking for struct timespec... $ECHO_C" >&6
14102if test "${ac_cv_type_struct_timespec+set}" = set; then
14103 echo $ECHO_N "(cached) $ECHO_C" >&6
14104else
14105 cat >conftest.$ac_ext <<_ACEOF
14106#line $LINENO "configure"
14107/* confdefs.h. */
14108_ACEOF
14109cat confdefs.h >>conftest.$ac_ext
14110cat >>conftest.$ac_ext <<_ACEOF
14111/* end confdefs.h. */
14112$ac_includes_default
14113int
14114main ()
14115{
14116if ((struct timespec *) 0)
14117 return 0;
14118if (sizeof (struct timespec))
14119 return 0;
14120 ;
14121 return 0;
14122}
14123_ACEOF
14124rm -f conftest.$ac_objext
14125if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14126 (eval $ac_compile) 2>&5
14127 ac_status=$?
14128 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14129 (exit $ac_status); } &&
14130 { ac_try='test -s conftest.$ac_objext'
14131 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14132 (eval $ac_try) 2>&5
14133 ac_status=$?
14134 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14135 (exit $ac_status); }; }; then
14136 ac_cv_type_struct_timespec=yes
14137else
14138 echo "$as_me: failed program was:" >&5
14139sed 's/^/| /' conftest.$ac_ext >&5
14140
14141ac_cv_type_struct_timespec=no
14142fi
14143rm -f conftest.$ac_objext conftest.$ac_ext
14144fi
14145echo "$as_me:$LINENO: result: $ac_cv_type_struct_timespec" >&5
14146echo "${ECHO_T}$ac_cv_type_struct_timespec" >&6
14147if test $ac_cv_type_struct_timespec = yes; then
14148
14149cat >>confdefs.h <<_ACEOF
14150@%:@define HAVE_STRUCT_TIMESPEC 1
14151_ACEOF
14152
14153
14154fi
14155
14156
14157# We need int64_t or else certian parts of the compile will fail.
14158if test "x$ac_cv_have_int64_t" = "xno" -a \
14159 "x$ac_cv_sizeof_long_int" != "x8" -a \
14160 "x$ac_cv_sizeof_long_long_int" = "x0" ; then
14161 echo "OpenSSH requires int64_t support. Contact your vendor or install"
14162 echo "an alternative compiler (I.E., GCC) before continuing."
14163 echo ""
14164 exit 1;
14165else
14166 if test "$cross_compiling" = yes; then
14167 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
14168See \`config.log' for more details." >&5
14169echo "$as_me: error: cannot run test program while cross compiling
14170See \`config.log' for more details." >&2;}
14171 { (exit 1); exit 1; }; }
14172else
14173 cat >conftest.$ac_ext <<_ACEOF
14174#line $LINENO "configure"
14175/* confdefs.h. */
14176_ACEOF
14177cat confdefs.h >>conftest.$ac_ext
14178cat >>conftest.$ac_ext <<_ACEOF
14179/* end confdefs.h. */
14180
14181#include <stdio.h>
14182#include <string.h>
14183#ifdef HAVE_SNPRINTF
14184main()
14185{
14186 char buf[50];
14187 char expected_out[50];
14188 int mazsize = 50 ;
14189#if (SIZEOF_LONG_INT == 8)
14190 long int num = 0x7fffffffffffffff;
14191#else
14192 long long num = 0x7fffffffffffffffll;
14193#endif
14194 strcpy(expected_out, "9223372036854775807");
14195 snprintf(buf, mazsize, "%lld", num);
14196 if(strcmp(buf, expected_out) != 0)
14197 exit(1);
14198 exit(0);
14199}
14200#else
14201main() { exit(0); }
14202#endif
14203
14204_ACEOF
14205rm -f conftest$ac_exeext
14206if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14207 (eval $ac_link) 2>&5
14208 ac_status=$?
14209 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14210 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
14211 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14212 (eval $ac_try) 2>&5
14213 ac_status=$?
14214 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14215 (exit $ac_status); }; }; then
14216 true
14217else
14218 echo "$as_me: program exited with status $ac_status" >&5
14219echo "$as_me: failed program was:" >&5
14220sed 's/^/| /' conftest.$ac_ext >&5
14221
14222( exit $ac_status )
14223 cat >>confdefs.h <<\_ACEOF
14224@%:@define BROKEN_SNPRINTF 1
14225_ACEOF
14226
14227
14228fi
14229rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
14230fi
14231fi
14232
14233
14234# look for field 'ut_host' in header 'utmp.h'
14235 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14236 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_host
14237 echo "$as_me:$LINENO: checking for ut_host field in utmp.h" >&5
14238echo $ECHO_N "checking for ut_host field in utmp.h... $ECHO_C" >&6
14239 if eval "test \"\${$ossh_varname+set}\" = set"; then
14240 echo $ECHO_N "(cached) $ECHO_C" >&6
14241else
14242
14243 cat >conftest.$ac_ext <<_ACEOF
14244#line $LINENO "configure"
14245/* confdefs.h. */
14246_ACEOF
14247cat confdefs.h >>conftest.$ac_ext
14248cat >>conftest.$ac_ext <<_ACEOF
14249/* end confdefs.h. */
14250#include <utmp.h>
14251
14252_ACEOF
14253if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14254 $EGREP "ut_host" >/dev/null 2>&1; then
14255 eval "$ossh_varname=yes"
14256else
14257 eval "$ossh_varname=no"
14258fi
14259rm -f conftest*
14260
14261fi
14262
14263 ossh_result=`eval 'echo $'"$ossh_varname"`
14264 if test -n "`echo $ossh_varname`"; then
14265 echo "$as_me:$LINENO: result: $ossh_result" >&5
14266echo "${ECHO_T}$ossh_result" >&6
14267 if test "x$ossh_result" = "xyes"; then
14268 cat >>confdefs.h <<\_ACEOF
14269@%:@define HAVE_HOST_IN_UTMP 1
14270_ACEOF
14271
14272 fi
14273 else
14274 echo "$as_me:$LINENO: result: no" >&5
14275echo "${ECHO_T}no" >&6
14276 fi
14277
14278
14279# look for field 'ut_host' in header 'utmpx.h'
14280 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14281 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_host
14282 echo "$as_me:$LINENO: checking for ut_host field in utmpx.h" >&5
14283echo $ECHO_N "checking for ut_host field in utmpx.h... $ECHO_C" >&6
14284 if eval "test \"\${$ossh_varname+set}\" = set"; then
14285 echo $ECHO_N "(cached) $ECHO_C" >&6
14286else
14287
14288 cat >conftest.$ac_ext <<_ACEOF
14289#line $LINENO "configure"
14290/* confdefs.h. */
14291_ACEOF
14292cat confdefs.h >>conftest.$ac_ext
14293cat >>conftest.$ac_ext <<_ACEOF
14294/* end confdefs.h. */
14295#include <utmpx.h>
14296
14297_ACEOF
14298if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14299 $EGREP "ut_host" >/dev/null 2>&1; then
14300 eval "$ossh_varname=yes"
14301else
14302 eval "$ossh_varname=no"
14303fi
14304rm -f conftest*
14305
14306fi
14307
14308 ossh_result=`eval 'echo $'"$ossh_varname"`
14309 if test -n "`echo $ossh_varname`"; then
14310 echo "$as_me:$LINENO: result: $ossh_result" >&5
14311echo "${ECHO_T}$ossh_result" >&6
14312 if test "x$ossh_result" = "xyes"; then
14313 cat >>confdefs.h <<\_ACEOF
14314@%:@define HAVE_HOST_IN_UTMPX 1
14315_ACEOF
14316
14317 fi
14318 else
14319 echo "$as_me:$LINENO: result: no" >&5
14320echo "${ECHO_T}no" >&6
14321 fi
14322
14323
14324# look for field 'syslen' in header 'utmpx.h'
14325 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14326 ossh_varname="ossh_cv_$ossh_safe""_has_"syslen
14327 echo "$as_me:$LINENO: checking for syslen field in utmpx.h" >&5
14328echo $ECHO_N "checking for syslen field in utmpx.h... $ECHO_C" >&6
14329 if eval "test \"\${$ossh_varname+set}\" = set"; then
14330 echo $ECHO_N "(cached) $ECHO_C" >&6
14331else
14332
14333 cat >conftest.$ac_ext <<_ACEOF
14334#line $LINENO "configure"
14335/* confdefs.h. */
14336_ACEOF
14337cat confdefs.h >>conftest.$ac_ext
14338cat >>conftest.$ac_ext <<_ACEOF
14339/* end confdefs.h. */
14340#include <utmpx.h>
14341
14342_ACEOF
14343if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14344 $EGREP "syslen" >/dev/null 2>&1; then
14345 eval "$ossh_varname=yes"
14346else
14347 eval "$ossh_varname=no"
14348fi
14349rm -f conftest*
14350
14351fi
14352
14353 ossh_result=`eval 'echo $'"$ossh_varname"`
14354 if test -n "`echo $ossh_varname`"; then
14355 echo "$as_me:$LINENO: result: $ossh_result" >&5
14356echo "${ECHO_T}$ossh_result" >&6
14357 if test "x$ossh_result" = "xyes"; then
14358 cat >>confdefs.h <<\_ACEOF
14359@%:@define HAVE_SYSLEN_IN_UTMPX 1
14360_ACEOF
14361
14362 fi
14363 else
14364 echo "$as_me:$LINENO: result: no" >&5
14365echo "${ECHO_T}no" >&6
14366 fi
14367
14368
14369# look for field 'ut_pid' in header 'utmp.h'
14370 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14371 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_pid
14372 echo "$as_me:$LINENO: checking for ut_pid field in utmp.h" >&5
14373echo $ECHO_N "checking for ut_pid field in utmp.h... $ECHO_C" >&6
14374 if eval "test \"\${$ossh_varname+set}\" = set"; then
14375 echo $ECHO_N "(cached) $ECHO_C" >&6
14376else
14377
14378 cat >conftest.$ac_ext <<_ACEOF
14379#line $LINENO "configure"
14380/* confdefs.h. */
14381_ACEOF
14382cat confdefs.h >>conftest.$ac_ext
14383cat >>conftest.$ac_ext <<_ACEOF
14384/* end confdefs.h. */
14385#include <utmp.h>
14386
14387_ACEOF
14388if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14389 $EGREP "ut_pid" >/dev/null 2>&1; then
14390 eval "$ossh_varname=yes"
14391else
14392 eval "$ossh_varname=no"
14393fi
14394rm -f conftest*
14395
14396fi
14397
14398 ossh_result=`eval 'echo $'"$ossh_varname"`
14399 if test -n "`echo $ossh_varname`"; then
14400 echo "$as_me:$LINENO: result: $ossh_result" >&5
14401echo "${ECHO_T}$ossh_result" >&6
14402 if test "x$ossh_result" = "xyes"; then
14403 cat >>confdefs.h <<\_ACEOF
14404@%:@define HAVE_PID_IN_UTMP 1
14405_ACEOF
14406
14407 fi
14408 else
14409 echo "$as_me:$LINENO: result: no" >&5
14410echo "${ECHO_T}no" >&6
14411 fi
14412
14413
14414# look for field 'ut_type' in header 'utmp.h'
14415 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14416 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_type
14417 echo "$as_me:$LINENO: checking for ut_type field in utmp.h" >&5
14418echo $ECHO_N "checking for ut_type field in utmp.h... $ECHO_C" >&6
14419 if eval "test \"\${$ossh_varname+set}\" = set"; then
14420 echo $ECHO_N "(cached) $ECHO_C" >&6
14421else
14422
14423 cat >conftest.$ac_ext <<_ACEOF
14424#line $LINENO "configure"
14425/* confdefs.h. */
14426_ACEOF
14427cat confdefs.h >>conftest.$ac_ext
14428cat >>conftest.$ac_ext <<_ACEOF
14429/* end confdefs.h. */
14430#include <utmp.h>
14431
14432_ACEOF
14433if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14434 $EGREP "ut_type" >/dev/null 2>&1; then
14435 eval "$ossh_varname=yes"
14436else
14437 eval "$ossh_varname=no"
14438fi
14439rm -f conftest*
14440
14441fi
14442
14443 ossh_result=`eval 'echo $'"$ossh_varname"`
14444 if test -n "`echo $ossh_varname`"; then
14445 echo "$as_me:$LINENO: result: $ossh_result" >&5
14446echo "${ECHO_T}$ossh_result" >&6
14447 if test "x$ossh_result" = "xyes"; then
14448 cat >>confdefs.h <<\_ACEOF
14449@%:@define HAVE_TYPE_IN_UTMP 1
14450_ACEOF
14451
14452 fi
14453 else
14454 echo "$as_me:$LINENO: result: no" >&5
14455echo "${ECHO_T}no" >&6
14456 fi
14457
14458
14459# look for field 'ut_type' in header 'utmpx.h'
14460 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14461 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_type
14462 echo "$as_me:$LINENO: checking for ut_type field in utmpx.h" >&5
14463echo $ECHO_N "checking for ut_type field in utmpx.h... $ECHO_C" >&6
14464 if eval "test \"\${$ossh_varname+set}\" = set"; then
14465 echo $ECHO_N "(cached) $ECHO_C" >&6
14466else
14467
14468 cat >conftest.$ac_ext <<_ACEOF
14469#line $LINENO "configure"
14470/* confdefs.h. */
14471_ACEOF
14472cat confdefs.h >>conftest.$ac_ext
14473cat >>conftest.$ac_ext <<_ACEOF
14474/* end confdefs.h. */
14475#include <utmpx.h>
14476
14477_ACEOF
14478if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14479 $EGREP "ut_type" >/dev/null 2>&1; then
14480 eval "$ossh_varname=yes"
14481else
14482 eval "$ossh_varname=no"
14483fi
14484rm -f conftest*
14485
14486fi
14487
14488 ossh_result=`eval 'echo $'"$ossh_varname"`
14489 if test -n "`echo $ossh_varname`"; then
14490 echo "$as_me:$LINENO: result: $ossh_result" >&5
14491echo "${ECHO_T}$ossh_result" >&6
14492 if test "x$ossh_result" = "xyes"; then
14493 cat >>confdefs.h <<\_ACEOF
14494@%:@define HAVE_TYPE_IN_UTMPX 1
14495_ACEOF
14496
14497 fi
14498 else
14499 echo "$as_me:$LINENO: result: no" >&5
14500echo "${ECHO_T}no" >&6
14501 fi
14502
14503
14504# look for field 'ut_tv' in header 'utmp.h'
14505 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14506 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_tv
14507 echo "$as_me:$LINENO: checking for ut_tv field in utmp.h" >&5
14508echo $ECHO_N "checking for ut_tv field in utmp.h... $ECHO_C" >&6
14509 if eval "test \"\${$ossh_varname+set}\" = set"; then
14510 echo $ECHO_N "(cached) $ECHO_C" >&6
14511else
14512
14513 cat >conftest.$ac_ext <<_ACEOF
14514#line $LINENO "configure"
14515/* confdefs.h. */
14516_ACEOF
14517cat confdefs.h >>conftest.$ac_ext
14518cat >>conftest.$ac_ext <<_ACEOF
14519/* end confdefs.h. */
14520#include <utmp.h>
14521
14522_ACEOF
14523if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14524 $EGREP "ut_tv" >/dev/null 2>&1; then
14525 eval "$ossh_varname=yes"
14526else
14527 eval "$ossh_varname=no"
14528fi
14529rm -f conftest*
14530
14531fi
14532
14533 ossh_result=`eval 'echo $'"$ossh_varname"`
14534 if test -n "`echo $ossh_varname`"; then
14535 echo "$as_me:$LINENO: result: $ossh_result" >&5
14536echo "${ECHO_T}$ossh_result" >&6
14537 if test "x$ossh_result" = "xyes"; then
14538 cat >>confdefs.h <<\_ACEOF
14539@%:@define HAVE_TV_IN_UTMP 1
14540_ACEOF
14541
14542 fi
14543 else
14544 echo "$as_me:$LINENO: result: no" >&5
14545echo "${ECHO_T}no" >&6
14546 fi
14547
14548
14549# look for field 'ut_id' in header 'utmp.h'
14550 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14551 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_id
14552 echo "$as_me:$LINENO: checking for ut_id field in utmp.h" >&5
14553echo $ECHO_N "checking for ut_id field in utmp.h... $ECHO_C" >&6
14554 if eval "test \"\${$ossh_varname+set}\" = set"; then
14555 echo $ECHO_N "(cached) $ECHO_C" >&6
14556else
14557
14558 cat >conftest.$ac_ext <<_ACEOF
14559#line $LINENO "configure"
14560/* confdefs.h. */
14561_ACEOF
14562cat confdefs.h >>conftest.$ac_ext
14563cat >>conftest.$ac_ext <<_ACEOF
14564/* end confdefs.h. */
14565#include <utmp.h>
14566
14567_ACEOF
14568if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14569 $EGREP "ut_id" >/dev/null 2>&1; then
14570 eval "$ossh_varname=yes"
14571else
14572 eval "$ossh_varname=no"
14573fi
14574rm -f conftest*
14575
14576fi
14577
14578 ossh_result=`eval 'echo $'"$ossh_varname"`
14579 if test -n "`echo $ossh_varname`"; then
14580 echo "$as_me:$LINENO: result: $ossh_result" >&5
14581echo "${ECHO_T}$ossh_result" >&6
14582 if test "x$ossh_result" = "xyes"; then
14583 cat >>confdefs.h <<\_ACEOF
14584@%:@define HAVE_ID_IN_UTMP 1
14585_ACEOF
14586
14587 fi
14588 else
14589 echo "$as_me:$LINENO: result: no" >&5
14590echo "${ECHO_T}no" >&6
14591 fi
14592
14593
14594# look for field 'ut_id' in header 'utmpx.h'
14595 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14596 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_id
14597 echo "$as_me:$LINENO: checking for ut_id field in utmpx.h" >&5
14598echo $ECHO_N "checking for ut_id field in utmpx.h... $ECHO_C" >&6
14599 if eval "test \"\${$ossh_varname+set}\" = set"; then
14600 echo $ECHO_N "(cached) $ECHO_C" >&6
14601else
14602
14603 cat >conftest.$ac_ext <<_ACEOF
14604#line $LINENO "configure"
14605/* confdefs.h. */
14606_ACEOF
14607cat confdefs.h >>conftest.$ac_ext
14608cat >>conftest.$ac_ext <<_ACEOF
14609/* end confdefs.h. */
14610#include <utmpx.h>
14611
14612_ACEOF
14613if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14614 $EGREP "ut_id" >/dev/null 2>&1; then
14615 eval "$ossh_varname=yes"
14616else
14617 eval "$ossh_varname=no"
14618fi
14619rm -f conftest*
14620
14621fi
14622
14623 ossh_result=`eval 'echo $'"$ossh_varname"`
14624 if test -n "`echo $ossh_varname`"; then
14625 echo "$as_me:$LINENO: result: $ossh_result" >&5
14626echo "${ECHO_T}$ossh_result" >&6
14627 if test "x$ossh_result" = "xyes"; then
14628 cat >>confdefs.h <<\_ACEOF
14629@%:@define HAVE_ID_IN_UTMPX 1
14630_ACEOF
14631
14632 fi
14633 else
14634 echo "$as_me:$LINENO: result: no" >&5
14635echo "${ECHO_T}no" >&6
14636 fi
14637
14638
14639# look for field 'ut_addr' in header 'utmp.h'
14640 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14641 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr
14642 echo "$as_me:$LINENO: checking for ut_addr field in utmp.h" >&5
14643echo $ECHO_N "checking for ut_addr field in utmp.h... $ECHO_C" >&6
14644 if eval "test \"\${$ossh_varname+set}\" = set"; then
14645 echo $ECHO_N "(cached) $ECHO_C" >&6
14646else
14647
14648 cat >conftest.$ac_ext <<_ACEOF
14649#line $LINENO "configure"
14650/* confdefs.h. */
14651_ACEOF
14652cat confdefs.h >>conftest.$ac_ext
14653cat >>conftest.$ac_ext <<_ACEOF
14654/* end confdefs.h. */
14655#include <utmp.h>
14656
14657_ACEOF
14658if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14659 $EGREP "ut_addr" >/dev/null 2>&1; then
14660 eval "$ossh_varname=yes"
14661else
14662 eval "$ossh_varname=no"
14663fi
14664rm -f conftest*
14665
14666fi
14667
14668 ossh_result=`eval 'echo $'"$ossh_varname"`
14669 if test -n "`echo $ossh_varname`"; then
14670 echo "$as_me:$LINENO: result: $ossh_result" >&5
14671echo "${ECHO_T}$ossh_result" >&6
14672 if test "x$ossh_result" = "xyes"; then
14673 cat >>confdefs.h <<\_ACEOF
14674@%:@define HAVE_ADDR_IN_UTMP 1
14675_ACEOF
14676
14677 fi
14678 else
14679 echo "$as_me:$LINENO: result: no" >&5
14680echo "${ECHO_T}no" >&6
14681 fi
14682
14683
14684# look for field 'ut_addr' in header 'utmpx.h'
14685 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14686 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr
14687 echo "$as_me:$LINENO: checking for ut_addr field in utmpx.h" >&5
14688echo $ECHO_N "checking for ut_addr field in utmpx.h... $ECHO_C" >&6
14689 if eval "test \"\${$ossh_varname+set}\" = set"; then
14690 echo $ECHO_N "(cached) $ECHO_C" >&6
14691else
14692
14693 cat >conftest.$ac_ext <<_ACEOF
14694#line $LINENO "configure"
14695/* confdefs.h. */
14696_ACEOF
14697cat confdefs.h >>conftest.$ac_ext
14698cat >>conftest.$ac_ext <<_ACEOF
14699/* end confdefs.h. */
14700#include <utmpx.h>
14701
14702_ACEOF
14703if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14704 $EGREP "ut_addr" >/dev/null 2>&1; then
14705 eval "$ossh_varname=yes"
14706else
14707 eval "$ossh_varname=no"
14708fi
14709rm -f conftest*
14710
14711fi
14712
14713 ossh_result=`eval 'echo $'"$ossh_varname"`
14714 if test -n "`echo $ossh_varname`"; then
14715 echo "$as_me:$LINENO: result: $ossh_result" >&5
14716echo "${ECHO_T}$ossh_result" >&6
14717 if test "x$ossh_result" = "xyes"; then
14718 cat >>confdefs.h <<\_ACEOF
14719@%:@define HAVE_ADDR_IN_UTMPX 1
14720_ACEOF
14721
14722 fi
14723 else
14724 echo "$as_me:$LINENO: result: no" >&5
14725echo "${ECHO_T}no" >&6
14726 fi
14727
14728
14729# look for field 'ut_addr_v6' in header 'utmp.h'
14730 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14731 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr_v6
14732 echo "$as_me:$LINENO: checking for ut_addr_v6 field in utmp.h" >&5
14733echo $ECHO_N "checking for ut_addr_v6 field in utmp.h... $ECHO_C" >&6
14734 if eval "test \"\${$ossh_varname+set}\" = set"; then
14735 echo $ECHO_N "(cached) $ECHO_C" >&6
14736else
14737
14738 cat >conftest.$ac_ext <<_ACEOF
14739#line $LINENO "configure"
14740/* confdefs.h. */
14741_ACEOF
14742cat confdefs.h >>conftest.$ac_ext
14743cat >>conftest.$ac_ext <<_ACEOF
14744/* end confdefs.h. */
14745#include <utmp.h>
14746
14747_ACEOF
14748if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14749 $EGREP "ut_addr_v6" >/dev/null 2>&1; then
14750 eval "$ossh_varname=yes"
14751else
14752 eval "$ossh_varname=no"
14753fi
14754rm -f conftest*
14755
14756fi
14757
14758 ossh_result=`eval 'echo $'"$ossh_varname"`
14759 if test -n "`echo $ossh_varname`"; then
14760 echo "$as_me:$LINENO: result: $ossh_result" >&5
14761echo "${ECHO_T}$ossh_result" >&6
14762 if test "x$ossh_result" = "xyes"; then
14763 cat >>confdefs.h <<\_ACEOF
14764@%:@define HAVE_ADDR_V6_IN_UTMP 1
14765_ACEOF
14766
14767 fi
14768 else
14769 echo "$as_me:$LINENO: result: no" >&5
14770echo "${ECHO_T}no" >&6
14771 fi
14772
14773
14774# look for field 'ut_addr_v6' in header 'utmpx.h'
14775 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14776 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_addr_v6
14777 echo "$as_me:$LINENO: checking for ut_addr_v6 field in utmpx.h" >&5
14778echo $ECHO_N "checking for ut_addr_v6 field in utmpx.h... $ECHO_C" >&6
14779 if eval "test \"\${$ossh_varname+set}\" = set"; then
14780 echo $ECHO_N "(cached) $ECHO_C" >&6
14781else
14782
14783 cat >conftest.$ac_ext <<_ACEOF
14784#line $LINENO "configure"
14785/* confdefs.h. */
14786_ACEOF
14787cat confdefs.h >>conftest.$ac_ext
14788cat >>conftest.$ac_ext <<_ACEOF
14789/* end confdefs.h. */
14790#include <utmpx.h>
14791
14792_ACEOF
14793if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14794 $EGREP "ut_addr_v6" >/dev/null 2>&1; then
14795 eval "$ossh_varname=yes"
14796else
14797 eval "$ossh_varname=no"
14798fi
14799rm -f conftest*
14800
14801fi
14802
14803 ossh_result=`eval 'echo $'"$ossh_varname"`
14804 if test -n "`echo $ossh_varname`"; then
14805 echo "$as_me:$LINENO: result: $ossh_result" >&5
14806echo "${ECHO_T}$ossh_result" >&6
14807 if test "x$ossh_result" = "xyes"; then
14808 cat >>confdefs.h <<\_ACEOF
14809@%:@define HAVE_ADDR_V6_IN_UTMPX 1
14810_ACEOF
14811
14812 fi
14813 else
14814 echo "$as_me:$LINENO: result: no" >&5
14815echo "${ECHO_T}no" >&6
14816 fi
14817
14818
14819# look for field 'ut_exit' in header 'utmp.h'
14820 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14821 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_exit
14822 echo "$as_me:$LINENO: checking for ut_exit field in utmp.h" >&5
14823echo $ECHO_N "checking for ut_exit field in utmp.h... $ECHO_C" >&6
14824 if eval "test \"\${$ossh_varname+set}\" = set"; then
14825 echo $ECHO_N "(cached) $ECHO_C" >&6
14826else
14827
14828 cat >conftest.$ac_ext <<_ACEOF
14829#line $LINENO "configure"
14830/* confdefs.h. */
14831_ACEOF
14832cat confdefs.h >>conftest.$ac_ext
14833cat >>conftest.$ac_ext <<_ACEOF
14834/* end confdefs.h. */
14835#include <utmp.h>
14836
14837_ACEOF
14838if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14839 $EGREP "ut_exit" >/dev/null 2>&1; then
14840 eval "$ossh_varname=yes"
14841else
14842 eval "$ossh_varname=no"
14843fi
14844rm -f conftest*
14845
14846fi
14847
14848 ossh_result=`eval 'echo $'"$ossh_varname"`
14849 if test -n "`echo $ossh_varname`"; then
14850 echo "$as_me:$LINENO: result: $ossh_result" >&5
14851echo "${ECHO_T}$ossh_result" >&6
14852 if test "x$ossh_result" = "xyes"; then
14853 cat >>confdefs.h <<\_ACEOF
14854@%:@define HAVE_EXIT_IN_UTMP 1
14855_ACEOF
14856
14857 fi
14858 else
14859 echo "$as_me:$LINENO: result: no" >&5
14860echo "${ECHO_T}no" >&6
14861 fi
14862
14863
14864# look for field 'ut_time' in header 'utmp.h'
14865 ossh_safe=`echo "utmp.h" | sed 'y%./+-%__p_%'`
14866 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_time
14867 echo "$as_me:$LINENO: checking for ut_time field in utmp.h" >&5
14868echo $ECHO_N "checking for ut_time field in utmp.h... $ECHO_C" >&6
14869 if eval "test \"\${$ossh_varname+set}\" = set"; then
14870 echo $ECHO_N "(cached) $ECHO_C" >&6
14871else
14872
14873 cat >conftest.$ac_ext <<_ACEOF
14874#line $LINENO "configure"
14875/* confdefs.h. */
14876_ACEOF
14877cat confdefs.h >>conftest.$ac_ext
14878cat >>conftest.$ac_ext <<_ACEOF
14879/* end confdefs.h. */
14880#include <utmp.h>
14881
14882_ACEOF
14883if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14884 $EGREP "ut_time" >/dev/null 2>&1; then
14885 eval "$ossh_varname=yes"
14886else
14887 eval "$ossh_varname=no"
14888fi
14889rm -f conftest*
14890
14891fi
14892
14893 ossh_result=`eval 'echo $'"$ossh_varname"`
14894 if test -n "`echo $ossh_varname`"; then
14895 echo "$as_me:$LINENO: result: $ossh_result" >&5
14896echo "${ECHO_T}$ossh_result" >&6
14897 if test "x$ossh_result" = "xyes"; then
14898 cat >>confdefs.h <<\_ACEOF
14899@%:@define HAVE_TIME_IN_UTMP 1
14900_ACEOF
14901
14902 fi
14903 else
14904 echo "$as_me:$LINENO: result: no" >&5
14905echo "${ECHO_T}no" >&6
14906 fi
14907
14908
14909# look for field 'ut_time' in header 'utmpx.h'
14910 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14911 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_time
14912 echo "$as_me:$LINENO: checking for ut_time field in utmpx.h" >&5
14913echo $ECHO_N "checking for ut_time field in utmpx.h... $ECHO_C" >&6
14914 if eval "test \"\${$ossh_varname+set}\" = set"; then
14915 echo $ECHO_N "(cached) $ECHO_C" >&6
14916else
14917
14918 cat >conftest.$ac_ext <<_ACEOF
14919#line $LINENO "configure"
14920/* confdefs.h. */
14921_ACEOF
14922cat confdefs.h >>conftest.$ac_ext
14923cat >>conftest.$ac_ext <<_ACEOF
14924/* end confdefs.h. */
14925#include <utmpx.h>
14926
14927_ACEOF
14928if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14929 $EGREP "ut_time" >/dev/null 2>&1; then
14930 eval "$ossh_varname=yes"
14931else
14932 eval "$ossh_varname=no"
14933fi
14934rm -f conftest*
14935
14936fi
14937
14938 ossh_result=`eval 'echo $'"$ossh_varname"`
14939 if test -n "`echo $ossh_varname`"; then
14940 echo "$as_me:$LINENO: result: $ossh_result" >&5
14941echo "${ECHO_T}$ossh_result" >&6
14942 if test "x$ossh_result" = "xyes"; then
14943 cat >>confdefs.h <<\_ACEOF
14944@%:@define HAVE_TIME_IN_UTMPX 1
14945_ACEOF
14946
14947 fi
14948 else
14949 echo "$as_me:$LINENO: result: no" >&5
14950echo "${ECHO_T}no" >&6
14951 fi
14952
14953
14954# look for field 'ut_tv' in header 'utmpx.h'
14955 ossh_safe=`echo "utmpx.h" | sed 'y%./+-%__p_%'`
14956 ossh_varname="ossh_cv_$ossh_safe""_has_"ut_tv
14957 echo "$as_me:$LINENO: checking for ut_tv field in utmpx.h" >&5
14958echo $ECHO_N "checking for ut_tv field in utmpx.h... $ECHO_C" >&6
14959 if eval "test \"\${$ossh_varname+set}\" = set"; then
14960 echo $ECHO_N "(cached) $ECHO_C" >&6
14961else
14962
14963 cat >conftest.$ac_ext <<_ACEOF
14964#line $LINENO "configure"
14965/* confdefs.h. */
14966_ACEOF
14967cat confdefs.h >>conftest.$ac_ext
14968cat >>conftest.$ac_ext <<_ACEOF
14969/* end confdefs.h. */
14970#include <utmpx.h>
14971
14972_ACEOF
14973if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14974 $EGREP "ut_tv" >/dev/null 2>&1; then
14975 eval "$ossh_varname=yes"
14976else
14977 eval "$ossh_varname=no"
14978fi
14979rm -f conftest*
14980
14981fi
14982
14983 ossh_result=`eval 'echo $'"$ossh_varname"`
14984 if test -n "`echo $ossh_varname`"; then
14985 echo "$as_me:$LINENO: result: $ossh_result" >&5
14986echo "${ECHO_T}$ossh_result" >&6
14987 if test "x$ossh_result" = "xyes"; then
14988 cat >>confdefs.h <<\_ACEOF
14989@%:@define HAVE_TV_IN_UTMPX 1
14990_ACEOF
14991
14992 fi
14993 else
14994 echo "$as_me:$LINENO: result: no" >&5
14995echo "${ECHO_T}no" >&6
14996 fi
14997
14998
14999echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
15000echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6
15001if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
15002 echo $ECHO_N "(cached) $ECHO_C" >&6
15003else
15004 cat >conftest.$ac_ext <<_ACEOF
15005#line $LINENO "configure"
15006/* confdefs.h. */
15007_ACEOF
15008cat confdefs.h >>conftest.$ac_ext
15009cat >>conftest.$ac_ext <<_ACEOF
15010/* end confdefs.h. */
15011$ac_includes_default
15012int
15013main ()
15014{
15015static struct stat ac_aggr;
15016if (ac_aggr.st_blksize)
15017return 0;
15018 ;
15019 return 0;
15020}
15021_ACEOF
15022rm -f conftest.$ac_objext
15023if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15024 (eval $ac_compile) 2>&5
15025 ac_status=$?
15026 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15027 (exit $ac_status); } &&
15028 { ac_try='test -s conftest.$ac_objext'
15029 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15030 (eval $ac_try) 2>&5
15031 ac_status=$?
15032 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15033 (exit $ac_status); }; }; then
15034 ac_cv_member_struct_stat_st_blksize=yes
15035else
15036 echo "$as_me: failed program was:" >&5
15037sed 's/^/| /' conftest.$ac_ext >&5
15038
15039cat >conftest.$ac_ext <<_ACEOF
15040#line $LINENO "configure"
15041/* confdefs.h. */
15042_ACEOF
15043cat confdefs.h >>conftest.$ac_ext
15044cat >>conftest.$ac_ext <<_ACEOF
15045/* end confdefs.h. */
15046$ac_includes_default
15047int
15048main ()
15049{
15050static struct stat ac_aggr;
15051if (sizeof ac_aggr.st_blksize)
15052return 0;
15053 ;
15054 return 0;
15055}
15056_ACEOF
15057rm -f conftest.$ac_objext
15058if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15059 (eval $ac_compile) 2>&5
15060 ac_status=$?
15061 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15062 (exit $ac_status); } &&
15063 { ac_try='test -s conftest.$ac_objext'
15064 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15065 (eval $ac_try) 2>&5
15066 ac_status=$?
15067 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15068 (exit $ac_status); }; }; then
15069 ac_cv_member_struct_stat_st_blksize=yes
15070else
15071 echo "$as_me: failed program was:" >&5
15072sed 's/^/| /' conftest.$ac_ext >&5
15073
15074ac_cv_member_struct_stat_st_blksize=no
15075fi
15076rm -f conftest.$ac_objext conftest.$ac_ext
15077fi
15078rm -f conftest.$ac_objext conftest.$ac_ext
15079fi
15080echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5
15081echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6
15082if test $ac_cv_member_struct_stat_st_blksize = yes; then
15083
15084cat >>confdefs.h <<_ACEOF
15085@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
15086_ACEOF
15087
15088
15089fi
15090
15091
15092echo "$as_me:$LINENO: checking for ss_family field in struct sockaddr_storage" >&5
15093echo $ECHO_N "checking for ss_family field in struct sockaddr_storage... $ECHO_C" >&6
15094if test "${ac_cv_have_ss_family_in_struct_ss+set}" = set; then
15095 echo $ECHO_N "(cached) $ECHO_C" >&6
15096else
15097
15098 cat >conftest.$ac_ext <<_ACEOF
15099#line $LINENO "configure"
15100/* confdefs.h. */
15101_ACEOF
15102cat confdefs.h >>conftest.$ac_ext
15103cat >>conftest.$ac_ext <<_ACEOF
15104/* end confdefs.h. */
15105
15106#include <sys/types.h>
15107#include <sys/socket.h>
15108
15109int
15110main ()
15111{
15112 struct sockaddr_storage s; s.ss_family = 1;
15113 ;
15114 return 0;
15115}
15116_ACEOF
15117rm -f conftest.$ac_objext
15118if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15119 (eval $ac_compile) 2>&5
15120 ac_status=$?
15121 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15122 (exit $ac_status); } &&
15123 { ac_try='test -s conftest.$ac_objext'
15124 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15125 (eval $ac_try) 2>&5
15126 ac_status=$?
15127 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15128 (exit $ac_status); }; }; then
15129 ac_cv_have_ss_family_in_struct_ss="yes"
15130else
15131 echo "$as_me: failed program was:" >&5
15132sed 's/^/| /' conftest.$ac_ext >&5
15133
15134 ac_cv_have_ss_family_in_struct_ss="no"
15135fi
15136rm -f conftest.$ac_objext conftest.$ac_ext
15137
15138fi
15139echo "$as_me:$LINENO: result: $ac_cv_have_ss_family_in_struct_ss" >&5
15140echo "${ECHO_T}$ac_cv_have_ss_family_in_struct_ss" >&6
15141if test "x$ac_cv_have_ss_family_in_struct_ss" = "xyes" ; then
15142 cat >>confdefs.h <<\_ACEOF
15143@%:@define HAVE_SS_FAMILY_IN_SS 1
15144_ACEOF
15145
15146fi
15147
15148echo "$as_me:$LINENO: checking for __ss_family field in struct sockaddr_storage" >&5
15149echo $ECHO_N "checking for __ss_family field in struct sockaddr_storage... $ECHO_C" >&6
15150if test "${ac_cv_have___ss_family_in_struct_ss+set}" = set; then
15151 echo $ECHO_N "(cached) $ECHO_C" >&6
15152else
15153
15154 cat >conftest.$ac_ext <<_ACEOF
15155#line $LINENO "configure"
15156/* confdefs.h. */
15157_ACEOF
15158cat confdefs.h >>conftest.$ac_ext
15159cat >>conftest.$ac_ext <<_ACEOF
15160/* end confdefs.h. */
15161
15162#include <sys/types.h>
15163#include <sys/socket.h>
15164
15165int
15166main ()
15167{
15168 struct sockaddr_storage s; s.__ss_family = 1;
15169 ;
15170 return 0;
15171}
15172_ACEOF
15173rm -f conftest.$ac_objext
15174if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15175 (eval $ac_compile) 2>&5
15176 ac_status=$?
15177 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15178 (exit $ac_status); } &&
15179 { ac_try='test -s conftest.$ac_objext'
15180 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15181 (eval $ac_try) 2>&5
15182 ac_status=$?
15183 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15184 (exit $ac_status); }; }; then
15185 ac_cv_have___ss_family_in_struct_ss="yes"
15186else
15187 echo "$as_me: failed program was:" >&5
15188sed 's/^/| /' conftest.$ac_ext >&5
15189
15190 ac_cv_have___ss_family_in_struct_ss="no"
15191
15192fi
15193rm -f conftest.$ac_objext conftest.$ac_ext
15194
15195fi
15196echo "$as_me:$LINENO: result: $ac_cv_have___ss_family_in_struct_ss" >&5
15197echo "${ECHO_T}$ac_cv_have___ss_family_in_struct_ss" >&6
15198if test "x$ac_cv_have___ss_family_in_struct_ss" = "xyes" ; then
15199 cat >>confdefs.h <<\_ACEOF
15200@%:@define HAVE___SS_FAMILY_IN_SS 1
15201_ACEOF
15202
15203fi
15204
15205echo "$as_me:$LINENO: checking for pw_class field in struct passwd" >&5
15206echo $ECHO_N "checking for pw_class field in struct passwd... $ECHO_C" >&6
15207if test "${ac_cv_have_pw_class_in_struct_passwd+set}" = set; then
15208 echo $ECHO_N "(cached) $ECHO_C" >&6
15209else
15210
15211 cat >conftest.$ac_ext <<_ACEOF
15212#line $LINENO "configure"
15213/* confdefs.h. */
15214_ACEOF
15215cat confdefs.h >>conftest.$ac_ext
15216cat >>conftest.$ac_ext <<_ACEOF
15217/* end confdefs.h. */
15218
15219#include <pwd.h>
15220
15221int
15222main ()
15223{
15224 struct passwd p; p.pw_class = 0;
15225 ;
15226 return 0;
15227}
15228_ACEOF
15229rm -f conftest.$ac_objext
15230if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15231 (eval $ac_compile) 2>&5
15232 ac_status=$?
15233 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15234 (exit $ac_status); } &&
15235 { ac_try='test -s conftest.$ac_objext'
15236 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15237 (eval $ac_try) 2>&5
15238 ac_status=$?
15239 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15240 (exit $ac_status); }; }; then
15241 ac_cv_have_pw_class_in_struct_passwd="yes"
15242else
15243 echo "$as_me: failed program was:" >&5
15244sed 's/^/| /' conftest.$ac_ext >&5
15245
15246 ac_cv_have_pw_class_in_struct_passwd="no"
15247
15248fi
15249rm -f conftest.$ac_objext conftest.$ac_ext
15250
15251fi
15252echo "$as_me:$LINENO: result: $ac_cv_have_pw_class_in_struct_passwd" >&5
15253echo "${ECHO_T}$ac_cv_have_pw_class_in_struct_passwd" >&6
15254if test "x$ac_cv_have_pw_class_in_struct_passwd" = "xyes" ; then
15255 cat >>confdefs.h <<\_ACEOF
15256@%:@define HAVE_PW_CLASS_IN_PASSWD 1
15257_ACEOF
15258
15259fi
15260
15261echo "$as_me:$LINENO: checking for pw_expire field in struct passwd" >&5
15262echo $ECHO_N "checking for pw_expire field in struct passwd... $ECHO_C" >&6
15263if test "${ac_cv_have_pw_expire_in_struct_passwd+set}" = set; then
15264 echo $ECHO_N "(cached) $ECHO_C" >&6
15265else
15266
15267 cat >conftest.$ac_ext <<_ACEOF
15268#line $LINENO "configure"
15269/* confdefs.h. */
15270_ACEOF
15271cat confdefs.h >>conftest.$ac_ext
15272cat >>conftest.$ac_ext <<_ACEOF
15273/* end confdefs.h. */
15274
15275#include <pwd.h>
15276
15277int
15278main ()
15279{
15280 struct passwd p; p.pw_expire = 0;
15281 ;
15282 return 0;
15283}
15284_ACEOF
15285rm -f conftest.$ac_objext
15286if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15287 (eval $ac_compile) 2>&5
15288 ac_status=$?
15289 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15290 (exit $ac_status); } &&
15291 { ac_try='test -s conftest.$ac_objext'
15292 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15293 (eval $ac_try) 2>&5
15294 ac_status=$?
15295 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15296 (exit $ac_status); }; }; then
15297 ac_cv_have_pw_expire_in_struct_passwd="yes"
15298else
15299 echo "$as_me: failed program was:" >&5
15300sed 's/^/| /' conftest.$ac_ext >&5
15301
15302 ac_cv_have_pw_expire_in_struct_passwd="no"
15303
15304fi
15305rm -f conftest.$ac_objext conftest.$ac_ext
15306
15307fi
15308echo "$as_me:$LINENO: result: $ac_cv_have_pw_expire_in_struct_passwd" >&5
15309echo "${ECHO_T}$ac_cv_have_pw_expire_in_struct_passwd" >&6
15310if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then
15311 cat >>confdefs.h <<\_ACEOF
15312@%:@define HAVE_PW_EXPIRE_IN_PASSWD 1
15313_ACEOF
15314
15315fi
15316
15317echo "$as_me:$LINENO: checking for pw_change field in struct passwd" >&5
15318echo $ECHO_N "checking for pw_change field in struct passwd... $ECHO_C" >&6
15319if test "${ac_cv_have_pw_change_in_struct_passwd+set}" = set; then
15320 echo $ECHO_N "(cached) $ECHO_C" >&6
15321else
15322
15323 cat >conftest.$ac_ext <<_ACEOF
15324#line $LINENO "configure"
15325/* confdefs.h. */
15326_ACEOF
15327cat confdefs.h >>conftest.$ac_ext
15328cat >>conftest.$ac_ext <<_ACEOF
15329/* end confdefs.h. */
15330
15331#include <pwd.h>
15332
15333int
15334main ()
15335{
15336 struct passwd p; p.pw_change = 0;
15337 ;
15338 return 0;
15339}
15340_ACEOF
15341rm -f conftest.$ac_objext
15342if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15343 (eval $ac_compile) 2>&5
15344 ac_status=$?
15345 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15346 (exit $ac_status); } &&
15347 { ac_try='test -s conftest.$ac_objext'
15348 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15349 (eval $ac_try) 2>&5
15350 ac_status=$?
15351 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15352 (exit $ac_status); }; }; then
15353 ac_cv_have_pw_change_in_struct_passwd="yes"
15354else
15355 echo "$as_me: failed program was:" >&5
15356sed 's/^/| /' conftest.$ac_ext >&5
15357
15358 ac_cv_have_pw_change_in_struct_passwd="no"
15359
15360fi
15361rm -f conftest.$ac_objext conftest.$ac_ext
15362
15363fi
15364echo "$as_me:$LINENO: result: $ac_cv_have_pw_change_in_struct_passwd" >&5
15365echo "${ECHO_T}$ac_cv_have_pw_change_in_struct_passwd" >&6
15366if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then
15367 cat >>confdefs.h <<\_ACEOF
15368@%:@define HAVE_PW_CHANGE_IN_PASSWD 1
15369_ACEOF
15370
15371fi
15372
15373echo "$as_me:$LINENO: checking for msg_accrights field in struct msghdr" >&5
15374echo $ECHO_N "checking for msg_accrights field in struct msghdr... $ECHO_C" >&6
15375if test "${ac_cv_have_accrights_in_msghdr+set}" = set; then
15376 echo $ECHO_N "(cached) $ECHO_C" >&6
15377else
15378
15379 if test "$cross_compiling" = yes; then
15380 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
15381See \`config.log' for more details." >&5
15382echo "$as_me: error: cannot run test program while cross compiling
15383See \`config.log' for more details." >&2;}
15384 { (exit 1); exit 1; }; }
15385else
15386 cat >conftest.$ac_ext <<_ACEOF
15387#line $LINENO "configure"
15388/* confdefs.h. */
15389_ACEOF
15390cat confdefs.h >>conftest.$ac_ext
15391cat >>conftest.$ac_ext <<_ACEOF
15392/* end confdefs.h. */
15393
15394#include <sys/types.h>
15395#include <sys/socket.h>
15396#include <sys/uio.h>
15397int main() {
15398#ifdef msg_accrights
15399exit(1);
15400#endif
15401struct msghdr m;
15402m.msg_accrights = 0;
15403exit(0);
15404}
15405
15406_ACEOF
15407rm -f conftest$ac_exeext
15408if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15409 (eval $ac_link) 2>&5
15410 ac_status=$?
15411 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15412 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
15413 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15414 (eval $ac_try) 2>&5
15415 ac_status=$?
15416 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15417 (exit $ac_status); }; }; then
15418 ac_cv_have_accrights_in_msghdr="yes"
15419else
15420 echo "$as_me: program exited with status $ac_status" >&5
15421echo "$as_me: failed program was:" >&5
15422sed 's/^/| /' conftest.$ac_ext >&5
15423
15424( exit $ac_status )
15425 ac_cv_have_accrights_in_msghdr="no"
15426
15427fi
15428rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
15429fi
15430
15431fi
15432echo "$as_me:$LINENO: result: $ac_cv_have_accrights_in_msghdr" >&5
15433echo "${ECHO_T}$ac_cv_have_accrights_in_msghdr" >&6
15434if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
15435 cat >>confdefs.h <<\_ACEOF
15436@%:@define HAVE_ACCRIGHTS_IN_MSGHDR 1
15437_ACEOF
15438
15439fi
15440
15441echo "$as_me:$LINENO: checking for msg_control field in struct msghdr" >&5
15442echo $ECHO_N "checking for msg_control field in struct msghdr... $ECHO_C" >&6
15443if test "${ac_cv_have_control_in_msghdr+set}" = set; then
15444 echo $ECHO_N "(cached) $ECHO_C" >&6
15445else
15446
15447 if test "$cross_compiling" = yes; then
15448 { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
15449See \`config.log' for more details." >&5
15450echo "$as_me: error: cannot run test program while cross compiling
15451See \`config.log' for more details." >&2;}
15452 { (exit 1); exit 1; }; }
15453else
15454 cat >conftest.$ac_ext <<_ACEOF
15455#line $LINENO "configure"
15456/* confdefs.h. */
15457_ACEOF
15458cat confdefs.h >>conftest.$ac_ext
15459cat >>conftest.$ac_ext <<_ACEOF
15460/* end confdefs.h. */
15461
15462#include <sys/types.h>
15463#include <sys/socket.h>
15464#include <sys/uio.h>
15465int main() {
15466#ifdef msg_control
15467exit(1);
15468#endif
15469struct msghdr m;
15470m.msg_control = 0;
15471exit(0);
15472}
15473
15474_ACEOF
15475rm -f conftest$ac_exeext
15476if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15477 (eval $ac_link) 2>&5
15478 ac_status=$?
15479 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15480 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
15481 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15482 (eval $ac_try) 2>&5
15483 ac_status=$?
15484 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15485 (exit $ac_status); }; }; then
15486 ac_cv_have_control_in_msghdr="yes"
15487else
15488 echo "$as_me: program exited with status $ac_status" >&5
15489echo "$as_me: failed program was:" >&5
15490sed 's/^/| /' conftest.$ac_ext >&5
15491
15492( exit $ac_status )
15493 ac_cv_have_control_in_msghdr="no"
15494
15495fi
15496rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
15497fi
15498
15499fi
15500echo "$as_me:$LINENO: result: $ac_cv_have_control_in_msghdr" >&5
15501echo "${ECHO_T}$ac_cv_have_control_in_msghdr" >&6
15502if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then
15503 cat >>confdefs.h <<\_ACEOF
15504@%:@define HAVE_CONTROL_IN_MSGHDR 1
15505_ACEOF
15506
15507fi
15508
15509echo "$as_me:$LINENO: checking if libc defines __progname" >&5
15510echo $ECHO_N "checking if libc defines __progname... $ECHO_C" >&6
15511if test "${ac_cv_libc_defines___progname+set}" = set; then
15512 echo $ECHO_N "(cached) $ECHO_C" >&6
15513else
15514
15515 cat >conftest.$ac_ext <<_ACEOF
15516#line $LINENO "configure"
15517/* confdefs.h. */
15518_ACEOF
15519cat confdefs.h >>conftest.$ac_ext
15520cat >>conftest.$ac_ext <<_ACEOF
15521/* end confdefs.h. */
15522
15523int
15524main ()
15525{
15526 extern char *__progname; printf("%s", __progname);
15527 ;
15528 return 0;
15529}
15530_ACEOF
15531rm -f conftest.$ac_objext conftest$ac_exeext
15532if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15533 (eval $ac_link) 2>&5
15534 ac_status=$?
15535 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15536 (exit $ac_status); } &&
15537 { ac_try='test -s conftest$ac_exeext'
15538 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15539 (eval $ac_try) 2>&5
15540 ac_status=$?
15541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15542 (exit $ac_status); }; }; then
15543 ac_cv_libc_defines___progname="yes"
15544else
15545 echo "$as_me: failed program was:" >&5
15546sed 's/^/| /' conftest.$ac_ext >&5
15547
15548 ac_cv_libc_defines___progname="no"
15549
15550fi
15551rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15552
15553fi
15554echo "$as_me:$LINENO: result: $ac_cv_libc_defines___progname" >&5
15555echo "${ECHO_T}$ac_cv_libc_defines___progname" >&6
15556if test "x$ac_cv_libc_defines___progname" = "xyes" ; then
15557 cat >>confdefs.h <<\_ACEOF
15558@%:@define HAVE___PROGNAME 1
15559_ACEOF
15560
15561fi
15562
15563echo "$as_me:$LINENO: checking whether $CC implements __FUNCTION__" >&5
15564echo $ECHO_N "checking whether $CC implements __FUNCTION__... $ECHO_C" >&6
15565if test "${ac_cv_cc_implements___FUNCTION__+set}" = set; then
15566 echo $ECHO_N "(cached) $ECHO_C" >&6
15567else
15568
15569 cat >conftest.$ac_ext <<_ACEOF
15570#line $LINENO "configure"
15571/* confdefs.h. */
15572_ACEOF
15573cat confdefs.h >>conftest.$ac_ext
15574cat >>conftest.$ac_ext <<_ACEOF
15575/* end confdefs.h. */
15576
15577#include <stdio.h>
15578
15579int
15580main ()
15581{
15582 printf("%s", __FUNCTION__);
15583 ;
15584 return 0;
15585}
15586_ACEOF
15587rm -f conftest.$ac_objext conftest$ac_exeext
15588if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15589 (eval $ac_link) 2>&5
15590 ac_status=$?
15591 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15592 (exit $ac_status); } &&
15593 { ac_try='test -s conftest$ac_exeext'
15594 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15595 (eval $ac_try) 2>&5
15596 ac_status=$?
15597 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15598 (exit $ac_status); }; }; then
15599 ac_cv_cc_implements___FUNCTION__="yes"
15600else
15601 echo "$as_me: failed program was:" >&5
15602sed 's/^/| /' conftest.$ac_ext >&5
15603
15604 ac_cv_cc_implements___FUNCTION__="no"
15605
15606fi
15607rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15608
15609fi
15610echo "$as_me:$LINENO: result: $ac_cv_cc_implements___FUNCTION__" >&5
15611echo "${ECHO_T}$ac_cv_cc_implements___FUNCTION__" >&6
15612if test "x$ac_cv_cc_implements___FUNCTION__" = "xyes" ; then
15613 cat >>confdefs.h <<\_ACEOF
15614@%:@define HAVE___FUNCTION__ 1
15615_ACEOF
15616
15617fi
15618
15619echo "$as_me:$LINENO: checking whether $CC implements __func__" >&5
15620echo $ECHO_N "checking whether $CC implements __func__... $ECHO_C" >&6
15621if test "${ac_cv_cc_implements___func__+set}" = set; then
15622 echo $ECHO_N "(cached) $ECHO_C" >&6
15623else
15624
15625 cat >conftest.$ac_ext <<_ACEOF
15626#line $LINENO "configure"
15627/* confdefs.h. */
15628_ACEOF
15629cat confdefs.h >>conftest.$ac_ext
15630cat >>conftest.$ac_ext <<_ACEOF
15631/* end confdefs.h. */
15632
15633#include <stdio.h>
15634
15635int
15636main ()
15637{
15638 printf("%s", __func__);
15639 ;
15640 return 0;
15641}
15642_ACEOF
15643rm -f conftest.$ac_objext conftest$ac_exeext
15644if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15645 (eval $ac_link) 2>&5
15646 ac_status=$?
15647 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15648 (exit $ac_status); } &&
15649 { ac_try='test -s conftest$ac_exeext'
15650 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15651 (eval $ac_try) 2>&5
15652 ac_status=$?
15653 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15654 (exit $ac_status); }; }; then
15655 ac_cv_cc_implements___func__="yes"
15656else
15657 echo "$as_me: failed program was:" >&5
15658sed 's/^/| /' conftest.$ac_ext >&5
15659
15660 ac_cv_cc_implements___func__="no"
15661
15662fi
15663rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15664
15665fi
15666echo "$as_me:$LINENO: result: $ac_cv_cc_implements___func__" >&5
15667echo "${ECHO_T}$ac_cv_cc_implements___func__" >&6
15668if test "x$ac_cv_cc_implements___func__" = "xyes" ; then
15669 cat >>confdefs.h <<\_ACEOF
15670@%:@define HAVE___func__ 1
15671_ACEOF
15672
15673fi
15674
15675echo "$as_me:$LINENO: checking whether getopt has optreset support" >&5
15676echo $ECHO_N "checking whether getopt has optreset support... $ECHO_C" >&6
15677if test "${ac_cv_have_getopt_optreset+set}" = set; then
15678 echo $ECHO_N "(cached) $ECHO_C" >&6
15679else
15680
15681 cat >conftest.$ac_ext <<_ACEOF
15682#line $LINENO "configure"
15683/* confdefs.h. */
15684_ACEOF
15685cat confdefs.h >>conftest.$ac_ext
15686cat >>conftest.$ac_ext <<_ACEOF
15687/* end confdefs.h. */
15688
15689#include <getopt.h>
15690
15691int
15692main ()
15693{
15694 extern int optreset; optreset = 0;
15695 ;
15696 return 0;
15697}
15698_ACEOF
15699rm -f conftest.$ac_objext conftest$ac_exeext
15700if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15701 (eval $ac_link) 2>&5
15702 ac_status=$?
15703 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15704 (exit $ac_status); } &&
15705 { ac_try='test -s conftest$ac_exeext'
15706 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15707 (eval $ac_try) 2>&5
15708 ac_status=$?
15709 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15710 (exit $ac_status); }; }; then
15711 ac_cv_have_getopt_optreset="yes"
15712else
15713 echo "$as_me: failed program was:" >&5
15714sed 's/^/| /' conftest.$ac_ext >&5
15715
15716 ac_cv_have_getopt_optreset="no"
15717
15718fi
15719rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15720
15721fi
15722echo "$as_me:$LINENO: result: $ac_cv_have_getopt_optreset" >&5
15723echo "${ECHO_T}$ac_cv_have_getopt_optreset" >&6
15724if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then
15725 cat >>confdefs.h <<\_ACEOF
15726@%:@define HAVE_GETOPT_OPTRESET 1
15727_ACEOF
15728
15729fi
15730
15731echo "$as_me:$LINENO: checking if libc defines sys_errlist" >&5
15732echo $ECHO_N "checking if libc defines sys_errlist... $ECHO_C" >&6
15733if test "${ac_cv_libc_defines_sys_errlist+set}" = set; then
15734 echo $ECHO_N "(cached) $ECHO_C" >&6
15735else
15736
15737 cat >conftest.$ac_ext <<_ACEOF
15738#line $LINENO "configure"
15739/* confdefs.h. */
15740_ACEOF
15741cat confdefs.h >>conftest.$ac_ext
15742cat >>conftest.$ac_ext <<_ACEOF
15743/* end confdefs.h. */
15744
15745int
15746main ()
15747{
15748 extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);
15749 ;
15750 return 0;
15751}
15752_ACEOF
15753rm -f conftest.$ac_objext conftest$ac_exeext
15754if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15755 (eval $ac_link) 2>&5
15756 ac_status=$?
15757 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15758 (exit $ac_status); } &&
15759 { ac_try='test -s conftest$ac_exeext'
15760 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15761 (eval $ac_try) 2>&5
15762 ac_status=$?
15763 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15764 (exit $ac_status); }; }; then
15765 ac_cv_libc_defines_sys_errlist="yes"
15766else
15767 echo "$as_me: failed program was:" >&5
15768sed 's/^/| /' conftest.$ac_ext >&5
15769
15770 ac_cv_libc_defines_sys_errlist="no"
15771
15772fi
15773rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15774
15775fi
15776echo "$as_me:$LINENO: result: $ac_cv_libc_defines_sys_errlist" >&5
15777echo "${ECHO_T}$ac_cv_libc_defines_sys_errlist" >&6
15778if test "x$ac_cv_libc_defines_sys_errlist" = "xyes" ; then
15779 cat >>confdefs.h <<\_ACEOF
15780@%:@define HAVE_SYS_ERRLIST 1
15781_ACEOF
15782
15783fi
15784
15785
15786echo "$as_me:$LINENO: checking if libc defines sys_nerr" >&5
15787echo $ECHO_N "checking if libc defines sys_nerr... $ECHO_C" >&6
15788if test "${ac_cv_libc_defines_sys_nerr+set}" = set; then
15789 echo $ECHO_N "(cached) $ECHO_C" >&6
15790else
15791
15792 cat >conftest.$ac_ext <<_ACEOF
15793#line $LINENO "configure"
15794/* confdefs.h. */
15795_ACEOF
15796cat confdefs.h >>conftest.$ac_ext
15797cat >>conftest.$ac_ext <<_ACEOF
15798/* end confdefs.h. */
15799
15800int
15801main ()
15802{
15803 extern int sys_nerr; printf("%i", sys_nerr);
15804 ;
15805 return 0;
15806}
15807_ACEOF
15808rm -f conftest.$ac_objext conftest$ac_exeext
15809if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15810 (eval $ac_link) 2>&5
15811 ac_status=$?
15812 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15813 (exit $ac_status); } &&
15814 { ac_try='test -s conftest$ac_exeext'
15815 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15816 (eval $ac_try) 2>&5
15817 ac_status=$?
15818 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15819 (exit $ac_status); }; }; then
15820 ac_cv_libc_defines_sys_nerr="yes"
15821else
15822 echo "$as_me: failed program was:" >&5
15823sed 's/^/| /' conftest.$ac_ext >&5
15824
15825 ac_cv_libc_defines_sys_nerr="no"
15826
15827fi
15828rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
15829
15830fi
15831echo "$as_me:$LINENO: result: $ac_cv_libc_defines_sys_nerr" >&5
15832echo "${ECHO_T}$ac_cv_libc_defines_sys_nerr" >&6
15833if test "x$ac_cv_libc_defines_sys_nerr" = "xyes" ; then
15834 cat >>confdefs.h <<\_ACEOF
15835@%:@define HAVE_SYS_NERR 1
15836_ACEOF
15837
15838fi
15839
15840SCARD_MSG="no"
15841
15842# Check whether user wants sectok support
15843
15844# Check whether --with-sectok or --without-sectok was given.
15845if test "${with_sectok+set}" = set; then
15846 withval="$with_sectok"
15847
15848 if test "x$withval" != "xno" ; then
15849 if test "x$withval" != "xyes" ; then
15850 CPPFLAGS="$CPPFLAGS -I${withval}"
15851 LDFLAGS="$LDFLAGS -L${withval}"
15852 if test ! -z "$need_dash_r" ; then
15853 LDFLAGS="$LDFLAGS -R${withval}"
15854 fi
15855 if test ! -z "$blibpath" ; then
15856 blibpath="$blibpath:${withval}"
15857 fi
15858 fi
15859
15860for ac_header in sectok.h
15861do
15862as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
15863if eval "test \"\${$as_ac_Header+set}\" = set"; then
15864 echo "$as_me:$LINENO: checking for $ac_header" >&5
15865echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15866if eval "test \"\${$as_ac_Header+set}\" = set"; then
15867 echo $ECHO_N "(cached) $ECHO_C" >&6
15868fi
15869echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15870echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15871else
15872 # Is the header compilable?
15873echo "$as_me:$LINENO: checking $ac_header usability" >&5
15874echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
15875cat >conftest.$ac_ext <<_ACEOF
15876#line $LINENO "configure"
15877/* confdefs.h. */
15878_ACEOF
15879cat confdefs.h >>conftest.$ac_ext
15880cat >>conftest.$ac_ext <<_ACEOF
15881/* end confdefs.h. */
15882$ac_includes_default
15883@%:@include <$ac_header>
15884_ACEOF
15885rm -f conftest.$ac_objext
15886if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15887 (eval $ac_compile) 2>&5
15888 ac_status=$?
15889 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15890 (exit $ac_status); } &&
15891 { ac_try='test -s conftest.$ac_objext'
15892 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15893 (eval $ac_try) 2>&5
15894 ac_status=$?
15895 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15896 (exit $ac_status); }; }; then
15897 ac_header_compiler=yes
15898else
15899 echo "$as_me: failed program was:" >&5
15900sed 's/^/| /' conftest.$ac_ext >&5
15901
15902ac_header_compiler=no
15903fi
15904rm -f conftest.$ac_objext conftest.$ac_ext
15905echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
15906echo "${ECHO_T}$ac_header_compiler" >&6
15907
15908# Is the header present?
15909echo "$as_me:$LINENO: checking $ac_header presence" >&5
15910echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
15911cat >conftest.$ac_ext <<_ACEOF
15912#line $LINENO "configure"
15913/* confdefs.h. */
15914_ACEOF
15915cat confdefs.h >>conftest.$ac_ext
15916cat >>conftest.$ac_ext <<_ACEOF
15917/* end confdefs.h. */
15918@%:@include <$ac_header>
15919_ACEOF
15920if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
15921 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
15922 ac_status=$?
15923 grep -v '^ *+' conftest.er1 >conftest.err
15924 rm -f conftest.er1
15925 cat conftest.err >&5
15926 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15927 (exit $ac_status); } >/dev/null; then
15928 if test -s conftest.err; then
15929 ac_cpp_err=$ac_c_preproc_warn_flag
15930 else
15931 ac_cpp_err=
15932 fi
15933else
15934 ac_cpp_err=yes
15935fi
15936if test -z "$ac_cpp_err"; then
15937 ac_header_preproc=yes
15938else
15939 echo "$as_me: failed program was:" >&5
15940sed 's/^/| /' conftest.$ac_ext >&5
15941
15942 ac_header_preproc=no
15943fi
15944rm -f conftest.err conftest.$ac_ext
15945echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
15946echo "${ECHO_T}$ac_header_preproc" >&6
15947
15948# So? What about this header?
15949case $ac_header_compiler:$ac_header_preproc in
15950 yes:no )
15951 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
15952echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
15953 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15954echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
15955 (
15956 cat <<\_ASBOX
15957@%:@@%:@ ------------------------------------ @%:@@%:@
15958@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
15959@%:@@%:@ ------------------------------------ @%:@@%:@
15960_ASBOX
15961 ) |
15962 sed "s/^/$as_me: WARNING: /" >&2
15963 ;;
15964 no:yes )
15965 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
15966echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
15967 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
15968echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
15969 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
15970echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
15971 (
15972 cat <<\_ASBOX
15973@%:@@%:@ ------------------------------------ @%:@@%:@
15974@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
15975@%:@@%:@ ------------------------------------ @%:@@%:@
15976_ASBOX
15977 ) |
15978 sed "s/^/$as_me: WARNING: /" >&2
15979 ;;
15980esac
15981echo "$as_me:$LINENO: checking for $ac_header" >&5
15982echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
15983if eval "test \"\${$as_ac_Header+set}\" = set"; then
15984 echo $ECHO_N "(cached) $ECHO_C" >&6
15985else
15986 eval "$as_ac_Header=$ac_header_preproc"
15987fi
15988echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
15989echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
15990
15991fi
15992if test `eval echo '${'$as_ac_Header'}'` = yes; then
15993 cat >>confdefs.h <<_ACEOF
15994@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
15995_ACEOF
15996
15997fi
15998
15999done
16000
16001 if test "$ac_cv_header_sectok_h" != yes; then
16002 { { echo "$as_me:$LINENO: error: Can't find sectok.h" >&5
16003echo "$as_me: error: Can't find sectok.h" >&2;}
16004 { (exit 1); exit 1; }; }
16005 fi
16006
16007echo "$as_me:$LINENO: checking for sectok_open in -lsectok" >&5
16008echo $ECHO_N "checking for sectok_open in -lsectok... $ECHO_C" >&6
16009if test "${ac_cv_lib_sectok_sectok_open+set}" = set; then
16010 echo $ECHO_N "(cached) $ECHO_C" >&6
16011else
16012 ac_check_lib_save_LIBS=$LIBS
16013LIBS="-lsectok $LIBS"
16014cat >conftest.$ac_ext <<_ACEOF
16015#line $LINENO "configure"
16016/* confdefs.h. */
16017_ACEOF
16018cat confdefs.h >>conftest.$ac_ext
16019cat >>conftest.$ac_ext <<_ACEOF
16020/* end confdefs.h. */
16021
16022/* Override any gcc2 internal prototype to avoid an error. */
16023#ifdef __cplusplus
16024extern "C"
16025#endif
16026/* We use char because int might match the return type of a gcc2
16027 builtin and then its argument prototype would still apply. */
16028char sectok_open ();
16029int
16030main ()
16031{
16032sectok_open ();
16033 ;
16034 return 0;
16035}
16036_ACEOF
16037rm -f conftest.$ac_objext conftest$ac_exeext
16038if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16039 (eval $ac_link) 2>&5
16040 ac_status=$?
16041 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16042 (exit $ac_status); } &&
16043 { ac_try='test -s conftest$ac_exeext'
16044 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16045 (eval $ac_try) 2>&5
16046 ac_status=$?
16047 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16048 (exit $ac_status); }; }; then
16049 ac_cv_lib_sectok_sectok_open=yes
16050else
16051 echo "$as_me: failed program was:" >&5
16052sed 's/^/| /' conftest.$ac_ext >&5
16053
16054ac_cv_lib_sectok_sectok_open=no
16055fi
16056rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16057LIBS=$ac_check_lib_save_LIBS
16058fi
16059echo "$as_me:$LINENO: result: $ac_cv_lib_sectok_sectok_open" >&5
16060echo "${ECHO_T}$ac_cv_lib_sectok_sectok_open" >&6
16061if test $ac_cv_lib_sectok_sectok_open = yes; then
16062 cat >>confdefs.h <<_ACEOF
16063@%:@define HAVE_LIBSECTOK 1
16064_ACEOF
16065
16066 LIBS="-lsectok $LIBS"
16067
16068fi
16069
16070 if test "$ac_cv_lib_sectok_sectok_open" != yes; then
16071 { { echo "$as_me:$LINENO: error: Can't find libsectok" >&5
16072echo "$as_me: error: Can't find libsectok" >&2;}
16073 { (exit 1); exit 1; }; }
16074 fi
16075 cat >>confdefs.h <<\_ACEOF
16076@%:@define SMARTCARD 1
16077_ACEOF
16078
16079 cat >>confdefs.h <<\_ACEOF
16080@%:@define USE_SECTOK 1
16081_ACEOF
16082
16083 SCARD_MSG="yes, using sectok"
16084 fi
16085
16086
16087fi;
16088
16089# Check whether user wants OpenSC support
16090
16091# Check whether --with-opensc or --without-opensc was given.
16092if test "${with_opensc+set}" = set; then
16093 withval="$with_opensc"
16094 opensc_config_prefix="$withval"
16095else
16096 opensc_config_prefix=""
16097fi;
16098if test x$opensc_config_prefix != x ; then
16099 OPENSC_CONFIG=$opensc_config_prefix/bin/opensc-config
16100 # Extract the first word of "opensc-config", so it can be a program name with args.
16101set dummy opensc-config; ac_word=$2
16102echo "$as_me:$LINENO: checking for $ac_word" >&5
16103echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
16104if test "${ac_cv_path_OPENSC_CONFIG+set}" = set; then
16105 echo $ECHO_N "(cached) $ECHO_C" >&6
16106else
16107 case $OPENSC_CONFIG in
16108 [\\/]* | ?:[\\/]*)
16109 ac_cv_path_OPENSC_CONFIG="$OPENSC_CONFIG" # Let the user override the test with a path.
16110 ;;
16111 *)
16112 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
16113for as_dir in $PATH
16114do
16115 IFS=$as_save_IFS
16116 test -z "$as_dir" && as_dir=.
16117 for ac_exec_ext in '' $ac_executable_extensions; do
16118 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16119 ac_cv_path_OPENSC_CONFIG="$as_dir/$ac_word$ac_exec_ext"
16120 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
16121 break 2
16122 fi
16123done
16124done
16125
16126 test -z "$ac_cv_path_OPENSC_CONFIG" && ac_cv_path_OPENSC_CONFIG="no"
16127 ;;
16128esac
16129fi
16130OPENSC_CONFIG=$ac_cv_path_OPENSC_CONFIG
16131
16132if test -n "$OPENSC_CONFIG"; then
16133 echo "$as_me:$LINENO: result: $OPENSC_CONFIG" >&5
16134echo "${ECHO_T}$OPENSC_CONFIG" >&6
16135else
16136 echo "$as_me:$LINENO: result: no" >&5
16137echo "${ECHO_T}no" >&6
16138fi
16139
16140 if test "$OPENSC_CONFIG" != "no"; then
16141 LIBOPENSC_CFLAGS=`$OPENSC_CONFIG --cflags`
16142 LIBOPENSC_LIBS=`$OPENSC_CONFIG --libs`
16143 CPPFLAGS="$CPPFLAGS $LIBOPENSC_CFLAGS"
16144 LDFLAGS="$LDFLAGS $LIBOPENSC_LIBS"
16145 cat >>confdefs.h <<\_ACEOF
16146@%:@define SMARTCARD 1
16147_ACEOF
16148
16149 cat >>confdefs.h <<\_ACEOF
16150@%:@define USE_OPENSC 1
16151_ACEOF
16152
16153 SCARD_MSG="yes, using OpenSC"
16154 fi
16155fi
16156
16157# Check whether user wants Kerberos 5 support
16158KRB5_MSG="no"
16159
16160# Check whether --with-kerberos5 or --without-kerberos5 was given.
16161if test "${with_kerberos5+set}" = set; then
16162 withval="$with_kerberos5"
16163
16164 if test "x$withval" != "xno" ; then
16165 if test "x$withval" = "xyes" ; then
16166 KRB5ROOT="/usr/local"
16167 else
16168 KRB5ROOT=${withval}
16169 fi
16170 CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include"
16171 LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib"
16172 cat >>confdefs.h <<\_ACEOF
16173@%:@define KRB5 1
16174_ACEOF
16175
16176 KRB5_MSG="yes"
16177 echo "$as_me:$LINENO: checking whether we are using Heimdal" >&5
16178echo $ECHO_N "checking whether we are using Heimdal... $ECHO_C" >&6
16179 cat >conftest.$ac_ext <<_ACEOF
16180#line $LINENO "configure"
16181/* confdefs.h. */
16182_ACEOF
16183cat confdefs.h >>conftest.$ac_ext
16184cat >>conftest.$ac_ext <<_ACEOF
16185/* end confdefs.h. */
16186 #include <krb5.h>
16187int
16188main ()
16189{
16190 char *tmp = heimdal_version;
16191 ;
16192 return 0;
16193}
16194_ACEOF
16195rm -f conftest.$ac_objext
16196if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16197 (eval $ac_compile) 2>&5
16198 ac_status=$?
16199 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16200 (exit $ac_status); } &&
16201 { ac_try='test -s conftest.$ac_objext'
16202 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16203 (eval $ac_try) 2>&5
16204 ac_status=$?
16205 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16206 (exit $ac_status); }; }; then
16207 echo "$as_me:$LINENO: result: yes" >&5
16208echo "${ECHO_T}yes" >&6
16209 cat >>confdefs.h <<\_ACEOF
16210@%:@define HEIMDAL 1
16211_ACEOF
16212
16213 K5LIBS="-lkrb5 -ldes -lcom_err -lasn1 -lroken"
16214
16215else
16216 echo "$as_me: failed program was:" >&5
16217sed 's/^/| /' conftest.$ac_ext >&5
16218
16219 echo "$as_me:$LINENO: result: no" >&5
16220echo "${ECHO_T}no" >&6
16221 K5LIBS="-lkrb5 -lk5crypto -lcom_err"
16222
16223
16224fi
16225rm -f conftest.$ac_objext conftest.$ac_ext
16226 if test ! -z "$need_dash_r" ; then
16227 LDFLAGS="$LDFLAGS -R${KRB5ROOT}/lib"
16228 fi
16229 if test ! -z "$blibpath" ; then
16230 blibpath="$blibpath:${KRB5ROOT}/lib"
16231 fi
16232
16233echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5
16234echo $ECHO_N "checking for dn_expand in -lresolv... $ECHO_C" >&6
16235if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then
16236 echo $ECHO_N "(cached) $ECHO_C" >&6
16237else
16238 ac_check_lib_save_LIBS=$LIBS
16239LIBS="-lresolv $LIBS"
16240cat >conftest.$ac_ext <<_ACEOF
16241#line $LINENO "configure"
16242/* confdefs.h. */
16243_ACEOF
16244cat confdefs.h >>conftest.$ac_ext
16245cat >>conftest.$ac_ext <<_ACEOF
16246/* end confdefs.h. */
16247
16248/* Override any gcc2 internal prototype to avoid an error. */
16249#ifdef __cplusplus
16250extern "C"
16251#endif
16252/* We use char because int might match the return type of a gcc2
16253 builtin and then its argument prototype would still apply. */
16254char dn_expand ();
16255int
16256main ()
16257{
16258dn_expand ();
16259 ;
16260 return 0;
16261}
16262_ACEOF
16263rm -f conftest.$ac_objext conftest$ac_exeext
16264if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16265 (eval $ac_link) 2>&5
16266 ac_status=$?
16267 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16268 (exit $ac_status); } &&
16269 { ac_try='test -s conftest$ac_exeext'
16270 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16271 (eval $ac_try) 2>&5
16272 ac_status=$?
16273 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16274 (exit $ac_status); }; }; then
16275 ac_cv_lib_resolv_dn_expand=yes
16276else
16277 echo "$as_me: failed program was:" >&5
16278sed 's/^/| /' conftest.$ac_ext >&5
16279
16280ac_cv_lib_resolv_dn_expand=no
16281fi
16282rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16283LIBS=$ac_check_lib_save_LIBS
16284fi
16285echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5
16286echo "${ECHO_T}$ac_cv_lib_resolv_dn_expand" >&6
16287if test $ac_cv_lib_resolv_dn_expand = yes; then
16288 cat >>confdefs.h <<_ACEOF
16289@%:@define HAVE_LIBRESOLV 1
16290_ACEOF
16291
16292 LIBS="-lresolv $LIBS"
16293
16294fi
16295
16296
16297 KRB5=yes
16298 fi
16299
16300
16301fi;
16302# Check whether user wants Kerberos 4 support
16303KRB4_MSG="no"
16304
16305# Check whether --with-kerberos4 or --without-kerberos4 was given.
16306if test "${with_kerberos4+set}" = set; then
16307 withval="$with_kerberos4"
16308
16309 if test "x$withval" != "xno" ; then
16310 if test "x$withval" != "xyes" ; then
16311 CPPFLAGS="$CPPFLAGS -I${withval}/include"
16312 LDFLAGS="$LDFLAGS -L${withval}/lib"
16313 if test ! -z "$need_dash_r" ; then
16314 LDFLAGS="$LDFLAGS -R${withval}/lib"
16315 fi
16316 if test ! -z "$blibpath" ; then
16317 blibpath="$blibpath:${withval}/lib"
16318 fi
16319 else
16320 if test -d /usr/include/kerberosIV ; then
16321 CPPFLAGS="$CPPFLAGS -I/usr/include/kerberosIV"
16322 fi
16323 fi
16324
16325
16326for ac_header in krb.h
16327do
16328as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
16329if eval "test \"\${$as_ac_Header+set}\" = set"; then
16330 echo "$as_me:$LINENO: checking for $ac_header" >&5
16331echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
16332if eval "test \"\${$as_ac_Header+set}\" = set"; then
16333 echo $ECHO_N "(cached) $ECHO_C" >&6
16334fi
16335echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
16336echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
16337else
16338 # Is the header compilable?
16339echo "$as_me:$LINENO: checking $ac_header usability" >&5
16340echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
16341cat >conftest.$ac_ext <<_ACEOF
16342#line $LINENO "configure"
16343/* confdefs.h. */
16344_ACEOF
16345cat confdefs.h >>conftest.$ac_ext
16346cat >>conftest.$ac_ext <<_ACEOF
16347/* end confdefs.h. */
16348$ac_includes_default
16349@%:@include <$ac_header>
16350_ACEOF
16351rm -f conftest.$ac_objext
16352if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16353 (eval $ac_compile) 2>&5
16354 ac_status=$?
16355 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16356 (exit $ac_status); } &&
16357 { ac_try='test -s conftest.$ac_objext'
16358 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16359 (eval $ac_try) 2>&5
16360 ac_status=$?
16361 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16362 (exit $ac_status); }; }; then
16363 ac_header_compiler=yes
16364else
16365 echo "$as_me: failed program was:" >&5
16366sed 's/^/| /' conftest.$ac_ext >&5
16367
16368ac_header_compiler=no
16369fi
16370rm -f conftest.$ac_objext conftest.$ac_ext
16371echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
16372echo "${ECHO_T}$ac_header_compiler" >&6
16373
16374# Is the header present?
16375echo "$as_me:$LINENO: checking $ac_header presence" >&5
16376echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
16377cat >conftest.$ac_ext <<_ACEOF
16378#line $LINENO "configure"
16379/* confdefs.h. */
16380_ACEOF
16381cat confdefs.h >>conftest.$ac_ext
16382cat >>conftest.$ac_ext <<_ACEOF
16383/* end confdefs.h. */
16384@%:@include <$ac_header>
16385_ACEOF
16386if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
16387 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
16388 ac_status=$?
16389 grep -v '^ *+' conftest.er1 >conftest.err
16390 rm -f conftest.er1
16391 cat conftest.err >&5
16392 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16393 (exit $ac_status); } >/dev/null; then
16394 if test -s conftest.err; then
16395 ac_cpp_err=$ac_c_preproc_warn_flag
16396 else
16397 ac_cpp_err=
16398 fi
16399else
16400 ac_cpp_err=yes
16401fi
16402if test -z "$ac_cpp_err"; then
16403 ac_header_preproc=yes
16404else
16405 echo "$as_me: failed program was:" >&5
16406sed 's/^/| /' conftest.$ac_ext >&5
16407
16408 ac_header_preproc=no
16409fi
16410rm -f conftest.err conftest.$ac_ext
16411echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
16412echo "${ECHO_T}$ac_header_preproc" >&6
16413
16414# So? What about this header?
16415case $ac_header_compiler:$ac_header_preproc in
16416 yes:no )
16417 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
16418echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
16419 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
16420echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
16421 (
16422 cat <<\_ASBOX
16423@%:@@%:@ ------------------------------------ @%:@@%:@
16424@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
16425@%:@@%:@ ------------------------------------ @%:@@%:@
16426_ASBOX
16427 ) |
16428 sed "s/^/$as_me: WARNING: /" >&2
16429 ;;
16430 no:yes )
16431 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
16432echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
16433 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
16434echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
16435 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
16436echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
16437 (
16438 cat <<\_ASBOX
16439@%:@@%:@ ------------------------------------ @%:@@%:@
16440@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
16441@%:@@%:@ ------------------------------------ @%:@@%:@
16442_ASBOX
16443 ) |
16444 sed "s/^/$as_me: WARNING: /" >&2
16445 ;;
16446esac
16447echo "$as_me:$LINENO: checking for $ac_header" >&5
16448echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
16449if eval "test \"\${$as_ac_Header+set}\" = set"; then
16450 echo $ECHO_N "(cached) $ECHO_C" >&6
16451else
16452 eval "$as_ac_Header=$ac_header_preproc"
16453fi
16454echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
16455echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
16456
16457fi
16458if test `eval echo '${'$as_ac_Header'}'` = yes; then
16459 cat >>confdefs.h <<_ACEOF
16460@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
16461_ACEOF
16462
16463fi
16464
16465done
16466
16467 if test "$ac_cv_header_krb_h" != yes; then
16468 { echo "$as_me:$LINENO: WARNING: Cannot find krb.h, build may fail" >&5
16469echo "$as_me: WARNING: Cannot find krb.h, build may fail" >&2;}
16470 fi
16471
16472echo "$as_me:$LINENO: checking for main in -lkrb" >&5
16473echo $ECHO_N "checking for main in -lkrb... $ECHO_C" >&6
16474if test "${ac_cv_lib_krb_main+set}" = set; then
16475 echo $ECHO_N "(cached) $ECHO_C" >&6
16476else
16477 ac_check_lib_save_LIBS=$LIBS
16478LIBS="-lkrb $LIBS"
16479cat >conftest.$ac_ext <<_ACEOF
16480#line $LINENO "configure"
16481/* confdefs.h. */
16482_ACEOF
16483cat confdefs.h >>conftest.$ac_ext
16484cat >>conftest.$ac_ext <<_ACEOF
16485/* end confdefs.h. */
16486
16487
16488int
16489main ()
16490{
16491main ();
16492 ;
16493 return 0;
16494}
16495_ACEOF
16496rm -f conftest.$ac_objext conftest$ac_exeext
16497if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16498 (eval $ac_link) 2>&5
16499 ac_status=$?
16500 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16501 (exit $ac_status); } &&
16502 { ac_try='test -s conftest$ac_exeext'
16503 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16504 (eval $ac_try) 2>&5
16505 ac_status=$?
16506 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16507 (exit $ac_status); }; }; then
16508 ac_cv_lib_krb_main=yes
16509else
16510 echo "$as_me: failed program was:" >&5
16511sed 's/^/| /' conftest.$ac_ext >&5
16512
16513ac_cv_lib_krb_main=no
16514fi
16515rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16516LIBS=$ac_check_lib_save_LIBS
16517fi
16518echo "$as_me:$LINENO: result: $ac_cv_lib_krb_main" >&5
16519echo "${ECHO_T}$ac_cv_lib_krb_main" >&6
16520if test $ac_cv_lib_krb_main = yes; then
16521 cat >>confdefs.h <<_ACEOF
16522@%:@define HAVE_LIBKRB 1
16523_ACEOF
16524
16525 LIBS="-lkrb $LIBS"
16526
16527fi
16528
16529 if test "$ac_cv_lib_krb_main" != yes; then
16530
16531echo "$as_me:$LINENO: checking for main in -lkrb4" >&5
16532echo $ECHO_N "checking for main in -lkrb4... $ECHO_C" >&6
16533if test "${ac_cv_lib_krb4_main+set}" = set; then
16534 echo $ECHO_N "(cached) $ECHO_C" >&6
16535else
16536 ac_check_lib_save_LIBS=$LIBS
16537LIBS="-lkrb4 $LIBS"
16538cat >conftest.$ac_ext <<_ACEOF
16539#line $LINENO "configure"
16540/* confdefs.h. */
16541_ACEOF
16542cat confdefs.h >>conftest.$ac_ext
16543cat >>conftest.$ac_ext <<_ACEOF
16544/* end confdefs.h. */
16545
16546
16547int
16548main ()
16549{
16550main ();
16551 ;
16552 return 0;
16553}
16554_ACEOF
16555rm -f conftest.$ac_objext conftest$ac_exeext
16556if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16557 (eval $ac_link) 2>&5
16558 ac_status=$?
16559 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16560 (exit $ac_status); } &&
16561 { ac_try='test -s conftest$ac_exeext'
16562 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16563 (eval $ac_try) 2>&5
16564 ac_status=$?
16565 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16566 (exit $ac_status); }; }; then
16567 ac_cv_lib_krb4_main=yes
16568else
16569 echo "$as_me: failed program was:" >&5
16570sed 's/^/| /' conftest.$ac_ext >&5
16571
16572ac_cv_lib_krb4_main=no
16573fi
16574rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16575LIBS=$ac_check_lib_save_LIBS
16576fi
16577echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_main" >&5
16578echo "${ECHO_T}$ac_cv_lib_krb4_main" >&6
16579if test $ac_cv_lib_krb4_main = yes; then
16580 cat >>confdefs.h <<_ACEOF
16581@%:@define HAVE_LIBKRB4 1
16582_ACEOF
16583
16584 LIBS="-lkrb4 $LIBS"
16585
16586fi
16587
16588 if test "$ac_cv_lib_krb4_main" != yes; then
16589 { echo "$as_me:$LINENO: WARNING: Cannot find libkrb nor libkrb4, build may fail" >&5
16590echo "$as_me: WARNING: Cannot find libkrb nor libkrb4, build may fail" >&2;}
16591 else
16592 KLIBS="-lkrb4"
16593 fi
16594 else
16595 KLIBS="-lkrb"
16596 fi
16597
16598echo "$as_me:$LINENO: checking for des_cbc_encrypt in -ldes" >&5
16599echo $ECHO_N "checking for des_cbc_encrypt in -ldes... $ECHO_C" >&6
16600if test "${ac_cv_lib_des_des_cbc_encrypt+set}" = set; then
16601 echo $ECHO_N "(cached) $ECHO_C" >&6
16602else
16603 ac_check_lib_save_LIBS=$LIBS
16604LIBS="-ldes $LIBS"
16605cat >conftest.$ac_ext <<_ACEOF
16606#line $LINENO "configure"
16607/* confdefs.h. */
16608_ACEOF
16609cat confdefs.h >>conftest.$ac_ext
16610cat >>conftest.$ac_ext <<_ACEOF
16611/* end confdefs.h. */
16612
16613/* Override any gcc2 internal prototype to avoid an error. */
16614#ifdef __cplusplus
16615extern "C"
16616#endif
16617/* We use char because int might match the return type of a gcc2
16618 builtin and then its argument prototype would still apply. */
16619char des_cbc_encrypt ();
16620int
16621main ()
16622{
16623des_cbc_encrypt ();
16624 ;
16625 return 0;
16626}
16627_ACEOF
16628rm -f conftest.$ac_objext conftest$ac_exeext
16629if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16630 (eval $ac_link) 2>&5
16631 ac_status=$?
16632 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16633 (exit $ac_status); } &&
16634 { ac_try='test -s conftest$ac_exeext'
16635 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16636 (eval $ac_try) 2>&5
16637 ac_status=$?
16638 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16639 (exit $ac_status); }; }; then
16640 ac_cv_lib_des_des_cbc_encrypt=yes
16641else
16642 echo "$as_me: failed program was:" >&5
16643sed 's/^/| /' conftest.$ac_ext >&5
16644
16645ac_cv_lib_des_des_cbc_encrypt=no
16646fi
16647rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16648LIBS=$ac_check_lib_save_LIBS
16649fi
16650echo "$as_me:$LINENO: result: $ac_cv_lib_des_des_cbc_encrypt" >&5
16651echo "${ECHO_T}$ac_cv_lib_des_des_cbc_encrypt" >&6
16652if test $ac_cv_lib_des_des_cbc_encrypt = yes; then
16653 cat >>confdefs.h <<_ACEOF
16654@%:@define HAVE_LIBDES 1
16655_ACEOF
16656
16657 LIBS="-ldes $LIBS"
16658
16659fi
16660
16661 if test "$ac_cv_lib_des_des_cbc_encrypt" != yes; then
16662
16663echo "$as_me:$LINENO: checking for des_cbc_encrypt in -ldes425" >&5
16664echo $ECHO_N "checking for des_cbc_encrypt in -ldes425... $ECHO_C" >&6
16665if test "${ac_cv_lib_des425_des_cbc_encrypt+set}" = set; then
16666 echo $ECHO_N "(cached) $ECHO_C" >&6
16667else
16668 ac_check_lib_save_LIBS=$LIBS
16669LIBS="-ldes425 $LIBS"
16670cat >conftest.$ac_ext <<_ACEOF
16671#line $LINENO "configure"
16672/* confdefs.h. */
16673_ACEOF
16674cat confdefs.h >>conftest.$ac_ext
16675cat >>conftest.$ac_ext <<_ACEOF
16676/* end confdefs.h. */
16677
16678/* Override any gcc2 internal prototype to avoid an error. */
16679#ifdef __cplusplus
16680extern "C"
16681#endif
16682/* We use char because int might match the return type of a gcc2
16683 builtin and then its argument prototype would still apply. */
16684char des_cbc_encrypt ();
16685int
16686main ()
16687{
16688des_cbc_encrypt ();
16689 ;
16690 return 0;
16691}
16692_ACEOF
16693rm -f conftest.$ac_objext conftest$ac_exeext
16694if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16695 (eval $ac_link) 2>&5
16696 ac_status=$?
16697 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16698 (exit $ac_status); } &&
16699 { ac_try='test -s conftest$ac_exeext'
16700 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16701 (eval $ac_try) 2>&5
16702 ac_status=$?
16703 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16704 (exit $ac_status); }; }; then
16705 ac_cv_lib_des425_des_cbc_encrypt=yes
16706else
16707 echo "$as_me: failed program was:" >&5
16708sed 's/^/| /' conftest.$ac_ext >&5
16709
16710ac_cv_lib_des425_des_cbc_encrypt=no
16711fi
16712rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16713LIBS=$ac_check_lib_save_LIBS
16714fi
16715echo "$as_me:$LINENO: result: $ac_cv_lib_des425_des_cbc_encrypt" >&5
16716echo "${ECHO_T}$ac_cv_lib_des425_des_cbc_encrypt" >&6
16717if test $ac_cv_lib_des425_des_cbc_encrypt = yes; then
16718 cat >>confdefs.h <<_ACEOF
16719@%:@define HAVE_LIBDES425 1
16720_ACEOF
16721
16722 LIBS="-ldes425 $LIBS"
16723
16724fi
16725
16726 if test "$ac_cv_lib_des425_des_cbc_encrypt" != yes; then
16727 { echo "$as_me:$LINENO: WARNING: Cannot find libdes nor libdes425, build may fail" >&5
16728echo "$as_me: WARNING: Cannot find libdes nor libdes425, build may fail" >&2;}
16729 else
16730 KLIBS="-ldes425"
16731 fi
16732 else
16733 KLIBS="-ldes"
16734 fi
16735
16736echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5
16737echo $ECHO_N "checking for dn_expand in -lresolv... $ECHO_C" >&6
16738if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then
16739 echo $ECHO_N "(cached) $ECHO_C" >&6
16740else
16741 ac_check_lib_save_LIBS=$LIBS
16742LIBS="-lresolv $LIBS"
16743cat >conftest.$ac_ext <<_ACEOF
16744#line $LINENO "configure"
16745/* confdefs.h. */
16746_ACEOF
16747cat confdefs.h >>conftest.$ac_ext
16748cat >>conftest.$ac_ext <<_ACEOF
16749/* end confdefs.h. */
16750
16751/* Override any gcc2 internal prototype to avoid an error. */
16752#ifdef __cplusplus
16753extern "C"
16754#endif
16755/* We use char because int might match the return type of a gcc2
16756 builtin and then its argument prototype would still apply. */
16757char dn_expand ();
16758int
16759main ()
16760{
16761dn_expand ();
16762 ;
16763 return 0;
16764}
16765_ACEOF
16766rm -f conftest.$ac_objext conftest$ac_exeext
16767if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16768 (eval $ac_link) 2>&5
16769 ac_status=$?
16770 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16771 (exit $ac_status); } &&
16772 { ac_try='test -s conftest$ac_exeext'
16773 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16774 (eval $ac_try) 2>&5
16775 ac_status=$?
16776 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16777 (exit $ac_status); }; }; then
16778 ac_cv_lib_resolv_dn_expand=yes
16779else
16780 echo "$as_me: failed program was:" >&5
16781sed 's/^/| /' conftest.$ac_ext >&5
16782
16783ac_cv_lib_resolv_dn_expand=no
16784fi
16785rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
16786LIBS=$ac_check_lib_save_LIBS
16787fi
16788echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5
16789echo "${ECHO_T}$ac_cv_lib_resolv_dn_expand" >&6
16790if test $ac_cv_lib_resolv_dn_expand = yes; then
16791 cat >>confdefs.h <<_ACEOF
16792@%:@define HAVE_LIBRESOLV 1
16793_ACEOF
16794
16795 LIBS="-lresolv $LIBS"
16796
16797fi
16798
16799 KRB4=yes
16800 KRB4_MSG="yes"
16801 cat >>confdefs.h <<\_ACEOF
16802@%:@define KRB4 1
16803_ACEOF
16804
16805 fi
16806
16807
16808fi;
16809
16810# Check whether user wants AFS support
16811AFS_MSG="no"
16812
16813# Check whether --with-afs or --without-afs was given.
16814if test "${with_afs+set}" = set; then
16815 withval="$with_afs"
16816
16817 if test "x$withval" != "xno" ; then
16818
16819 if test "x$withval" != "xyes" ; then
16820 CPPFLAGS="$CPPFLAGS -I${withval}/include"
16821 LDFLAGS="$LDFLAGS -L${withval}/lib"
16822 fi
16823
16824 if test -z "$KRB4" ; then
16825 { echo "$as_me:$LINENO: WARNING: AFS requires Kerberos IV support, build may fail" >&5
16826echo "$as_me: WARNING: AFS requires Kerberos IV support, build may fail" >&2;}
16827 fi
16828
16829 LIBS="-lkafs $LIBS"
16830 if test ! -z "$AFS_LIBS" ; then
16831 LIBS="$LIBS $AFS_LIBS"
16832 fi
16833 cat >>confdefs.h <<\_ACEOF
16834@%:@define AFS 1
16835_ACEOF
16836
16837 AFS_MSG="yes"
16838 fi
16839
16840
16841fi;
16842LIBS="$LIBS $KLIBS $K5LIBS"
16843
16844# Looking for programs, paths and files
16845
16846PRIVSEP_PATH=/var/empty
16847
16848# Check whether --with-privsep-path or --without-privsep-path was given.
16849if test "${with_privsep_path+set}" = set; then
16850 withval="$with_privsep_path"
16851
16852 if test "x$withval" != "$no" ; then
16853 PRIVSEP_PATH=$withval
16854 fi
16855
16856
16857fi;
16858
16859
16860
16861# Check whether --with-xauth or --without-xauth was given.
16862if test "${with_xauth+set}" = set; then
16863 withval="$with_xauth"
16864
16865 if test "x$withval" != "xno" ; then
16866 xauth_path=$withval
16867 fi
16868
16869else
16870
16871 TestPath="$PATH"
16872 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X/bin"
16873 TestPath="${TestPath}${PATH_SEPARATOR}/usr/bin/X11"
16874 TestPath="${TestPath}${PATH_SEPARATOR}/usr/X11R6/bin"
16875 TestPath="${TestPath}${PATH_SEPARATOR}/usr/openwin/bin"
16876 # Extract the first word of "xauth", so it can be a program name with args.
16877set dummy xauth; ac_word=$2
16878echo "$as_me:$LINENO: checking for $ac_word" >&5
16879echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
16880if test "${ac_cv_path_xauth_path+set}" = set; then
16881 echo $ECHO_N "(cached) $ECHO_C" >&6
16882else
16883 case $xauth_path in
16884 [\\/]* | ?:[\\/]*)
16885 ac_cv_path_xauth_path="$xauth_path" # Let the user override the test with a path.
16886 ;;
16887 *)
16888 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
16889for as_dir in $TestPath
16890do
16891 IFS=$as_save_IFS
16892 test -z "$as_dir" && as_dir=.
16893 for ac_exec_ext in '' $ac_executable_extensions; do
16894 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16895 ac_cv_path_xauth_path="$as_dir/$ac_word$ac_exec_ext"
16896 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
16897 break 2
16898 fi
16899done
16900done
16901
16902 ;;
16903esac
16904fi
16905xauth_path=$ac_cv_path_xauth_path
16906
16907if test -n "$xauth_path"; then
16908 echo "$as_me:$LINENO: result: $xauth_path" >&5
16909echo "${ECHO_T}$xauth_path" >&6
16910else
16911 echo "$as_me:$LINENO: result: no" >&5
16912echo "${ECHO_T}no" >&6
16913fi
16914
16915 if (test ! -z "$xauth_path" && test -x "/usr/openwin/bin/xauth") ; then
16916 xauth_path="/usr/openwin/bin/xauth"
16917 fi
16918
16919
16920fi;
16921
16922STRIP_OPT=-s
16923# Check whether --enable-strip or --disable-strip was given.
16924if test "${enable_strip+set}" = set; then
16925 enableval="$enable_strip"
16926
16927 if test "x$enableval" = "xno" ; then
16928 STRIP_OPT=
16929 fi
16930
16931
16932fi;
16933
16934
16935if test -z "$xauth_path" ; then
16936 XAUTH_PATH="undefined"
16937
16938else
16939 cat >>confdefs.h <<_ACEOF
16940@%:@define XAUTH_PATH "$xauth_path"
16941_ACEOF
16942
16943 XAUTH_PATH=$xauth_path
16944
16945fi
16946
16947# Check for mail directory (last resort if we cannot get it from headers)
16948if test ! -z "$MAIL" ; then
16949 maildir=`dirname $MAIL`
16950 cat >>confdefs.h <<_ACEOF
16951@%:@define MAIL_DIRECTORY "$maildir"
16952_ACEOF
16953
16954fi
16955
16956if test -z "$no_dev_ptmx" ; then
16957 if test "x$disable_ptmx_check" != "xyes" ; then
16958 echo "$as_me:$LINENO: checking for \"/dev/ptmx\"" >&5
16959echo $ECHO_N "checking for \"/dev/ptmx\"... $ECHO_C" >&6
16960if test "${ac_cv_file___dev_ptmx_+set}" = set; then
16961 echo $ECHO_N "(cached) $ECHO_C" >&6
16962else
16963 test "$cross_compiling" = yes &&
16964 { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
16965echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
16966 { (exit 1); exit 1; }; }
16967if test -r ""/dev/ptmx""; then
16968 ac_cv_file___dev_ptmx_=yes
16969else
16970 ac_cv_file___dev_ptmx_=no
16971fi
16972fi
16973echo "$as_me:$LINENO: result: $ac_cv_file___dev_ptmx_" >&5
16974echo "${ECHO_T}$ac_cv_file___dev_ptmx_" >&6
16975if test $ac_cv_file___dev_ptmx_ = yes; then
16976
16977 cat >>confdefs.h <<_ACEOF
16978@%:@define HAVE_DEV_PTMX 1
16979_ACEOF
16980
16981 have_dev_ptmx=1
16982
16983
16984fi
16985
16986 fi
16987fi
16988echo "$as_me:$LINENO: checking for \"/dev/ptc\"" >&5
16989echo $ECHO_N "checking for \"/dev/ptc\"... $ECHO_C" >&6
16990if test "${ac_cv_file___dev_ptc_+set}" = set; then
16991 echo $ECHO_N "(cached) $ECHO_C" >&6
16992else
16993 test "$cross_compiling" = yes &&
16994 { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
16995echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
16996 { (exit 1); exit 1; }; }
16997if test -r ""/dev/ptc""; then
16998 ac_cv_file___dev_ptc_=yes
16999else
17000 ac_cv_file___dev_ptc_=no
17001fi
17002fi
17003echo "$as_me:$LINENO: result: $ac_cv_file___dev_ptc_" >&5
17004echo "${ECHO_T}$ac_cv_file___dev_ptc_" >&6
17005if test $ac_cv_file___dev_ptc_ = yes; then
17006
17007 cat >>confdefs.h <<_ACEOF
17008@%:@define HAVE_DEV_PTS_AND_PTC 1
17009_ACEOF
17010
17011 have_dev_ptc=1
17012
17013
17014fi
17015
17016
17017# Options from here on. Some of these are preset by platform above
17018
17019# Check whether --with-mantype or --without-mantype was given.
17020if test "${with_mantype+set}" = set; then
17021 withval="$with_mantype"
17022
17023 case "$withval" in
17024 man|cat|doc)
17025 MANTYPE=$withval
17026 ;;
17027 *)
17028 { { echo "$as_me:$LINENO: error: invalid man type: $withval" >&5
17029echo "$as_me: error: invalid man type: $withval" >&2;}
17030 { (exit 1); exit 1; }; }
17031 ;;
17032 esac
17033
17034
17035fi;
17036if test -z "$MANTYPE"; then
17037 TestPath="/usr/bin${PATH_SEPARATOR}/usr/ucb"
17038 for ac_prog in nroff awf
17039do
17040 # Extract the first word of "$ac_prog", so it can be a program name with args.
17041set dummy $ac_prog; ac_word=$2
17042echo "$as_me:$LINENO: checking for $ac_word" >&5
17043echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
17044if test "${ac_cv_path_NROFF+set}" = set; then
17045 echo $ECHO_N "(cached) $ECHO_C" >&6
17046else
17047 case $NROFF in
17048 [\\/]* | ?:[\\/]*)
17049 ac_cv_path_NROFF="$NROFF" # Let the user override the test with a path.
17050 ;;
17051 *)
17052 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
17053for as_dir in $TestPath
17054do
17055 IFS=$as_save_IFS
17056 test -z "$as_dir" && as_dir=.
17057 for ac_exec_ext in '' $ac_executable_extensions; do
17058 if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
17059 ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext"
17060 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
17061 break 2
17062 fi
17063done
17064done
17065
17066 ;;
17067esac
17068fi
17069NROFF=$ac_cv_path_NROFF
17070
17071if test -n "$NROFF"; then
17072 echo "$as_me:$LINENO: result: $NROFF" >&5
17073echo "${ECHO_T}$NROFF" >&6
17074else
17075 echo "$as_me:$LINENO: result: no" >&5
17076echo "${ECHO_T}no" >&6
17077fi
17078
17079 test -n "$NROFF" && break
17080done
17081test -n "$NROFF" || NROFF="/bin/false"
17082
17083 if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then
17084 MANTYPE=doc
17085 elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then
17086 MANTYPE=man
17087 else
17088 MANTYPE=cat
17089 fi
17090fi
17091
17092if test "$MANTYPE" = "doc"; then
17093 mansubdir=man;
17094else
17095 mansubdir=$MANTYPE;
17096fi
17097
17098
17099# Check whether to enable MD5 passwords
17100MD5_MSG="no"
17101
17102# Check whether --with-md5-passwords or --without-md5-passwords was given.
17103if test "${with_md5_passwords+set}" = set; then
17104 withval="$with_md5_passwords"
17105
17106 if test "x$withval" != "xno" ; then
17107 cat >>confdefs.h <<\_ACEOF
17108@%:@define HAVE_MD5_PASSWORDS 1
17109_ACEOF
17110
17111 MD5_MSG="yes"
17112 fi
17113
17114
17115fi;
17116
17117# Whether to disable shadow password support
17118
17119# Check whether --with-shadow or --without-shadow was given.
17120if test "${with_shadow+set}" = set; then
17121 withval="$with_shadow"
17122
17123 if test "x$withval" = "xno" ; then
17124 cat >>confdefs.h <<\_ACEOF
17125@%:@define DISABLE_SHADOW 1
17126_ACEOF
17127
17128 disable_shadow=yes
17129 fi
17130
17131
17132fi;
17133
17134if test -z "$disable_shadow" ; then
17135 echo "$as_me:$LINENO: checking if the systems has expire shadow information" >&5
17136echo $ECHO_N "checking if the systems has expire shadow information... $ECHO_C" >&6
17137 cat >conftest.$ac_ext <<_ACEOF
17138#line $LINENO "configure"
17139/* confdefs.h. */
17140_ACEOF
17141cat confdefs.h >>conftest.$ac_ext
17142cat >>conftest.$ac_ext <<_ACEOF
17143/* end confdefs.h. */
17144
17145#include <sys/types.h>
17146#include <shadow.h>
17147 struct spwd sp;
17148
17149int
17150main ()
17151{
17152 sp.sp_expire = sp.sp_lstchg = sp.sp_inact = 0;
17153 ;
17154 return 0;
17155}
17156_ACEOF
17157rm -f conftest.$ac_objext
17158if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17159 (eval $ac_compile) 2>&5
17160 ac_status=$?
17161 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17162 (exit $ac_status); } &&
17163 { ac_try='test -s conftest.$ac_objext'
17164 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17165 (eval $ac_try) 2>&5
17166 ac_status=$?
17167 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17168 (exit $ac_status); }; }; then
17169 sp_expire_available=yes
17170else
17171 echo "$as_me: failed program was:" >&5
17172sed 's/^/| /' conftest.$ac_ext >&5
17173
17174
17175
17176fi
17177rm -f conftest.$ac_objext conftest.$ac_ext
17178
17179 if test "x$sp_expire_available" = "xyes" ; then
17180 echo "$as_me:$LINENO: result: yes" >&5
17181echo "${ECHO_T}yes" >&6
17182 cat >>confdefs.h <<\_ACEOF
17183@%:@define HAS_SHADOW_EXPIRE 1
17184_ACEOF
17185
17186 else
17187 echo "$as_me:$LINENO: result: no" >&5
17188echo "${ECHO_T}no" >&6
17189 fi
17190fi
17191
17192# Use ip address instead of hostname in $DISPLAY
17193if test ! -z "$IPADDR_IN_DISPLAY" ; then
17194 DISPLAY_HACK_MSG="yes"
17195 cat >>confdefs.h <<\_ACEOF
17196@%:@define IPADDR_IN_DISPLAY 1
17197_ACEOF
17198
17199else
17200 DISPLAY_HACK_MSG="no"
17201
17202# Check whether --with-ipaddr-display or --without-ipaddr-display was given.
17203if test "${with_ipaddr_display+set}" = set; then
17204 withval="$with_ipaddr_display"
17205
17206 if test "x$withval" != "xno" ; then
17207 cat >>confdefs.h <<\_ACEOF
17208@%:@define IPADDR_IN_DISPLAY 1
17209_ACEOF
17210
17211 DISPLAY_HACK_MSG="yes"
17212 fi
17213
17214
17215fi;
17216fi
17217
17218if test $ac_cv_func_login_getcapbool = "yes" -a \
17219 $ac_cv_header_login_cap_h = "yes" ; then
17220 USES_LOGIN_CONF=yes
17221fi
17222# Whether to mess with the default path
17223SERVER_PATH_MSG="(default)"
17224
17225# Check whether --with-default-path or --without-default-path was given.
17226if test "${with_default_path+set}" = set; then
17227 withval="$with_default_path"
17228
17229 if test "$USES_LOGIN_CONF" = "yes" ; then
17230 { echo "$as_me:$LINENO: WARNING:
17231--with-default-path=PATH has no effect on this system.
17232Edit /etc/login.conf instead." >&5
17233echo "$as_me: WARNING:
17234--with-default-path=PATH has no effect on this system.
17235Edit /etc/login.conf instead." >&2;}
17236 elif test "x$withval" != "xno" ; then
17237 user_path="$withval"
17238 SERVER_PATH_MSG="$withval"
17239 fi
17240
17241else
17242 if test "$USES_LOGIN_CONF" = "yes" ; then
17243 { echo "$as_me:$LINENO: WARNING: Make sure the path to scp is in /etc/login.conf" >&5
17244echo "$as_me: WARNING: Make sure the path to scp is in /etc/login.conf" >&2;}
17245 else
17246 if test "$cross_compiling" = yes; then
17247 user_path="/usr/bin:/bin:/usr/sbin:/sbin"
17248
17249else
17250 cat >conftest.$ac_ext <<_ACEOF
17251#line $LINENO "configure"
17252/* confdefs.h. */
17253_ACEOF
17254cat confdefs.h >>conftest.$ac_ext
17255cat >>conftest.$ac_ext <<_ACEOF
17256/* end confdefs.h. */
17257
17258/* find out what STDPATH is */
17259#include <stdio.h>
17260#ifdef HAVE_PATHS_H
17261# include <paths.h>
17262#endif
17263#ifndef _PATH_STDPATH
17264# ifdef _PATH_USERPATH /* Irix */
17265# define _PATH_STDPATH _PATH_USERPATH
17266# else
17267# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
17268# endif
17269#endif
17270#include <sys/types.h>
17271#include <sys/stat.h>
17272#include <fcntl.h>
17273#define DATA "conftest.stdpath"
17274
17275main()
17276{
17277 FILE *fd;
17278 int rc;
17279
17280 fd = fopen(DATA,"w");
17281 if(fd == NULL)
17282 exit(1);
17283
17284 if ((rc = fprintf(fd,"%s", _PATH_STDPATH)) < 0)
17285 exit(1);
17286
17287 exit(0);
17288}
17289
17290_ACEOF
17291rm -f conftest$ac_exeext
17292if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17293 (eval $ac_link) 2>&5
17294 ac_status=$?
17295 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17296 (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
17297 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17298 (eval $ac_try) 2>&5
17299 ac_status=$?
17300 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17301 (exit $ac_status); }; }; then
17302 user_path=`cat conftest.stdpath`
17303else
17304 echo "$as_me: program exited with status $ac_status" >&5
17305echo "$as_me: failed program was:" >&5
17306sed 's/^/| /' conftest.$ac_ext >&5
17307
17308( exit $ac_status )
17309 user_path="/usr/bin:/bin:/usr/sbin:/sbin"
17310fi
17311rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
17312fi
17313# make sure $bindir is in USER_PATH so scp will work
17314 t_bindir=`eval echo ${bindir}`
17315 case $t_bindir in
17316 NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$prefix~"` ;;
17317 esac
17318 case $t_bindir in
17319 NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$ac_default_prefix~"` ;;
17320 esac
17321 echo $user_path | grep ":$t_bindir" > /dev/null 2>&1
17322 if test $? -ne 0 ; then
17323 echo $user_path | grep "^$t_bindir" > /dev/null 2>&1
17324 if test $? -ne 0 ; then
17325 user_path=$user_path:$t_bindir
17326 echo "$as_me:$LINENO: result: Adding $t_bindir to USER_PATH so scp will work" >&5
17327echo "${ECHO_T}Adding $t_bindir to USER_PATH so scp will work" >&6
17328 fi
17329 fi
17330 fi
17331
17332fi;
17333if test "$USES_LOGIN_CONF" != "yes" ; then
17334 cat >>confdefs.h <<_ACEOF
17335@%:@define USER_PATH "$user_path"
17336_ACEOF
17337
17338
17339fi
17340
17341# Set superuser path separately to user path
17342
17343# Check whether --with-superuser-path or --without-superuser-path was given.
17344if test "${with_superuser_path+set}" = set; then
17345 withval="$with_superuser_path"
17346
17347 if test "x$withval" != "xno" ; then
17348 cat >>confdefs.h <<_ACEOF
17349@%:@define SUPERUSER_PATH "$withval"
17350_ACEOF
17351
17352 superuser_path=$withval
17353 fi
17354
17355
17356fi;
17357
17358
17359# Whether to force IPv4 by default (needed on broken glibc Linux)
17360IPV4_HACK_MSG="no"
17361
17362# Check whether --with-ipv4-default or --without-ipv4-default was given.
17363if test "${with_ipv4_default+set}" = set; then
17364 withval="$with_ipv4_default"
17365
17366 if test "x$withval" != "xno" ; then
17367 cat >>confdefs.h <<\_ACEOF
17368@%:@define IPV4_DEFAULT 1
17369_ACEOF
17370
17371 IPV4_HACK_MSG="yes"
17372 fi
17373
17374
17375fi;
17376
17377echo "$as_me:$LINENO: checking if we need to convert IPv4 in IPv6-mapped addresses" >&5
17378echo $ECHO_N "checking if we need to convert IPv4 in IPv6-mapped addresses... $ECHO_C" >&6
17379IPV4_IN6_HACK_MSG="no"
17380
17381# Check whether --with-4in6 or --without-4in6 was given.
17382if test "${with_4in6+set}" = set; then
17383 withval="$with_4in6"
17384
17385 if test "x$withval" != "xno" ; then
17386 echo "$as_me:$LINENO: result: yes" >&5
17387echo "${ECHO_T}yes" >&6
17388 cat >>confdefs.h <<\_ACEOF
17389@%:@define IPV4_IN_IPV6 1
17390_ACEOF
17391
17392 IPV4_IN6_HACK_MSG="yes"
17393 else
17394 echo "$as_me:$LINENO: result: no" >&5
17395echo "${ECHO_T}no" >&6
17396 fi
17397
17398else
17399
17400 if test "x$inet6_default_4in6" = "xyes"; then
17401 echo "$as_me:$LINENO: result: yes (default)" >&5
17402echo "${ECHO_T}yes (default)" >&6
17403 cat >>confdefs.h <<\_ACEOF
17404@%:@define IPV4_IN_IPV6 1
17405_ACEOF
17406
17407 IPV4_IN6_HACK_MSG="yes"
17408 else
17409 echo "$as_me:$LINENO: result: no (default)" >&5
17410echo "${ECHO_T}no (default)" >&6
17411 fi
17412
17413
17414fi;
17415
17416# Whether to enable BSD auth support
17417BSD_AUTH_MSG=no
17418
17419# Check whether --with-bsd-auth or --without-bsd-auth was given.
17420if test "${with_bsd_auth+set}" = set; then
17421 withval="$with_bsd_auth"
17422
17423 if test "x$withval" != "xno" ; then
17424 cat >>confdefs.h <<\_ACEOF
17425@%:@define BSD_AUTH 1
17426_ACEOF
17427
17428 BSD_AUTH_MSG=yes
17429 fi
17430
17431
17432fi;
17433
17434# Where to place sshd.pid
17435piddir=/var/run
17436# make sure the directory exists
17437if test ! -d $piddir ; then
17438 piddir=`eval echo ${sysconfdir}`
17439 case $piddir in
17440 NONE/*) piddir=`echo $piddir | sed "s~NONE~$ac_default_prefix~"` ;;
17441 esac
17442fi
17443
17444
17445# Check whether --with-pid-dir or --without-pid-dir was given.
17446if test "${with_pid_dir+set}" = set; then
17447 withval="$with_pid_dir"
17448
17449 if test "x$withval" != "xno" ; then
17450 piddir=$withval
17451 if test ! -d $piddir ; then
17452 { echo "$as_me:$LINENO: WARNING: ** no $piddir directory on this system **" >&5
17453echo "$as_me: WARNING: ** no $piddir directory on this system **" >&2;}
17454 fi
17455 fi
17456
17457
17458fi;
17459
17460cat >>confdefs.h <<_ACEOF
17461@%:@define _PATH_SSH_PIDDIR "$piddir"
17462_ACEOF
17463
17464
17465
17466# Check whether --enable-lastlog or --disable-lastlog was given.
17467if test "${enable_lastlog+set}" = set; then
17468 enableval="$enable_lastlog"
17469 cat >>confdefs.h <<\_ACEOF
17470@%:@define DISABLE_LASTLOG 1
17471_ACEOF
17472
17473
17474fi;
17475# Check whether --enable-utmp or --disable-utmp was given.
17476if test "${enable_utmp+set}" = set; then
17477 enableval="$enable_utmp"
17478 cat >>confdefs.h <<\_ACEOF
17479@%:@define DISABLE_UTMP 1
17480_ACEOF
17481
17482
17483fi;
17484# Check whether --enable-utmpx or --disable-utmpx was given.
17485if test "${enable_utmpx+set}" = set; then
17486 enableval="$enable_utmpx"
17487 cat >>confdefs.h <<\_ACEOF
17488@%:@define DISABLE_UTMPX 1
17489_ACEOF
17490
17491
17492fi;
17493# Check whether --enable-wtmp or --disable-wtmp was given.
17494if test "${enable_wtmp+set}" = set; then
17495 enableval="$enable_wtmp"
17496 cat >>confdefs.h <<\_ACEOF
17497@%:@define DISABLE_WTMP 1
17498_ACEOF
17499
17500
17501fi;
17502# Check whether --enable-wtmpx or --disable-wtmpx was given.
17503if test "${enable_wtmpx+set}" = set; then
17504 enableval="$enable_wtmpx"
17505 cat >>confdefs.h <<\_ACEOF
17506@%:@define DISABLE_WTMPX 1
17507_ACEOF
17508
17509
17510fi;
17511# Check whether --enable-libutil or --disable-libutil was given.
17512if test "${enable_libutil+set}" = set; then
17513 enableval="$enable_libutil"
17514 cat >>confdefs.h <<\_ACEOF
17515@%:@define DISABLE_LOGIN 1
17516_ACEOF
17517
17518
17519fi;
17520# Check whether --enable-pututline or --disable-pututline was given.
17521if test "${enable_pututline+set}" = set; then
17522 enableval="$enable_pututline"
17523 cat >>confdefs.h <<\_ACEOF
17524@%:@define DISABLE_PUTUTLINE 1
17525_ACEOF
17526
17527
17528fi;
17529# Check whether --enable-pututxline or --disable-pututxline was given.
17530if test "${enable_pututxline+set}" = set; then
17531 enableval="$enable_pututxline"
17532 cat >>confdefs.h <<\_ACEOF
17533@%:@define DISABLE_PUTUTXLINE 1
17534_ACEOF
17535
17536
17537fi;
17538
17539# Check whether --with-lastlog or --without-lastlog was given.
17540if test "${with_lastlog+set}" = set; then
17541 withval="$with_lastlog"
17542
17543 if test "x$withval" = "xno" ; then
17544 cat >>confdefs.h <<\_ACEOF
17545@%:@define DISABLE_LASTLOG 1
17546_ACEOF
17547
17548 else
17549 conf_lastlog_location=$withval
17550 fi
17551
17552
17553fi;
17554
17555
17556echo "$as_me:$LINENO: checking if your system defines LASTLOG_FILE" >&5
17557echo $ECHO_N "checking if your system defines LASTLOG_FILE... $ECHO_C" >&6
17558cat >conftest.$ac_ext <<_ACEOF
17559#line $LINENO "configure"
17560/* confdefs.h. */
17561_ACEOF
17562cat confdefs.h >>conftest.$ac_ext
17563cat >>conftest.$ac_ext <<_ACEOF
17564/* end confdefs.h. */
17565
17566#include <sys/types.h>
17567#include <utmp.h>
17568#ifdef HAVE_LASTLOG_H
17569# include <lastlog.h>
17570#endif
17571#ifdef HAVE_PATHS_H
17572# include <paths.h>
17573#endif
17574#ifdef HAVE_LOGIN_H
17575# include <login.h>
17576#endif
17577
17578int
17579main ()
17580{
17581 char *lastlog = LASTLOG_FILE;
17582 ;
17583 return 0;
17584}
17585_ACEOF
17586rm -f conftest.$ac_objext
17587if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17588 (eval $ac_compile) 2>&5
17589 ac_status=$?
17590 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17591 (exit $ac_status); } &&
17592 { ac_try='test -s conftest.$ac_objext'
17593 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17594 (eval $ac_try) 2>&5
17595 ac_status=$?
17596 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17597 (exit $ac_status); }; }; then
17598 echo "$as_me:$LINENO: result: yes" >&5
17599echo "${ECHO_T}yes" >&6
17600else
17601 echo "$as_me: failed program was:" >&5
17602sed 's/^/| /' conftest.$ac_ext >&5
17603
17604
17605 echo "$as_me:$LINENO: result: no" >&5
17606echo "${ECHO_T}no" >&6
17607 echo "$as_me:$LINENO: checking if your system defines _PATH_LASTLOG" >&5
17608echo $ECHO_N "checking if your system defines _PATH_LASTLOG... $ECHO_C" >&6
17609 cat >conftest.$ac_ext <<_ACEOF
17610#line $LINENO "configure"
17611/* confdefs.h. */
17612_ACEOF
17613cat confdefs.h >>conftest.$ac_ext
17614cat >>conftest.$ac_ext <<_ACEOF
17615/* end confdefs.h. */
17616
17617#include <sys/types.h>
17618#include <utmp.h>
17619#ifdef HAVE_LASTLOG_H
17620# include <lastlog.h>
17621#endif
17622#ifdef HAVE_PATHS_H
17623# include <paths.h>
17624#endif
17625
17626int
17627main ()
17628{
17629 char *lastlog = _PATH_LASTLOG;
17630 ;
17631 return 0;
17632}
17633_ACEOF
17634rm -f conftest.$ac_objext
17635if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17636 (eval $ac_compile) 2>&5
17637 ac_status=$?
17638 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17639 (exit $ac_status); } &&
17640 { ac_try='test -s conftest.$ac_objext'
17641 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17642 (eval $ac_try) 2>&5
17643 ac_status=$?
17644 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17645 (exit $ac_status); }; }; then
17646 echo "$as_me:$LINENO: result: yes" >&5
17647echo "${ECHO_T}yes" >&6
17648else
17649 echo "$as_me: failed program was:" >&5
17650sed 's/^/| /' conftest.$ac_ext >&5
17651
17652
17653 echo "$as_me:$LINENO: result: no" >&5
17654echo "${ECHO_T}no" >&6
17655 system_lastlog_path=no
17656
17657fi
17658rm -f conftest.$ac_objext conftest.$ac_ext
17659
17660
17661fi
17662rm -f conftest.$ac_objext conftest.$ac_ext
17663
17664if test -z "$conf_lastlog_location"; then
17665 if test x"$system_lastlog_path" = x"no" ; then
17666 for f in /var/log/lastlog /usr/adm/lastlog /var/adm/lastlog /etc/security/lastlog ; do
17667 if (test -d "$f" || test -f "$f") ; then
17668 conf_lastlog_location=$f
17669 fi
17670 done
17671 if test -z "$conf_lastlog_location"; then
17672 { echo "$as_me:$LINENO: WARNING: ** Cannot find lastlog **" >&5
17673echo "$as_me: WARNING: ** Cannot find lastlog **" >&2;}
17674 fi
17675 fi
17676fi
17677
17678if test -n "$conf_lastlog_location"; then
17679 cat >>confdefs.h <<_ACEOF
17680@%:@define CONF_LASTLOG_FILE "$conf_lastlog_location"
17681_ACEOF
17682
17683fi
17684
17685echo "$as_me:$LINENO: checking if your system defines UTMP_FILE" >&5
17686echo $ECHO_N "checking if your system defines UTMP_FILE... $ECHO_C" >&6
17687cat >conftest.$ac_ext <<_ACEOF
17688#line $LINENO "configure"
17689/* confdefs.h. */
17690_ACEOF
17691cat confdefs.h >>conftest.$ac_ext
17692cat >>conftest.$ac_ext <<_ACEOF
17693/* end confdefs.h. */
17694
17695#include <sys/types.h>
17696#include <utmp.h>
17697#ifdef HAVE_PATHS_H
17698# include <paths.h>
17699#endif
17700
17701int
17702main ()
17703{
17704 char *utmp = UTMP_FILE;
17705 ;
17706 return 0;
17707}
17708_ACEOF
17709rm -f conftest.$ac_objext
17710if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17711 (eval $ac_compile) 2>&5
17712 ac_status=$?
17713 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17714 (exit $ac_status); } &&
17715 { ac_try='test -s conftest.$ac_objext'
17716 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17717 (eval $ac_try) 2>&5
17718 ac_status=$?
17719 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17720 (exit $ac_status); }; }; then
17721 echo "$as_me:$LINENO: result: yes" >&5
17722echo "${ECHO_T}yes" >&6
17723else
17724 echo "$as_me: failed program was:" >&5
17725sed 's/^/| /' conftest.$ac_ext >&5
17726
17727 echo "$as_me:$LINENO: result: no" >&5
17728echo "${ECHO_T}no" >&6
17729 system_utmp_path=no
17730
17731fi
17732rm -f conftest.$ac_objext conftest.$ac_ext
17733if test -z "$conf_utmp_location"; then
17734 if test x"$system_utmp_path" = x"no" ; then
17735 for f in /etc/utmp /usr/adm/utmp /var/run/utmp; do
17736 if test -f $f ; then
17737 conf_utmp_location=$f
17738 fi
17739 done
17740 if test -z "$conf_utmp_location"; then
17741 cat >>confdefs.h <<\_ACEOF
17742@%:@define DISABLE_UTMP 1
17743_ACEOF
17744
17745 fi
17746 fi
17747fi
17748if test -n "$conf_utmp_location"; then
17749 cat >>confdefs.h <<_ACEOF
17750@%:@define CONF_UTMP_FILE "$conf_utmp_location"
17751_ACEOF
17752
17753fi
17754
17755echo "$as_me:$LINENO: checking if your system defines WTMP_FILE" >&5
17756echo $ECHO_N "checking if your system defines WTMP_FILE... $ECHO_C" >&6
17757cat >conftest.$ac_ext <<_ACEOF
17758#line $LINENO "configure"
17759/* confdefs.h. */
17760_ACEOF
17761cat confdefs.h >>conftest.$ac_ext
17762cat >>conftest.$ac_ext <<_ACEOF
17763/* end confdefs.h. */
17764
17765#include <sys/types.h>
17766#include <utmp.h>
17767#ifdef HAVE_PATHS_H
17768# include <paths.h>
17769#endif
17770
17771int
17772main ()
17773{
17774 char *wtmp = WTMP_FILE;
17775 ;
17776 return 0;
17777}
17778_ACEOF
17779rm -f conftest.$ac_objext
17780if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17781 (eval $ac_compile) 2>&5
17782 ac_status=$?
17783 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17784 (exit $ac_status); } &&
17785 { ac_try='test -s conftest.$ac_objext'
17786 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17787 (eval $ac_try) 2>&5
17788 ac_status=$?
17789 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17790 (exit $ac_status); }; }; then
17791 echo "$as_me:$LINENO: result: yes" >&5
17792echo "${ECHO_T}yes" >&6
17793else
17794 echo "$as_me: failed program was:" >&5
17795sed 's/^/| /' conftest.$ac_ext >&5
17796
17797 echo "$as_me:$LINENO: result: no" >&5
17798echo "${ECHO_T}no" >&6
17799 system_wtmp_path=no
17800
17801fi
17802rm -f conftest.$ac_objext conftest.$ac_ext
17803if test -z "$conf_wtmp_location"; then
17804 if test x"$system_wtmp_path" = x"no" ; then
17805 for f in /usr/adm/wtmp /var/log/wtmp; do
17806 if test -f $f ; then
17807 conf_wtmp_location=$f
17808 fi
17809 done
17810 if test -z "$conf_wtmp_location"; then
17811 cat >>confdefs.h <<\_ACEOF
17812@%:@define DISABLE_WTMP 1
17813_ACEOF
17814
17815 fi
17816 fi
17817fi
17818if test -n "$conf_wtmp_location"; then
17819 cat >>confdefs.h <<_ACEOF
17820@%:@define CONF_WTMP_FILE "$conf_wtmp_location"
17821_ACEOF
17822
17823fi
17824
17825
17826echo "$as_me:$LINENO: checking if your system defines UTMPX_FILE" >&5
17827echo $ECHO_N "checking if your system defines UTMPX_FILE... $ECHO_C" >&6
17828cat >conftest.$ac_ext <<_ACEOF
17829#line $LINENO "configure"
17830/* confdefs.h. */
17831_ACEOF
17832cat confdefs.h >>conftest.$ac_ext
17833cat >>conftest.$ac_ext <<_ACEOF
17834/* end confdefs.h. */
17835
17836#include <sys/types.h>
17837#include <utmp.h>
17838#ifdef HAVE_UTMPX_H
17839#include <utmpx.h>
17840#endif
17841#ifdef HAVE_PATHS_H
17842# include <paths.h>
17843#endif
17844
17845int
17846main ()
17847{
17848 char *utmpx = UTMPX_FILE;
17849 ;
17850 return 0;
17851}
17852_ACEOF
17853rm -f conftest.$ac_objext
17854if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17855 (eval $ac_compile) 2>&5
17856 ac_status=$?
17857 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17858 (exit $ac_status); } &&
17859 { ac_try='test -s conftest.$ac_objext'
17860 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17861 (eval $ac_try) 2>&5
17862 ac_status=$?
17863 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17864 (exit $ac_status); }; }; then
17865 echo "$as_me:$LINENO: result: yes" >&5
17866echo "${ECHO_T}yes" >&6
17867else
17868 echo "$as_me: failed program was:" >&5
17869sed 's/^/| /' conftest.$ac_ext >&5
17870
17871 echo "$as_me:$LINENO: result: no" >&5
17872echo "${ECHO_T}no" >&6
17873 system_utmpx_path=no
17874
17875fi
17876rm -f conftest.$ac_objext conftest.$ac_ext
17877if test -z "$conf_utmpx_location"; then
17878 if test x"$system_utmpx_path" = x"no" ; then
17879 cat >>confdefs.h <<\_ACEOF
17880@%:@define DISABLE_UTMPX 1
17881_ACEOF
17882
17883 fi
17884else
17885 cat >>confdefs.h <<_ACEOF
17886@%:@define CONF_UTMPX_FILE "$conf_utmpx_location"
17887_ACEOF
17888
17889fi
17890
17891echo "$as_me:$LINENO: checking if your system defines WTMPX_FILE" >&5
17892echo $ECHO_N "checking if your system defines WTMPX_FILE... $ECHO_C" >&6
17893cat >conftest.$ac_ext <<_ACEOF
17894#line $LINENO "configure"
17895/* confdefs.h. */
17896_ACEOF
17897cat confdefs.h >>conftest.$ac_ext
17898cat >>conftest.$ac_ext <<_ACEOF
17899/* end confdefs.h. */
17900
17901#include <sys/types.h>
17902#include <utmp.h>
17903#ifdef HAVE_UTMPX_H
17904#include <utmpx.h>
17905#endif
17906#ifdef HAVE_PATHS_H
17907# include <paths.h>
17908#endif
17909
17910int
17911main ()
17912{
17913 char *wtmpx = WTMPX_FILE;
17914 ;
17915 return 0;
17916}
17917_ACEOF
17918rm -f conftest.$ac_objext
17919if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
17920 (eval $ac_compile) 2>&5
17921 ac_status=$?
17922 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17923 (exit $ac_status); } &&
17924 { ac_try='test -s conftest.$ac_objext'
17925 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17926 (eval $ac_try) 2>&5
17927 ac_status=$?
17928 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17929 (exit $ac_status); }; }; then
17930 echo "$as_me:$LINENO: result: yes" >&5
17931echo "${ECHO_T}yes" >&6
17932else
17933 echo "$as_me: failed program was:" >&5
17934sed 's/^/| /' conftest.$ac_ext >&5
17935
17936 echo "$as_me:$LINENO: result: no" >&5
17937echo "${ECHO_T}no" >&6
17938 system_wtmpx_path=no
17939
17940fi
17941rm -f conftest.$ac_objext conftest.$ac_ext
17942if test -z "$conf_wtmpx_location"; then
17943 if test x"$system_wtmpx_path" = x"no" ; then
17944 cat >>confdefs.h <<\_ACEOF
17945@%:@define DISABLE_WTMPX 1
17946_ACEOF
17947
17948 fi
17949else
17950 cat >>confdefs.h <<_ACEOF
17951@%:@define CONF_WTMPX_FILE "$conf_wtmpx_location"
17952_ACEOF
17953
17954fi
17955
17956
17957if test ! -z "$blibpath" ; then
17958 LDFLAGS="$LDFLAGS $blibflags$blibpath"
17959 { echo "$as_me:$LINENO: WARNING: Please check and edit blibpath in LDFLAGS in Makefile" >&5
17960echo "$as_me: WARNING: Please check and edit blibpath in LDFLAGS in Makefile" >&2;}
17961fi
17962
17963if test "$PAM_MSG" = yes ; then
17964 LIBS=`echo $LIBS | sed 's/-lpam //'`
17965fi
17966if test "$ac_cv_lib_pam_pam_set_item" = yes ; then
17967 LIBS=`echo $LIBS | sed 's/-ldl //'`
17968fi
17969
17970
17971 ac_config_files="$ac_config_files Makefile openbsd-compat/Makefile scard/Makefile ssh_prng_cmds"
17972
17973cat >confcache <<\_ACEOF
17974# This file is a shell script that caches the results of configure
17975# tests run on this system so they can be shared between configure
17976# scripts and configure runs, see configure's option --config-cache.
17977# It is not useful on other systems. If it contains results you don't
17978# want to keep, you may remove or edit it.
17979#
17980# config.status only pays attention to the cache file if you give it
17981# the --recheck option to rerun configure.
17982#
17983# `ac_cv_env_foo' variables (set or unset) will be overridden when
17984# loading this file, other *unset* `ac_cv_foo' will be assigned the
17985# following values.
17986
17987_ACEOF
17988
17989# The following way of writing the cache mishandles newlines in values,
17990# but we know of no workaround that is simple, portable, and efficient.
17991# So, don't put newlines in cache variables' values.
17992# Ultrix sh set writes to stderr and can't be redirected directly,
17993# and sets the high bit in the cache file unless we assign to the vars.
17994{
17995 (set) 2>&1 |
17996 case `(ac_space=' '; set | grep ac_space) 2>&1` in
17997 *ac_space=\ *)
17998 # `set' does not quote correctly, so add quotes (double-quote
17999 # substitution turns \\\\ into \\, and sed turns \\ into \).
18000 sed -n \
18001 "s/'/'\\\\''/g;
18002 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
18003 ;;
18004 *)
18005 # `set' quotes correctly as required by POSIX, so do not add quotes.
18006 sed -n \
18007 "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
18008 ;;
18009 esac;
18010} |
18011 sed '
18012 t clear
18013 : clear
18014 s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
18015 t end
18016 /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
18017 : end' >>confcache
18018if diff $cache_file confcache >/dev/null 2>&1; then :; else
18019 if test -w $cache_file; then
18020 test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
18021 cat confcache >$cache_file
18022 else
18023 echo "not updating unwritable cache $cache_file"
18024 fi
18025fi
18026rm -f confcache
18027
18028test "x$prefix" = xNONE && prefix=$ac_default_prefix
18029# Let make expand exec_prefix.
18030test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
18031
18032# VPATH may cause trouble with some makes, so we remove $(srcdir),
18033# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
18034# trailing colons and then remove the whole line if VPATH becomes empty
18035# (actually we leave an empty line to preserve line numbers).
18036if test "x$srcdir" = x.; then
18037 ac_vpsub='/^[ ]*VPATH[ ]*=/{
18038s/:*\$(srcdir):*/:/;
18039s/:*\${srcdir}:*/:/;
18040s/:*@srcdir@:*/:/;
18041s/^\([^=]*=[ ]*\):*/\1/;
18042s/:*$//;
18043s/^[^=]*=[ ]*$//;
18044}'
18045fi
18046
18047DEFS=-DHAVE_CONFIG_H
18048
18049ac_libobjs=
18050ac_ltlibobjs=
18051for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
18052 # 1. Remove the extension, and $U if already installed.
18053 ac_i=`echo "$ac_i" |
18054 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
18055 # 2. Add them.
18056 ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
18057 ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
18058done
18059LIB@&t@OBJS=$ac_libobjs
18060
18061LTLIBOBJS=$ac_ltlibobjs
18062
18063
18064
18065: ${CONFIG_STATUS=./config.status}
18066ac_clean_files_save=$ac_clean_files
18067ac_clean_files="$ac_clean_files $CONFIG_STATUS"
18068{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
18069echo "$as_me: creating $CONFIG_STATUS" >&6;}
18070cat >$CONFIG_STATUS <<_ACEOF
18071#! $SHELL
18072# Generated by $as_me.
18073# Run this file to recreate the current configuration.
18074# Compiler output produced by configure, useful for debugging
18075# configure, is in config.log if it exists.
18076
18077debug=false
18078ac_cs_recheck=false
18079ac_cs_silent=false
18080SHELL=\${CONFIG_SHELL-$SHELL}
18081_ACEOF
18082
18083cat >>$CONFIG_STATUS <<\_ACEOF
18084## --------------------- ##
18085## M4sh Initialization. ##
18086## --------------------- ##
18087
18088# Be Bourne compatible
18089if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
18090 emulate sh
18091 NULLCMD=:
18092 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
18093 # is contrary to our usage. Disable this feature.
18094 alias -g '${1+"$@"}'='"$@"'
18095elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
18096 set -o posix
18097fi
18098
18099# Support unset when possible.
18100if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
18101 as_unset=unset
18102else
18103 as_unset=false
18104fi
18105
18106
18107# Work around bugs in pre-3.0 UWIN ksh.
18108$as_unset ENV MAIL MAILPATH
18109PS1='$ '
18110PS2='> '
18111PS4='+ '
18112
18113# NLS nuisances.
18114for as_var in \
18115 LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
18116 LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
18117 LC_TELEPHONE LC_TIME
18118do
18119 if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
18120 eval $as_var=C; export $as_var
18121 else
18122 $as_unset $as_var
18123 fi
18124done
18125
18126# Required to use basename.
18127if expr a : '\(a\)' >/dev/null 2>&1; then
18128 as_expr=expr
18129else
18130 as_expr=false
18131fi
18132
18133if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
18134 as_basename=basename
18135else
18136 as_basename=false
18137fi
18138
18139
18140# Name of the executable.
18141as_me=`$as_basename "$0" ||
18142$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
18143 X"$0" : 'X\(//\)$' \| \
18144 X"$0" : 'X\(/\)$' \| \
18145 . : '\(.\)' 2>/dev/null ||
18146echo X/"$0" |
18147 sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
18148 /^X\/\(\/\/\)$/{ s//\1/; q; }
18149 /^X\/\(\/\).*/{ s//\1/; q; }
18150 s/.*/./; q'`
18151
18152
18153# PATH needs CR, and LINENO needs CR and PATH.
18154# Avoid depending upon Character Ranges.
18155as_cr_letters='abcdefghijklmnopqrstuvwxyz'
18156as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
18157as_cr_Letters=$as_cr_letters$as_cr_LETTERS
18158as_cr_digits='0123456789'
18159as_cr_alnum=$as_cr_Letters$as_cr_digits
18160
18161# The user is always right.
18162if test "${PATH_SEPARATOR+set}" != set; then
18163 echo "#! /bin/sh" >conf$$.sh
18164 echo "exit 0" >>conf$$.sh
18165 chmod +x conf$$.sh
18166 if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
18167 PATH_SEPARATOR=';'
18168 else
18169 PATH_SEPARATOR=:
18170 fi
18171 rm -f conf$$.sh
18172fi
18173
18174
18175 as_lineno_1=$LINENO
18176 as_lineno_2=$LINENO
18177 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
18178 test "x$as_lineno_1" != "x$as_lineno_2" &&
18179 test "x$as_lineno_3" = "x$as_lineno_2" || {
18180 # Find who we are. Look in the path if we contain no path at all
18181 # relative or not.
18182 case $0 in
18183 *[\\/]* ) as_myself=$0 ;;
18184 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
18185for as_dir in $PATH
18186do
18187 IFS=$as_save_IFS
18188 test -z "$as_dir" && as_dir=.
18189 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
18190done
18191
18192 ;;
18193 esac
18194 # We did not find ourselves, most probably we were run as `sh COMMAND'
18195 # in which case we are not to be found in the path.
18196 if test "x$as_myself" = x; then
18197 as_myself=$0
18198 fi
18199 if test ! -f "$as_myself"; then
18200 { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
18201echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
18202 { (exit 1); exit 1; }; }
18203 fi
18204 case $CONFIG_SHELL in
18205 '')
18206 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
18207for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
18208do
18209 IFS=$as_save_IFS
18210 test -z "$as_dir" && as_dir=.
18211 for as_base in sh bash ksh sh5; do
18212 case $as_dir in
18213 /*)
18214 if ("$as_dir/$as_base" -c '
18215 as_lineno_1=$LINENO
18216 as_lineno_2=$LINENO
18217 as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
18218 test "x$as_lineno_1" != "x$as_lineno_2" &&
18219 test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
18220 $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
18221 $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
18222 CONFIG_SHELL=$as_dir/$as_base
18223 export CONFIG_SHELL
18224 exec "$CONFIG_SHELL" "$0" ${1+"$@"}
18225 fi;;
18226 esac
18227 done
18228done
18229;;
18230 esac
18231
18232 # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
18233 # uniformly replaced by the line number. The first 'sed' inserts a
18234 # line-number line before each line; the second 'sed' does the real
18235 # work. The second script uses 'N' to pair each line-number line
18236 # with the numbered line, and appends trailing '-' during
18237 # substitution so that $LINENO is not a special case at line end.
18238 # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
18239 # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
18240 sed '=' <$as_myself |
18241 sed '
18242 N
18243 s,$,-,
18244 : loop
18245 s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
18246 t loop
18247 s,-$,,
18248 s,^['$as_cr_digits']*\n,,
18249 ' >$as_me.lineno &&
18250 chmod +x $as_me.lineno ||
18251 { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
18252echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
18253 { (exit 1); exit 1; }; }
18254
18255 # Don't try to exec as it changes $[0], causing all sort of problems
18256 # (the dirname of $[0] is not the place where we might find the
18257 # original and so on. Autoconf is especially sensible to this).
18258 . ./$as_me.lineno
18259 # Exit status is that of the last command.
18260 exit
18261}
18262
18263
18264case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
18265 *c*,-n*) ECHO_N= ECHO_C='
18266' ECHO_T=' ' ;;
18267 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
18268 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
18269esac
18270
18271if expr a : '\(a\)' >/dev/null 2>&1; then
18272 as_expr=expr
18273else
18274 as_expr=false
18275fi
18276
18277rm -f conf$$ conf$$.exe conf$$.file
18278echo >conf$$.file
18279if ln -s conf$$.file conf$$ 2>/dev/null; then
18280 # We could just check for DJGPP; but this test a) works b) is more generic
18281 # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
18282 if test -f conf$$.exe; then
18283 # Don't use ln at all; we don't have any links
18284 as_ln_s='cp -p'
18285 else
18286 as_ln_s='ln -s'
18287 fi
18288elif ln conf$$.file conf$$ 2>/dev/null; then
18289 as_ln_s=ln
18290else
18291 as_ln_s='cp -p'
18292fi
18293rm -f conf$$ conf$$.exe conf$$.file
18294
18295if mkdir -p . 2>/dev/null; then
18296 as_mkdir_p=:
18297else
18298 as_mkdir_p=false
18299fi
18300
18301as_executable_p="test -f"
18302
18303# Sed expression to map a string onto a valid CPP name.
18304as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
18305
18306# Sed expression to map a string onto a valid variable name.
18307as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
18308
18309
18310# IFS
18311# We need space, tab and new line, in precisely that order.
18312as_nl='
18313'
18314IFS=" $as_nl"
18315
18316# CDPATH.
18317$as_unset CDPATH
18318
18319exec 6>&1
18320
18321# Open the log real soon, to keep \$[0] and so on meaningful, and to
18322# report actual input values of CONFIG_FILES etc. instead of their
18323# values after options handling. Logging --version etc. is OK.
18324exec 5>>config.log
18325{
18326 echo
18327 sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
18328@%:@@%:@ Running $as_me. @%:@@%:@
18329_ASBOX
18330} >&5
18331cat >&5 <<_CSEOF
18332
18333This file was extended by $as_me, which was
18334generated by GNU Autoconf 2.57. Invocation command line was
18335
18336 CONFIG_FILES = $CONFIG_FILES
18337 CONFIG_HEADERS = $CONFIG_HEADERS
18338 CONFIG_LINKS = $CONFIG_LINKS
18339 CONFIG_COMMANDS = $CONFIG_COMMANDS
18340 $ $0 $@
18341
18342_CSEOF
18343echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
18344echo >&5
18345_ACEOF
18346
18347# Files that config.status was made for.
18348if test -n "$ac_config_files"; then
18349 echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
18350fi
18351
18352if test -n "$ac_config_headers"; then
18353 echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
18354fi
18355
18356if test -n "$ac_config_links"; then
18357 echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
18358fi
18359
18360if test -n "$ac_config_commands"; then
18361 echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
18362fi
18363
18364cat >>$CONFIG_STATUS <<\_ACEOF
18365
18366ac_cs_usage="\
18367\`$as_me' instantiates files from templates according to the
18368current configuration.
18369
18370Usage: $0 [OPTIONS] [FILE]...
18371
18372 -h, --help print this help, then exit
18373 -V, --version print version number, then exit
18374 -q, --quiet do not print progress messages
18375 -d, --debug don't remove temporary files
18376 --recheck update $as_me by reconfiguring in the same conditions
18377 --file=FILE[:TEMPLATE]
18378 instantiate the configuration file FILE
18379 --header=FILE[:TEMPLATE]
18380 instantiate the configuration header FILE
18381
18382Configuration files:
18383$config_files
18384
18385Configuration headers:
18386$config_headers
18387
18388Report bugs to <bug-autoconf@gnu.org>."
18389_ACEOF
18390
18391cat >>$CONFIG_STATUS <<_ACEOF
18392ac_cs_version="\\
18393config.status
18394configured by $0, generated by GNU Autoconf 2.57,
18395 with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
18396
18397Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
18398Free Software Foundation, Inc.
18399This config.status script is free software; the Free Software Foundation
18400gives unlimited permission to copy, distribute and modify it."
18401srcdir=$srcdir
18402INSTALL="$INSTALL"
18403_ACEOF
18404
18405cat >>$CONFIG_STATUS <<\_ACEOF
18406# If no file are specified by the user, then we need to provide default
18407# value. By we need to know if files were specified by the user.
18408ac_need_defaults=:
18409while test $# != 0
18410do
18411 case $1 in
18412 --*=*)
18413 ac_option=`expr "x$1" : 'x\([^=]*\)='`
18414 ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
18415 ac_shift=:
18416 ;;
18417 -*)
18418 ac_option=$1
18419 ac_optarg=$2
18420 ac_shift=shift
18421 ;;
18422 *) # This is not an option, so the user has probably given explicit
18423 # arguments.
18424 ac_option=$1
18425 ac_need_defaults=false;;
18426 esac
18427
18428 case $ac_option in
18429 # Handling of the options.
18430_ACEOF
18431cat >>$CONFIG_STATUS <<\_ACEOF
18432 -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
18433 ac_cs_recheck=: ;;
18434 --version | --vers* | -V )
18435 echo "$ac_cs_version"; exit 0 ;;
18436 --he | --h)
18437 # Conflict between --help and --header
18438 { { echo "$as_me:$LINENO: error: ambiguous option: $1
18439Try \`$0 --help' for more information." >&5
18440echo "$as_me: error: ambiguous option: $1
18441Try \`$0 --help' for more information." >&2;}
18442 { (exit 1); exit 1; }; };;
18443 --help | --hel | -h )
18444 echo "$ac_cs_usage"; exit 0 ;;
18445 --debug | --d* | -d )
18446 debug=: ;;
18447 --file | --fil | --fi | --f )
18448 $ac_shift
18449 CONFIG_FILES="$CONFIG_FILES $ac_optarg"
18450 ac_need_defaults=false;;
18451 --header | --heade | --head | --hea )
18452 $ac_shift
18453 CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
18454 ac_need_defaults=false;;
18455 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
18456 | -silent | --silent | --silen | --sile | --sil | --si | --s)
18457 ac_cs_silent=: ;;
18458
18459 # This is an error.
18460 -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
18461Try \`$0 --help' for more information." >&5
18462echo "$as_me: error: unrecognized option: $1
18463Try \`$0 --help' for more information." >&2;}
18464 { (exit 1); exit 1; }; } ;;
18465
18466 *) ac_config_targets="$ac_config_targets $1" ;;
18467
18468 esac
18469 shift
18470done
18471
18472ac_configure_extra_args=
18473
18474if $ac_cs_silent; then
18475 exec 6>/dev/null
18476 ac_configure_extra_args="$ac_configure_extra_args --silent"
18477fi
18478
18479_ACEOF
18480cat >>$CONFIG_STATUS <<_ACEOF
18481if \$ac_cs_recheck; then
18482 echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
18483 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
18484fi
18485
18486_ACEOF
18487
18488
18489
18490
18491
18492cat >>$CONFIG_STATUS <<\_ACEOF
18493for ac_config_target in $ac_config_targets
18494do
18495 case "$ac_config_target" in
18496 # Handling of arguments.
18497 "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
18498 "openbsd-compat/Makefile" ) CONFIG_FILES="$CONFIG_FILES openbsd-compat/Makefile" ;;
18499 "scard/Makefile" ) CONFIG_FILES="$CONFIG_FILES scard/Makefile" ;;
18500 "ssh_prng_cmds" ) CONFIG_FILES="$CONFIG_FILES ssh_prng_cmds" ;;
18501 "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
18502 *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
18503echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
18504 { (exit 1); exit 1; }; };;
18505 esac
18506done
18507
18508# If the user did not use the arguments to specify the items to instantiate,
18509# then the envvar interface is used. Set only those that are not.
18510# We use the long form for the default assignment because of an extremely
18511# bizarre bug on SunOS 4.1.3.
18512if $ac_need_defaults; then
18513 test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
18514 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
18515fi
18516
18517# Have a temporary directory for convenience. Make it in the build tree
18518# simply because there is no reason to put it here, and in addition,
18519# creating and moving files from /tmp can sometimes cause problems.
18520# Create a temporary directory, and hook for its removal unless debugging.
18521$debug ||
18522{
18523 trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
18524 trap '{ (exit 1); exit 1; }' 1 2 13 15
18525}
18526
18527# Create a (secure) tmp directory for tmp files.
18528
18529{
18530 tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
18531 test -n "$tmp" && test -d "$tmp"
18532} ||
18533{
18534 tmp=./confstat$$-$RANDOM
18535 (umask 077 && mkdir $tmp)
18536} ||
18537{
18538 echo "$me: cannot create a temporary directory in ." >&2
18539 { (exit 1); exit 1; }
18540}
18541
18542_ACEOF
18543
18544cat >>$CONFIG_STATUS <<_ACEOF
18545
18546#
18547# CONFIG_FILES section.
18548#
18549
18550# No need to generate the scripts if there are no CONFIG_FILES.
18551# This happens for instance when ./config.status config.h
18552if test -n "\$CONFIG_FILES"; then
18553 # Protect against being on the right side of a sed subst in config.status.
18554 sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
18555 s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
18556s,@SHELL@,$SHELL,;t t
18557s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
18558s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
18559s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
18560s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
18561s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
18562s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
18563s,@exec_prefix@,$exec_prefix,;t t
18564s,@prefix@,$prefix,;t t
18565s,@program_transform_name@,$program_transform_name,;t t
18566s,@bindir@,$bindir,;t t
18567s,@sbindir@,$sbindir,;t t
18568s,@libexecdir@,$libexecdir,;t t
18569s,@datadir@,$datadir,;t t
18570s,@sysconfdir@,$sysconfdir,;t t
18571s,@sharedstatedir@,$sharedstatedir,;t t
18572s,@localstatedir@,$localstatedir,;t t
18573s,@libdir@,$libdir,;t t
18574s,@includedir@,$includedir,;t t
18575s,@oldincludedir@,$oldincludedir,;t t
18576s,@infodir@,$infodir,;t t
18577s,@mandir@,$mandir,;t t
18578s,@build_alias@,$build_alias,;t t
18579s,@host_alias@,$host_alias,;t t
18580s,@target_alias@,$target_alias,;t t
18581s,@DEFS@,$DEFS,;t t
18582s,@ECHO_C@,$ECHO_C,;t t
18583s,@ECHO_N@,$ECHO_N,;t t
18584s,@ECHO_T@,$ECHO_T,;t t
18585s,@LIBS@,$LIBS,;t t
18586s,@CC@,$CC,;t t
18587s,@CFLAGS@,$CFLAGS,;t t
18588s,@LDFLAGS@,$LDFLAGS,;t t
18589s,@CPPFLAGS@,$CPPFLAGS,;t t
18590s,@ac_ct_CC@,$ac_ct_CC,;t t
18591s,@EXEEXT@,$EXEEXT,;t t
18592s,@OBJEXT@,$OBJEXT,;t t
18593s,@build@,$build,;t t
18594s,@build_cpu@,$build_cpu,;t t
18595s,@build_vendor@,$build_vendor,;t t
18596s,@build_os@,$build_os,;t t
18597s,@host@,$host,;t t
18598s,@host_cpu@,$host_cpu,;t t
18599s,@host_vendor@,$host_vendor,;t t
18600s,@host_os@,$host_os,;t t
18601s,@CPP@,$CPP,;t t
18602s,@RANLIB@,$RANLIB,;t t
18603s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
18604s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
18605s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
18606s,@INSTALL_DATA@,$INSTALL_DATA,;t t
18607s,@AR@,$AR,;t t
18608s,@PERL@,$PERL,;t t
18609s,@SED@,$SED,;t t
18610s,@ENT@,$ENT,;t t
18611s,@TEST_MINUS_S_SH@,$TEST_MINUS_S_SH,;t t
18612s,@SH@,$SH,;t t
18613s,@LOGIN_PROGRAM_FALLBACK@,$LOGIN_PROGRAM_FALLBACK,;t t
18614s,@LD@,$LD,;t t
18615s,@EGREP@,$EGREP,;t t
18616s,@LIBWRAP@,$LIBWRAP,;t t
18617s,@LIBPAM@,$LIBPAM,;t t
18618s,@INSTALL_SSH_RAND_HELPER@,$INSTALL_SSH_RAND_HELPER,;t t
18619s,@SSH_PRIVSEP_USER@,$SSH_PRIVSEP_USER,;t t
18620s,@PROG_LS@,$PROG_LS,;t t
18621s,@PROG_NETSTAT@,$PROG_NETSTAT,;t t
18622s,@PROG_ARP@,$PROG_ARP,;t t
18623s,@PROG_IFCONFIG@,$PROG_IFCONFIG,;t t
18624s,@PROG_JSTAT@,$PROG_JSTAT,;t t
18625s,@PROG_PS@,$PROG_PS,;t t
18626s,@PROG_SAR@,$PROG_SAR,;t t
18627s,@PROG_W@,$PROG_W,;t t
18628s,@PROG_WHO@,$PROG_WHO,;t t
18629s,@PROG_LAST@,$PROG_LAST,;t t
18630s,@PROG_LASTLOG@,$PROG_LASTLOG,;t t
18631s,@PROG_DF@,$PROG_DF,;t t
18632s,@PROG_VMSTAT@,$PROG_VMSTAT,;t t
18633s,@PROG_UPTIME@,$PROG_UPTIME,;t t
18634s,@PROG_IPCS@,$PROG_IPCS,;t t
18635s,@PROG_TAIL@,$PROG_TAIL,;t t
18636s,@INSTALL_SSH_PRNG_CMDS@,$INSTALL_SSH_PRNG_CMDS,;t t
18637s,@OPENSC_CONFIG@,$OPENSC_CONFIG,;t t
18638s,@PRIVSEP_PATH@,$PRIVSEP_PATH,;t t
18639s,@xauth_path@,$xauth_path,;t t
18640s,@STRIP_OPT@,$STRIP_OPT,;t t
18641s,@XAUTH_PATH@,$XAUTH_PATH,;t t
18642s,@NROFF@,$NROFF,;t t
18643s,@MANTYPE@,$MANTYPE,;t t
18644s,@mansubdir@,$mansubdir,;t t
18645s,@user_path@,$user_path,;t t
18646s,@piddir@,$piddir,;t t
18647s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
18648s,@LTLIBOBJS@,$LTLIBOBJS,;t t
18649CEOF
18650
18651_ACEOF
18652
18653 cat >>$CONFIG_STATUS <<\_ACEOF
18654 # Split the substitutions into bite-sized pieces for seds with
18655 # small command number limits, like on Digital OSF/1 and HP-UX.
18656 ac_max_sed_lines=48
18657 ac_sed_frag=1 # Number of current file.
18658 ac_beg=1 # First line for current file.
18659 ac_end=$ac_max_sed_lines # Line after last line for current file.
18660 ac_more_lines=:
18661 ac_sed_cmds=
18662 while $ac_more_lines; do
18663 if test $ac_beg -gt 1; then
18664 sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
18665 else
18666 sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
18667 fi
18668 if test ! -s $tmp/subs.frag; then
18669 ac_more_lines=false
18670 else
18671 # The purpose of the label and of the branching condition is to
18672 # speed up the sed processing (if there are no `@' at all, there
18673 # is no need to browse any of the substitutions).
18674 # These are the two extra sed commands mentioned above.
18675 (echo ':t
18676 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
18677 if test -z "$ac_sed_cmds"; then
18678 ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
18679 else
18680 ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
18681 fi
18682 ac_sed_frag=`expr $ac_sed_frag + 1`
18683 ac_beg=$ac_end
18684 ac_end=`expr $ac_end + $ac_max_sed_lines`
18685 fi
18686 done
18687 if test -z "$ac_sed_cmds"; then
18688 ac_sed_cmds=cat
18689 fi
18690fi # test -n "$CONFIG_FILES"
18691
18692_ACEOF
18693cat >>$CONFIG_STATUS <<\_ACEOF
18694for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
18695 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
18696 case $ac_file in
18697 - | *:- | *:-:* ) # input from stdin
18698 cat >$tmp/stdin
18699 ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18700 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18701 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18702 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18703 * ) ac_file_in=$ac_file.in ;;
18704 esac
18705
18706 # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
18707 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
18708$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
18709 X"$ac_file" : 'X\(//\)[^/]' \| \
18710 X"$ac_file" : 'X\(//\)$' \| \
18711 X"$ac_file" : 'X\(/\)' \| \
18712 . : '\(.\)' 2>/dev/null ||
18713echo X"$ac_file" |
18714 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
18715 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
18716 /^X\(\/\/\)$/{ s//\1/; q; }
18717 /^X\(\/\).*/{ s//\1/; q; }
18718 s/.*/./; q'`
18719 { if $as_mkdir_p; then
18720 mkdir -p "$ac_dir"
18721 else
18722 as_dir="$ac_dir"
18723 as_dirs=
18724 while test ! -d "$as_dir"; do
18725 as_dirs="$as_dir $as_dirs"
18726 as_dir=`(dirname "$as_dir") 2>/dev/null ||
18727$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
18728 X"$as_dir" : 'X\(//\)[^/]' \| \
18729 X"$as_dir" : 'X\(//\)$' \| \
18730 X"$as_dir" : 'X\(/\)' \| \
18731 . : '\(.\)' 2>/dev/null ||
18732echo X"$as_dir" |
18733 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
18734 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
18735 /^X\(\/\/\)$/{ s//\1/; q; }
18736 /^X\(\/\).*/{ s//\1/; q; }
18737 s/.*/./; q'`
18738 done
18739 test ! -n "$as_dirs" || mkdir $as_dirs
18740 fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
18741echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
18742 { (exit 1); exit 1; }; }; }
18743
18744 ac_builddir=.
18745
18746if test "$ac_dir" != .; then
18747 ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
18748 # A "../" for each directory in $ac_dir_suffix.
18749 ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
18750else
18751 ac_dir_suffix= ac_top_builddir=
18752fi
18753
18754case $srcdir in
18755 .) # No --srcdir option. We are building in place.
18756 ac_srcdir=.
18757 if test -z "$ac_top_builddir"; then
18758 ac_top_srcdir=.
18759 else
18760 ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
18761 fi ;;
18762 [\\/]* | ?:[\\/]* ) # Absolute path.
18763 ac_srcdir=$srcdir$ac_dir_suffix;
18764 ac_top_srcdir=$srcdir ;;
18765 *) # Relative path.
18766 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
18767 ac_top_srcdir=$ac_top_builddir$srcdir ;;
18768esac
18769# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
18770# absolute.
18771ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
18772ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
18773ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
18774ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
18775
18776
18777 case $INSTALL in
18778 [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
18779 *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
18780 esac
18781
18782 if test x"$ac_file" != x-; then
18783 { echo "$as_me:$LINENO: creating $ac_file" >&5
18784echo "$as_me: creating $ac_file" >&6;}
18785 rm -f "$ac_file"
18786 fi
18787 # Let's still pretend it is `configure' which instantiates (i.e., don't
18788 # use $as_me), people would be surprised to read:
18789 # /* config.h. Generated by config.status. */
18790 if test x"$ac_file" = x-; then
18791 configure_input=
18792 else
18793 configure_input="$ac_file. "
18794 fi
18795 configure_input=$configure_input"Generated from `echo $ac_file_in |
18796 sed 's,.*/,,'` by configure."
18797
18798 # First look for the input files in the build tree, otherwise in the
18799 # src tree.
18800 ac_file_inputs=`IFS=:
18801 for f in $ac_file_in; do
18802 case $f in
18803 -) echo $tmp/stdin ;;
18804 [\\/$]*)
18805 # Absolute (can't be DOS-style, as IFS=:)
18806 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18807echo "$as_me: error: cannot find input file: $f" >&2;}
18808 { (exit 1); exit 1; }; }
18809 echo $f;;
18810 *) # Relative
18811 if test -f "$f"; then
18812 # Build tree
18813 echo $f
18814 elif test -f "$srcdir/$f"; then
18815 # Source tree
18816 echo $srcdir/$f
18817 else
18818 # /dev/null tree
18819 { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18820echo "$as_me: error: cannot find input file: $f" >&2;}
18821 { (exit 1); exit 1; }; }
18822 fi;;
18823 esac
18824 done` || { (exit 1); exit 1; }
18825_ACEOF
18826cat >>$CONFIG_STATUS <<_ACEOF
18827 sed "$ac_vpsub
18828$extrasub
18829_ACEOF
18830cat >>$CONFIG_STATUS <<\_ACEOF
18831:t
18832/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
18833s,@configure_input@,$configure_input,;t t
18834s,@srcdir@,$ac_srcdir,;t t
18835s,@abs_srcdir@,$ac_abs_srcdir,;t t
18836s,@top_srcdir@,$ac_top_srcdir,;t t
18837s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
18838s,@builddir@,$ac_builddir,;t t
18839s,@abs_builddir@,$ac_abs_builddir,;t t
18840s,@top_builddir@,$ac_top_builddir,;t t
18841s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
18842s,@INSTALL@,$ac_INSTALL,;t t
18843" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
18844 rm -f $tmp/stdin
18845 if test x"$ac_file" != x-; then
18846 mv $tmp/out $ac_file
18847 else
18848 cat $tmp/out
18849 rm -f $tmp/out
18850 fi
18851
18852done
18853_ACEOF
18854cat >>$CONFIG_STATUS <<\_ACEOF
18855
18856#
18857# CONFIG_HEADER section.
18858#
18859
18860# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
18861# NAME is the cpp macro being defined and VALUE is the value it is being given.
18862#
18863# ac_d sets the value in "#define NAME VALUE" lines.
18864ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
18865ac_dB='[ ].*$,\1#\2'
18866ac_dC=' '
18867ac_dD=',;t'
18868# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
18869ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
18870ac_uB='$,\1#\2define\3'
18871ac_uC=' '
18872ac_uD=',;t'
18873
18874for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
18875 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
18876 case $ac_file in
18877 - | *:- | *:-:* ) # input from stdin
18878 cat >$tmp/stdin
18879 ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18880 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18881 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
18882 ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
18883 * ) ac_file_in=$ac_file.in ;;
18884 esac
18885
18886 test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
18887echo "$as_me: creating $ac_file" >&6;}
18888
18889 # First look for the input files in the build tree, otherwise in the
18890 # src tree.
18891 ac_file_inputs=`IFS=:
18892 for f in $ac_file_in; do
18893 case $f in
18894 -) echo $tmp/stdin ;;
18895 [\\/$]*)
18896 # Absolute (can't be DOS-style, as IFS=:)
18897 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18898echo "$as_me: error: cannot find input file: $f" >&2;}
18899 { (exit 1); exit 1; }; }
18900 echo $f;;
18901 *) # Relative
18902 if test -f "$f"; then
18903 # Build tree
18904 echo $f
18905 elif test -f "$srcdir/$f"; then
18906 # Source tree
18907 echo $srcdir/$f
18908 else
18909 # /dev/null tree
18910 { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
18911echo "$as_me: error: cannot find input file: $f" >&2;}
18912 { (exit 1); exit 1; }; }
18913 fi;;
18914 esac
18915 done` || { (exit 1); exit 1; }
18916 # Remove the trailing spaces.
18917 sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
18918
18919_ACEOF
18920
18921# Transform confdefs.h into two sed scripts, `conftest.defines' and
18922# `conftest.undefs', that substitutes the proper values into
18923# config.h.in to produce config.h. The first handles `#define'
18924# templates, and the second `#undef' templates.
18925# And first: Protect against being on the right side of a sed subst in
18926# config.status. Protect against being in an unquoted here document
18927# in config.status.
18928rm -f conftest.defines conftest.undefs
18929# Using a here document instead of a string reduces the quoting nightmare.
18930# Putting comments in sed scripts is not portable.
18931#
18932# `end' is used to avoid that the second main sed command (meant for
18933# 0-ary CPP macros) applies to n-ary macro definitions.
18934# See the Autoconf documentation for `clear'.
18935cat >confdef2sed.sed <<\_ACEOF
18936s/[\\&,]/\\&/g
18937s,[\\$`],\\&,g
18938t clear
18939: clear
18940s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
18941t end
18942s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
18943: end
18944_ACEOF
18945# If some macros were called several times there might be several times
18946# the same #defines, which is useless. Nevertheless, we may not want to
18947# sort them, since we want the *last* AC-DEFINE to be honored.
18948uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
18949sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
18950rm -f confdef2sed.sed
18951
18952# This sed command replaces #undef with comments. This is necessary, for
18953# example, in the case of _POSIX_SOURCE, which is predefined and required
18954# on some systems where configure will not decide to define it.
18955cat >>conftest.undefs <<\_ACEOF
18956s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
18957_ACEOF
18958
18959# Break up conftest.defines because some shells have a limit on the size
18960# of here documents, and old seds have small limits too (100 cmds).
18961echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
18962echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
18963echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
18964echo ' :' >>$CONFIG_STATUS
18965rm -f conftest.tail
18966while grep . conftest.defines >/dev/null
18967do
18968 # Write a limited-size here document to $tmp/defines.sed.
18969 echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
18970 # Speed up: don't consider the non `#define' lines.
18971 echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
18972 # Work around the forget-to-reset-the-flag bug.
18973 echo 't clr' >>$CONFIG_STATUS
18974 echo ': clr' >>$CONFIG_STATUS
18975 sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
18976 echo 'CEOF
18977 sed -f $tmp/defines.sed $tmp/in >$tmp/out
18978 rm -f $tmp/in
18979 mv $tmp/out $tmp/in
18980' >>$CONFIG_STATUS
18981 sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
18982 rm -f conftest.defines
18983 mv conftest.tail conftest.defines
18984done
18985rm -f conftest.defines
18986echo ' fi # grep' >>$CONFIG_STATUS
18987echo >>$CONFIG_STATUS
18988
18989# Break up conftest.undefs because some shells have a limit on the size
18990# of here documents, and old seds have small limits too (100 cmds).
18991echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
18992rm -f conftest.tail
18993while grep . conftest.undefs >/dev/null
18994do
18995 # Write a limited-size here document to $tmp/undefs.sed.
18996 echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
18997 # Speed up: don't consider the non `#undef'
18998 echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
18999 # Work around the forget-to-reset-the-flag bug.
19000 echo 't clr' >>$CONFIG_STATUS
19001 echo ': clr' >>$CONFIG_STATUS
19002 sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
19003 echo 'CEOF
19004 sed -f $tmp/undefs.sed $tmp/in >$tmp/out
19005 rm -f $tmp/in
19006 mv $tmp/out $tmp/in
19007' >>$CONFIG_STATUS
19008 sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
19009 rm -f conftest.undefs
19010 mv conftest.tail conftest.undefs
19011done
19012rm -f conftest.undefs
19013
19014cat >>$CONFIG_STATUS <<\_ACEOF
19015 # Let's still pretend it is `configure' which instantiates (i.e., don't
19016 # use $as_me), people would be surprised to read:
19017 # /* config.h. Generated by config.status. */
19018 if test x"$ac_file" = x-; then
19019 echo "/* Generated by configure. */" >$tmp/config.h
19020 else
19021 echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
19022 fi
19023 cat $tmp/in >>$tmp/config.h
19024 rm -f $tmp/in
19025 if test x"$ac_file" != x-; then
19026 if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
19027 { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
19028echo "$as_me: $ac_file is unchanged" >&6;}
19029 else
19030 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
19031$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
19032 X"$ac_file" : 'X\(//\)[^/]' \| \
19033 X"$ac_file" : 'X\(//\)$' \| \
19034 X"$ac_file" : 'X\(/\)' \| \
19035 . : '\(.\)' 2>/dev/null ||
19036echo X"$ac_file" |
19037 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
19038 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
19039 /^X\(\/\/\)$/{ s//\1/; q; }
19040 /^X\(\/\).*/{ s//\1/; q; }
19041 s/.*/./; q'`
19042 { if $as_mkdir_p; then
19043 mkdir -p "$ac_dir"
19044 else
19045 as_dir="$ac_dir"
19046 as_dirs=
19047 while test ! -d "$as_dir"; do
19048 as_dirs="$as_dir $as_dirs"
19049 as_dir=`(dirname "$as_dir") 2>/dev/null ||
19050$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
19051 X"$as_dir" : 'X\(//\)[^/]' \| \
19052 X"$as_dir" : 'X\(//\)$' \| \
19053 X"$as_dir" : 'X\(/\)' \| \
19054 . : '\(.\)' 2>/dev/null ||
19055echo X"$as_dir" |
19056 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
19057 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
19058 /^X\(\/\/\)$/{ s//\1/; q; }
19059 /^X\(\/\).*/{ s//\1/; q; }
19060 s/.*/./; q'`
19061 done
19062 test ! -n "$as_dirs" || mkdir $as_dirs
19063 fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
19064echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
19065 { (exit 1); exit 1; }; }; }
19066
19067 rm -f $ac_file
19068 mv $tmp/config.h $ac_file
19069 fi
19070 else
19071 cat $tmp/config.h
19072 rm -f $tmp/config.h
19073 fi
19074done
19075_ACEOF
19076
19077cat >>$CONFIG_STATUS <<\_ACEOF
19078
19079{ (exit 0); exit 0; }
19080_ACEOF
19081chmod +x $CONFIG_STATUS
19082ac_clean_files=$ac_clean_files_save
19083
19084
19085# configure is writing to config.log, and then calls config.status.
19086# config.status does its own redirection, appending to config.log.
19087# Unfortunately, on DOS this fails, as config.log is still kept open
19088# by configure, so config.status won't be able to write to it; its
19089# output is simply discarded. So we exec the FD to /dev/null,
19090# effectively closing config.log, so it can be properly (re)opened and
19091# appended to by config.status. When coming back to configure, we
19092# need to make the FD available again.
19093if test "$no_create" != yes; then
19094 ac_cs_success=:
19095 ac_config_status_args=
19096 test "$silent" = yes &&
19097 ac_config_status_args="$ac_config_status_args --quiet"
19098 exec 5>/dev/null
19099 $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
19100 exec 5>>config.log
19101 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
19102 # would make configure fail if this is the last instruction.
19103 $ac_cs_success || { (exit 1); exit 1; }
19104fi
19105
19106
19107# Print summary of options
19108
19109# Someone please show me a better way :)
19110A=`eval echo ${prefix}` ; A=`eval echo ${A}`
19111B=`eval echo ${bindir}` ; B=`eval echo ${B}`
19112C=`eval echo ${sbindir}` ; C=`eval echo ${C}`
19113D=`eval echo ${sysconfdir}` ; D=`eval echo ${D}`
19114E=`eval echo ${libexecdir}/ssh-askpass` ; E=`eval echo ${E}`
19115F=`eval echo ${mandir}/${mansubdir}X` ; F=`eval echo ${F}`
19116G=`eval echo ${piddir}` ; G=`eval echo ${G}`
19117H=`eval echo ${PRIVSEP_PATH}` ; H=`eval echo ${H}`
19118I=`eval echo ${user_path}` ; I=`eval echo ${I}`
19119J=`eval echo ${superuser_path}` ; J=`eval echo ${J}`
19120
19121echo ""
19122echo "OpenSSH has been configured with the following options:"
19123echo " User binaries: $B"
19124echo " System binaries: $C"
19125echo " Configuration files: $D"
19126echo " Askpass program: $E"
19127echo " Manual pages: $F"
19128echo " PID file: $G"
19129echo " Privilege separation chroot path: $H"
19130if test "$USES_LOGIN_CONF" = "yes" ; then
19131echo " At runtime, sshd will use the path defined in /etc/login.conf"
19132else
19133echo " sshd default user PATH: $I"
19134fi
19135if test ! -z "$superuser_path" ; then
19136echo " sshd superuser user PATH: $J"
19137fi
19138echo " Manpage format: $MANTYPE"
19139echo " PAM support: ${PAM_MSG}"
19140echo " KerberosIV support: $KRB4_MSG"
19141echo " KerberosV support: $KRB5_MSG"
19142echo " Smartcard support: $SCARD_MSG"
19143echo " AFS support: $AFS_MSG"
19144echo " S/KEY support: $SKEY_MSG"
19145echo " TCP Wrappers support: $TCPW_MSG"
19146echo " MD5 password support: $MD5_MSG"
19147echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG"
19148echo " Use IPv4 by default hack: $IPV4_HACK_MSG"
19149echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG"
19150echo " BSD Auth support: $BSD_AUTH_MSG"
19151echo " Random number source: $RAND_MSG"
19152if test ! -z "$USE_RAND_HELPER" ; then
19153echo " ssh-rand-helper collects from: $RAND_HELPER_MSG"
19154fi
19155
19156echo ""
19157
19158echo " Host: ${host}"
19159echo " Compiler: ${CC}"
19160echo " Compiler flags: ${CFLAGS}"
19161echo "Preprocessor flags: ${CPPFLAGS}"
19162echo " Linker flags: ${LDFLAGS}"
19163echo " Libraries: ${LIBWRAP} ${LIBPAM} ${LIBS}"
19164
19165echo ""
19166
19167if test "x$PAM_MSG" = "xyes" ; then
19168 echo "PAM is enabled. You may need to install a PAM control file "
19169 echo "for sshd, otherwise password authentication may fail. "
19170 echo "Example PAM control files can be found in the contrib/ "
19171 echo "subdirectory"
19172 echo ""
19173fi
19174
19175if test ! -z "$RAND_HELPER_CMDHASH" ; then
19176 echo "WARNING: you are using the builtin random number collection "
19177 echo "service. Please read WARNING.RNG and request that your OS "
19178 echo "vendor includes kernel-based random number collection in "
19179 echo "future versions of your OS."
19180 echo ""
19181fi
19182
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
deleted file mode 100644
index 72598fb0c..000000000
--- a/autom4te.cache/requests
+++ /dev/null
@@ -1,111 +0,0 @@
1# This file was created by autom4te.
2# It contains the lists of macros which have been traced.
3# It can be safely removed.
4
5@request = (
6 bless( [
7 '0',
8 1,
9 [
10 '/usr/share/autoconf'
11 ],
12 [
13 '/usr/share/autoconf/autoconf/autoconf.m4f',
14 'aclocal.m4',
15 'configure.ac'
16 ],
17 {
18 'm4_pattern_forbid' => 1,
19 'AC_TYPE_OFF_T' => 1,
20 'AC_C_VOLATILE' => 1,
21 'AC_FUNC_CLOSEDIR_VOID' => 1,
22 'AC_REPLACE_FNMATCH' => 1,
23 'AC_PROG_LIBTOOL' => 1,
24 'AC_FUNC_STAT' => 1,
25 'AC_HEADER_TIME' => 1,
26 'AC_FUNC_WAIT3' => 1,
27 'AM_AUTOMAKE_VERSION' => 1,
28 'AC_STRUCT_TM' => 1,
29 'AC_FUNC_LSTAT' => 1,
30 'AC_TYPE_MODE_T' => 1,
31 'AC_FUNC_GETMNTENT' => 1,
32 'AC_FUNC_STRTOD' => 1,
33 'AC_CHECK_HEADERS' => 1,
34 'AC_FUNC_STRNLEN' => 1,
35 'AC_PROG_CXX' => 1,
36 'AC_PATH_X' => 1,
37 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
38 'AC_PROG_AWK' => 1,
39 'AC_HEADER_STDC' => 1,
40 'AC_HEADER_MAJOR' => 1,
41 'AC_FUNC_ERROR_AT_LINE' => 1,
42 'AC_PROG_GCC_TRADITIONAL' => 1,
43 'AC_LIBSOURCE' => 1,
44 'AC_FUNC_MBRTOWC' => 1,
45 'AC_STRUCT_ST_BLOCKS' => 1,
46 'AC_TYPE_SIGNAL' => 1,
47 'AC_TYPE_UID_T' => 1,
48 'AC_CONFIG_AUX_DIR' => 1,
49 'AC_PROG_MAKE_SET' => 1,
50 'm4_pattern_allow' => 1,
51 'AC_DEFINE_TRACE_LITERAL' => 1,
52 'AC_FUNC_STRERROR_R' => 1,
53 'AC_PROG_CC' => 1,
54 'AC_DECL_SYS_SIGLIST' => 1,
55 'AC_FUNC_FORK' => 1,
56 'AC_FUNC_VPRINTF' => 1,
57 'AC_FUNC_STRCOLL' => 1,
58 'AC_PROG_YACC' => 1,
59 'AC_INIT' => 1,
60 'AC_STRUCT_TIMEZONE' => 1,
61 'AC_FUNC_CHOWN' => 1,
62 'AC_SUBST' => 1,
63 'AC_FUNC_ALLOCA' => 1,
64 'AC_CANONICAL_HOST' => 1,
65 'AC_FUNC_GETPGRP' => 1,
66 'AC_PROG_RANLIB' => 1,
67 'AM_INIT_AUTOMAKE' => 1,
68 'AC_FUNC_SETPGRP' => 1,
69 'AC_CONFIG_SUBDIRS' => 1,
70 'AC_FUNC_MMAP' => 1,
71 'AC_FUNC_REALLOC' => 1,
72 'AC_TYPE_SIZE_T' => 1,
73 'AC_CHECK_TYPES' => 1,
74 'AC_CHECK_MEMBERS' => 1,
75 'AM_MAINTAINER_MODE' => 1,
76 'AC_FUNC_UTIME_NULL' => 1,
77 'AC_FUNC_SELECT_ARGTYPES' => 1,
78 'AC_FUNC_STRFTIME' => 1,
79 'AC_HEADER_STAT' => 1,
80 'AC_C_INLINE' => 1,
81 'AC_PROG_CPP' => 1,
82 'AC_TYPE_PID_T' => 1,
83 'AC_C_CONST' => 1,
84 'AC_PROG_LEX' => 1,
85 'AC_CONFIG_FILES' => 1,
86 'include' => 1,
87 'AC_FUNC_SETVBUF_REVERSED' => 1,
88 'AC_PROG_INSTALL' => 1,
89 'AM_GNU_GETTEXT' => 1,
90 'AC_FUNC_OBSTACK' => 1,
91 'AC_CHECK_LIB' => 1,
92 'AC_FUNC_MALLOC' => 1,
93 'AC_FUNC_GETGROUPS' => 1,
94 'AC_FUNC_GETLOADAVG' => 1,
95 'AH_OUTPUT' => 1,
96 'AC_FUNC_FSEEKO' => 1,
97 'AM_PROG_CC_C_O' => 1,
98 'AM_CONDITIONAL' => 1,
99 'AC_CANONICAL_SYSTEM' => 1,
100 'AC_FUNC_MKTIME' => 1,
101 'AC_CONFIG_HEADERS' => 1,
102 'AC_HEADER_SYS_WAIT' => 1,
103 'AC_FUNC_MEMCMP' => 1,
104 'AC_PROG_LN_S' => 1,
105 'm4_include' => 1,
106 'AC_HEADER_DIRENT' => 1,
107 'AC_CHECK_FUNCS' => 1
108 }
109 ], 'Request' )
110 );
111
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
deleted file mode 100644
index 8c9b72476..000000000
--- a/autom4te.cache/traces.0
+++ /dev/null
@@ -1,947 +0,0 @@
1m4trace:configure.ac:3: -1- AC_INIT
2m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_])
3m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_])
4m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
5m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$])
6m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_])
7m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$])
8m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_])
9m4trace:configure.ac:3: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
10m4trace:configure.ac:3: -1- AC_SUBST([PATH_SEPARATOR])
11m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
12m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
13m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
14m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
15m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16m4trace:configure.ac:3: -1- AC_SUBST([exec_prefix], [NONE])
17m4trace:configure.ac:3: -1- AC_SUBST([prefix], [NONE])
18m4trace:configure.ac:3: -1- AC_SUBST([program_transform_name], [s,x,x,])
19m4trace:configure.ac:3: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
20m4trace:configure.ac:3: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
21m4trace:configure.ac:3: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
22m4trace:configure.ac:3: -1- AC_SUBST([datadir], ['${prefix}/share'])
23m4trace:configure.ac:3: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
24m4trace:configure.ac:3: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
25m4trace:configure.ac:3: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
26m4trace:configure.ac:3: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
27m4trace:configure.ac:3: -1- AC_SUBST([includedir], ['${prefix}/include'])
28m4trace:configure.ac:3: -1- AC_SUBST([oldincludedir], ['/usr/include'])
29m4trace:configure.ac:3: -1- AC_SUBST([infodir], ['${prefix}/info'])
30m4trace:configure.ac:3: -1- AC_SUBST([mandir], ['${prefix}/man'])
31m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
32m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
33#undef PACKAGE_NAME])
34m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
35m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
36#undef PACKAGE_TARNAME])
37m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
38m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
39#undef PACKAGE_VERSION])
40m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
41m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
42#undef PACKAGE_STRING])
43m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
44m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
45#undef PACKAGE_BUGREPORT])
46m4trace:configure.ac:3: -1- AC_SUBST([build_alias])
47m4trace:configure.ac:3: -1- AC_SUBST([host_alias])
48m4trace:configure.ac:3: -1- AC_SUBST([target_alias])
49m4trace:configure.ac:3: -1- AC_SUBST([DEFS])
50m4trace:configure.ac:3: -1- AC_SUBST([ECHO_C])
51m4trace:configure.ac:3: -1- AC_SUBST([ECHO_N])
52m4trace:configure.ac:3: -1- AC_SUBST([ECHO_T])
53m4trace:configure.ac:3: -1- AC_SUBST([LIBS])
54m4trace:configure.ac:6: -1- AC_CONFIG_HEADERS([config.h])
55m4trace:configure.ac:7: -1- AC_PROG_CC
56m4trace:configure.ac:7: -1- AC_SUBST([CC])
57m4trace:configure.ac:7: -1- AC_SUBST([CFLAGS])
58m4trace:configure.ac:7: -1- AC_SUBST([LDFLAGS])
59m4trace:configure.ac:7: -1- AC_SUBST([CPPFLAGS])
60m4trace:configure.ac:7: -1- AC_SUBST([CC])
61m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
62m4trace:configure.ac:7: -1- AC_SUBST([CC])
63m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
64m4trace:configure.ac:7: -1- AC_SUBST([CC])
65m4trace:configure.ac:7: -1- AC_SUBST([CC])
66m4trace:configure.ac:7: -1- AC_SUBST([ac_ct_CC])
67m4trace:configure.ac:7: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
68m4trace:configure.ac:7: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
69m4trace:configure.ac:8: -1- AC_CANONICAL_HOST
70m4trace:configure.ac:8: -1- AC_SUBST([build], [$ac_cv_build])
71m4trace:configure.ac:8: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
72m4trace:configure.ac:8: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
73m4trace:configure.ac:8: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
74m4trace:configure.ac:8: -1- AC_SUBST([host], [$ac_cv_host])
75m4trace:configure.ac:8: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
76m4trace:configure.ac:8: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
77m4trace:configure.ac:8: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
78m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN])
79m4trace:configure.ac:9: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte
80 first (like Motorola and SPARC, unlike Intel and VAX). */
81#undef WORDS_BIGENDIAN])
82m4trace:configure.ac:12: -1- AC_PROG_CPP
83m4trace:configure.ac:12: -1- AC_SUBST([CPP])
84m4trace:configure.ac:12: -1- AC_SUBST([CPPFLAGS])
85m4trace:configure.ac:12: -1- AC_SUBST([CPP])
86m4trace:configure.ac:13: -1- AC_PROG_RANLIB
87m4trace:configure.ac:13: -1- AC_SUBST([RANLIB])
88m4trace:configure.ac:13: -1- AC_SUBST([ac_ct_RANLIB])
89m4trace:configure.ac:14: -1- AC_PROG_INSTALL
90m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_PROGRAM])
91m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_SCRIPT])
92m4trace:configure.ac:14: -1- AC_SUBST([INSTALL_DATA])
93m4trace:configure.ac:15: -1- AC_SUBST([AR], [$ac_cv_path_AR])
94m4trace:configure.ac:16: -1- AC_SUBST([PERL], [$ac_cv_path_PERL])
95m4trace:configure.ac:17: -1- AC_SUBST([SED], [$ac_cv_path_SED])
96m4trace:configure.ac:18: -1- AC_SUBST([PERL])
97m4trace:configure.ac:19: -1- AC_SUBST([ENT], [$ac_cv_path_ENT])
98m4trace:configure.ac:20: -1- AC_SUBST([ENT])
99m4trace:configure.ac:21: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
100m4trace:configure.ac:22: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
101m4trace:configure.ac:23: -1- AC_SUBST([TEST_MINUS_S_SH], [$ac_cv_path_TEST_MINUS_S_SH])
102m4trace:configure.ac:24: -1- AC_SUBST([SH], [$ac_cv_path_SH])
103m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS])
104m4trace:configure.ac:27: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */
105#undef _FILE_OFFSET_BITS])
106m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES])
107m4trace:configure.ac:27: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */
108#undef _LARGE_FILES])
109m4trace:configure.ac:35: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_PROGRAM_FALLBACK])
110m4trace:configure.ac:38: -1- AC_SUBST([LOGIN_PROGRAM_FALLBACK], [$ac_cv_path_LOGIN_PROGRAM_FALLBACK])
111m4trace:configure.ac:40: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_PROGRAM_FALLBACK])
112m4trace:configure.ac:47: -1- AC_SUBST([LD])
113m4trace:configure.ac:49: -1- AC_C_INLINE
114m4trace:configure.ac:49: -1- AC_DEFINE_TRACE_LITERAL([inline])
115m4trace:configure.ac:49: -1- AH_OUTPUT([inline], [/* Define as `__inline\' if that\'s what the C compiler calls it, or to nothing
116 if it is not supported. */
117#undef inline])
118m4trace:configure.ac:49: -1- AC_DEFINE_TRACE_LITERAL([inline])
119m4trace:configure.ac:83: -1- AC_DEFINE_TRACE_LITERAL([WITH_AIXAUTHENTICATE])
120m4trace:configure.ac:83: -1- AC_CHECK_LIB([s], [authenticate], [ AC_DEFINE(WITH_AIXAUTHENTICATE)
121 LIBS="$LIBS -ls"
122 ])
123m4trace:configure.ac:83: -1- AC_DEFINE_TRACE_LITERAL([WITH_AIXAUTHENTICATE])
124m4trace:configure.ac:84: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_GETADDRINFO])
125m4trace:configure.ac:85: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_REALPATH])
126m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
127m4trace:configure.ac:88: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
128m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
129m4trace:configure.ac:90: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_PS_PADDING])
130m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CYGWIN])
131m4trace:configure.ac:96: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
132m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
133m4trace:configure.ac:98: -1- AC_DEFINE_TRACE_LITERAL([IPV4_DEFAULT])
134m4trace:configure.ac:99: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
135m4trace:configure.ac:100: -1- AC_DEFINE_TRACE_LITERAL([NO_X11_UNIX_SOCKETS])
136m4trace:configure.ac:101: -1- AC_DEFINE_TRACE_LITERAL([NO_IPPORT_RESERVED_CONCEPT])
137m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
138m4trace:configure.ac:103: -1- AC_DEFINE_TRACE_LITERAL([SETGROUPS_NOOP])
139m4trace:configure.ac:106: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
140m4trace:configure.ac:118: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_GETADDRINFO])
141m4trace:configure.ac:126: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
142m4trace:configure.ac:127: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
143m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
144m4trace:configure.ac:129: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
145m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
146m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
147m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
148m4trace:configure.ac:134: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
149echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
150 { (exit 1); exit 1; }; }])
151m4trace:configure.ac:134: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the `xnet\' library (-lxnet). */
152#undef HAVE_LIBXNET])
153m4trace:configure.ac:134: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
154m4trace:configure.ac:143: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
155m4trace:configure.ac:144: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
156m4trace:configure.ac:145: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
157m4trace:configure.ac:146: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
158m4trace:configure.ac:147: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
159m4trace:configure.ac:148: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
160m4trace:configure.ac:150: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
161echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
162 { (exit 1); exit 1; }; }])
163m4trace:configure.ac:150: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the `xnet\' library (-lxnet). */
164#undef HAVE_LIBXNET])
165m4trace:configure.ac:150: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
166m4trace:configure.ac:155: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
167m4trace:configure.ac:156: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
168m4trace:configure.ac:157: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NO_ENDOPT])
169m4trace:configure.ac:158: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
170m4trace:configure.ac:159: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
171m4trace:configure.ac:160: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
172m4trace:configure.ac:161: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
173m4trace:configure.ac:163: -1- AC_CHECK_LIB([xnet], [t_error], [], [{ { echo "$as_me:$LINENO: error: *** -lxnet needed on HP-UX - check config.log ***" >&5
174echo "$as_me: error: *** -lxnet needed on HP-UX - check config.log ***" >&2;}
175 { (exit 1); exit 1; }; }])
176m4trace:configure.ac:163: -1- AH_OUTPUT([HAVE_LIBXNET], [/* Define to 1 if you have the `xnet\' library (-lxnet). */
177#undef HAVE_LIBXNET])
178m4trace:configure.ac:163: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXNET])
179m4trace:configure.ac:169: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_INET_NTOA])
180m4trace:configure.ac:170: -1- AC_DEFINE_TRACE_LITERAL([WITH_ABBREV_NO_TTY])
181m4trace:configure.ac:176: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_ARRAY])
182m4trace:configure.ac:177: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_PROJECT])
183m4trace:configure.ac:178: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_AUDIT])
184m4trace:configure.ac:179: -1- AC_DEFINE_TRACE_LITERAL([WITH_IRIX_JOBS])
185m4trace:configure.ac:180: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_INET_NTOA])
186m4trace:configure.ac:181: -1- AC_DEFINE_TRACE_LITERAL([WITH_ABBREV_NO_TTY])
187m4trace:configure.ac:186: -1- AC_DEFINE_TRACE_LITERAL([DONT_TRY_OTHER_AF])
188m4trace:configure.ac:187: -1- AC_DEFINE_TRACE_LITERAL([PAM_TTY_KLUDGE])
189m4trace:configure.ac:188: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_STRATEGY])
190m4trace:configure.ac:189: -1- AC_DEFINE_TRACE_LITERAL([SETPROCTITLE_PS_PADDING])
191m4trace:configure.ac:193: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NEWS4])
192m4trace:configure.ac:208: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NEXT])
193m4trace:configure.ac:209: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_REALPATH])
194m4trace:configure.ac:210: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
195m4trace:configure.ac:211: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SAVED_UIDS])
196m4trace:configure.ac:219: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
197m4trace:configure.ac:220: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_UTMPX])
198m4trace:configure.ac:221: -1- AC_DEFINE_TRACE_LITERAL([LOGIN_NEEDS_TERM])
199m4trace:configure.ac:222: -1- AC_DEFINE_TRACE_LITERAL([PAM_TTY_KLUDGE])
200m4trace:configure.ac:223: -1- AC_DEFINE_TRACE_LITERAL([STREAMS_PUSH_ACQUIRES_CTTY])
201m4trace:configure.ac:230: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
202m4trace:configure.ac:231: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
203m4trace:configure.ac:238: -1- AC_CHECK_FUNCS([getpwanam])
204m4trace:configure.ac:238: -1- AH_OUTPUT([HAVE_GETPWANAM], [/* Define to 1 if you have the `getpwanam\' function. */
205#undef HAVE_GETPWANAM])
206m4trace:configure.ac:239: -1- AC_DEFINE_TRACE_LITERAL([PAM_SUN_CODEBASE])
207m4trace:configure.ac:243: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
208m4trace:configure.ac:249: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
209m4trace:configure.ac:256: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
210m4trace:configure.ac:257: -1- AC_DEFINE_TRACE_LITERAL([IP_TOS_IS_BROKEN])
211m4trace:configure.ac:265: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
212m4trace:configure.ac:270: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
213m4trace:configure.ac:282: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SYS_TERMIO_H])
214m4trace:configure.ac:283: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
215m4trace:configure.ac:284: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
216m4trace:configure.ac:285: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
217m4trace:configure.ac:286: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SAVED_UIDS])
218m4trace:configure.ac:287: -1- AC_CHECK_FUNCS([getluid setluid])
219m4trace:configure.ac:287: -1- AH_OUTPUT([HAVE_GETLUID], [/* Define to 1 if you have the `getluid\' function. */
220#undef HAVE_GETLUID])
221m4trace:configure.ac:287: -1- AH_OUTPUT([HAVE_SETLUID], [/* Define to 1 if you have the `setluid\' function. */
222#undef HAVE_SETLUID])
223m4trace:configure.ac:299: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
224m4trace:configure.ac:300: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECUREWARE])
225m4trace:configure.ac:301: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
226m4trace:configure.ac:302: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
227m4trace:configure.ac:303: -1- AC_CHECK_FUNCS([getluid setluid])
228m4trace:configure.ac:303: -1- AH_OUTPUT([HAVE_GETLUID], [/* Define to 1 if you have the `getluid\' function. */
229#undef HAVE_GETLUID])
230m4trace:configure.ac:303: -1- AH_OUTPUT([HAVE_SETLUID], [/* Define to 1 if you have the `setluid\' function. */
231#undef HAVE_SETLUID])
232m4trace:configure.ac:307: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
233m4trace:configure.ac:308: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
234m4trace:configure.ac:314: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
235m4trace:configure.ac:315: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
236m4trace:configure.ac:316: -1- AC_DEFINE_TRACE_LITERAL([NO_SSH_LASTLOG])
237m4trace:configure.ac:336: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OSF_SIA])
238m4trace:configure.ac:337: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LOGIN])
239m4trace:configure.ac:338: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
240m4trace:configure.ac:344: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_FD_PASSING])
241m4trace:configure.ac:348: -1- AC_DEFINE_TRACE_LITERAL([USE_PIPES])
242m4trace:configure.ac:349: -1- AC_DEFINE_TRACE_LITERAL([NO_X11_UNIX_SOCKETS])
243m4trace:configure.ac:350: -1- AC_DEFINE_TRACE_LITERAL([MISSING_NFDBITS])
244m4trace:configure.ac:351: -1- AC_DEFINE_TRACE_LITERAL([MISSING_HOWMANY])
245m4trace:configure.ac:352: -1- AC_DEFINE_TRACE_LITERAL([MISSING_FD_MASK])
246m4trace:configure.ac:400: -1- AC_CHECK_HEADERS([bstring.h crypt.h endian.h floatingpoint.h \
247 getopt.h glob.h ia.h lastlog.h libgen.h limits.h login.h \
248 login_cap.h maillock.h netdb.h netgroup.h \
249 netinet/in_systm.h paths.h pty.h readpassphrase.h \
250 rpc/types.h security/pam_appl.h shadow.h stddef.h stdint.h \
251 strings.h sys/bitypes.h sys/bsdtty.h sys/cdefs.h \
252 sys/mman.h sys/pstat.h sys/select.h sys/stat.h \
253 sys/stropts.h sys/sysmacros.h sys/time.h sys/timers.h \
254 sys/un.h time.h tmpdir.h ttyent.h usersec.h \
255 util.h utime.h utmp.h utmpx.h])
256m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_BSTRING_H], [/* Define to 1 if you have the <bstring.h> header file. */
257#undef HAVE_BSTRING_H])
258m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_CRYPT_H], [/* Define to 1 if you have the <crypt.h> header file. */
259#undef HAVE_CRYPT_H])
260m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_ENDIAN_H], [/* Define to 1 if you have the <endian.h> header file. */
261#undef HAVE_ENDIAN_H])
262m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_FLOATINGPOINT_H], [/* Define to 1 if you have the <floatingpoint.h> header file. */
263#undef HAVE_FLOATINGPOINT_H])
264m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
265#undef HAVE_GETOPT_H])
266m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_GLOB_H], [/* Define to 1 if you have the <glob.h> header file. */
267#undef HAVE_GLOB_H])
268m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_IA_H], [/* Define to 1 if you have the <ia.h> header file. */
269#undef HAVE_IA_H])
270m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_LASTLOG_H], [/* Define to 1 if you have the <lastlog.h> header file. */
271#undef HAVE_LASTLOG_H])
272m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
273#undef HAVE_LIBGEN_H])
274m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
275#undef HAVE_LIMITS_H])
276m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_LOGIN_H], [/* Define to 1 if you have the <login.h> header file. */
277#undef HAVE_LOGIN_H])
278m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_LOGIN_CAP_H], [/* Define to 1 if you have the <login_cap.h> header file. */
279#undef HAVE_LOGIN_CAP_H])
280m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_MAILLOCK_H], [/* Define to 1 if you have the <maillock.h> header file. */
281#undef HAVE_MAILLOCK_H])
282m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
283#undef HAVE_NETDB_H])
284m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_NETGROUP_H], [/* Define to 1 if you have the <netgroup.h> header file. */
285#undef HAVE_NETGROUP_H])
286m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_NETINET_IN_SYSTM_H], [/* Define to 1 if you have the <netinet/in_systm.h> header file. */
287#undef HAVE_NETINET_IN_SYSTM_H])
288m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_PATHS_H], [/* Define to 1 if you have the <paths.h> header file. */
289#undef HAVE_PATHS_H])
290m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_PTY_H], [/* Define to 1 if you have the <pty.h> header file. */
291#undef HAVE_PTY_H])
292m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_READPASSPHRASE_H], [/* Define to 1 if you have the <readpassphrase.h> header file. */
293#undef HAVE_READPASSPHRASE_H])
294m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_RPC_TYPES_H], [/* Define to 1 if you have the <rpc/types.h> header file. */
295#undef HAVE_RPC_TYPES_H])
296m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SECURITY_PAM_APPL_H], [/* Define to 1 if you have the <security/pam_appl.h> header file. */
297#undef HAVE_SECURITY_PAM_APPL_H])
298m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SHADOW_H], [/* Define to 1 if you have the <shadow.h> header file. */
299#undef HAVE_SHADOW_H])
300m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */
301#undef HAVE_STDDEF_H])
302m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
303#undef HAVE_STDINT_H])
304m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
305#undef HAVE_STRINGS_H])
306m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_BITYPES_H], [/* Define to 1 if you have the <sys/bitypes.h> header file. */
307#undef HAVE_SYS_BITYPES_H])
308m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_BSDTTY_H], [/* Define to 1 if you have the <sys/bsdtty.h> header file. */
309#undef HAVE_SYS_BSDTTY_H])
310m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_CDEFS_H], [/* Define to 1 if you have the <sys/cdefs.h> header file. */
311#undef HAVE_SYS_CDEFS_H])
312m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_MMAN_H], [/* Define to 1 if you have the <sys/mman.h> header file. */
313#undef HAVE_SYS_MMAN_H])
314m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_PSTAT_H], [/* Define to 1 if you have the <sys/pstat.h> header file. */
315#undef HAVE_SYS_PSTAT_H])
316m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */
317#undef HAVE_SYS_SELECT_H])
318m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
319#undef HAVE_SYS_STAT_H])
320m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_STROPTS_H], [/* Define to 1 if you have the <sys/stropts.h> header file. */
321#undef HAVE_SYS_STROPTS_H])
322m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_SYSMACROS_H], [/* Define to 1 if you have the <sys/sysmacros.h> header file. */
323#undef HAVE_SYS_SYSMACROS_H])
324m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
325#undef HAVE_SYS_TIME_H])
326m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_TIMERS_H], [/* Define to 1 if you have the <sys/timers.h> header file. */
327#undef HAVE_SYS_TIMERS_H])
328m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_UN_H], [/* Define to 1 if you have the <sys/un.h> header file. */
329#undef HAVE_SYS_UN_H])
330m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the <time.h> header file. */
331#undef HAVE_TIME_H])
332m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_TMPDIR_H], [/* Define to 1 if you have the <tmpdir.h> header file. */
333#undef HAVE_TMPDIR_H])
334m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_TTYENT_H], [/* Define to 1 if you have the <ttyent.h> header file. */
335#undef HAVE_TTYENT_H])
336m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_USERSEC_H], [/* Define to 1 if you have the <usersec.h> header file. */
337#undef HAVE_USERSEC_H])
338m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_UTIL_H], [/* Define to 1 if you have the <util.h> header file. */
339#undef HAVE_UTIL_H])
340m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_UTIME_H], [/* Define to 1 if you have the <utime.h> header file. */
341#undef HAVE_UTIME_H])
342m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_UTMP_H], [/* Define to 1 if you have the <utmp.h> header file. */
343#undef HAVE_UTMP_H])
344m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_UTMPX_H], [/* Define to 1 if you have the <utmpx.h> header file. */
345#undef HAVE_UTMPX_H])
346m4trace:configure.ac:400: -1- AC_HEADER_STDC
347m4trace:configure.ac:400: -1- AC_SUBST([EGREP])
348m4trace:configure.ac:400: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
349m4trace:configure.ac:400: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
350#undef STDC_HEADERS])
351m4trace:configure.ac:400: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
352 inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
353m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
354#undef HAVE_SYS_TYPES_H])
355m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
356#undef HAVE_SYS_STAT_H])
357m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
358#undef HAVE_STDLIB_H])
359m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
360#undef HAVE_STRING_H])
361m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
362#undef HAVE_MEMORY_H])
363m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
364#undef HAVE_STRINGS_H])
365m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
366#undef HAVE_INTTYPES_H])
367m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
368#undef HAVE_STDINT_H])
369m4trace:configure.ac:400: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
370#undef HAVE_UNISTD_H])
371m4trace:configure.ac:403: -2- AC_CHECK_LIB([nsl], [yp_match])
372m4trace:configure.ac:403: -2- AH_OUTPUT([HAVE_LIBNSL], [/* Define to 1 if you have the `nsl\' library (-lnsl). */
373#undef HAVE_LIBNSL])
374m4trace:configure.ac:403: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBNSL])
375m4trace:configure.ac:404: -2- AC_CHECK_LIB([socket], [setsockopt])
376m4trace:configure.ac:404: -2- AH_OUTPUT([HAVE_LIBSOCKET], [/* Define to 1 if you have the `socket\' library (-lsocket). */
377#undef HAVE_LIBSOCKET])
378m4trace:configure.ac:404: -2- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET])
379m4trace:configure.ac:409: -1- AC_CHECK_LIB([rpc], [innetgr], [LIBS="-lrpc -lyp -lrpc $LIBS" ], [], [-lyp -lrpc])
380m4trace:configure.ac:414: -2- AC_CHECK_LIB([gen], [getspnam], [LIBS="$LIBS -lgen"])
381m4trace:configure.ac:456: -1- AC_CHECK_LIB([z], [deflate], [], [{ { echo "$as_me:$LINENO: error: *** zlib missing - please install first or check config.log ***" >&5
382echo "$as_me: error: *** zlib missing - please install first or check config.log ***" >&2;}
383 { (exit 1); exit 1; }; }])
384m4trace:configure.ac:456: -1- AH_OUTPUT([HAVE_LIBZ], [/* Define to 1 if you have the `z\' library (-lz). */
385#undef HAVE_LIBZ])
386m4trace:configure.ac:456: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBZ])
387m4trace:configure.ac:461: -1- AC_CHECK_LIB([resolv], [strcasecmp], [LIBS="$LIBS -lresolv"])
388m4trace:configure.ac:465: -1- AC_CHECK_LIB([c89], [utimes], [AC_DEFINE(HAVE_UTIMES)
389 LIBS="$LIBS -lc89"])
390m4trace:configure.ac:465: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UTIMES])
391m4trace:configure.ac:468: -1- AC_CHECK_HEADERS([libutil.h])
392m4trace:configure.ac:468: -1- AH_OUTPUT([HAVE_LIBUTIL_H], [/* Define to 1 if you have the <libutil.h> header file. */
393#undef HAVE_LIBUTIL_H])
394m4trace:configure.ac:469: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOGIN])
395m4trace:configure.ac:470: -1- AC_CHECK_FUNCS([logout updwtmp logwtmp])
396m4trace:configure.ac:470: -1- AH_OUTPUT([HAVE_LOGOUT], [/* Define to 1 if you have the `logout\' function. */
397#undef HAVE_LOGOUT])
398m4trace:configure.ac:470: -1- AH_OUTPUT([HAVE_UPDWTMP], [/* Define to 1 if you have the `updwtmp\' function. */
399#undef HAVE_UPDWTMP])
400m4trace:configure.ac:470: -1- AH_OUTPUT([HAVE_LOGWTMP], [/* Define to 1 if you have the `logwtmp\' function. */
401#undef HAVE_LOGWTMP])
402m4trace:configure.ac:472: -1- AC_FUNC_STRFTIME
403m4trace:configure.ac:472: -1- AC_CHECK_FUNCS([strftime], [], [# strftime is in -lintl on SCO UNIX.
404AC_CHECK_LIB(intl, strftime,
405 [AC_DEFINE(HAVE_STRFTIME)
406LIBS="-lintl $LIBS"])])
407m4trace:configure.ac:472: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */
408#undef HAVE_STRFTIME])
409m4trace:configure.ac:472: -1- AC_CHECK_LIB([intl], [strftime], [AC_DEFINE(HAVE_STRFTIME)
410LIBS="-lintl $LIBS"])
411m4trace:configure.ac:472: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME])
412m4trace:configure.ac:490: -1- AC_DEFINE_TRACE_LITERAL([GLOB_HAS_ALTDIRFUNC])
413m4trace:configure.ac:506: -1- AC_DEFINE_TRACE_LITERAL([GLOB_HAS_GL_MATCHC])
414m4trace:configure.ac:520: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_ONE_BYTE_DIRENT_D_NAME])
415m4trace:configure.ac:553: -1- AC_DEFINE_TRACE_LITERAL([SKEY])
416m4trace:configure.ac:607: -1- AC_DEFINE_TRACE_LITERAL([LIBWRAP])
417m4trace:configure.ac:607: -1- AC_SUBST([LIBWRAP])
418m4trace:configure.ac:622: -1- AC_CHECK_FUNCS([\
419 arc4random __b64_ntop b64_ntop __b64_pton b64_pton basename bcopy \
420 bindresvport_sa clock fchmod fchown freeaddrinfo futimes \
421 gai_strerror getaddrinfo getcwd getgrouplist getnameinfo getopt \
422 getpeereid _getpty getrlimit getrusage getttyent glob inet_aton \
423 inet_ntoa inet_ntop innetgr login_getcapbool md5_crypt memmove \
424 mkdtemp mmap ngetaddrinfo nsleep ogetaddrinfo openpty pstat \
425 readpassphrase realpath recvmsg rresvport_af sendmsg setdtablesize \
426 setegid setenv seteuid setgroups setlogin setpcred setproctitle \
427 setresgid setreuid setrlimit setsid setvbuf sigaction sigvec \
428 snprintf socketpair strerror strlcat strlcpy strmode strnvis \
429 sysconf tcgetpgrp truncate utimes vhangup vsnprintf waitpid \
430])
431m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_ARC4RANDOM], [/* Define to 1 if you have the `arc4random\' function. */
432#undef HAVE_ARC4RANDOM])
433m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE___B64_NTOP], [/* Define to 1 if you have the `__b64_ntop\' function. */
434#undef HAVE___B64_NTOP])
435m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_B64_NTOP], [/* Define to 1 if you have the `b64_ntop\' function. */
436#undef HAVE_B64_NTOP])
437m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE___B64_PTON], [/* Define to 1 if you have the `__b64_pton\' function. */
438#undef HAVE___B64_PTON])
439m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_B64_PTON], [/* Define to 1 if you have the `b64_pton\' function. */
440#undef HAVE_B64_PTON])
441m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_BASENAME], [/* Define to 1 if you have the `basename\' function. */
442#undef HAVE_BASENAME])
443m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */
444#undef HAVE_BCOPY])
445m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_BINDRESVPORT_SA], [/* Define to 1 if you have the `bindresvport_sa\' function. */
446#undef HAVE_BINDRESVPORT_SA])
447m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_CLOCK], [/* Define to 1 if you have the `clock\' function. */
448#undef HAVE_CLOCK])
449m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_FCHMOD], [/* Define to 1 if you have the `fchmod\' function. */
450#undef HAVE_FCHMOD])
451m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_FCHOWN], [/* Define to 1 if you have the `fchown\' function. */
452#undef HAVE_FCHOWN])
453m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_FREEADDRINFO], [/* Define to 1 if you have the `freeaddrinfo\' function. */
454#undef HAVE_FREEADDRINFO])
455m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_FUTIMES], [/* Define to 1 if you have the `futimes\' function. */
456#undef HAVE_FUTIMES])
457m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GAI_STRERROR], [/* Define to 1 if you have the `gai_strerror\' function. */
458#undef HAVE_GAI_STRERROR])
459m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */
460#undef HAVE_GETADDRINFO])
461m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */
462#undef HAVE_GETCWD])
463m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETGROUPLIST], [/* Define to 1 if you have the `getgrouplist\' function. */
464#undef HAVE_GETGROUPLIST])
465m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETNAMEINFO], [/* Define to 1 if you have the `getnameinfo\' function. */
466#undef HAVE_GETNAMEINFO])
467m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETOPT], [/* Define to 1 if you have the `getopt\' function. */
468#undef HAVE_GETOPT])
469m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETPEEREID], [/* Define to 1 if you have the `getpeereid\' function. */
470#undef HAVE_GETPEEREID])
471m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE__GETPTY], [/* Define to 1 if you have the `_getpty\' function. */
472#undef HAVE__GETPTY])
473m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */
474#undef HAVE_GETRLIMIT])
475m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */
476#undef HAVE_GETRUSAGE])
477m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GETTTYENT], [/* Define to 1 if you have the `getttyent\' function. */
478#undef HAVE_GETTTYENT])
479m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_GLOB], [/* Define to 1 if you have the `glob\' function. */
480#undef HAVE_GLOB])
481m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */
482#undef HAVE_INET_ATON])
483m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_INET_NTOA], [/* Define to 1 if you have the `inet_ntoa\' function. */
484#undef HAVE_INET_NTOA])
485m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_INET_NTOP], [/* Define to 1 if you have the `inet_ntop\' function. */
486#undef HAVE_INET_NTOP])
487m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_INNETGR], [/* Define to 1 if you have the `innetgr\' function. */
488#undef HAVE_INNETGR])
489m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_LOGIN_GETCAPBOOL], [/* Define to 1 if you have the `login_getcapbool\' function. */
490#undef HAVE_LOGIN_GETCAPBOOL])
491m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_MD5_CRYPT], [/* Define to 1 if you have the `md5_crypt\' function. */
492#undef HAVE_MD5_CRYPT])
493m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */
494#undef HAVE_MEMMOVE])
495m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_MKDTEMP], [/* Define to 1 if you have the `mkdtemp\' function. */
496#undef HAVE_MKDTEMP])
497m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have the `mmap\' function. */
498#undef HAVE_MMAP])
499m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_NGETADDRINFO], [/* Define to 1 if you have the `ngetaddrinfo\' function. */
500#undef HAVE_NGETADDRINFO])
501m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_NSLEEP], [/* Define to 1 if you have the `nsleep\' function. */
502#undef HAVE_NSLEEP])
503m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_OGETADDRINFO], [/* Define to 1 if you have the `ogetaddrinfo\' function. */
504#undef HAVE_OGETADDRINFO])
505m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_OPENPTY], [/* Define to 1 if you have the `openpty\' function. */
506#undef HAVE_OPENPTY])
507m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_PSTAT], [/* Define to 1 if you have the `pstat\' function. */
508#undef HAVE_PSTAT])
509m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_READPASSPHRASE], [/* Define to 1 if you have the `readpassphrase\' function. */
510#undef HAVE_READPASSPHRASE])
511m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_REALPATH], [/* Define to 1 if you have the `realpath\' function. */
512#undef HAVE_REALPATH])
513m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_RECVMSG], [/* Define to 1 if you have the `recvmsg\' function. */
514#undef HAVE_RECVMSG])
515m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_RRESVPORT_AF], [/* Define to 1 if you have the `rresvport_af\' function. */
516#undef HAVE_RRESVPORT_AF])
517m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SENDMSG], [/* Define to 1 if you have the `sendmsg\' function. */
518#undef HAVE_SENDMSG])
519m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */
520#undef HAVE_SETDTABLESIZE])
521m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETEGID], [/* Define to 1 if you have the `setegid\' function. */
522#undef HAVE_SETEGID])
523m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */
524#undef HAVE_SETENV])
525m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETEUID], [/* Define to 1 if you have the `seteuid\' function. */
526#undef HAVE_SETEUID])
527m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETGROUPS], [/* Define to 1 if you have the `setgroups\' function. */
528#undef HAVE_SETGROUPS])
529m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETLOGIN], [/* Define to 1 if you have the `setlogin\' function. */
530#undef HAVE_SETLOGIN])
531m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETPCRED], [/* Define to 1 if you have the `setpcred\' function. */
532#undef HAVE_SETPCRED])
533m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETPROCTITLE], [/* Define to 1 if you have the `setproctitle\' function. */
534#undef HAVE_SETPROCTITLE])
535m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETRESGID], [/* Define to 1 if you have the `setresgid\' function. */
536#undef HAVE_SETRESGID])
537m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETREUID], [/* Define to 1 if you have the `setreuid\' function. */
538#undef HAVE_SETREUID])
539m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETRLIMIT], [/* Define to 1 if you have the `setrlimit\' function. */
540#undef HAVE_SETRLIMIT])
541m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETSID], [/* Define to 1 if you have the `setsid\' function. */
542#undef HAVE_SETSID])
543m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */
544#undef HAVE_SETVBUF])
545m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SIGACTION], [/* Define to 1 if you have the `sigaction\' function. */
546#undef HAVE_SIGACTION])
547m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SIGVEC], [/* Define to 1 if you have the `sigvec\' function. */
548#undef HAVE_SIGVEC])
549m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
550#undef HAVE_SNPRINTF])
551m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SOCKETPAIR], [/* Define to 1 if you have the `socketpair\' function. */
552#undef HAVE_SOCKETPAIR])
553m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */
554#undef HAVE_STRERROR])
555m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the `strlcat\' function. */
556#undef HAVE_STRLCAT])
557m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the `strlcpy\' function. */
558#undef HAVE_STRLCPY])
559m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_STRMODE], [/* Define to 1 if you have the `strmode\' function. */
560#undef HAVE_STRMODE])
561m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_STRNVIS], [/* Define to 1 if you have the `strnvis\' function. */
562#undef HAVE_STRNVIS])
563m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */
564#undef HAVE_SYSCONF])
565m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */
566#undef HAVE_TCGETPGRP])
567m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_TRUNCATE], [/* Define to 1 if you have the `truncate\' function. */
568#undef HAVE_TRUNCATE])
569m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_UTIMES], [/* Define to 1 if you have the `utimes\' function. */
570#undef HAVE_UTIMES])
571m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_VHANGUP], [/* Define to 1 if you have the `vhangup\' function. */
572#undef HAVE_VHANGUP])
573m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */
574#undef HAVE_VSNPRINTF])
575m4trace:configure.ac:622: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */
576#undef HAVE_WAITPID])
577m4trace:configure.ac:624: -2- AC_DEFINE_TRACE_LITERAL([HAVE_NANOSLEEP])
578m4trace:configure.ac:625: -2- AC_DEFINE_TRACE_LITERAL([HAVE_BASENAME])
579m4trace:configure.ac:628: -1- AC_CHECK_FUNCS([strsep])
580m4trace:configure.ac:628: -1- AH_OUTPUT([HAVE_STRSEP], [/* Define to 1 if you have the `strsep\' function. */
581#undef HAVE_STRSEP])
582m4trace:configure.ac:665: -1- AC_CHECK_FUNCS([dirname], [AC_CHECK_HEADERS(libgen.h) ], [
583 AC_CHECK_LIB(gen, dirname,[
584 AC_CACHE_CHECK([for broken dirname],
585 ac_cv_have_broken_dirname, [
586 save_LIBS="$LIBS"
587 LIBS="$LIBS -lgen"
588 AC_TRY_RUN(
589 [
590#include <libgen.h>
591#include <string.h>
592
593int main(int argc, char **argv) {
594 char *s, buf[32];
595
596 strncpy(buf,"/etc", 32);
597 s = dirname(buf);
598 if (!s || strncmp(s, "/", 32) != 0) {
599 exit(1);
600 } else {
601 exit(0);
602 }
603}
604 ],
605 [ ac_cv_have_broken_dirname="no" ],
606 [ ac_cv_have_broken_dirname="yes" ]
607 )
608 LIBS="$save_LIBS"
609 ])
610 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
611 LIBS="$LIBS -lgen"
612 AC_DEFINE(HAVE_DIRNAME)
613 AC_CHECK_HEADERS(libgen.h)
614 fi
615 ])
616])
617m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_DIRNAME], [/* Define to 1 if you have the `dirname\' function. */
618#undef HAVE_DIRNAME])
619m4trace:configure.ac:665: -1- AC_CHECK_HEADERS([libgen.h])
620m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
621#undef HAVE_LIBGEN_H])
622m4trace:configure.ac:665: -1- AC_CHECK_LIB([gen], [dirname], [
623 AC_CACHE_CHECK([for broken dirname],
624 ac_cv_have_broken_dirname, [
625 save_LIBS="$LIBS"
626 LIBS="$LIBS -lgen"
627 AC_TRY_RUN(
628 [
629#include <libgen.h>
630#include <string.h>
631
632int main(int argc, char **argv) {
633 char *s, buf[32];
634
635 strncpy(buf,"/etc", 32);
636 s = dirname(buf);
637 if (!s || strncmp(s, "/", 32) != 0) {
638 exit(1);
639 } else {
640 exit(0);
641 }
642}
643 ],
644 [ ac_cv_have_broken_dirname="no" ],
645 [ ac_cv_have_broken_dirname="yes" ]
646 )
647 LIBS="$save_LIBS"
648 ])
649 if test "x$ac_cv_have_broken_dirname" = "xno" ; then
650 LIBS="$LIBS -lgen"
651 AC_DEFINE(HAVE_DIRNAME)
652 AC_CHECK_HEADERS(libgen.h)
653 fi
654 ])
655m4trace:configure.ac:665: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DIRNAME])
656m4trace:configure.ac:665: -1- AC_CHECK_HEADERS([libgen.h])
657m4trace:configure.ac:665: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the <libgen.h> header file. */
658#undef HAVE_LIBGEN_H])
659m4trace:configure.ac:668: -1- AC_CHECK_FUNCS([gettimeofday time])
660m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
661#undef HAVE_GETTIMEOFDAY])
662m4trace:configure.ac:668: -1- AH_OUTPUT([HAVE_TIME], [/* Define to 1 if you have the `time\' function. */
663#undef HAVE_TIME])
664m4trace:configure.ac:670: -1- AC_CHECK_FUNCS([endutent getutent getutid getutline pututline setutent])
665m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_ENDUTENT], [/* Define to 1 if you have the `endutent\' function. */
666#undef HAVE_ENDUTENT])
667m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_GETUTENT], [/* Define to 1 if you have the `getutent\' function. */
668#undef HAVE_GETUTENT])
669m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_GETUTID], [/* Define to 1 if you have the `getutid\' function. */
670#undef HAVE_GETUTID])
671m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_GETUTLINE], [/* Define to 1 if you have the `getutline\' function. */
672#undef HAVE_GETUTLINE])
673m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_PUTUTLINE], [/* Define to 1 if you have the `pututline\' function. */
674#undef HAVE_PUTUTLINE])
675m4trace:configure.ac:670: -1- AH_OUTPUT([HAVE_SETUTENT], [/* Define to 1 if you have the `setutent\' function. */
676#undef HAVE_SETUTENT])
677m4trace:configure.ac:671: -1- AC_CHECK_FUNCS([utmpname])
678m4trace:configure.ac:671: -1- AH_OUTPUT([HAVE_UTMPNAME], [/* Define to 1 if you have the `utmpname\' function. */
679#undef HAVE_UTMPNAME])
680m4trace:configure.ac:673: -1- AC_CHECK_FUNCS([endutxent getutxent getutxid getutxline pututxline ])
681m4trace:configure.ac:673: -1- AH_OUTPUT([HAVE_ENDUTXENT], [/* Define to 1 if you have the `endutxent\' function. */
682#undef HAVE_ENDUTXENT])
683m4trace:configure.ac:673: -1- AH_OUTPUT([HAVE_GETUTXENT], [/* Define to 1 if you have the `getutxent\' function. */
684#undef HAVE_GETUTXENT])
685m4trace:configure.ac:673: -1- AH_OUTPUT([HAVE_GETUTXID], [/* Define to 1 if you have the `getutxid\' function. */
686#undef HAVE_GETUTXID])
687m4trace:configure.ac:673: -1- AH_OUTPUT([HAVE_GETUTXLINE], [/* Define to 1 if you have the `getutxline\' function. */
688#undef HAVE_GETUTXLINE])
689m4trace:configure.ac:673: -1- AH_OUTPUT([HAVE_PUTUTXLINE], [/* Define to 1 if you have the `pututxline\' function. */
690#undef HAVE_PUTUTXLINE])
691m4trace:configure.ac:674: -1- AC_CHECK_FUNCS([setutxent utmpxname])
692m4trace:configure.ac:674: -1- AH_OUTPUT([HAVE_SETUTXENT], [/* Define to 1 if you have the `setutxent\' function. */
693#undef HAVE_SETUTXENT])
694m4trace:configure.ac:674: -1- AH_OUTPUT([HAVE_UTMPXNAME], [/* Define to 1 if you have the `utmpxname\' function. */
695#undef HAVE_UTMPXNAME])
696m4trace:configure.ac:679: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DAEMON])
697m4trace:configure.ac:679: -1- AC_CHECK_LIB([bsd], [daemon], [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])
698m4trace:configure.ac:679: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DAEMON])
699m4trace:configure.ac:684: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
700m4trace:configure.ac:684: -1- AC_CHECK_LIB([ucb], [getpagesize], [LIBS="$LIBS -lucb"; AC_DEFINE(HAVE_GETPAGESIZE)])
701m4trace:configure.ac:684: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
702m4trace:configure.ac:700: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SNPRINTF])
703m4trace:configure.ac:726: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRICT_MKSTEMP])
704m4trace:configure.ac:726: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRICT_MKSTEMP])
705m4trace:configure.ac:729: -1- AC_FUNC_GETPGRP
706m4trace:configure.ac:729: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID])
707m4trace:configure.ac:729: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */
708#undef GETPGRP_VOID])
709m4trace:configure.ac:757: -1- AC_CHECK_LIB([dl], [dlopen], [], [])
710m4trace:configure.ac:757: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */
711#undef HAVE_LIBDL])
712m4trace:configure.ac:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL])
713m4trace:configure.ac:757: -1- AC_CHECK_LIB([pam], [pam_set_item], [], [{ { echo "$as_me:$LINENO: error: *** libpam missing" >&5
714echo "$as_me: error: *** libpam missing" >&2;}
715 { (exit 1); exit 1; }; }])
716m4trace:configure.ac:757: -1- AH_OUTPUT([HAVE_LIBPAM], [/* Define to 1 if you have the `pam\' library (-lpam). */
717#undef HAVE_LIBPAM])
718m4trace:configure.ac:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPAM])
719m4trace:configure.ac:757: -1- AC_CHECK_FUNCS([pam_getenvlist])
720m4trace:configure.ac:757: -1- AH_OUTPUT([HAVE_PAM_GETENVLIST], [/* Define to 1 if you have the `pam_getenvlist\' function. */
721#undef HAVE_PAM_GETENVLIST])
722m4trace:configure.ac:757: -1- AC_DEFINE_TRACE_LITERAL([USE_PAM])
723m4trace:configure.ac:757: -1- AC_SUBST([LIBPAM])
724m4trace:configure.ac:775: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OLD_PAM])
725m4trace:configure.ac:781: -1- AC_CHECK_LIB([crypt], [crypt])
726m4trace:configure.ac:781: -1- AH_OUTPUT([HAVE_LIBCRYPT], [/* Define to 1 if you have the `crypt\' library (-lcrypt). */
727#undef HAVE_LIBCRYPT])
728m4trace:configure.ac:781: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBCRYPT])
729m4trace:configure.ac:813: -2- AC_DEFINE_TRACE_LITERAL([HAVE_OPENSSL])
730m4trace:configure.ac:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_OPENSSL])
731m4trace:configure.ac:915: -1- AC_CHECK_LIB([crypt], [crypt], [LIBS="$LIBS -lcrypt"])
732m4trace:configure.ac:963: -1- AC_DEFINE_TRACE_LITERAL([OPENSSL_PRNG_ONLY])
733m4trace:configure.ac:971: -1- AC_SUBST([INSTALL_SSH_RAND_HELPER])
734m4trace:configure.ac:994: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_PORT])
735m4trace:configure.ac:1044: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_SOCKET])
736m4trace:configure.ac:1044: -1- AC_DEFINE_TRACE_LITERAL([PRNGD_SOCKET])
737m4trace:configure.ac:1056: -1- AC_DEFINE_TRACE_LITERAL([ENTROPY_TIMEOUT_MSEC])
738m4trace:configure.ac:1067: -1- AC_DEFINE_TRACE_LITERAL([SSH_PRIVSEP_USER])
739m4trace:configure.ac:1068: -1- AC_SUBST([SSH_PRIVSEP_USER])
740m4trace:configure.ac:1085: -1- AC_SUBST([PROG_LS], [$ac_cv_path_PROG_LS])
741m4trace:configure.ac:1085: -1- AC_SUBST([PROG_LS])
742m4trace:configure.ac:1086: -1- AC_SUBST([PROG_NETSTAT], [$ac_cv_path_PROG_NETSTAT])
743m4trace:configure.ac:1086: -1- AC_SUBST([PROG_NETSTAT])
744m4trace:configure.ac:1087: -1- AC_SUBST([PROG_ARP], [$ac_cv_path_PROG_ARP])
745m4trace:configure.ac:1087: -1- AC_SUBST([PROG_ARP])
746m4trace:configure.ac:1088: -1- AC_SUBST([PROG_IFCONFIG], [$ac_cv_path_PROG_IFCONFIG])
747m4trace:configure.ac:1088: -1- AC_SUBST([PROG_IFCONFIG])
748m4trace:configure.ac:1089: -1- AC_SUBST([PROG_JSTAT], [$ac_cv_path_PROG_JSTAT])
749m4trace:configure.ac:1089: -1- AC_SUBST([PROG_JSTAT])
750m4trace:configure.ac:1090: -1- AC_SUBST([PROG_PS], [$ac_cv_path_PROG_PS])
751m4trace:configure.ac:1090: -1- AC_SUBST([PROG_PS])
752m4trace:configure.ac:1091: -1- AC_SUBST([PROG_SAR], [$ac_cv_path_PROG_SAR])
753m4trace:configure.ac:1091: -1- AC_SUBST([PROG_SAR])
754m4trace:configure.ac:1092: -1- AC_SUBST([PROG_W], [$ac_cv_path_PROG_W])
755m4trace:configure.ac:1092: -1- AC_SUBST([PROG_W])
756m4trace:configure.ac:1093: -1- AC_SUBST([PROG_WHO], [$ac_cv_path_PROG_WHO])
757m4trace:configure.ac:1093: -1- AC_SUBST([PROG_WHO])
758m4trace:configure.ac:1094: -1- AC_SUBST([PROG_LAST], [$ac_cv_path_PROG_LAST])
759m4trace:configure.ac:1094: -1- AC_SUBST([PROG_LAST])
760m4trace:configure.ac:1095: -1- AC_SUBST([PROG_LASTLOG], [$ac_cv_path_PROG_LASTLOG])
761m4trace:configure.ac:1095: -1- AC_SUBST([PROG_LASTLOG])
762m4trace:configure.ac:1096: -1- AC_SUBST([PROG_DF], [$ac_cv_path_PROG_DF])
763m4trace:configure.ac:1096: -1- AC_SUBST([PROG_DF])
764m4trace:configure.ac:1097: -1- AC_SUBST([PROG_VMSTAT], [$ac_cv_path_PROG_VMSTAT])
765m4trace:configure.ac:1097: -1- AC_SUBST([PROG_VMSTAT])
766m4trace:configure.ac:1098: -1- AC_SUBST([PROG_UPTIME], [$ac_cv_path_PROG_UPTIME])
767m4trace:configure.ac:1098: -1- AC_SUBST([PROG_UPTIME])
768m4trace:configure.ac:1099: -1- AC_SUBST([PROG_IPCS], [$ac_cv_path_PROG_IPCS])
769m4trace:configure.ac:1099: -1- AC_SUBST([PROG_IPCS])
770m4trace:configure.ac:1100: -1- AC_SUBST([PROG_TAIL], [$ac_cv_path_PROG_TAIL])
771m4trace:configure.ac:1100: -1- AC_SUBST([PROG_TAIL])
772m4trace:configure.ac:1117: -1- AC_SUBST([INSTALL_SSH_PRNG_CMDS])
773m4trace:configure.ac:1126: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR])
774m4trace:configure.ac:1126: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */
775#undef SIZEOF_CHAR])
776m4trace:configure.ac:1127: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT_INT])
777m4trace:configure.ac:1127: -1- AH_OUTPUT([SIZEOF_SHORT_INT], [/* The size of a `short int\', as computed by sizeof. */
778#undef SIZEOF_SHORT_INT])
779m4trace:configure.ac:1128: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT])
780m4trace:configure.ac:1128: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */
781#undef SIZEOF_INT])
782m4trace:configure.ac:1129: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_INT])
783m4trace:configure.ac:1129: -1- AH_OUTPUT([SIZEOF_LONG_INT], [/* The size of a `long int\', as computed by sizeof. */
784#undef SIZEOF_LONG_INT])
785m4trace:configure.ac:1130: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG_INT])
786m4trace:configure.ac:1130: -1- AH_OUTPUT([SIZEOF_LONG_LONG_INT], [/* The size of a `long long int\', as computed by sizeof. */
787#undef SIZEOF_LONG_LONG_INT])
788m4trace:configure.ac:1147: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT])
789m4trace:configure.ac:1160: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
790m4trace:configure.ac:1176: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
791m4trace:configure.ac:1197: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INT64_T])
792m4trace:configure.ac:1209: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
793m4trace:configure.ac:1223: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
794m4trace:configure.ac:1235: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT64_T])
795m4trace:configure.ac:1249: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INT64_T])
796m4trace:configure.ac:1264: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTXX_T])
797m4trace:configure.ac:1278: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTXX_T])
798m4trace:configure.ac:1300: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_INTXX_T])
799m4trace:configure.ac:1300: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTXX_T])
800m4trace:configure.ac:1315: -1- AC_DEFINE_TRACE_LITERAL([HAVE_U_CHAR])
801m4trace:configure.ac:1318: -1- AC_DEFINE_TRACE_LITERAL([socklen_t])
802m4trace:configure.ac:1318: -1- AH_OUTPUT([socklen_t], [/* type to use in place of socklen_t if not defined */
803#undef socklen_t])
804m4trace:configure.ac:1320: -1- AC_CHECK_TYPES([sig_atomic_t], [], [], [#include <signal.h>])
805m4trace:configure.ac:1320: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIG_ATOMIC_T])
806m4trace:configure.ac:1320: -1- AH_OUTPUT([HAVE_SIG_ATOMIC_T], [/* Define to 1 if the system has the type `sig_atomic_t\'. */
807#undef HAVE_SIG_ATOMIC_T])
808m4trace:configure.ac:1333: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIZE_T])
809m4trace:configure.ac:1347: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SSIZE_T])
810m4trace:configure.ac:1361: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_T])
811m4trace:configure.ac:1386: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SA_FAMILY_T])
812m4trace:configure.ac:1400: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PID_T])
813m4trace:configure.ac:1414: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MODE_T])
814m4trace:configure.ac:1430: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_SOCKADDR_STORAGE])
815m4trace:configure.ac:1445: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_SOCKADDR_IN6])
816m4trace:configure.ac:1460: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_IN6_ADDR])
817m4trace:configure.ac:1476: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_ADDRINFO])
818m4trace:configure.ac:1488: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEVAL])
819m4trace:configure.ac:1492: -1- AC_CHECK_TYPES([struct timespec])
820m4trace:configure.ac:1492: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC])
821m4trace:configure.ac:1492: -1- AH_OUTPUT([HAVE_STRUCT_TIMESPEC], [/* Define to 1 if the system has the type `struct timespec\'. */
822#undef HAVE_STRUCT_TIMESPEC])
823m4trace:configure.ac:1529: -1- AC_DEFINE_TRACE_LITERAL([BROKEN_SNPRINTF])
824m4trace:configure.ac:1533: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HOST_IN_UTMP])
825m4trace:configure.ac:1534: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HOST_IN_UTMPX])
826m4trace:configure.ac:1535: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYSLEN_IN_UTMPX])
827m4trace:configure.ac:1536: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PID_IN_UTMP])
828m4trace:configure.ac:1537: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TYPE_IN_UTMP])
829m4trace:configure.ac:1538: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TYPE_IN_UTMPX])
830m4trace:configure.ac:1539: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TV_IN_UTMP])
831m4trace:configure.ac:1540: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ID_IN_UTMP])
832m4trace:configure.ac:1541: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ID_IN_UTMPX])
833m4trace:configure.ac:1542: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_IN_UTMP])
834m4trace:configure.ac:1543: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_IN_UTMPX])
835m4trace:configure.ac:1544: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_V6_IN_UTMP])
836m4trace:configure.ac:1545: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ADDR_V6_IN_UTMPX])
837m4trace:configure.ac:1546: -1- AC_DEFINE_TRACE_LITERAL([HAVE_EXIT_IN_UTMP])
838m4trace:configure.ac:1547: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIME_IN_UTMP])
839m4trace:configure.ac:1548: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIME_IN_UTMPX])
840m4trace:configure.ac:1549: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TV_IN_UTMPX])
841m4trace:configure.ac:1551: -1- AC_CHECK_MEMBERS([struct stat.st_blksize])
842m4trace:configure.ac:1551: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLKSIZE])
843m4trace:configure.ac:1551: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLKSIZE], [/* Define to 1 if `st_blksize\' is member of `struct stat\'. */
844#undef HAVE_STRUCT_STAT_ST_BLKSIZE])
845m4trace:configure.ac:1566: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SS_FAMILY_IN_SS])
846m4trace:configure.ac:1582: -1- AC_DEFINE_TRACE_LITERAL([HAVE___SS_FAMILY_IN_SS])
847m4trace:configure.ac:1597: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_CLASS_IN_PASSWD])
848m4trace:configure.ac:1612: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_EXPIRE_IN_PASSWD])
849m4trace:configure.ac:1627: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PW_CHANGE_IN_PASSWD])
850m4trace:configure.ac:1652: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ACCRIGHTS_IN_MSGHDR])
851m4trace:configure.ac:1676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CONTROL_IN_MSGHDR])
852m4trace:configure.ac:1687: -1- AC_DEFINE_TRACE_LITERAL([HAVE___PROGNAME])
853m4trace:configure.ac:1700: -1- AC_DEFINE_TRACE_LITERAL([HAVE___FUNCTION__])
854m4trace:configure.ac:1713: -1- AC_DEFINE_TRACE_LITERAL([HAVE___func__])
855m4trace:configure.ac:1728: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_OPTRESET])
856m4trace:configure.ac:1739: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST])
857m4trace:configure.ac:1751: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_NERR])
858m4trace:configure.ac:1784: -1- AC_CHECK_HEADERS([sectok.h])
859m4trace:configure.ac:1784: -1- AH_OUTPUT([HAVE_SECTOK_H], [/* Define to 1 if you have the <sectok.h> header file. */
860#undef HAVE_SECTOK_H])
861m4trace:configure.ac:1784: -1- AC_CHECK_LIB([sectok], [sectok_open])
862m4trace:configure.ac:1784: -1- AH_OUTPUT([HAVE_LIBSECTOK], [/* Define to 1 if you have the `sectok\' library (-lsectok). */
863#undef HAVE_LIBSECTOK])
864m4trace:configure.ac:1784: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSECTOK])
865m4trace:configure.ac:1784: -1- AC_DEFINE_TRACE_LITERAL([SMARTCARD])
866m4trace:configure.ac:1784: -1- AC_DEFINE_TRACE_LITERAL([USE_SECTOK])
867m4trace:configure.ac:1793: -1- AC_SUBST([OPENSC_CONFIG], [$ac_cv_path_OPENSC_CONFIG])
868m4trace:configure.ac:1799: -1- AC_DEFINE_TRACE_LITERAL([SMARTCARD])
869m4trace:configure.ac:1800: -1- AC_DEFINE_TRACE_LITERAL([USE_OPENSC])
870m4trace:configure.ac:1842: -1- AC_DEFINE_TRACE_LITERAL([KRB5])
871m4trace:configure.ac:1842: -1- AC_DEFINE_TRACE_LITERAL([HEIMDAL])
872m4trace:configure.ac:1842: -1- AC_CHECK_LIB([resolv], [dn_expand], [], [])
873m4trace:configure.ac:1842: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the `resolv\' library (-lresolv). */
874#undef HAVE_LIBRESOLV])
875m4trace:configure.ac:1842: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
876m4trace:configure.ac:1896: -1- AC_CHECK_HEADERS([krb.h])
877m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_KRB_H], [/* Define to 1 if you have the <krb.h> header file. */
878#undef HAVE_KRB_H])
879m4trace:configure.ac:1896: -1- AC_CHECK_LIB([krb], [main])
880m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_LIBKRB], [/* Define to 1 if you have the `krb\' library (-lkrb). */
881#undef HAVE_LIBKRB])
882m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBKRB])
883m4trace:configure.ac:1896: -1- AC_CHECK_LIB([krb4], [main])
884m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_LIBKRB4], [/* Define to 1 if you have the `krb4\' library (-lkrb4). */
885#undef HAVE_LIBKRB4])
886m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBKRB4])
887m4trace:configure.ac:1896: -1- AC_CHECK_LIB([des], [des_cbc_encrypt])
888m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_LIBDES], [/* Define to 1 if you have the `des\' library (-ldes). */
889#undef HAVE_LIBDES])
890m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDES])
891m4trace:configure.ac:1896: -1- AC_CHECK_LIB([des425], [des_cbc_encrypt])
892m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_LIBDES425], [/* Define to 1 if you have the `des425\' library (-ldes425). */
893#undef HAVE_LIBDES425])
894m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDES425])
895m4trace:configure.ac:1896: -1- AC_CHECK_LIB([resolv], [dn_expand], [], [])
896m4trace:configure.ac:1896: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the `resolv\' library (-lresolv). */
897#undef HAVE_LIBRESOLV])
898m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
899m4trace:configure.ac:1896: -1- AC_DEFINE_TRACE_LITERAL([KRB4])
900m4trace:configure.ac:1922: -1- AC_DEFINE_TRACE_LITERAL([AFS])
901m4trace:configure.ac:1936: -1- AC_SUBST([PRIVSEP_PATH])
902m4trace:configure.ac:1956: -1- AC_SUBST([xauth_path], [$ac_cv_path_xauth_path])
903m4trace:configure.ac:1967: -1- AC_SUBST([STRIP_OPT])
904m4trace:configure.ac:1971: -1- AC_SUBST([XAUTH_PATH])
905m4trace:configure.ac:1973: -1- AC_DEFINE_TRACE_LITERAL([XAUTH_PATH])
906m4trace:configure.ac:1975: -1- AC_SUBST([XAUTH_PATH])
907m4trace:configure.ac:1981: -1- AC_DEFINE_TRACE_LITERAL([MAIL_DIRECTORY])
908m4trace:configure.ac:1991: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_PTMX])
909m4trace:configure.ac:1999: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_PTS_AND_PTC])
910m4trace:configure.ac:2017: -1- AC_SUBST([NROFF], [$ac_cv_path_NROFF])
911m4trace:configure.ac:2026: -1- AC_SUBST([MANTYPE])
912m4trace:configure.ac:2032: -1- AC_SUBST([mansubdir])
913m4trace:configure.ac:2044: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MD5_PASSWORDS])
914m4trace:configure.ac:2055: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_SHADOW])
915m4trace:configure.ac:2070: -1- AC_DEFINE_TRACE_LITERAL([HAS_SHADOW_EXPIRE])
916m4trace:configure.ac:2079: -1- AC_DEFINE_TRACE_LITERAL([IPADDR_IN_DISPLAY])
917m4trace:configure.ac:2090: -1- AC_DEFINE_TRACE_LITERAL([IPADDR_IN_DISPLAY])
918m4trace:configure.ac:2171: -1- AC_DEFINE_TRACE_LITERAL([USER_PATH])
919m4trace:configure.ac:2172: -1- AC_SUBST([user_path])
920m4trace:configure.ac:2184: -1- AC_DEFINE_TRACE_LITERAL([SUPERUSER_PATH])
921m4trace:configure.ac:2197: -1- AC_DEFINE_TRACE_LITERAL([IPV4_DEFAULT])
922m4trace:configure.ac:2220: -1- AC_DEFINE_TRACE_LITERAL([IPV4_IN_IPV6])
923m4trace:configure.ac:2220: -1- AC_DEFINE_TRACE_LITERAL([IPV4_IN_IPV6])
924m4trace:configure.ac:2232: -1- AC_DEFINE_TRACE_LITERAL([BSD_AUTH])
925m4trace:configure.ac:2256: -1- AC_DEFINE_TRACE_LITERAL([_PATH_SSH_PIDDIR])
926m4trace:configure.ac:2257: -1- AC_SUBST([piddir])
927m4trace:configure.ac:2263: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
928m4trace:configure.ac:2267: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
929m4trace:configure.ac:2271: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMPX])
930m4trace:configure.ac:2275: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
931m4trace:configure.ac:2279: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMPX])
932m4trace:configure.ac:2283: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LOGIN])
933m4trace:configure.ac:2287: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_PUTUTLINE])
934m4trace:configure.ac:2291: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_PUTUTXLINE])
935m4trace:configure.ac:2301: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_LASTLOG])
936m4trace:configure.ac:2363: -1- AC_DEFINE_TRACE_LITERAL([CONF_LASTLOG_FILE])
937m4trace:configure.ac:2388: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMP])
938m4trace:configure.ac:2393: -1- AC_DEFINE_TRACE_LITERAL([CONF_UTMP_FILE])
939m4trace:configure.ac:2418: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMP])
940m4trace:configure.ac:2423: -1- AC_DEFINE_TRACE_LITERAL([CONF_WTMP_FILE])
941m4trace:configure.ac:2448: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_UTMPX])
942m4trace:configure.ac:2451: -1- AC_DEFINE_TRACE_LITERAL([CONF_UTMPX_FILE])
943m4trace:configure.ac:2473: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_WTMPX])
944m4trace:configure.ac:2476: -1- AC_DEFINE_TRACE_LITERAL([CONF_WTMPX_FILE])
945m4trace:configure.ac:2494: -1- AC_CONFIG_FILES([Makefile openbsd-compat/Makefile scard/Makefile ssh_prng_cmds])
946m4trace:configure.ac:2495: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
947m4trace:configure.ac:2495: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
diff --git a/bufaux.h b/bufaux.h
deleted file mode 100644
index f5efaed3e..000000000
--- a/bufaux.h
+++ /dev/null
@@ -1,55 +0,0 @@
1/* $OpenBSD: bufaux.h,v 1.21 2005/03/10 22:01:05 deraadt Exp $ */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose. Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15#ifndef BUFAUX_H
16#define BUFAUX_H
17
18#include "buffer.h"
19#include <openssl/bn.h>
20
21void buffer_put_bignum(Buffer *, const BIGNUM *);
22void buffer_put_bignum2(Buffer *, const BIGNUM *);
23void buffer_get_bignum(Buffer *, BIGNUM *);
24void buffer_get_bignum2(Buffer *, BIGNUM *);
25
26u_short buffer_get_short(Buffer *);
27void buffer_put_short(Buffer *, u_short);
28
29u_int buffer_get_int(Buffer *);
30void buffer_put_int(Buffer *, u_int);
31
32u_int64_t buffer_get_int64(Buffer *);
33void buffer_put_int64(Buffer *, u_int64_t);
34
35int buffer_get_char(Buffer *);
36void buffer_put_char(Buffer *, int);
37
38void *buffer_get_string(Buffer *, u_int *);
39void buffer_put_string(Buffer *, const void *, u_int);
40void buffer_put_cstring(Buffer *, const char *);
41
42#define buffer_skip_string(b) \
43 do { u_int l = buffer_get_int(b); buffer_consume(b, l); } while (0)
44
45int buffer_put_bignum_ret(Buffer *, const BIGNUM *);
46int buffer_get_bignum_ret(Buffer *, BIGNUM *);
47int buffer_put_bignum2_ret(Buffer *, const BIGNUM *);
48int buffer_get_bignum2_ret(Buffer *, BIGNUM *);
49int buffer_get_short_ret(u_short *, Buffer *);
50int buffer_get_int_ret(u_int *, Buffer *);
51int buffer_get_int64_ret(u_int64_t *, Buffer *);
52void *buffer_get_string_ret(Buffer *, u_int *);
53int buffer_get_char_ret(char *, Buffer *);
54
55#endif /* BUFAUX_H */
diff --git a/canohost.c b/canohost.c
index 42011fd0a..7138f48d0 100644
--- a/canohost.c
+++ b/canohost.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: canohost.c,v 1.63 2008/06/12 00:03:49 dtucker Exp $ */ 1/* $OpenBSD: canohost.c,v 1.64 2009/02/12 03:00:56 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -342,7 +342,7 @@ get_remote_name_or_ip(u_int utmp_len, int use_dns)
342 342
343/* Returns the local/remote port for the socket. */ 343/* Returns the local/remote port for the socket. */
344 344
345static int 345int
346get_sock_port(int sock, int local) 346get_sock_port(int sock, int local)
347{ 347{
348 struct sockaddr_storage from; 348 struct sockaddr_storage from;
diff --git a/canohost.h b/canohost.h
index e33e8941b..d9b41ffe5 100644
--- a/canohost.h
+++ b/canohost.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: canohost.h,v 1.9 2006/03/25 22:22:42 djm Exp $ */ 1/* $OpenBSD: canohost.h,v 1.10 2009/02/12 03:00:56 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -23,5 +23,7 @@ char *get_local_name(int);
23 23
24int get_remote_port(void); 24int get_remote_port(void);
25int get_local_port(void); 25int get_local_port(void);
26int get_sock_port(int, int);
27
26 28
27void ipv64_normalise_mapped(struct sockaddr_storage *, socklen_t *); 29void ipv64_normalise_mapped(struct sockaddr_storage *, socklen_t *);
diff --git a/channels.c b/channels.c
index 69c99c9b2..dea60ba24 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.c,v 1.286 2008/07/16 11:52:19 djm Exp $ */ 1/* $OpenBSD: channels.c,v 1.295 2009/02/12 03:00:56 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -296,6 +296,7 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd,
296 buffer_init(&c->input); 296 buffer_init(&c->input);
297 buffer_init(&c->output); 297 buffer_init(&c->output);
298 buffer_init(&c->extended); 298 buffer_init(&c->extended);
299 c->path = NULL;
299 c->ostate = CHAN_OUTPUT_OPEN; 300 c->ostate = CHAN_OUTPUT_OPEN;
300 c->istate = CHAN_INPUT_OPEN; 301 c->istate = CHAN_INPUT_OPEN;
301 c->flags = 0; 302 c->flags = 0;
@@ -402,6 +403,10 @@ channel_free(Channel *c)
402 xfree(c->remote_name); 403 xfree(c->remote_name);
403 c->remote_name = NULL; 404 c->remote_name = NULL;
404 } 405 }
406 if (c->path) {
407 xfree(c->path);
408 c->path = NULL;
409 }
405 while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) { 410 while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) {
406 if (cc->abandon_cb != NULL) 411 if (cc->abandon_cb != NULL)
407 cc->abandon_cb(c, cc->ctx); 412 cc->abandon_cb(c, cc->ctx);
@@ -691,7 +696,7 @@ channel_register_open_confirm(int id, channel_callback_fn *fn, void *ctx)
691 Channel *c = channel_lookup(id); 696 Channel *c = channel_lookup(id);
692 697
693 if (c == NULL) { 698 if (c == NULL) {
694 logit("channel_register_open_comfirm: %d: bad id", id); 699 logit("channel_register_open_confirm: %d: bad id", id);
695 return; 700 return;
696 } 701 }
697 c->open_confirm = fn; 702 c->open_confirm = fn;
@@ -980,7 +985,7 @@ static int
980channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) 985channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset)
981{ 986{
982 char *p, *host; 987 char *p, *host;
983 u_int len, have, i, found; 988 u_int len, have, i, found, need;
984 char username[256]; 989 char username[256];
985 struct { 990 struct {
986 u_int8_t version; 991 u_int8_t version;
@@ -996,10 +1001,20 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset)
996 if (have < len) 1001 if (have < len)
997 return 0; 1002 return 0;
998 p = buffer_ptr(&c->input); 1003 p = buffer_ptr(&c->input);
1004
1005 need = 1;
1006 /* SOCKS4A uses an invalid IP address 0.0.0.x */
1007 if (p[4] == 0 && p[5] == 0 && p[6] == 0 && p[7] != 0) {
1008 debug2("channel %d: socks4a request", c->self);
1009 /* ... and needs an extra string (the hostname) */
1010 need = 2;
1011 }
1012 /* Check for terminating NUL on the string(s) */
999 for (found = 0, i = len; i < have; i++) { 1013 for (found = 0, i = len; i < have; i++) {
1000 if (p[i] == '\0') { 1014 if (p[i] == '\0') {
1001 found = 1; 1015 found++;
1002 break; 1016 if (found == need)
1017 break;
1003 } 1018 }
1004 if (i > 1024) { 1019 if (i > 1024) {
1005 /* the peer is probably sending garbage */ 1020 /* the peer is probably sending garbage */
@@ -1008,7 +1023,7 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset)
1008 return -1; 1023 return -1;
1009 } 1024 }
1010 } 1025 }
1011 if (!found) 1026 if (found < need)
1012 return 0; 1027 return 0;
1013 buffer_get(&c->input, (char *)&s4_req.version, 1); 1028 buffer_get(&c->input, (char *)&s4_req.version, 1);
1014 buffer_get(&c->input, (char *)&s4_req.command, 1); 1029 buffer_get(&c->input, (char *)&s4_req.command, 1);
@@ -1018,23 +1033,46 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset)
1018 p = buffer_ptr(&c->input); 1033 p = buffer_ptr(&c->input);
1019 len = strlen(p); 1034 len = strlen(p);
1020 debug2("channel %d: decode socks4: user %s/%d", c->self, p, len); 1035 debug2("channel %d: decode socks4: user %s/%d", c->self, p, len);
1036 len++; /* trailing '\0' */
1021 if (len > have) 1037 if (len > have)
1022 fatal("channel %d: decode socks4: len %d > have %d", 1038 fatal("channel %d: decode socks4: len %d > have %d",
1023 c->self, len, have); 1039 c->self, len, have);
1024 strlcpy(username, p, sizeof(username)); 1040 strlcpy(username, p, sizeof(username));
1025 buffer_consume(&c->input, len); 1041 buffer_consume(&c->input, len);
1026 buffer_consume(&c->input, 1); /* trailing '\0' */
1027 1042
1028 host = inet_ntoa(s4_req.dest_addr); 1043 if (c->path != NULL) {
1029 strlcpy(c->path, host, sizeof(c->path)); 1044 xfree(c->path);
1045 c->path = NULL;
1046 }
1047 if (need == 1) { /* SOCKS4: one string */
1048 host = inet_ntoa(s4_req.dest_addr);
1049 c->path = xstrdup(host);
1050 } else { /* SOCKS4A: two strings */
1051 have = buffer_len(&c->input);
1052 p = buffer_ptr(&c->input);
1053 len = strlen(p);
1054 debug2("channel %d: decode socks4a: host %s/%d",
1055 c->self, p, len);
1056 len++; /* trailing '\0' */
1057 if (len > have)
1058 fatal("channel %d: decode socks4a: len %d > have %d",
1059 c->self, len, have);
1060 if (len > NI_MAXHOST) {
1061 error("channel %d: hostname \"%.100s\" too long",
1062 c->self, p);
1063 return -1;
1064 }
1065 c->path = xstrdup(p);
1066 buffer_consume(&c->input, len);
1067 }
1030 c->host_port = ntohs(s4_req.dest_port); 1068 c->host_port = ntohs(s4_req.dest_port);
1031 1069
1032 debug2("channel %d: dynamic request: socks4 host %s port %u command %u", 1070 debug2("channel %d: dynamic request: socks4 host %s port %u command %u",
1033 c->self, host, c->host_port, s4_req.command); 1071 c->self, c->path, c->host_port, s4_req.command);
1034 1072
1035 if (s4_req.command != 1) { 1073 if (s4_req.command != 1) {
1036 debug("channel %d: cannot handle: socks4 cn %d", 1074 debug("channel %d: cannot handle: %s cn %d",
1037 c->self, s4_req.command); 1075 c->self, need == 1 ? "SOCKS4" : "SOCKS4A", s4_req.command);
1038 return -1; 1076 return -1;
1039 } 1077 }
1040 s4_rsp.version = 0; /* vn: 0 for reply */ 1078 s4_rsp.version = 0; /* vn: 0 for reply */
@@ -1065,7 +1103,7 @@ channel_decode_socks5(Channel *c, fd_set *readset, fd_set *writeset)
1065 u_int8_t atyp; 1103 u_int8_t atyp;
1066 } s5_req, s5_rsp; 1104 } s5_req, s5_rsp;
1067 u_int16_t dest_port; 1105 u_int16_t dest_port;
1068 u_char *p, dest_addr[255+1]; 1106 u_char *p, dest_addr[255+1], ntop[INET6_ADDRSTRLEN];
1069 u_int have, need, i, found, nmethods, addrlen, af; 1107 u_int have, need, i, found, nmethods, addrlen, af;
1070 1108
1071 debug2("channel %d: decode socks5", c->self); 1109 debug2("channel %d: decode socks5", c->self);
@@ -1138,10 +1176,22 @@ channel_decode_socks5(Channel *c, fd_set *readset, fd_set *writeset)
1138 buffer_get(&c->input, (char *)&dest_addr, addrlen); 1176 buffer_get(&c->input, (char *)&dest_addr, addrlen);
1139 buffer_get(&c->input, (char *)&dest_port, 2); 1177 buffer_get(&c->input, (char *)&dest_port, 2);
1140 dest_addr[addrlen] = '\0'; 1178 dest_addr[addrlen] = '\0';
1141 if (s5_req.atyp == SSH_SOCKS5_DOMAIN) 1179 if (c->path != NULL) {
1142 strlcpy(c->path, (char *)dest_addr, sizeof(c->path)); 1180 xfree(c->path);
1143 else if (inet_ntop(af, dest_addr, c->path, sizeof(c->path)) == NULL) 1181 c->path = NULL;
1144 return -1; 1182 }
1183 if (s5_req.atyp == SSH_SOCKS5_DOMAIN) {
1184 if (addrlen >= NI_MAXHOST) {
1185 error("channel %d: dynamic request: socks5 hostname "
1186 "\"%.100s\" too long", c->self, dest_addr);
1187 return -1;
1188 }
1189 c->path = xstrdup(dest_addr);
1190 } else {
1191 if (inet_ntop(af, dest_addr, ntop, sizeof(ntop)) == NULL)
1192 return -1;
1193 c->path = xstrdup(ntop);
1194 }
1145 c->host_port = ntohs(dest_port); 1195 c->host_port = ntohs(dest_port);
1146 1196
1147 debug2("channel %d: dynamic request: socks5 host %s port %u command %u", 1197 debug2("channel %d: dynamic request: socks5 host %s port %u command %u",
@@ -1370,7 +1420,8 @@ channel_post_port_listener(Channel *c, fd_set *readset, fd_set *writeset)
1370 c->local_window_max, c->local_maxpacket, 0, rtype, 1); 1420 c->local_window_max, c->local_maxpacket, 0, rtype, 1);
1371 nc->listening_port = c->listening_port; 1421 nc->listening_port = c->listening_port;
1372 nc->host_port = c->host_port; 1422 nc->host_port = c->host_port;
1373 strlcpy(nc->path, c->path, sizeof(nc->path)); 1423 if (c->path != NULL)
1424 nc->path = xstrdup(c->path);
1374 1425
1375 if (nextstate == SSH_CHANNEL_DYNAMIC) { 1426 if (nextstate == SSH_CHANNEL_DYNAMIC) {
1376 /* 1427 /*
@@ -2311,8 +2362,8 @@ channel_input_open_failure(int type, u_int32_t seq, void *ctxt)
2311 xfree(lang); 2362 xfree(lang);
2312 } 2363 }
2313 packet_check_eom(); 2364 packet_check_eom();
2314 /* Free the channel. This will also close the socket. */ 2365 /* Schedule the channel for cleanup/deletion. */
2315 channel_free(c); 2366 chan_mark_dead(c);
2316} 2367}
2317 2368
2318/* ARGSUSED */ 2369/* ARGSUSED */
@@ -2377,18 +2428,18 @@ channel_input_status_confirm(int type, u_int32_t seq, void *ctxt)
2377{ 2428{
2378 Channel *c; 2429 Channel *c;
2379 struct channel_confirm *cc; 2430 struct channel_confirm *cc;
2380 int remote_id; 2431 int id;
2381 2432
2382 /* Reset keepalive timeout */ 2433 /* Reset keepalive timeout */
2383 keep_alive_timeouts = 0; 2434 keep_alive_timeouts = 0;
2384 2435
2385 remote_id = packet_get_int(); 2436 id = packet_get_int();
2386 packet_check_eom(); 2437 packet_check_eom();
2387 2438
2388 debug2("channel_input_confirm: type %d id %d", type, remote_id); 2439 debug2("channel_input_status_confirm: type %d id %d", type, id);
2389 2440
2390 if ((c = channel_lookup(remote_id)) == NULL) { 2441 if ((c = channel_lookup(id)) == NULL) {
2391 logit("channel_input_success_failure: %d: unknown", remote_id); 2442 logit("channel_input_status_confirm: %d: unknown", id);
2392 return; 2443 return;
2393 } 2444 }
2394 ; 2445 ;
@@ -2409,7 +2460,8 @@ channel_set_af(int af)
2409} 2460}
2410 2461
2411static int 2462static int
2412channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_port, 2463channel_setup_fwd_listener(int type, const char *listen_addr,
2464 u_short listen_port, int *allocated_listen_port,
2413 const char *host_to_connect, u_short port_to_connect, int gateway_ports) 2465 const char *host_to_connect, u_short port_to_connect, int gateway_ports)
2414{ 2466{
2415 Channel *c; 2467 Channel *c;
@@ -2417,6 +2469,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2417 struct addrinfo hints, *ai, *aitop; 2469 struct addrinfo hints, *ai, *aitop;
2418 const char *host, *addr; 2470 const char *host, *addr;
2419 char ntop[NI_MAXHOST], strport[NI_MAXSERV]; 2471 char ntop[NI_MAXHOST], strport[NI_MAXSERV];
2472 in_port_t *lport_p;
2420 2473
2421 host = (type == SSH_CHANNEL_RPORT_LISTENER) ? 2474 host = (type == SSH_CHANNEL_RPORT_LISTENER) ?
2422 listen_addr : host_to_connect; 2475 listen_addr : host_to_connect;
@@ -2426,7 +2479,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2426 error("No forward host name."); 2479 error("No forward host name.");
2427 return 0; 2480 return 0;
2428 } 2481 }
2429 if (strlen(host) > SSH_CHANNEL_PATH_LEN - 1) { 2482 if (strlen(host) >= NI_MAXHOST) {
2430 error("Forward host name too long."); 2483 error("Forward host name too long.");
2431 return 0; 2484 return 0;
2432 } 2485 }
@@ -2485,10 +2538,29 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2485 } 2538 }
2486 return 0; 2539 return 0;
2487 } 2540 }
2488 2541 if (allocated_listen_port != NULL)
2542 *allocated_listen_port = 0;
2489 for (ai = aitop; ai; ai = ai->ai_next) { 2543 for (ai = aitop; ai; ai = ai->ai_next) {
2490 if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6) 2544 switch (ai->ai_family) {
2545 case AF_INET:
2546 lport_p = &((struct sockaddr_in *)ai->ai_addr)->
2547 sin_port;
2548 break;
2549 case AF_INET6:
2550 lport_p = &((struct sockaddr_in6 *)ai->ai_addr)->
2551 sin6_port;
2552 break;
2553 default:
2491 continue; 2554 continue;
2555 }
2556 /*
2557 * If allocating a port for -R forwards, then use the
2558 * same port for all address families.
2559 */
2560 if (type == SSH_CHANNEL_RPORT_LISTENER && listen_port == 0 &&
2561 allocated_listen_port != NULL && *allocated_listen_port > 0)
2562 *lport_p = htons(*allocated_listen_port);
2563
2492 if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop), 2564 if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop),
2493 strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV) != 0) { 2565 strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2494 error("channel_setup_fwd_listener: getnameinfo failed"); 2566 error("channel_setup_fwd_listener: getnameinfo failed");
@@ -2504,7 +2576,8 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2504 2576
2505 channel_set_reuseaddr(sock); 2577 channel_set_reuseaddr(sock);
2506 2578
2507 debug("Local forwarding listening on %s port %s.", ntop, strport); 2579 debug("Local forwarding listening on %s port %s.",
2580 ntop, strport);
2508 2581
2509 /* Bind the socket to the address. */ 2582 /* Bind the socket to the address. */
2510 if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) { 2583 if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
@@ -2523,11 +2596,24 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2523 close(sock); 2596 close(sock);
2524 continue; 2597 continue;
2525 } 2598 }
2599
2600 /*
2601 * listen_port == 0 requests a dynamically allocated port -
2602 * record what we got.
2603 */
2604 if (type == SSH_CHANNEL_RPORT_LISTENER && listen_port == 0 &&
2605 allocated_listen_port != NULL &&
2606 *allocated_listen_port == 0) {
2607 *allocated_listen_port = get_sock_port(sock, 1);
2608 debug("Allocated listen port %d",
2609 *allocated_listen_port);
2610 }
2611
2526 /* Allocate a channel number for the socket. */ 2612 /* Allocate a channel number for the socket. */
2527 c = channel_new("port listener", type, sock, sock, -1, 2613 c = channel_new("port listener", type, sock, sock, -1,
2528 CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 2614 CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT,
2529 0, "port listener", 1); 2615 0, "port listener", 1);
2530 strlcpy(c->path, host, sizeof(c->path)); 2616 c->path = xstrdup(host);
2531 c->host_port = port_to_connect; 2617 c->host_port = port_to_connect;
2532 c->listening_port = listen_port; 2618 c->listening_port = listen_port;
2533 success = 1; 2619 success = 1;
@@ -2549,8 +2635,7 @@ channel_cancel_rport_listener(const char *host, u_short port)
2549 Channel *c = channels[i]; 2635 Channel *c = channels[i];
2550 2636
2551 if (c != NULL && c->type == SSH_CHANNEL_RPORT_LISTENER && 2637 if (c != NULL && c->type == SSH_CHANNEL_RPORT_LISTENER &&
2552 strncmp(c->path, host, sizeof(c->path)) == 0 && 2638 strcmp(c->path, host) == 0 && c->listening_port == port) {
2553 c->listening_port == port) {
2554 debug2("%s: close channel %d", __func__, i); 2639 debug2("%s: close channel %d", __func__, i);
2555 channel_free(c); 2640 channel_free(c);
2556 found = 1; 2641 found = 1;
@@ -2566,17 +2651,18 @@ channel_setup_local_fwd_listener(const char *listen_host, u_short listen_port,
2566 const char *host_to_connect, u_short port_to_connect, int gateway_ports) 2651 const char *host_to_connect, u_short port_to_connect, int gateway_ports)
2567{ 2652{
2568 return channel_setup_fwd_listener(SSH_CHANNEL_PORT_LISTENER, 2653 return channel_setup_fwd_listener(SSH_CHANNEL_PORT_LISTENER,
2569 listen_host, listen_port, host_to_connect, port_to_connect, 2654 listen_host, listen_port, NULL, host_to_connect, port_to_connect,
2570 gateway_ports); 2655 gateway_ports);
2571} 2656}
2572 2657
2573/* protocol v2 remote port fwd, used by sshd */ 2658/* protocol v2 remote port fwd, used by sshd */
2574int 2659int
2575channel_setup_remote_fwd_listener(const char *listen_address, 2660channel_setup_remote_fwd_listener(const char *listen_address,
2576 u_short listen_port, int gateway_ports) 2661 u_short listen_port, int *allocated_listen_port, int gateway_ports)
2577{ 2662{
2578 return channel_setup_fwd_listener(SSH_CHANNEL_RPORT_LISTENER, 2663 return channel_setup_fwd_listener(SSH_CHANNEL_RPORT_LISTENER,
2579 listen_address, listen_port, NULL, 0, gateway_ports); 2664 listen_address, listen_port, allocated_listen_port,
2665 NULL, 0, gateway_ports);
2580} 2666}
2581 2667
2582/* 2668/*
@@ -2791,10 +2877,16 @@ channel_print_adm_permitted_opens(void)
2791{ 2877{
2792 int i; 2878 int i;
2793 2879
2880 printf("permitopen");
2881 if (num_adm_permitted_opens == 0) {
2882 printf(" any\n");
2883 return;
2884 }
2794 for (i = 0; i < num_adm_permitted_opens; i++) 2885 for (i = 0; i < num_adm_permitted_opens; i++)
2795 if (permitted_adm_opens[i].host_to_connect != NULL) 2886 if (permitted_adm_opens[i].host_to_connect != NULL)
2796 printf(" %s:%d", permitted_adm_opens[i].host_to_connect, 2887 printf(" %s:%d", permitted_adm_opens[i].host_to_connect,
2797 permitted_adm_opens[i].port_to_connect); 2888 permitted_adm_opens[i].port_to_connect);
2889 printf("\n");
2798} 2890}
2799 2891
2800/* Try to start non-blocking connect to next host in cctx list */ 2892/* Try to start non-blocking connect to next host in cctx list */
@@ -3074,7 +3166,7 @@ x11_create_display_inet(int x11_display_offset, int x11_use_localhost,
3074} 3166}
3075 3167
3076static int 3168static int
3077connect_local_xsocket(u_int dnr) 3169connect_local_xsocket_path(const char *pathname)
3078{ 3170{
3079 int sock; 3171 int sock;
3080 struct sockaddr_un addr; 3172 struct sockaddr_un addr;
@@ -3084,7 +3176,7 @@ connect_local_xsocket(u_int dnr)
3084 error("socket: %.100s", strerror(errno)); 3176 error("socket: %.100s", strerror(errno));
3085 memset(&addr, 0, sizeof(addr)); 3177 memset(&addr, 0, sizeof(addr));
3086 addr.sun_family = AF_UNIX; 3178 addr.sun_family = AF_UNIX;
3087 snprintf(addr.sun_path, sizeof addr.sun_path, _PATH_UNIX_X, dnr); 3179 strlcpy(addr.sun_path, pathname, sizeof addr.sun_path);
3088 if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0) 3180 if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0)
3089 return sock; 3181 return sock;
3090 close(sock); 3182 close(sock);
@@ -3092,6 +3184,14 @@ connect_local_xsocket(u_int dnr)
3092 return -1; 3184 return -1;
3093} 3185}
3094 3186
3187static int
3188connect_local_xsocket(u_int dnr)
3189{
3190 char buf[1024];
3191 snprintf(buf, sizeof buf, _PATH_UNIX_X, dnr);
3192 return connect_local_xsocket_path(buf);
3193}
3194
3095int 3195int
3096x11_connect_display(void) 3196x11_connect_display(void)
3097{ 3197{
@@ -3113,6 +3213,17 @@ x11_connect_display(void)
3113 * connection to the real X server. 3213 * connection to the real X server.
3114 */ 3214 */
3115 3215
3216 /* Check if the display is from launchd. */
3217#ifdef __APPLE__
3218 if (strncmp(display, "/tmp/launch", 11) == 0) {
3219 sock = connect_local_xsocket_path(display);
3220 if (sock < 0)
3221 return -1;
3222
3223 /* OK, we now have a connection to the display. */
3224 return sock;
3225 }
3226#endif
3116 /* 3227 /*
3117 * Check if it is a unix domain socket. Unix domain displays are in 3228 * Check if it is a unix domain socket. Unix domain displays are in
3118 * one of the following formats: unix:d[.s], :d[.s], ::d[.s] 3229 * one of the following formats: unix:d[.s], :d[.s], ::d[.s]
diff --git a/channels.h b/channels.h
index 108b36068..1488ed7e5 100644
--- a/channels.h
+++ b/channels.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.h,v 1.96 2008/06/15 20:06:26 djm Exp $ */ 1/* $OpenBSD: channels.h,v 1.98 2009/02/12 03:00:56 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -55,8 +55,6 @@
55#define SSH_CHANNEL_ZOMBIE 14 /* Almost dead. */ 55#define SSH_CHANNEL_ZOMBIE 14 /* Almost dead. */
56#define SSH_CHANNEL_MAX_TYPE 15 56#define SSH_CHANNEL_MAX_TYPE 15
57 57
58#define SSH_CHANNEL_PATH_LEN 256
59
60struct Channel; 58struct Channel;
61typedef struct Channel Channel; 59typedef struct Channel Channel;
62 60
@@ -105,7 +103,7 @@ struct Channel {
105 Buffer output; /* data received over encrypted connection for 103 Buffer output; /* data received over encrypted connection for
106 * send on socket */ 104 * send on socket */
107 Buffer extended; 105 Buffer extended;
108 char path[SSH_CHANNEL_PATH_LEN]; 106 char *path;
109 /* path for unix domain sockets, or host name for forwards */ 107 /* path for unix domain sockets, or host name for forwards */
110 int listening_port; /* port being listened for forwards */ 108 int listening_port; /* port being listened for forwards */
111 int host_port; /* remote port to connect for forwards */ 109 int host_port; /* remote port to connect for forwards */
@@ -247,7 +245,7 @@ int channel_request_remote_forwarding(const char *, u_short,
247int channel_setup_local_fwd_listener(const char *, u_short, 245int channel_setup_local_fwd_listener(const char *, u_short,
248 const char *, u_short, int); 246 const char *, u_short, int);
249void channel_request_rforward_cancel(const char *host, u_short port); 247void channel_request_rforward_cancel(const char *host, u_short port);
250int channel_setup_remote_fwd_listener(const char *, u_short, int); 248int channel_setup_remote_fwd_listener(const char *, u_short, int *, int);
251int channel_cancel_rport_listener(const char *, u_short); 249int channel_cancel_rport_listener(const char *, u_short);
252 250
253/* x11 forwarding */ 251/* x11 forwarding */
diff --git a/cipher.c b/cipher.c
index b264063c4..bb5c0ac3a 100644
--- a/cipher.c
+++ b/cipher.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: cipher.c,v 1.81 2006/08/03 03:34:42 deraadt Exp $ */ 1/* $OpenBSD: cipher.c,v 1.82 2009/01/26 09:58:15 markus Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -63,31 +63,32 @@ struct Cipher {
63 u_int block_size; 63 u_int block_size;
64 u_int key_len; 64 u_int key_len;
65 u_int discard_len; 65 u_int discard_len;
66 u_int cbc_mode;
66 const EVP_CIPHER *(*evptype)(void); 67 const EVP_CIPHER *(*evptype)(void);
67} ciphers[] = { 68} ciphers[] = {
68 { "none", SSH_CIPHER_NONE, 8, 0, 0, EVP_enc_null }, 69 { "none", SSH_CIPHER_NONE, 8, 0, 0, 0, EVP_enc_null },
69 { "des", SSH_CIPHER_DES, 8, 8, 0, EVP_des_cbc }, 70 { "des", SSH_CIPHER_DES, 8, 8, 0, 1, EVP_des_cbc },
70 { "3des", SSH_CIPHER_3DES, 8, 16, 0, evp_ssh1_3des }, 71 { "3des", SSH_CIPHER_3DES, 8, 16, 0, 1, evp_ssh1_3des },
71 { "blowfish", SSH_CIPHER_BLOWFISH, 8, 32, 0, evp_ssh1_bf }, 72 { "blowfish", SSH_CIPHER_BLOWFISH, 8, 32, 0, 1, evp_ssh1_bf },
72 73
73 { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, EVP_des_ede3_cbc }, 74 { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, 1, EVP_des_ede3_cbc },
74 { "blowfish-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_bf_cbc }, 75 { "blowfish-cbc", SSH_CIPHER_SSH2, 8, 16, 0, 1, EVP_bf_cbc },
75 { "cast128-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_cast5_cbc }, 76 { "cast128-cbc", SSH_CIPHER_SSH2, 8, 16, 0, 1, EVP_cast5_cbc },
76 { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, EVP_rc4 }, 77 { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, 0, EVP_rc4 },
77 { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 1536, EVP_rc4 }, 78 { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 1536, 0, EVP_rc4 },
78 { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 1536, EVP_rc4 }, 79 { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 1536, 0, EVP_rc4 },
79 { "aes128-cbc", SSH_CIPHER_SSH2, 16, 16, 0, EVP_aes_128_cbc }, 80 { "aes128-cbc", SSH_CIPHER_SSH2, 16, 16, 0, 1, EVP_aes_128_cbc },
80 { "aes192-cbc", SSH_CIPHER_SSH2, 16, 24, 0, EVP_aes_192_cbc }, 81 { "aes192-cbc", SSH_CIPHER_SSH2, 16, 24, 0, 1, EVP_aes_192_cbc },
81 { "aes256-cbc", SSH_CIPHER_SSH2, 16, 32, 0, EVP_aes_256_cbc }, 82 { "aes256-cbc", SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },
82 { "rijndael-cbc@lysator.liu.se", 83 { "rijndael-cbc@lysator.liu.se",
83 SSH_CIPHER_SSH2, 16, 32, 0, EVP_aes_256_cbc }, 84 SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },
84 { "aes128-ctr", SSH_CIPHER_SSH2, 16, 16, 0, evp_aes_128_ctr }, 85 { "aes128-ctr", SSH_CIPHER_SSH2, 16, 16, 0, 0, evp_aes_128_ctr },
85 { "aes192-ctr", SSH_CIPHER_SSH2, 16, 24, 0, evp_aes_128_ctr }, 86 { "aes192-ctr", SSH_CIPHER_SSH2, 16, 24, 0, 0, evp_aes_128_ctr },
86 { "aes256-ctr", SSH_CIPHER_SSH2, 16, 32, 0, evp_aes_128_ctr }, 87 { "aes256-ctr", SSH_CIPHER_SSH2, 16, 32, 0, 0, evp_aes_128_ctr },
87#ifdef USE_CIPHER_ACSS 88#ifdef USE_CIPHER_ACSS
88 { "acss@openssh.org", SSH_CIPHER_SSH2, 16, 5, 0, EVP_acss }, 89 { "acss@openssh.org", SSH_CIPHER_SSH2, 16, 5, 0, 0, EVP_acss },
89#endif 90#endif
90 { NULL, SSH_CIPHER_INVALID, 0, 0, 0, NULL } 91 { NULL, SSH_CIPHER_INVALID, 0, 0, 0, 0, NULL }
91}; 92};
92 93
93/*--*/ 94/*--*/
@@ -111,6 +112,12 @@ cipher_get_number(const Cipher *c)
111} 112}
112 113
113u_int 114u_int
115cipher_is_cbc(const Cipher *c)
116{
117 return (c->cbc_mode);
118}
119
120u_int
114cipher_mask_ssh1(int client) 121cipher_mask_ssh1(int client)
115{ 122{
116 u_int mask = 0; 123 u_int mask = 0;
diff --git a/cipher.h b/cipher.h
index 49bbc1682..3dd2270bb 100644
--- a/cipher.h
+++ b/cipher.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: cipher.h,v 1.36 2006/03/25 22:22:42 djm Exp $ */ 1/* $OpenBSD: cipher.h,v 1.37 2009/01/26 09:58:15 markus Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -81,6 +81,7 @@ void cipher_cleanup(CipherContext *);
81void cipher_set_key_string(CipherContext *, Cipher *, const char *, int); 81void cipher_set_key_string(CipherContext *, Cipher *, const char *, int);
82u_int cipher_blocksize(const Cipher *); 82u_int cipher_blocksize(const Cipher *);
83u_int cipher_keylen(const Cipher *); 83u_int cipher_keylen(const Cipher *);
84u_int cipher_is_cbc(const Cipher *);
84 85
85u_int cipher_get_number(const Cipher *); 86u_int cipher_get_number(const Cipher *);
86void cipher_get_keyiv(CipherContext *, u_char *, u_int); 87void cipher_get_keyiv(CipherContext *, u_char *, u_int);
diff --git a/clientloop.c b/clientloop.c
index f10fab769..a2d2d1d07 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: clientloop.c,v 1.201 2008/07/16 11:51:14 djm Exp $ */ 1/* $OpenBSD: clientloop.c,v 1.209 2009/02/12 03:00:56 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -107,7 +107,6 @@
107#include "atomicio.h" 107#include "atomicio.h"
108#include "sshpty.h" 108#include "sshpty.h"
109#include "misc.h" 109#include "misc.h"
110#include "monitor_fdpass.h"
111#include "match.h" 110#include "match.h"
112#include "msg.h" 111#include "msg.h"
113 112
@@ -765,8 +764,8 @@ process_cmdline(void)
765 void (*handler)(int); 764 void (*handler)(int);
766 char *s, *cmd, *cancel_host; 765 char *s, *cmd, *cancel_host;
767 int delete = 0; 766 int delete = 0;
768 int local = 0; 767 int local = 0, remote = 0, dynamic = 0;
769 u_short cancel_port; 768 int cancel_port;
770 Forward fwd; 769 Forward fwd;
771 770
772 bzero(&fwd, sizeof(fwd)); 771 bzero(&fwd, sizeof(fwd));
@@ -790,6 +789,8 @@ process_cmdline(void)
790 "Request local forward"); 789 "Request local forward");
791 logit(" -R[bind_address:]port:host:hostport " 790 logit(" -R[bind_address:]port:host:hostport "
792 "Request remote forward"); 791 "Request remote forward");
792 logit(" -D[bind_address:]port "
793 "Request dynamic forward");
793 logit(" -KR[bind_address:]port " 794 logit(" -KR[bind_address:]port "
794 "Cancel remote forward"); 795 "Cancel remote forward");
795 if (!options.permit_local_command) 796 if (!options.permit_local_command)
@@ -809,17 +810,22 @@ process_cmdline(void)
809 delete = 1; 810 delete = 1;
810 s++; 811 s++;
811 } 812 }
812 if (*s != 'L' && *s != 'R') { 813 if (*s == 'L')
814 local = 1;
815 else if (*s == 'R')
816 remote = 1;
817 else if (*s == 'D')
818 dynamic = 1;
819 else {
813 logit("Invalid command."); 820 logit("Invalid command.");
814 goto out; 821 goto out;
815 } 822 }
816 if (*s == 'L') 823
817 local = 1; 824 if ((local || dynamic) && delete) {
818 if (local && delete) {
819 logit("Not supported."); 825 logit("Not supported.");
820 goto out; 826 goto out;
821 } 827 }
822 if ((!local || delete) && !compat20) { 828 if (remote && delete && !compat20) {
823 logit("Not supported for SSH protocol version 1."); 829 logit("Not supported for SSH protocol version 1.");
824 goto out; 830 goto out;
825 } 831 }
@@ -837,17 +843,17 @@ process_cmdline(void)
837 cancel_port = a2port(cancel_host); 843 cancel_port = a2port(cancel_host);
838 cancel_host = NULL; 844 cancel_host = NULL;
839 } 845 }
840 if (cancel_port == 0) { 846 if (cancel_port <= 0) {
841 logit("Bad forwarding close port"); 847 logit("Bad forwarding close port");
842 goto out; 848 goto out;
843 } 849 }
844 channel_request_rforward_cancel(cancel_host, cancel_port); 850 channel_request_rforward_cancel(cancel_host, cancel_port);
845 } else { 851 } else {
846 if (!parse_forward(&fwd, s)) { 852 if (!parse_forward(&fwd, s, dynamic, remote)) {
847 logit("Bad forwarding specification."); 853 logit("Bad forwarding specification.");
848 goto out; 854 goto out;
849 } 855 }
850 if (local) { 856 if (local || dynamic) {
851 if (channel_setup_local_fwd_listener(fwd.listen_host, 857 if (channel_setup_local_fwd_listener(fwd.listen_host,
852 fwd.listen_port, fwd.connect_host, 858 fwd.listen_port, fwd.connect_host,
853 fwd.connect_port, options.gateway_ports) < 0) { 859 fwd.connect_port, options.gateway_ports) < 0) {
@@ -1036,7 +1042,6 @@ process_escapes(Channel *c, Buffer *bin, Buffer *bout, Buffer *berr,
1036Supported escape sequences:\r\n\ 1042Supported escape sequences:\r\n\
1037 %c. - terminate session\r\n\ 1043 %c. - terminate session\r\n\
1038 %cB - send a BREAK to the remote system\r\n\ 1044 %cB - send a BREAK to the remote system\r\n\
1039 %cC - open a command line\r\n\
1040 %cR - Request rekey (SSH protocol 2 only)\r\n\ 1045 %cR - Request rekey (SSH protocol 2 only)\r\n\
1041 %c# - list forwarded connections\r\n\ 1046 %c# - list forwarded connections\r\n\
1042 %c? - this message\r\n\ 1047 %c? - this message\r\n\
@@ -1045,8 +1050,7 @@ Supported escape sequences:\r\n\
1045 escape_char, escape_char, 1050 escape_char, escape_char,
1046 escape_char, escape_char, 1051 escape_char, escape_char,
1047 escape_char, escape_char, 1052 escape_char, escape_char,
1048 escape_char, escape_char, 1053 escape_char, escape_char);
1049 escape_char);
1050 } else { 1054 } else {
1051 snprintf(string, sizeof string, 1055 snprintf(string, sizeof string,
1052"%c?\r\n\ 1056"%c?\r\n\
@@ -1081,6 +1085,8 @@ Supported escape sequences:\r\n\
1081 continue; 1085 continue;
1082 1086
1083 case 'C': 1087 case 'C':
1088 if (c && c->ctl_fd != -1)
1089 goto noescape;
1084 process_cmdline(); 1090 process_cmdline();
1085 continue; 1091 continue;
1086 1092
@@ -1632,7 +1638,7 @@ client_request_forwarded_tcpip(const char *request_type, int rchan)
1632{ 1638{
1633 Channel *c = NULL; 1639 Channel *c = NULL;
1634 char *listen_address, *originator_address; 1640 char *listen_address, *originator_address;
1635 int listen_port, originator_port; 1641 u_short listen_port, originator_port;
1636 1642
1637 /* Get rest of the packet */ 1643 /* Get rest of the packet */
1638 listen_address = packet_get_string(NULL); 1644 listen_address = packet_get_string(NULL);
@@ -1658,7 +1664,7 @@ client_request_x11(const char *request_type, int rchan)
1658{ 1664{
1659 Channel *c = NULL; 1665 Channel *c = NULL;
1660 char *originator; 1666 char *originator;
1661 int originator_port; 1667 u_short originator_port;
1662 int sock; 1668 int sock;
1663 1669
1664 if (!options.forward_x11) { 1670 if (!options.forward_x11) {
@@ -1722,7 +1728,7 @@ client_request_tun_fwd(int tun_mode, int local_tun, int remote_tun)
1722 return 0; 1728 return 0;
1723 1729
1724 if (!compat20) { 1730 if (!compat20) {
1725 error("Tunnel forwarding is not support for protocol 1"); 1731 error("Tunnel forwarding is not supported for protocol 1");
1726 return -1; 1732 return -1;
1727 } 1733 }
1728 1734
@@ -1846,7 +1852,7 @@ client_input_channel_req(int type, u_int32_t seq, void *ctxt)
1846 if (reply) { 1852 if (reply) {
1847 packet_start(success ? 1853 packet_start(success ?
1848 SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE); 1854 SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE);
1849 packet_put_int(id); 1855 packet_put_int(c->remote_id);
1850 packet_send(); 1856 packet_send();
1851 } 1857 }
1852 xfree(rtype); 1858 xfree(rtype);
diff --git a/compat.c b/compat.c
index bc1131581..df3541df7 100644
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.c,v 1.77 2006/12/12 03:58:42 djm Exp $ */ 1/* $OpenBSD: compat.c,v 1.78 2008/09/11 14:22:37 markus Exp $ */
2/* 2/*
3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. 3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
4 * 4 *
@@ -91,7 +91,8 @@ compat_datafellows(const char *version)
91 "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR}, 91 "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR},
92 { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR }, 92 { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR },
93 { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF}, 93 { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF},
94 { "OpenSSH*", 0 }, 94 { "OpenSSH_4*", 0 },
95 { "OpenSSH*", SSH_NEW_OPENSSH },
95 { "*MindTerm*", 0 }, 96 { "*MindTerm*", 0 },
96 { "2.1.0*", SSH_BUG_SIGBLOB|SSH_BUG_HMAC| 97 { "2.1.0*", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|
97 SSH_OLD_SESSIONID|SSH_BUG_DEBUG| 98 SSH_OLD_SESSIONID|SSH_BUG_DEBUG|
diff --git a/compat.h b/compat.h
index 4d8ebc908..16cf282a7 100644
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.h,v 1.41 2006/12/12 03:58:42 djm Exp $ */ 1/* $OpenBSD: compat.h,v 1.42 2008/09/11 14:22:37 markus Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved.
@@ -57,6 +57,7 @@
57#define SSH_BUG_FIRSTKEX 0x00800000 57#define SSH_BUG_FIRSTKEX 0x00800000
58#define SSH_OLD_FORWARD_ADDR 0x01000000 58#define SSH_OLD_FORWARD_ADDR 0x01000000
59#define SSH_BUG_RFWD_ADDR 0x02000000 59#define SSH_BUG_RFWD_ADDR 0x02000000
60#define SSH_NEW_OPENSSH 0x04000000
60 61
61void enable_compat13(void); 62void enable_compat13(void);
62void enable_compat20(void); 63void enable_compat20(void);
diff --git a/config.guess b/config.guess
index 6d71f752f..c7607c74f 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Attempt to guess a canonical system name. 2# Attempt to guess a canonical system name.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
5# Free Software Foundation, Inc.
5 6
6timestamp='2005-05-27' 7timestamp='2008-04-14'
7 8
8# This file is free software; you can redistribute it and/or modify it 9# This file is free software; you can redistribute it and/or modify it
9# under the terms of the GNU General Public License as published by 10# under the terms of the GNU General Public License as published by
@@ -55,8 +56,8 @@ version="\
55GNU config.guess ($timestamp) 56GNU config.guess ($timestamp)
56 57
57Originally written by Per Bothner. 58Originally written by Per Bothner.
58Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
59Free Software Foundation, Inc. 602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
60 61
61This is free software; see the source for copying conditions. There is NO 62This is free software; see the source for copying conditions. There is NO
62warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -106,7 +107,7 @@ set_cc_for_build='
106trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; 107trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
107trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; 108trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
108: ${TMPDIR=/tmp} ; 109: ${TMPDIR=/tmp} ;
109 { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || 110 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
110 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || 111 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
111 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || 112 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
112 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; 113 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -125,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
125 ;; 126 ;;
126 ,,*) CC_FOR_BUILD=$CC ;; 127 ,,*) CC_FOR_BUILD=$CC ;;
127 ,*,*) CC_FOR_BUILD=$HOST_CC ;; 128 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
128esac ;' 129esac ; set_cc_for_build= ;'
129 130
130# This is needed to find uname on a Pyramid OSx when run in the BSD universe. 131# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
131# (ghazi@noc.rutgers.edu 1994-08-24) 132# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -160,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
160 arm*) machine=arm-unknown ;; 161 arm*) machine=arm-unknown ;;
161 sh3el) machine=shl-unknown ;; 162 sh3el) machine=shl-unknown ;;
162 sh3eb) machine=sh-unknown ;; 163 sh3eb) machine=sh-unknown ;;
164 sh5el) machine=sh5le-unknown ;;
163 *) machine=${UNAME_MACHINE_ARCH}-unknown ;; 165 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
164 esac 166 esac
165 # The Operating System including object format, if it has switched 167 # The Operating System including object format, if it has switched
@@ -199,50 +201,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
199 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 201 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
200 echo "${machine}-${os}${release}" 202 echo "${machine}-${os}${release}"
201 exit ;; 203 exit ;;
202 amd64:OpenBSD:*:*)
203 echo x86_64-unknown-openbsd${UNAME_RELEASE}
204 exit ;;
205 amiga:OpenBSD:*:*)
206 echo m68k-unknown-openbsd${UNAME_RELEASE}
207 exit ;;
208 cats:OpenBSD:*:*)
209 echo arm-unknown-openbsd${UNAME_RELEASE}
210 exit ;;
211 hp300:OpenBSD:*:*)
212 echo m68k-unknown-openbsd${UNAME_RELEASE}
213 exit ;;
214 luna88k:OpenBSD:*:*)
215 echo m88k-unknown-openbsd${UNAME_RELEASE}
216 exit ;;
217 mac68k:OpenBSD:*:*)
218 echo m68k-unknown-openbsd${UNAME_RELEASE}
219 exit ;;
220 macppc:OpenBSD:*:*)
221 echo powerpc-unknown-openbsd${UNAME_RELEASE}
222 exit ;;
223 mvme68k:OpenBSD:*:*)
224 echo m68k-unknown-openbsd${UNAME_RELEASE}
225 exit ;;
226 mvme88k:OpenBSD:*:*)
227 echo m88k-unknown-openbsd${UNAME_RELEASE}
228 exit ;;
229 mvmeppc:OpenBSD:*:*)
230 echo powerpc-unknown-openbsd${UNAME_RELEASE}
231 exit ;;
232 sgi:OpenBSD:*:*)
233 echo mips64-unknown-openbsd${UNAME_RELEASE}
234 exit ;;
235 sun3:OpenBSD:*:*)
236 echo m68k-unknown-openbsd${UNAME_RELEASE}
237 exit ;;
238 *:OpenBSD:*:*) 204 *:OpenBSD:*:*)
239 echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} 205 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
206 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
240 exit ;; 207 exit ;;
241 *:ekkoBSD:*:*) 208 *:ekkoBSD:*:*)
242 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} 209 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
243 exit ;; 210 exit ;;
211 *:SolidBSD:*:*)
212 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
213 exit ;;
244 macppc:MirBSD:*:*) 214 macppc:MirBSD:*:*)
245 echo powerppc-unknown-mirbsd${UNAME_RELEASE} 215 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
246 exit ;; 216 exit ;;
247 *:MirBSD:*:*) 217 *:MirBSD:*:*)
248 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} 218 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
@@ -360,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
360 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 330 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
361 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 331 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
362 exit ;; 332 exit ;;
363 i86pc:SunOS:5.*:*) 333 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
364 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 334 echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
365 exit ;; 335 exit ;;
366 sun4*:SunOS:6*:*) 336 sun4*:SunOS:6*:*)
@@ -562,7 +532,7 @@ EOF
562 echo rs6000-ibm-aix3.2 532 echo rs6000-ibm-aix3.2
563 fi 533 fi
564 exit ;; 534 exit ;;
565 *:AIX:*:[45]) 535 *:AIX:*:[456])
566 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 536 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
567 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then 537 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
568 IBM_ARCH=rs6000 538 IBM_ARCH=rs6000
@@ -658,8 +628,7 @@ EOF
658 esac 628 esac
659 if [ ${HP_ARCH} = "hppa2.0w" ] 629 if [ ${HP_ARCH} = "hppa2.0w" ]
660 then 630 then
661 # avoid double evaluation of $set_cc_for_build 631 eval $set_cc_for_build
662 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
663 632
664 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 633 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
665 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler 634 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -800,12 +769,19 @@ EOF
800 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 769 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
801 exit ;; 770 exit ;;
802 *:FreeBSD:*:*) 771 *:FreeBSD:*:*)
803 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` 772 case ${UNAME_MACHINE} in
773 pc98)
774 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
775 amd64)
776 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
777 *)
778 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
779 esac
804 exit ;; 780 exit ;;
805 i*:CYGWIN*:*) 781 i*:CYGWIN*:*)
806 echo ${UNAME_MACHINE}-pc-cygwin 782 echo ${UNAME_MACHINE}-pc-cygwin
807 exit ;; 783 exit ;;
808 i*:MINGW*:*) 784 *:MINGW*:*)
809 echo ${UNAME_MACHINE}-pc-mingw32 785 echo ${UNAME_MACHINE}-pc-mingw32
810 exit ;; 786 exit ;;
811 i*:windows32*:*) 787 i*:windows32*:*)
@@ -815,9 +791,18 @@ EOF
815 i*:PW*:*) 791 i*:PW*:*)
816 echo ${UNAME_MACHINE}-pc-pw32 792 echo ${UNAME_MACHINE}-pc-pw32
817 exit ;; 793 exit ;;
818 x86:Interix*:[34]*) 794 *:Interix*:[3456]*)
819 echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' 795 case ${UNAME_MACHINE} in
820 exit ;; 796 x86)
797 echo i586-pc-interix${UNAME_RELEASE}
798 exit ;;
799 EM64T | authenticamd)
800 echo x86_64-unknown-interix${UNAME_RELEASE}
801 exit ;;
802 IA64)
803 echo ia64-unknown-interix${UNAME_RELEASE}
804 exit ;;
805 esac ;;
821 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) 806 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
822 echo i${UNAME_MACHINE}-pc-mks 807 echo i${UNAME_MACHINE}-pc-mks
823 exit ;; 808 exit ;;
@@ -830,7 +815,7 @@ EOF
830 i*:UWIN*:*) 815 i*:UWIN*:*)
831 echo ${UNAME_MACHINE}-pc-uwin 816 echo ${UNAME_MACHINE}-pc-uwin
832 exit ;; 817 exit ;;
833 amd64:CYGWIN*:*:*) 818 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
834 echo x86_64-unknown-cygwin 819 echo x86_64-unknown-cygwin
835 exit ;; 820 exit ;;
836 p*:CYGWIN*:*) 821 p*:CYGWIN*:*)
@@ -851,6 +836,16 @@ EOF
851 echo ${UNAME_MACHINE}-pc-minix 836 echo ${UNAME_MACHINE}-pc-minix
852 exit ;; 837 exit ;;
853 arm*:Linux:*:*) 838 arm*:Linux:*:*)
839 eval $set_cc_for_build
840 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
841 | grep -q __ARM_EABI__
842 then
843 echo ${UNAME_MACHINE}-unknown-linux-gnu
844 else
845 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
846 fi
847 exit ;;
848 avr32*:Linux:*:*)
854 echo ${UNAME_MACHINE}-unknown-linux-gnu 849 echo ${UNAME_MACHINE}-unknown-linux-gnu
855 exit ;; 850 exit ;;
856 cris:Linux:*:*) 851 cris:Linux:*:*)
@@ -887,7 +882,11 @@ EOF
887 #endif 882 #endif
888 #endif 883 #endif
889EOF 884EOF
890 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` 885 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
886 /^CPU/{
887 s: ::g
888 p
889 }'`"
891 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 890 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
892 ;; 891 ;;
893 mips64:Linux:*:*) 892 mips64:Linux:*:*)
@@ -906,9 +905,16 @@ EOF
906 #endif 905 #endif
907 #endif 906 #endif
908EOF 907EOF
909 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` 908 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
909 /^CPU/{
910 s: ::g
911 p
912 }'`"
910 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 913 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
911 ;; 914 ;;
915 or32:Linux:*:*)
916 echo or32-unknown-linux-gnu
917 exit ;;
912 ppc:Linux:*:*) 918 ppc:Linux:*:*)
913 echo powerpc-unknown-linux-gnu 919 echo powerpc-unknown-linux-gnu
914 exit ;; 920 exit ;;
@@ -952,9 +958,15 @@ EOF
952 sparc:Linux:*:* | sparc64:Linux:*:*) 958 sparc:Linux:*:* | sparc64:Linux:*:*)
953 echo ${UNAME_MACHINE}-unknown-linux-gnu 959 echo ${UNAME_MACHINE}-unknown-linux-gnu
954 exit ;; 960 exit ;;
961 vax:Linux:*:*)
962 echo ${UNAME_MACHINE}-dec-linux-gnu
963 exit ;;
955 x86_64:Linux:*:*) 964 x86_64:Linux:*:*)
956 echo x86_64-unknown-linux-gnu 965 echo x86_64-unknown-linux-gnu
957 exit ;; 966 exit ;;
967 xtensa*:Linux:*:*)
968 echo ${UNAME_MACHINE}-unknown-linux-gnu
969 exit ;;
958 i*86:Linux:*:*) 970 i*86:Linux:*:*)
959 # The BFD linker knows what the default object file format is, so 971 # The BFD linker knows what the default object file format is, so
960 # first see if it will tell us. cd to the root directory to prevent 972 # first see if it will tell us. cd to the root directory to prevent
@@ -973,9 +985,6 @@ EOF
973 a.out-i386-linux) 985 a.out-i386-linux)
974 echo "${UNAME_MACHINE}-pc-linux-gnuaout" 986 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
975 exit ;; 987 exit ;;
976 coff-i386)
977 echo "${UNAME_MACHINE}-pc-linux-gnucoff"
978 exit ;;
979 "") 988 "")
980 # Either a pre-BFD a.out linker (linux-gnuoldld) or 989 # Either a pre-BFD a.out linker (linux-gnuoldld) or
981 # one that does not give us useful --help. 990 # one that does not give us useful --help.
@@ -997,7 +1006,7 @@ EOF
997 LIBC=gnulibc1 1006 LIBC=gnulibc1
998 # endif 1007 # endif
999 #else 1008 #else
1000 #ifdef __INTEL_COMPILER 1009 #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1001 LIBC=gnu 1010 LIBC=gnu
1002 #else 1011 #else
1003 LIBC=gnuaout 1012 LIBC=gnuaout
@@ -1007,7 +1016,11 @@ EOF
1007 LIBC=dietlibc 1016 LIBC=dietlibc
1008 #endif 1017 #endif
1009EOF 1018EOF
1010 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` 1019 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1020 /^LIBC/{
1021 s: ::g
1022 p
1023 }'`"
1011 test x"${LIBC}" != x && { 1024 test x"${LIBC}" != x && {
1012 echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 1025 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1013 exit 1026 exit
@@ -1200,6 +1213,9 @@ EOF
1200 BePC:BeOS:*:*) # BeOS running on Intel PC compatible. 1213 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1201 echo i586-pc-beos 1214 echo i586-pc-beos
1202 exit ;; 1215 exit ;;
1216 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1217 echo i586-pc-haiku
1218 exit ;;
1203 SX-4:SUPER-UX:*:*) 1219 SX-4:SUPER-UX:*:*)
1204 echo sx4-nec-superux${UNAME_RELEASE} 1220 echo sx4-nec-superux${UNAME_RELEASE}
1205 exit ;; 1221 exit ;;
@@ -1209,6 +1225,15 @@ EOF
1209 SX-6:SUPER-UX:*:*) 1225 SX-6:SUPER-UX:*:*)
1210 echo sx6-nec-superux${UNAME_RELEASE} 1226 echo sx6-nec-superux${UNAME_RELEASE}
1211 exit ;; 1227 exit ;;
1228 SX-7:SUPER-UX:*:*)
1229 echo sx7-nec-superux${UNAME_RELEASE}
1230 exit ;;
1231 SX-8:SUPER-UX:*:*)
1232 echo sx8-nec-superux${UNAME_RELEASE}
1233 exit ;;
1234 SX-8R:SUPER-UX:*:*)
1235 echo sx8r-nec-superux${UNAME_RELEASE}
1236 exit ;;
1212 Power*:Rhapsody:*:*) 1237 Power*:Rhapsody:*:*)
1213 echo powerpc-apple-rhapsody${UNAME_RELEASE} 1238 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1214 exit ;; 1239 exit ;;
@@ -1218,7 +1243,6 @@ EOF
1218 *:Darwin:*:*) 1243 *:Darwin:*:*)
1219 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1244 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1220 case $UNAME_PROCESSOR in 1245 case $UNAME_PROCESSOR in
1221 *86) UNAME_PROCESSOR=i686 ;;
1222 unknown) UNAME_PROCESSOR=powerpc ;; 1246 unknown) UNAME_PROCESSOR=powerpc ;;
1223 esac 1247 esac
1224 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1248 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1297,6 +1321,9 @@ EOF
1297 i*86:skyos:*:*) 1321 i*86:skyos:*:*)
1298 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' 1322 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1299 exit ;; 1323 exit ;;
1324 i*86:rdos:*:*)
1325 echo ${UNAME_MACHINE}-pc-rdos
1326 exit ;;
1300esac 1327esac
1301 1328
1302#echo '(No uname command or uname output not recognized.)' 1>&2 1329#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1457,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize
1457the operating system you are using. It is advised that you 1484the operating system you are using. It is advised that you
1458download the most up to date version of the config scripts from 1485download the most up to date version of the config scripts from
1459 1486
1460 http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess 1487 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1461and 1488and
1462 http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub 1489 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1463 1490
1464If the version you run ($0) is already up to date, please 1491If the version you run ($0) is already up to date, please
1465send the following data and any information you think might be 1492send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index a650bdba8..84967a461 100644
--- a/config.h.in
+++ b/config.h.in
@@ -380,6 +380,9 @@
380/* Define to 1 if you have the `getgrset' function. */ 380/* Define to 1 if you have the `getgrset' function. */
381#undef HAVE_GETGRSET 381#undef HAVE_GETGRSET
382 382
383/* Define to 1 if you have the `getlastlogxbyname' function. */
384#undef HAVE_GETLASTLOGXBYNAME
385
383/* Define to 1 if you have the `getluid' function. */ 386/* Define to 1 if you have the `getluid' function. */
384#undef HAVE_GETLUID 387#undef HAVE_GETLUID
385 388
@@ -897,6 +900,9 @@
897/* define if you have struct sockaddr_in6 data type */ 900/* define if you have struct sockaddr_in6 data type */
898#undef HAVE_STRUCT_SOCKADDR_IN6 901#undef HAVE_STRUCT_SOCKADDR_IN6
899 902
903/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
904#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
905
900/* define if you have struct sockaddr_storage data type */ 906/* define if you have struct sockaddr_storage data type */
901#undef HAVE_STRUCT_SOCKADDR_STORAGE 907#undef HAVE_STRUCT_SOCKADDR_STORAGE
902 908
@@ -1158,6 +1164,9 @@
1158/* Define if you want Kerberos 5 support */ 1164/* Define if you want Kerberos 5 support */
1159#undef KRB5 1165#undef KRB5
1160 1166
1167/* Define if pututxline updates lastlog too */
1168#undef LASTLOG_WRITE_PUTUTXLINE
1169
1161/* Define if you want TCP Wrappers support */ 1170/* Define if you want TCP Wrappers support */
1162#undef LIBWRAP 1171#undef LIBWRAP
1163 1172
diff --git a/config.sub b/config.sub
index 519f2cd00..a649350a6 100755
--- a/config.sub
+++ b/config.sub
@@ -1,9 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Configuration validation subroutine script. 2# Configuration validation subroutine script.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
5# Free Software Foundation, Inc.
5 6
6timestamp='2005-05-12' 7timestamp='2008-06-16'
7 8
8# This file is (in principle) common to ALL GNU software. 9# This file is (in principle) common to ALL GNU software.
9# The presence of a machine in this file suggests that SOME GNU software 10# The presence of a machine in this file suggests that SOME GNU software
@@ -71,8 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
71version="\ 72version="\
72GNU config.sub ($timestamp) 73GNU config.sub ($timestamp)
73 74
74Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
75Free Software Foundation, Inc. 762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
76 77
77This is free software; see the source for copying conditions. There is NO 78This is free software; see the source for copying conditions. There is NO
78warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -119,8 +120,9 @@ esac
119# Here we must recognize all the valid KERNEL-OS combinations. 120# Here we must recognize all the valid KERNEL-OS combinations.
120maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 121maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
121case $maybe_os in 122case $maybe_os in
122 nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ 123 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
123 kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) 124 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
125 storm-chaos* | os2-emx* | rtmk-nova*)
124 os=-$maybe_os 126 os=-$maybe_os
125 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 127 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
126 ;; 128 ;;
@@ -171,6 +173,10 @@ case $os in
171 -hiux*) 173 -hiux*)
172 os=-hiuxwe2 174 os=-hiuxwe2
173 ;; 175 ;;
176 -sco6)
177 os=-sco5v6
178 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
179 ;;
174 -sco5) 180 -sco5)
175 os=-sco3.2v5 181 os=-sco3.2v5
176 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 182 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -187,6 +193,10 @@ case $os in
187 # Don't forget version if it is 3.2v4 or newer. 193 # Don't forget version if it is 3.2v4 or newer.
188 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 194 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
189 ;; 195 ;;
196 -sco5v6*)
197 # Don't forget version if it is 3.2v4 or newer.
198 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
199 ;;
190 -sco*) 200 -sco*)
191 os=-sco3.2v2 201 os=-sco3.2v2
192 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 202 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -231,23 +241,27 @@ case $basic_machine in
231 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 241 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
232 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 242 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
233 | am33_2.0 \ 243 | am33_2.0 \
234 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ 244 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
235 | bfin \ 245 | bfin \
236 | c4x | clipper \ 246 | c4x | clipper \
237 | d10v | d30v | dlx | dsp16xx \ 247 | d10v | d30v | dlx | dsp16xx \
238 | fr30 | frv \ 248 | fido | fr30 | frv \
239 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 249 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
240 | i370 | i860 | i960 | ia64 \ 250 | i370 | i860 | i960 | ia64 \
241 | ip2k | iq2000 \ 251 | ip2k | iq2000 \
242 | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ 252 | m32c | m32r | m32rle | m68000 | m68k | m88k \
253 | maxq | mb | microblaze | mcore | mep | metag \
243 | mips | mipsbe | mipseb | mipsel | mipsle \ 254 | mips | mipsbe | mipseb | mipsel | mipsle \
244 | mips16 \ 255 | mips16 \
245 | mips64 | mips64el \ 256 | mips64 | mips64el \
246 | mips64vr | mips64vrel \ 257 | mips64octeon | mips64octeonel \
247 | mips64orion | mips64orionel \ 258 | mips64orion | mips64orionel \
259 | mips64r5900 | mips64r5900el \
260 | mips64vr | mips64vrel \
248 | mips64vr4100 | mips64vr4100el \ 261 | mips64vr4100 | mips64vr4100el \
249 | mips64vr4300 | mips64vr4300el \ 262 | mips64vr4300 | mips64vr4300el \
250 | mips64vr5000 | mips64vr5000el \ 263 | mips64vr5000 | mips64vr5000el \
264 | mips64vr5900 | mips64vr5900el \
251 | mipsisa32 | mipsisa32el \ 265 | mipsisa32 | mipsisa32el \
252 | mipsisa32r2 | mipsisa32r2el \ 266 | mipsisa32r2 | mipsisa32r2el \
253 | mipsisa64 | mipsisa64el \ 267 | mipsisa64 | mipsisa64el \
@@ -256,21 +270,24 @@ case $basic_machine in
256 | mipsisa64sr71k | mipsisa64sr71kel \ 270 | mipsisa64sr71k | mipsisa64sr71kel \
257 | mipstx39 | mipstx39el \ 271 | mipstx39 | mipstx39el \
258 | mn10200 | mn10300 \ 272 | mn10200 | mn10300 \
273 | mt \
259 | msp430 \ 274 | msp430 \
275 | nios | nios2 \
260 | ns16k | ns32k \ 276 | ns16k | ns32k \
261 | openrisc | or32 \ 277 | or32 \
262 | pdp10 | pdp11 | pj | pjl \ 278 | pdp10 | pdp11 | pj | pjl \
263 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 279 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
264 | pyramid \ 280 | pyramid \
265 | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ 281 | score \
282 | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
266 | sh64 | sh64le \ 283 | sh64 | sh64le \
267 | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ 284 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
268 | sparcv8 | sparcv9 | sparcv9b \ 285 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
269 | strongarm \ 286 | spu | strongarm \
270 | tahoe | thumb | tic4x | tic80 | tron \ 287 | tahoe | thumb | tic4x | tic80 | tron \
271 | v850 | v850e \ 288 | v850 | v850e \
272 | we32k \ 289 | we32k \
273 | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ 290 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
274 | z8k) 291 | z8k)
275 basic_machine=$basic_machine-unknown 292 basic_machine=$basic_machine-unknown
276 ;; 293 ;;
@@ -281,6 +298,9 @@ case $basic_machine in
281 ;; 298 ;;
282 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 299 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
283 ;; 300 ;;
301 ms1)
302 basic_machine=mt-unknown
303 ;;
284 304
285 # We use `pc' rather than `unknown' 305 # We use `pc' rather than `unknown'
286 # because (1) that's what they normally are, and 306 # because (1) that's what they normally are, and
@@ -300,28 +320,31 @@ case $basic_machine in
300 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 320 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
301 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ 321 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
302 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 322 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
303 | avr-* \ 323 | avr-* | avr32-* \
304 | bfin-* | bs2000-* \ 324 | bfin-* | bs2000-* \
305 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ 325 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
306 | clipper-* | craynv-* | cydra-* \ 326 | clipper-* | craynv-* | cydra-* \
307 | d10v-* | d30v-* | dlx-* \ 327 | d10v-* | d30v-* | dlx-* \
308 | elxsi-* \ 328 | elxsi-* \
309 | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ 329 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
310 | h8300-* | h8500-* \ 330 | h8300-* | h8500-* \
311 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 331 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
312 | i*86-* | i860-* | i960-* | ia64-* \ 332 | i*86-* | i860-* | i960-* | ia64-* \
313 | ip2k-* | iq2000-* \ 333 | ip2k-* | iq2000-* \
314 | m32r-* | m32rle-* \ 334 | m32c-* | m32r-* | m32rle-* \
315 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 335 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
316 | m88110-* | m88k-* | maxq-* | mcore-* \ 336 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
317 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 337 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
318 | mips16-* \ 338 | mips16-* \
319 | mips64-* | mips64el-* \ 339 | mips64-* | mips64el-* \
320 | mips64vr-* | mips64vrel-* \ 340 | mips64octeon-* | mips64octeonel-* \
321 | mips64orion-* | mips64orionel-* \ 341 | mips64orion-* | mips64orionel-* \
342 | mips64r5900-* | mips64r5900el-* \
343 | mips64vr-* | mips64vrel-* \
322 | mips64vr4100-* | mips64vr4100el-* \ 344 | mips64vr4100-* | mips64vr4100el-* \
323 | mips64vr4300-* | mips64vr4300el-* \ 345 | mips64vr4300-* | mips64vr4300el-* \
324 | mips64vr5000-* | mips64vr5000el-* \ 346 | mips64vr5000-* | mips64vr5000el-* \
347 | mips64vr5900-* | mips64vr5900el-* \
325 | mipsisa32-* | mipsisa32el-* \ 348 | mipsisa32-* | mipsisa32el-* \
326 | mipsisa32r2-* | mipsisa32r2el-* \ 349 | mipsisa32r2-* | mipsisa32r2el-* \
327 | mipsisa64-* | mipsisa64el-* \ 350 | mipsisa64-* | mipsisa64el-* \
@@ -330,28 +353,34 @@ case $basic_machine in
330 | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 353 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
331 | mipstx39-* | mipstx39el-* \ 354 | mipstx39-* | mipstx39el-* \
332 | mmix-* \ 355 | mmix-* \
356 | mt-* \
333 | msp430-* \ 357 | msp430-* \
358 | nios-* | nios2-* \
334 | none-* | np1-* | ns16k-* | ns32k-* \ 359 | none-* | np1-* | ns16k-* | ns32k-* \
335 | orion-* \ 360 | orion-* \
336 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 361 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
337 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 362 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
338 | pyramid-* \ 363 | pyramid-* \
339 | romp-* | rs6000-* \ 364 | romp-* | rs6000-* \
340 | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ 365 | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
341 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 366 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
342 | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ 367 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
343 | sparclite-* \ 368 | sparclite-* \
344 | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ 369 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
345 | tahoe-* | thumb-* \ 370 | tahoe-* | thumb-* \
346 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 371 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
347 | tron-* \ 372 | tron-* \
348 | v850-* | v850e-* | vax-* \ 373 | v850-* | v850e-* | vax-* \
349 | we32k-* \ 374 | we32k-* \
350 | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ 375 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
351 | xstormy16-* | xtensa-* \ 376 | xstormy16-* | xtensa*-* \
352 | ymp-* \ 377 | ymp-* \
353 | z8k-*) 378 | z8k-*)
354 ;; 379 ;;
380 # Recognize the basic CPU types without company name, with glob match.
381 xtensa*)
382 basic_machine=$basic_machine-unknown
383 ;;
355 # Recognize the various machine names and aliases which stand 384 # Recognize the various machine names and aliases which stand
356 # for a CPU type and a company and sometimes even an OS. 385 # for a CPU type and a company and sometimes even an OS.
357 386bsd) 386 386bsd)
@@ -422,10 +451,22 @@ case $basic_machine in
422 basic_machine=ns32k-sequent 451 basic_machine=ns32k-sequent
423 os=-dynix 452 os=-dynix
424 ;; 453 ;;
454 blackfin)
455 basic_machine=bfin-unknown
456 os=-linux
457 ;;
458 blackfin-*)
459 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
460 os=-linux
461 ;;
425 c90) 462 c90)
426 basic_machine=c90-cray 463 basic_machine=c90-cray
427 os=-unicos 464 os=-unicos
428 ;; 465 ;;
466 cegcc)
467 basic_machine=arm-unknown
468 os=-cegcc
469 ;;
429 convex-c1) 470 convex-c1)
430 basic_machine=c1-convex 471 basic_machine=c1-convex
431 os=-bsd 472 os=-bsd
@@ -454,8 +495,8 @@ case $basic_machine in
454 basic_machine=craynv-cray 495 basic_machine=craynv-cray
455 os=-unicosmp 496 os=-unicosmp
456 ;; 497 ;;
457 cr16c) 498 cr16)
458 basic_machine=cr16c-unknown 499 basic_machine=cr16-unknown
459 os=-elf 500 os=-elf
460 ;; 501 ;;
461 crds | unos) 502 crds | unos)
@@ -493,6 +534,10 @@ case $basic_machine in
493 basic_machine=m88k-motorola 534 basic_machine=m88k-motorola
494 os=-sysv3 535 os=-sysv3
495 ;; 536 ;;
537 dicos)
538 basic_machine=i686-pc
539 os=-dicos
540 ;;
496 djgpp) 541 djgpp)
497 basic_machine=i586-pc 542 basic_machine=i586-pc
498 os=-msdosdjgpp 543 os=-msdosdjgpp
@@ -647,6 +692,14 @@ case $basic_machine in
647 basic_machine=m68k-isi 692 basic_machine=m68k-isi
648 os=-sysv 693 os=-sysv
649 ;; 694 ;;
695 m68knommu)
696 basic_machine=m68k-unknown
697 os=-linux
698 ;;
699 m68knommu-*)
700 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
701 os=-linux
702 ;;
650 m88k-omron*) 703 m88k-omron*)
651 basic_machine=m88k-omron 704 basic_machine=m88k-omron
652 ;; 705 ;;
@@ -662,6 +715,10 @@ case $basic_machine in
662 basic_machine=i386-pc 715 basic_machine=i386-pc
663 os=-mingw32 716 os=-mingw32
664 ;; 717 ;;
718 mingw32ce)
719 basic_machine=arm-unknown
720 os=-mingw32ce
721 ;;
665 miniframe) 722 miniframe)
666 basic_machine=m68000-convergent 723 basic_machine=m68000-convergent
667 ;; 724 ;;
@@ -687,6 +744,9 @@ case $basic_machine in
687 basic_machine=i386-pc 744 basic_machine=i386-pc
688 os=-msdos 745 os=-msdos
689 ;; 746 ;;
747 ms1-*)
748 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
749 ;;
690 mvs) 750 mvs)
691 basic_machine=i370-ibm 751 basic_machine=i370-ibm
692 os=-mvs 752 os=-mvs
@@ -762,9 +822,8 @@ case $basic_machine in
762 basic_machine=hppa1.1-oki 822 basic_machine=hppa1.1-oki
763 os=-proelf 823 os=-proelf
764 ;; 824 ;;
765 or32 | or32-*) 825 openrisc | openrisc-*)
766 basic_machine=or32-unknown 826 basic_machine=or32-unknown
767 os=-coff
768 ;; 827 ;;
769 os400) 828 os400)
770 basic_machine=powerpc-ibm 829 basic_machine=powerpc-ibm
@@ -786,6 +845,14 @@ case $basic_machine in
786 basic_machine=i860-intel 845 basic_machine=i860-intel
787 os=-osf 846 os=-osf
788 ;; 847 ;;
848 parisc)
849 basic_machine=hppa-unknown
850 os=-linux
851 ;;
852 parisc-*)
853 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
854 os=-linux
855 ;;
789 pbd) 856 pbd)
790 basic_machine=sparc-tti 857 basic_machine=sparc-tti
791 ;; 858 ;;
@@ -795,6 +862,12 @@ case $basic_machine in
795 pc532 | pc532-*) 862 pc532 | pc532-*)
796 basic_machine=ns32k-pc532 863 basic_machine=ns32k-pc532
797 ;; 864 ;;
865 pc98)
866 basic_machine=i386-pc
867 ;;
868 pc98-*)
869 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
870 ;;
798 pentium | p5 | k5 | k6 | nexgen | viac3) 871 pentium | p5 | k5 | k6 | nexgen | viac3)
799 basic_machine=i586-pc 872 basic_machine=i586-pc
800 ;; 873 ;;
@@ -851,6 +924,10 @@ case $basic_machine in
851 basic_machine=i586-unknown 924 basic_machine=i586-unknown
852 os=-pw32 925 os=-pw32
853 ;; 926 ;;
927 rdos)
928 basic_machine=i386-pc
929 os=-rdos
930 ;;
854 rom68k) 931 rom68k)
855 basic_machine=m68k-rom68k 932 basic_machine=m68k-rom68k
856 os=-coff 933 os=-coff
@@ -877,6 +954,10 @@ case $basic_machine in
877 sb1el) 954 sb1el)
878 basic_machine=mipsisa64sb1el-unknown 955 basic_machine=mipsisa64sb1el-unknown
879 ;; 956 ;;
957 sde)
958 basic_machine=mipsisa32-sde
959 os=-elf
960 ;;
880 sei) 961 sei)
881 basic_machine=mips-sei 962 basic_machine=mips-sei
882 os=-seiux 963 os=-seiux
@@ -888,6 +969,9 @@ case $basic_machine in
888 basic_machine=sh-hitachi 969 basic_machine=sh-hitachi
889 os=-hms 970 os=-hms
890 ;; 971 ;;
972 sh5el)
973 basic_machine=sh5le-unknown
974 ;;
891 sh64) 975 sh64)
892 basic_machine=sh64-unknown 976 basic_machine=sh64-unknown
893 ;; 977 ;;
@@ -977,6 +1061,10 @@ case $basic_machine in
977 basic_machine=tic6x-unknown 1061 basic_machine=tic6x-unknown
978 os=-coff 1062 os=-coff
979 ;; 1063 ;;
1064 tile*)
1065 basic_machine=tile-unknown
1066 os=-linux-gnu
1067 ;;
980 tx39) 1068 tx39)
981 basic_machine=mipstx39-unknown 1069 basic_machine=mipstx39-unknown
982 ;; 1070 ;;
@@ -1090,13 +1178,10 @@ case $basic_machine in
1090 we32k) 1178 we32k)
1091 basic_machine=we32k-att 1179 basic_machine=we32k-att
1092 ;; 1180 ;;
1093 sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) 1181 sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
1094 basic_machine=sh-unknown 1182 basic_machine=sh-unknown
1095 ;; 1183 ;;
1096 sh64) 1184 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1097 basic_machine=sh64-unknown
1098 ;;
1099 sparc | sparcv8 | sparcv9 | sparcv9b)
1100 basic_machine=sparc-sun 1185 basic_machine=sparc-sun
1101 ;; 1186 ;;
1102 cydra) 1187 cydra)
@@ -1169,20 +1254,23 @@ case $os in
1169 | -aos* \ 1254 | -aos* \
1170 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1255 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1171 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1256 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1172 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ 1257 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1258 | -openbsd* | -solidbsd* \
1173 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1259 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1174 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1260 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1175 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1261 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1176 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1262 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1177 | -chorusos* | -chorusrdb* \ 1263 | -chorusos* | -chorusrdb* | -cegcc* \
1178 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1264 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1179 | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ 1265 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1266 | -uxpv* | -beos* | -mpeix* | -udk* \
1180 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 1267 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1181 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 1268 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1182 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 1269 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1183 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1270 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1184 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1271 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1185 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* | -skyos*) 1272 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1273 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
1186 # Remember, each alternative MUST END IN *, to match a version number. 1274 # Remember, each alternative MUST END IN *, to match a version number.
1187 ;; 1275 ;;
1188 -qnx*) 1276 -qnx*)
@@ -1200,7 +1288,7 @@ case $os in
1200 os=`echo $os | sed -e 's|nto|nto-qnx|'` 1288 os=`echo $os | sed -e 's|nto|nto-qnx|'`
1201 ;; 1289 ;;
1202 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1290 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1203 | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ 1291 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1204 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1292 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1205 ;; 1293 ;;
1206 -mac*) 1294 -mac*)
@@ -1312,6 +1400,9 @@ case $os in
1312 -zvmoe) 1400 -zvmoe)
1313 os=-zvmoe 1401 os=-zvmoe
1314 ;; 1402 ;;
1403 -dicos*)
1404 os=-dicos
1405 ;;
1315 -none) 1406 -none)
1316 ;; 1407 ;;
1317 *) 1408 *)
@@ -1334,6 +1425,12 @@ else
1334# system, and we'll never get to this point. 1425# system, and we'll never get to this point.
1335 1426
1336case $basic_machine in 1427case $basic_machine in
1428 score-*)
1429 os=-elf
1430 ;;
1431 spu-*)
1432 os=-elf
1433 ;;
1337 *-acorn) 1434 *-acorn)
1338 os=-riscix1.2 1435 os=-riscix1.2
1339 ;; 1436 ;;
@@ -1343,9 +1440,9 @@ case $basic_machine in
1343 arm*-semi) 1440 arm*-semi)
1344 os=-aout 1441 os=-aout
1345 ;; 1442 ;;
1346 c4x-* | tic4x-*) 1443 c4x-* | tic4x-*)
1347 os=-coff 1444 os=-coff
1348 ;; 1445 ;;
1349 # This must come before the *-dec entry. 1446 # This must come before the *-dec entry.
1350 pdp10-*) 1447 pdp10-*)
1351 os=-tops20 1448 os=-tops20
@@ -1371,6 +1468,9 @@ case $basic_machine in
1371 m68*-cisco) 1468 m68*-cisco)
1372 os=-aout 1469 os=-aout
1373 ;; 1470 ;;
1471 mep-*)
1472 os=-elf
1473 ;;
1374 mips*-cisco) 1474 mips*-cisco)
1375 os=-elf 1475 os=-elf
1376 ;; 1476 ;;
@@ -1389,6 +1489,9 @@ case $basic_machine in
1389 *-be) 1489 *-be)
1390 os=-beos 1490 os=-beos
1391 ;; 1491 ;;
1492 *-haiku)
1493 os=-haiku
1494 ;;
1392 *-ibm) 1495 *-ibm)
1393 os=-aix 1496 os=-aix
1394 ;; 1497 ;;
diff --git a/configure b/configure
index 19cc20c84..0b757c6a4 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
1#! /bin/sh 1#! /bin/sh
2# From configure.ac Revision: 1.409 . 2# From configure.ac Revision: 1.415 .
3# Guess values for system-dependent variables and create Makefiles. 3# Guess values for system-dependent variables and create Makefiles.
4# Generated by GNU Autoconf 2.61 for OpenSSH Portable. 4# Generated by GNU Autoconf 2.61 for OpenSSH Portable.
5# 5#
@@ -203,7 +203,7 @@ if as_func_ret_failure; then
203 echo as_func_ret_failure succeeded. 203 echo as_func_ret_failure succeeded.
204fi 204fi
205 205
206if (set x; as_func_ret_success y && test x = \"\$1\" ); then 206if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
207 : 207 :
208else 208else
209 exitcode=1 209 exitcode=1
@@ -407,7 +407,7 @@ if as_func_ret_failure; then
407 echo as_func_ret_failure succeeded. 407 echo as_func_ret_failure succeeded.
408fi 408fi
409 409
410if (set x; as_func_ret_success y && test x = \"\$1\" ); then 410if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
411 : 411 :
412else 412else
413 exitcode=1 413 exitcode=1
@@ -5461,7 +5461,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
5461 5461
5462 # -fstack-protector-all doesn't always work for some GCC versions 5462 # -fstack-protector-all doesn't always work for some GCC versions
5463 # and/or platforms, so we test if we can. If it's not supported 5463 # and/or platforms, so we test if we can. If it's not supported
5464 # on a give platform gcc will emit a warning so we use -Werror. 5464 # on a given platform gcc will emit a warning so we use -Werror.
5465 if test "x$use_stack_protector" = "x1"; then 5465 if test "x$use_stack_protector" = "x1"; then
5466 for t in -fstack-protector-all -fstack-protector; do 5466 for t in -fstack-protector-all -fstack-protector; do
5467 { echo "$as_me:$LINENO: checking if $CC supports $t" >&5 5467 { echo "$as_me:$LINENO: checking if $CC supports $t" >&5
@@ -5477,8 +5477,8 @@ cat confdefs.h >>conftest.$ac_ext
5477cat >>conftest.$ac_ext <<_ACEOF 5477cat >>conftest.$ac_ext <<_ACEOF
5478/* end confdefs.h. */ 5478/* end confdefs.h. */
5479 5479
5480#include <stdlib.h> 5480#include <stdio.h>
5481int main(void){return 0;} 5481int main(void){char x[256]; snprintf(x, sizeof(x), "XXX"); return 0;}
5482 5482
5483_ACEOF 5483_ACEOF
5484rm -f conftest.$ac_objext conftest$ac_exeext 5484rm -f conftest.$ac_objext conftest$ac_exeext
@@ -5518,8 +5518,8 @@ cat confdefs.h >>conftest.$ac_ext
5518cat >>conftest.$ac_ext <<_ACEOF 5518cat >>conftest.$ac_ext <<_ACEOF
5519/* end confdefs.h. */ 5519/* end confdefs.h. */
5520 5520
5521#include <stdlib.h> 5521#include <stdio.h>
5522int main(void){exit(0);} 5522int main(void){char x[256]; snprintf(x, sizeof(x), "XXX"); return 0;}
5523 5523
5524_ACEOF 5524_ACEOF
5525rm -f conftest$ac_exeext 5525rm -f conftest$ac_exeext
@@ -7365,6 +7365,11 @@ _ACEOF
7365 7365
7366 #include <bsm/audit.h> 7366 #include <bsm/audit.h>
7367 7367
7368cat >>confdefs.h <<\_ACEOF
7369#define LASTLOG_WRITE_PUTUTXLINE 1
7370_ACEOF
7371
7372
7368fi 7373fi
7369 7374
7370 ;; 7375 ;;
@@ -7681,6 +7686,31 @@ _ACEOF
7681_ACEOF 7686_ACEOF
7682 7687
7683 ;; 7688 ;;
7689*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
7690 check_for_libcrypt_later=1
7691 cat >>confdefs.h <<\_ACEOF
7692#define PAM_TTY_KLUDGE 1
7693_ACEOF
7694
7695 cat >>confdefs.h <<\_ACEOF
7696#define LOCKED_PASSWD_PREFIX "!"
7697_ACEOF
7698
7699 cat >>confdefs.h <<\_ACEOF
7700#define SPT_TYPE SPT_REUSEARGV
7701_ACEOF
7702
7703
7704cat >>confdefs.h <<\_ACEOF
7705#define _PATH_BTMP "/var/log/btmp"
7706_ACEOF
7707
7708
7709cat >>confdefs.h <<\_ACEOF
7710#define USE_BTMP 1
7711_ACEOF
7712
7713 ;;
7684*-*-linux*) 7714*-*-linux*)
7685 no_dev_ptmx=1 7715 no_dev_ptmx=1
7686 check_for_libcrypt_later=1 7716 check_for_libcrypt_later=1
@@ -8744,7 +8774,6 @@ _ACEOF
8744 ;; 8774 ;;
8745# UnixWare 7.x, OpenUNIX 8 8775# UnixWare 7.x, OpenUNIX 8
8746*-*-sysv5*) 8776*-*-sysv5*)
8747 check_for_libcrypt_later=1
8748 8777
8749cat >>confdefs.h <<\_ACEOF 8778cat >>confdefs.h <<\_ACEOF
8750#define UNIXWARE_LONG_PASSWORDS 1 8779#define UNIXWARE_LONG_PASSWORDS 1
@@ -8782,11 +8811,181 @@ _ACEOF
8782#define BROKEN_UPDWTMPX 1 8811#define BROKEN_UPDWTMPX 1
8783_ACEOF 8812_ACEOF
8784 8813
8814 { echo "$as_me:$LINENO: checking for getluid in -lprot" >&5
8815echo $ECHO_N "checking for getluid in -lprot... $ECHO_C" >&6; }
8816if test "${ac_cv_lib_prot_getluid+set}" = set; then
8817 echo $ECHO_N "(cached) $ECHO_C" >&6
8818else
8819 ac_check_lib_save_LIBS=$LIBS
8820LIBS="-lprot $LIBS"
8821cat >conftest.$ac_ext <<_ACEOF
8822/* confdefs.h. */
8823_ACEOF
8824cat confdefs.h >>conftest.$ac_ext
8825cat >>conftest.$ac_ext <<_ACEOF
8826/* end confdefs.h. */
8827
8828/* Override any GCC internal prototype to avoid an error.
8829 Use char because int might match the return type of a GCC
8830 builtin and then its argument prototype would still apply. */
8831#ifdef __cplusplus
8832extern "C"
8833#endif
8834char getluid ();
8835int
8836main ()
8837{
8838return getluid ();
8839 ;
8840 return 0;
8841}
8842_ACEOF
8843rm -f conftest.$ac_objext conftest$ac_exeext
8844if { (ac_try="$ac_link"
8845case "(($ac_try" in
8846 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
8847 *) ac_try_echo=$ac_try;;
8848esac
8849eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
8850 (eval "$ac_link") 2>conftest.er1
8851 ac_status=$?
8852 grep -v '^ *+' conftest.er1 >conftest.err
8853 rm -f conftest.er1
8854 cat conftest.err >&5
8855 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8856 (exit $ac_status); } && {
8857 test -z "$ac_c_werror_flag" ||
8858 test ! -s conftest.err
8859 } && test -s conftest$ac_exeext &&
8860 $as_test_x conftest$ac_exeext; then
8861 ac_cv_lib_prot_getluid=yes
8862else
8863 echo "$as_me: failed program was:" >&5
8864sed 's/^/| /' conftest.$ac_ext >&5
8865
8866 ac_cv_lib_prot_getluid=no
8867fi
8868
8869rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
8870 conftest$ac_exeext conftest.$ac_ext
8871LIBS=$ac_check_lib_save_LIBS
8872fi
8873{ echo "$as_me:$LINENO: result: $ac_cv_lib_prot_getluid" >&5
8874echo "${ECHO_T}$ac_cv_lib_prot_getluid" >&6; }
8875if test $ac_cv_lib_prot_getluid = yes; then
8876 LIBS="$LIBS -lprot"
8877
8878
8879for ac_func in getluid setluid
8880do
8881as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
8882{ echo "$as_me:$LINENO: checking for $ac_func" >&5
8883echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
8884if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
8885 echo $ECHO_N "(cached) $ECHO_C" >&6
8886else
8887 cat >conftest.$ac_ext <<_ACEOF
8888/* confdefs.h. */
8889_ACEOF
8890cat confdefs.h >>conftest.$ac_ext
8891cat >>conftest.$ac_ext <<_ACEOF
8892/* end confdefs.h. */
8893/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
8894 For example, HP-UX 11i <limits.h> declares gettimeofday. */
8895#define $ac_func innocuous_$ac_func
8896
8897/* System header to define __stub macros and hopefully few prototypes,
8898 which can conflict with char $ac_func (); below.
8899 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8900 <limits.h> exists even on freestanding compilers. */
8901
8902#ifdef __STDC__
8903# include <limits.h>
8904#else
8905# include <assert.h>
8906#endif
8907
8908#undef $ac_func
8909
8910/* Override any GCC internal prototype to avoid an error.
8911 Use char because int might match the return type of a GCC
8912 builtin and then its argument prototype would still apply. */
8913#ifdef __cplusplus
8914extern "C"
8915#endif
8916char $ac_func ();
8917/* The GNU C library defines this for functions which it implements
8918 to always fail with ENOSYS. Some functions are actually named
8919 something starting with __ and the normal name is an alias. */
8920#if defined __stub_$ac_func || defined __stub___$ac_func
8921choke me
8922#endif
8923
8924int
8925main ()
8926{
8927return $ac_func ();
8928 ;
8929 return 0;
8930}
8931_ACEOF
8932rm -f conftest.$ac_objext conftest$ac_exeext
8933if { (ac_try="$ac_link"
8934case "(($ac_try" in
8935 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
8936 *) ac_try_echo=$ac_try;;
8937esac
8938eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
8939 (eval "$ac_link") 2>conftest.er1
8940 ac_status=$?
8941 grep -v '^ *+' conftest.er1 >conftest.err
8942 rm -f conftest.er1
8943 cat conftest.err >&5
8944 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8945 (exit $ac_status); } && {
8946 test -z "$ac_c_werror_flag" ||
8947 test ! -s conftest.err
8948 } && test -s conftest$ac_exeext &&
8949 $as_test_x conftest$ac_exeext; then
8950 eval "$as_ac_var=yes"
8951else
8952 echo "$as_me: failed program was:" >&5
8953sed 's/^/| /' conftest.$ac_ext >&5
8954
8955 eval "$as_ac_var=no"
8956fi
8957
8958rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
8959 conftest$ac_exeext conftest.$ac_ext
8960fi
8961ac_res=`eval echo '${'$as_ac_var'}'`
8962 { echo "$as_me:$LINENO: result: $ac_res" >&5
8963echo "${ECHO_T}$ac_res" >&6; }
8964if test `eval echo '${'$as_ac_var'}'` = yes; then
8965 cat >>confdefs.h <<_ACEOF
8966#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
8967_ACEOF
8968
8969fi
8970done
8971
8972 cat >>confdefs.h <<\_ACEOF
8973#define HAVE_SECUREWARE 1
8974_ACEOF
8975
8976 cat >>confdefs.h <<\_ACEOF
8977#define DISABLE_SHADOW 1
8978_ACEOF
8979
8980
8981fi
8982
8785 ;; 8983 ;;
8786 *) cat >>confdefs.h <<\_ACEOF 8984 *) cat >>confdefs.h <<\_ACEOF
8787#define LOCKED_PASSWD_STRING "*LK*" 8985#define LOCKED_PASSWD_STRING "*LK*"
8788_ACEOF 8986_ACEOF
8789 8987
8988 check_for_libcrypt_later=1
8790 ;; 8989 ;;
8791 esac 8990 esac
8792 ;; 8991 ;;
@@ -14775,6 +14974,100 @@ fi
14775done 14974done
14776 14975
14777 14976
14977for ac_func in getlastlogxbyname
14978do
14979as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
14980{ echo "$as_me:$LINENO: checking for $ac_func" >&5
14981echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
14982if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
14983 echo $ECHO_N "(cached) $ECHO_C" >&6
14984else
14985 cat >conftest.$ac_ext <<_ACEOF
14986/* confdefs.h. */
14987_ACEOF
14988cat confdefs.h >>conftest.$ac_ext
14989cat >>conftest.$ac_ext <<_ACEOF
14990/* end confdefs.h. */
14991/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
14992 For example, HP-UX 11i <limits.h> declares gettimeofday. */
14993#define $ac_func innocuous_$ac_func
14994
14995/* System header to define __stub macros and hopefully few prototypes,
14996 which can conflict with char $ac_func (); below.
14997 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
14998 <limits.h> exists even on freestanding compilers. */
14999
15000#ifdef __STDC__
15001# include <limits.h>
15002#else
15003# include <assert.h>
15004#endif
15005
15006#undef $ac_func
15007
15008/* Override any GCC internal prototype to avoid an error.
15009 Use char because int might match the return type of a GCC
15010 builtin and then its argument prototype would still apply. */
15011#ifdef __cplusplus
15012extern "C"
15013#endif
15014char $ac_func ();
15015/* The GNU C library defines this for functions which it implements
15016 to always fail with ENOSYS. Some functions are actually named
15017 something starting with __ and the normal name is an alias. */
15018#if defined __stub_$ac_func || defined __stub___$ac_func
15019choke me
15020#endif
15021
15022int
15023main ()
15024{
15025return $ac_func ();
15026 ;
15027 return 0;
15028}
15029_ACEOF
15030rm -f conftest.$ac_objext conftest$ac_exeext
15031if { (ac_try="$ac_link"
15032case "(($ac_try" in
15033 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
15034 *) ac_try_echo=$ac_try;;
15035esac
15036eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
15037 (eval "$ac_link") 2>conftest.er1
15038 ac_status=$?
15039 grep -v '^ *+' conftest.er1 >conftest.err
15040 rm -f conftest.er1
15041 cat conftest.err >&5
15042 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15043 (exit $ac_status); } && {
15044 test -z "$ac_c_werror_flag" ||
15045 test ! -s conftest.err
15046 } && test -s conftest$ac_exeext &&
15047 $as_test_x conftest$ac_exeext; then
15048 eval "$as_ac_var=yes"
15049else
15050 echo "$as_me: failed program was:" >&5
15051sed 's/^/| /' conftest.$ac_ext >&5
15052
15053 eval "$as_ac_var=no"
15054fi
15055
15056rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
15057 conftest$ac_exeext conftest.$ac_ext
15058fi
15059ac_res=`eval echo '${'$as_ac_var'}'`
15060 { echo "$as_me:$LINENO: result: $ac_res" >&5
15061echo "${ECHO_T}$ac_res" >&6; }
15062if test `eval echo '${'$as_ac_var'}'` = yes; then
15063 cat >>confdefs.h <<_ACEOF
15064#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
15065_ACEOF
15066
15067fi
15068done
15069
15070
14778{ echo "$as_me:$LINENO: checking for daemon" >&5 15071{ echo "$as_me:$LINENO: checking for daemon" >&5
14779echo $ECHO_N "checking for daemon... $ECHO_C" >&6; } 15072echo $ECHO_N "checking for daemon... $ECHO_C" >&6; }
14780if test "${ac_cv_func_daemon+set}" = set; then 15073if test "${ac_cv_func_daemon+set}" = set; then
@@ -22501,6 +22794,121 @@ cat >>confdefs.h <<\_ACEOF
22501#define HAVE_STRUCT_IN6_ADDR 1 22794#define HAVE_STRUCT_IN6_ADDR 1
22502_ACEOF 22795_ACEOF
22503 22796
22797
22798 { echo "$as_me:$LINENO: checking for struct sockaddr_in6.sin6_scope_id" >&5
22799echo $ECHO_N "checking for struct sockaddr_in6.sin6_scope_id... $ECHO_C" >&6; }
22800if test "${ac_cv_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
22801 echo $ECHO_N "(cached) $ECHO_C" >&6
22802else
22803 cat >conftest.$ac_ext <<_ACEOF
22804/* confdefs.h. */
22805_ACEOF
22806cat confdefs.h >>conftest.$ac_ext
22807cat >>conftest.$ac_ext <<_ACEOF
22808/* end confdefs.h. */
22809
22810#ifdef HAVE_SYS_TYPES_H
22811#include <sys/types.h>
22812#endif
22813#include <netinet/in.h>
22814
22815
22816int
22817main ()
22818{
22819static struct sockaddr_in6 ac_aggr;
22820if (ac_aggr.sin6_scope_id)
22821return 0;
22822 ;
22823 return 0;
22824}
22825_ACEOF
22826rm -f conftest.$ac_objext
22827if { (ac_try="$ac_compile"
22828case "(($ac_try" in
22829 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
22830 *) ac_try_echo=$ac_try;;
22831esac
22832eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
22833 (eval "$ac_compile") 2>conftest.er1
22834 ac_status=$?
22835 grep -v '^ *+' conftest.er1 >conftest.err
22836 rm -f conftest.er1
22837 cat conftest.err >&5
22838 echo "$as_me:$LINENO: \$? = $ac_status" >&5
22839 (exit $ac_status); } && {
22840 test -z "$ac_c_werror_flag" ||
22841 test ! -s conftest.err
22842 } && test -s conftest.$ac_objext; then
22843 ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
22844else
22845 echo "$as_me: failed program was:" >&5
22846sed 's/^/| /' conftest.$ac_ext >&5
22847
22848 cat >conftest.$ac_ext <<_ACEOF
22849/* confdefs.h. */
22850_ACEOF
22851cat confdefs.h >>conftest.$ac_ext
22852cat >>conftest.$ac_ext <<_ACEOF
22853/* end confdefs.h. */
22854
22855#ifdef HAVE_SYS_TYPES_H
22856#include <sys/types.h>
22857#endif
22858#include <netinet/in.h>
22859
22860
22861int
22862main ()
22863{
22864static struct sockaddr_in6 ac_aggr;
22865if (sizeof ac_aggr.sin6_scope_id)
22866return 0;
22867 ;
22868 return 0;
22869}
22870_ACEOF
22871rm -f conftest.$ac_objext
22872if { (ac_try="$ac_compile"
22873case "(($ac_try" in
22874 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
22875 *) ac_try_echo=$ac_try;;
22876esac
22877eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
22878 (eval "$ac_compile") 2>conftest.er1
22879 ac_status=$?
22880 grep -v '^ *+' conftest.er1 >conftest.err
22881 rm -f conftest.er1
22882 cat conftest.err >&5
22883 echo "$as_me:$LINENO: \$? = $ac_status" >&5
22884 (exit $ac_status); } && {
22885 test -z "$ac_c_werror_flag" ||
22886 test ! -s conftest.err
22887 } && test -s conftest.$ac_objext; then
22888 ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
22889else
22890 echo "$as_me: failed program was:" >&5
22891sed 's/^/| /' conftest.$ac_ext >&5
22892
22893 ac_cv_member_struct_sockaddr_in6_sin6_scope_id=no
22894fi
22895
22896rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22897fi
22898
22899rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22900fi
22901{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&5
22902echo "${ECHO_T}$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&6; }
22903if test $ac_cv_member_struct_sockaddr_in6_sin6_scope_id = yes; then
22904
22905cat >>confdefs.h <<_ACEOF
22906#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
22907_ACEOF
22908
22909
22910fi
22911
22504fi 22912fi
22505 22913
22506{ echo "$as_me:$LINENO: checking for struct addrinfo" >&5 22914{ echo "$as_me:$LINENO: checking for struct addrinfo" >&5
diff --git a/configure.ac b/configure.ac
index fcf7e416b..b33914dae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
1# $Id: configure.ac,v 1.409 2008/07/09 11:07:19 djm Exp $ 1# $Id: configure.ac,v 1.415 2009/02/16 04:37:03 djm Exp $
2# 2#
3# Copyright (c) 1999-2004 Damien Miller 3# Copyright (c) 1999-2004 Damien Miller
4# 4#
@@ -15,7 +15,7 @@
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 16
17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) 17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org)
18AC_REVISION($Revision: 1.409 $) 18AC_REVISION($Revision: 1.415 $)
19AC_CONFIG_SRCDIR([ssh.c]) 19AC_CONFIG_SRCDIR([ssh.c])
20 20
21AC_CONFIG_HEADER(config.h) 21AC_CONFIG_HEADER(config.h)
@@ -126,7 +126,7 @@ int main(void){char b[10]; memset(b, 0, sizeof(b));}
126 126
127 # -fstack-protector-all doesn't always work for some GCC versions 127 # -fstack-protector-all doesn't always work for some GCC versions
128 # and/or platforms, so we test if we can. If it's not supported 128 # and/or platforms, so we test if we can. If it's not supported
129 # on a give platform gcc will emit a warning so we use -Werror. 129 # on a given platform gcc will emit a warning so we use -Werror.
130 if test "x$use_stack_protector" = "x1"; then 130 if test "x$use_stack_protector" = "x1"; then
131 for t in -fstack-protector-all -fstack-protector; do 131 for t in -fstack-protector-all -fstack-protector; do
132 AC_MSG_CHECKING(if $CC supports $t) 132 AC_MSG_CHECKING(if $CC supports $t)
@@ -136,8 +136,8 @@ int main(void){char b[10]; memset(b, 0, sizeof(b));}
136 LDFLAGS="$LDFLAGS $t -Werror" 136 LDFLAGS="$LDFLAGS $t -Werror"
137 AC_LINK_IFELSE( 137 AC_LINK_IFELSE(
138 [AC_LANG_SOURCE([ 138 [AC_LANG_SOURCE([
139#include <stdlib.h> 139#include <stdio.h>
140int main(void){return 0;} 140int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;}
141 ])], 141 ])],
142 [ AC_MSG_RESULT(yes) 142 [ AC_MSG_RESULT(yes)
143 CFLAGS="$saved_CFLAGS $t" 143 CFLAGS="$saved_CFLAGS $t"
@@ -145,8 +145,8 @@ int main(void){return 0;}
145 AC_MSG_CHECKING(if $t works) 145 AC_MSG_CHECKING(if $t works)
146 AC_RUN_IFELSE( 146 AC_RUN_IFELSE(
147 [AC_LANG_SOURCE([ 147 [AC_LANG_SOURCE([
148#include <stdlib.h> 148#include <stdio.h>
149int main(void){exit(0);} 149int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;}
150 ])], 150 ])],
151 [ AC_MSG_RESULT(yes) 151 [ AC_MSG_RESULT(yes)
152 break ], 152 break ],
@@ -477,6 +477,8 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
477 AC_CHECK_DECL(AU_IPv4, [], 477 AC_CHECK_DECL(AU_IPv4, [],
478 AC_DEFINE(AU_IPv4, 0, [System only supports IPv4 audit records]) 478 AC_DEFINE(AU_IPv4, 0, [System only supports IPv4 audit records])
479 [#include <bsm/audit.h>] 479 [#include <bsm/audit.h>]
480 AC_DEFINE(LASTLOG_WRITE_PUTUTXLINE, 1,
481 [Define if pututxline updates lastlog too])
480 ) 482 )
481 ;; 483 ;;
482*-*-dragonfly*) 484*-*-dragonfly*)
@@ -561,6 +563,14 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
561 AC_DEFINE(WITH_ABBREV_NO_TTY) 563 AC_DEFINE(WITH_ABBREV_NO_TTY)
562 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") 564 AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
563 ;; 565 ;;
566*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
567 check_for_libcrypt_later=1
568 AC_DEFINE(PAM_TTY_KLUDGE)
569 AC_DEFINE(LOCKED_PASSWD_PREFIX, "!")
570 AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)
571 AC_DEFINE(_PATH_BTMP, "/var/log/btmp", [log for bad login attempts])
572 AC_DEFINE(USE_BTMP, 1, [Use btmp to log bad logins])
573 ;;
564*-*-linux*) 574*-*-linux*)
565 no_dev_ptmx=1 575 no_dev_ptmx=1
566 check_for_libcrypt_later=1 576 check_for_libcrypt_later=1
@@ -728,7 +738,6 @@ mips-sony-bsd|mips-sony-newsos4)
728 ;; 738 ;;
729# UnixWare 7.x, OpenUNIX 8 739# UnixWare 7.x, OpenUNIX 8
730*-*-sysv5*) 740*-*-sysv5*)
731 check_for_libcrypt_later=1
732 AC_DEFINE(UNIXWARE_LONG_PASSWORDS, 1, [Support passwords > 8 chars]) 741 AC_DEFINE(UNIXWARE_LONG_PASSWORDS, 1, [Support passwords > 8 chars])
733 AC_DEFINE(USE_PIPES) 742 AC_DEFINE(USE_PIPES)
734 AC_DEFINE(SETEUID_BREAKS_SETUID) 743 AC_DEFINE(SETEUID_BREAKS_SETUID)
@@ -741,8 +750,14 @@ mips-sony-bsd|mips-sony-newsos4)
741 AC_DEFINE(BROKEN_LIBIAF, 1, 750 AC_DEFINE(BROKEN_LIBIAF, 1,
742 [ia_uinfo routines not supported by OS yet]) 751 [ia_uinfo routines not supported by OS yet])
743 AC_DEFINE(BROKEN_UPDWTMPX) 752 AC_DEFINE(BROKEN_UPDWTMPX)
753 AC_CHECK_LIB(prot, getluid,[ LIBS="$LIBS -lprot"
754 AC_CHECK_FUNCS(getluid setluid,,,-lprot)
755 AC_DEFINE(HAVE_SECUREWARE)
756 AC_DEFINE(DISABLE_SHADOW)
757 ],,)
744 ;; 758 ;;
745 *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") 759 *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*")
760 check_for_libcrypt_later=1
746 ;; 761 ;;
747 esac 762 esac
748 ;; 763 ;;
@@ -1503,6 +1518,8 @@ AC_CHECK_FUNCS(utmpname)
1503dnl Checks for utmpx functions 1518dnl Checks for utmpx functions
1504AC_CHECK_FUNCS(endutxent getutxent getutxid getutxline pututxline ) 1519AC_CHECK_FUNCS(endutxent getutxent getutxid getutxline pututxline )
1505AC_CHECK_FUNCS(setutxent utmpxname) 1520AC_CHECK_FUNCS(setutxent utmpxname)
1521dnl Checks for lastlog functions
1522AC_CHECK_FUNCS(getlastlogxbyname)
1506 1523
1507AC_CHECK_FUNC(daemon, 1524AC_CHECK_FUNC(daemon,
1508 [AC_DEFINE(HAVE_DAEMON, 1, [Define if your libraries define daemon()])], 1525 [AC_DEFINE(HAVE_DAEMON, 1, [Define if your libraries define daemon()])],
@@ -2824,6 +2841,15 @@ AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [
2824if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then 2841if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
2825 AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, 2842 AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1,
2826 [define if you have struct in6_addr data type]) 2843 [define if you have struct in6_addr data type])
2844
2845dnl Now check for sin6_scope_id
2846 AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
2847 [
2848#ifdef HAVE_SYS_TYPES_H
2849#include <sys/types.h>
2850#endif
2851#include <netinet/in.h>
2852 ])
2827fi 2853fi
2828 2854
2829AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [ 2855AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [
diff --git a/contrib/caldera/openssh.spec b/contrib/caldera/openssh.spec
index 32d175d4b..42dbcfeeb 100644
--- a/contrib/caldera/openssh.spec
+++ b/contrib/caldera/openssh.spec
@@ -17,11 +17,11 @@
17#old cvs stuff. please update before use. may be deprecated. 17#old cvs stuff. please update before use. may be deprecated.
18%define use_stable 1 18%define use_stable 1
19%if %{use_stable} 19%if %{use_stable}
20 %define version 5.1p1 20 %define version 5.2p1
21 %define cvs %{nil} 21 %define cvs %{nil}
22 %define release 1 22 %define release 1
23%else 23%else
24 %define version 5.1p1 24 %define version 5.2p1
25 %define cvs cvs20050315 25 %define cvs cvs20050315
26 %define release 0r1 26 %define release 0r1
27%endif 27%endif
@@ -251,7 +251,7 @@ install -m 0755 contrib/caldera/ssh-host-keygen $SKG
251# install remaining docs 251# install remaining docs
252DocD="%{buildroot}%{_defaultdocdir}/%{name}-%{version}" 252DocD="%{buildroot}%{_defaultdocdir}/%{name}-%{version}"
253mkdir -p $DocD/%{askpass} 253mkdir -p $DocD/%{askpass}
254cp -a CREDITS ChangeLog LICENCE OVERVIEW README* TODO $DocD 254cp -a CREDITS ChangeLog LICENCE OVERVIEW README* TODO PROTOCOL* $DocD
255install -p -m 0444 %{SOURCE3} $DocD/faq.html 255install -p -m 0444 %{SOURCE3} $DocD/faq.html
256cp -a %{askpass}/{README,ChangeLog,TODO,SshAskpass*.ad} $DocD/%{askpass} 256cp -a %{askpass}/{README,ChangeLog,TODO,SshAskpass*.ad} $DocD/%{askpass}
257%if %{use_stable} 257%if %{use_stable}
@@ -358,4 +358,4 @@ fi
358* Mon Jan 01 1998 ... 358* Mon Jan 01 1998 ...
359Template Version: 1.31 359Template Version: 1.31
360 360
361$Id: openssh.spec,v 1.65 2008/07/21 08:21:53 djm Exp $ 361$Id: openssh.spec,v 1.66 2009/02/21 07:03:05 djm Exp $
diff --git a/contrib/caldera/ssh-host-keygen b/contrib/caldera/ssh-host-keygen
index 3c5c17182..86382ddfb 100755
--- a/contrib/caldera/ssh-host-keygen
+++ b/contrib/caldera/ssh-host-keygen
@@ -1,6 +1,6 @@
1#! /bin/sh 1#! /bin/sh
2# 2#
3# $Id: ssh-host-keygen,v 1.2 2003/11/21 12:48:57 djm Exp $ 3# $Id: ssh-host-keygen,v 1.3 2008/11/03 09:16:01 djm Exp $
4# 4#
5# This script is normally run only *once* for a given host 5# This script is normally run only *once* for a given host
6# (in a given period of time) -- on updates/upgrades/recovery 6# (in a given period of time) -- on updates/upgrades/recovery
@@ -15,16 +15,16 @@ if [ -f $keydir/ssh_host_key -o \
15 -f $keydir/ssh_host_key.pub ]; then 15 -f $keydir/ssh_host_key.pub ]; then
16 echo "You already have an SSH1 RSA host key in $keydir/ssh_host_key." 16 echo "You already have an SSH1 RSA host key in $keydir/ssh_host_key."
17else 17else
18 echo "Generating 1024 bit SSH1 RSA host key." 18 echo "Generating SSH1 RSA host key."
19 $keygen -b 1024 -t rsa1 -f $keydir/ssh_host_key -C '' -N '' 19 $keygen -t rsa1 -f $keydir/ssh_host_key -C '' -N ''
20fi 20fi
21 21
22if [ -f $keydir/ssh_host_rsa_key -o \ 22if [ -f $keydir/ssh_host_rsa_key -o \
23 -f $keydir/ssh_host_rsa_key.pub ]; then 23 -f $keydir/ssh_host_rsa_key.pub ]; then
24 echo "You already have an SSH2 RSA host key in $keydir/ssh_host_rsa_key." 24 echo "You already have an SSH2 RSA host key in $keydir/ssh_host_rsa_key."
25else 25else
26 echo "Generating 1024 bit SSH2 RSA host key." 26 echo "Generating SSH2 RSA host key."
27 $keygen -b 1024 -t rsa -f $keydir/ssh_host_rsa_key -C '' -N '' 27 $keygen -t rsa -f $keydir/ssh_host_rsa_key -C '' -N ''
28fi 28fi
29 29
30if [ -f $keydir/ssh_host_dsa_key -o \ 30if [ -f $keydir/ssh_host_dsa_key -o \
diff --git a/contrib/caldera/sshd.pam b/contrib/caldera/sshd.pam
index 26dcb34d9..f050a9aee 100644
--- a/contrib/caldera/sshd.pam
+++ b/contrib/caldera/sshd.pam
@@ -1,6 +1,6 @@
1#%PAM-1.0 1#%PAM-1.0
2auth required /lib/security/pam_pwdb.so shadow nodelay 2auth required /lib/security/pam_pwdb.so shadow nodelay
3auth required /lib/security/pam_nologin.so 3account required /lib/security/pam_nologin.so
4account required /lib/security/pam_pwdb.so 4account required /lib/security/pam_pwdb.so
5password required /lib/security/pam_cracklib.so 5password required /lib/security/pam_cracklib.so
6password required /lib/security/pam_pwdb.so shadow nullok use_authtok 6password required /lib/security/pam_pwdb.so shadow nullok use_authtok
diff --git a/contrib/cygwin/Makefile b/contrib/cygwin/Makefile
index 3e2d26404..2ebd143dc 100644
--- a/contrib/cygwin/Makefile
+++ b/contrib/cygwin/Makefile
@@ -38,11 +38,13 @@ install-sshdoc:
38 $(INSTALL) -m 644 $(srcdir)/ChangeLog $(DESTDIR)$(sshdocdir)/ChangeLog 38 $(INSTALL) -m 644 $(srcdir)/ChangeLog $(DESTDIR)$(sshdocdir)/ChangeLog
39 $(INSTALL) -m 644 $(srcdir)/LICENCE $(DESTDIR)$(sshdocdir)/LICENCE 39 $(INSTALL) -m 644 $(srcdir)/LICENCE $(DESTDIR)$(sshdocdir)/LICENCE
40 $(INSTALL) -m 644 $(srcdir)/OVERVIEW $(DESTDIR)$(sshdocdir)/OVERVIEW 40 $(INSTALL) -m 644 $(srcdir)/OVERVIEW $(DESTDIR)$(sshdocdir)/OVERVIEW
41 $(INSTALL) -m 644 $(srcdir)/PROTOCOL $(DESTDIR)$(sshdocdir)/PROTOCOL
42 $(INSTALL) -m 644 $(srcdir)/PROTOCOL.agent $(DESTDIR)$(sshdocdir)/PROTOCOL.agent
41 $(INSTALL) -m 644 $(srcdir)/README $(DESTDIR)$(sshdocdir)/README 43 $(INSTALL) -m 644 $(srcdir)/README $(DESTDIR)$(sshdocdir)/README
42 $(INSTALL) -m 644 $(srcdir)/README.dns $(DESTDIR)$(sshdocdir)/README.dns 44 $(INSTALL) -m 644 $(srcdir)/README.dns $(DESTDIR)$(sshdocdir)/README.dns
45 $(INSTALL) -m 644 $(srcdir)/README.platform $(DESTDIR)$(sshdocdir)/README.platform
43 $(INSTALL) -m 644 $(srcdir)/README.privsep $(DESTDIR)$(sshdocdir)/README.privsep 46 $(INSTALL) -m 644 $(srcdir)/README.privsep $(DESTDIR)$(sshdocdir)/README.privsep
44 $(INSTALL) -m 644 $(srcdir)/README.smartcard $(DESTDIR)$(sshdocdir)/README.smartcard 47 $(INSTALL) -m 644 $(srcdir)/README.smartcard $(DESTDIR)$(sshdocdir)/README.smartcard
45 $(INSTALL) -m 644 $(srcdir)/RFC.nroff $(DESTDIR)$(sshdocdir)/RFC.nroff
46 $(INSTALL) -m 644 $(srcdir)/TODO $(DESTDIR)$(sshdocdir)/TODO 48 $(INSTALL) -m 644 $(srcdir)/TODO $(DESTDIR)$(sshdocdir)/TODO
47 $(INSTALL) -m 644 $(srcdir)/WARNING.RNG $(DESTDIR)$(sshdocdir)/WARNING.RNG 49 $(INSTALL) -m 644 $(srcdir)/WARNING.RNG $(DESTDIR)$(sshdocdir)/WARNING.RNG
48 50
diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config
index bbb6da4c4..57e728fbc 100644
--- a/contrib/cygwin/ssh-host-config
+++ b/contrib/cygwin/ssh-host-config
@@ -25,7 +25,7 @@ source ${CSIH_SCRIPT}
25port_number=22 25port_number=22
26privsep_configured=no 26privsep_configured=no
27privsep_used=yes 27privsep_used=yes
28cygwin_value="ntsec" 28cygwin_value=""
29password_value= 29password_value=
30 30
31# ====================================================================== 31# ======================================================================
@@ -37,13 +37,13 @@ create_host_keys() {
37 csih_inform "Generating ${SYSCONFDIR}/ssh_host_key" 37 csih_inform "Generating ${SYSCONFDIR}/ssh_host_key"
38 ssh-keygen -t rsa1 -f ${SYSCONFDIR}/ssh_host_key -N '' > /dev/null 38 ssh-keygen -t rsa1 -f ${SYSCONFDIR}/ssh_host_key -N '' > /dev/null
39 fi 39 fi
40 40
41 if [ ! -f "${SYSCONFDIR}/ssh_host_rsa_key" ] 41 if [ ! -f "${SYSCONFDIR}/ssh_host_rsa_key" ]
42 then 42 then
43 csih_inform "Generating ${SYSCONFDIR}/ssh_host_rsa_key" 43 csih_inform "Generating ${SYSCONFDIR}/ssh_host_rsa_key"
44 ssh-keygen -t rsa -f ${SYSCONFDIR}/ssh_host_rsa_key -N '' > /dev/null 44 ssh-keygen -t rsa -f ${SYSCONFDIR}/ssh_host_rsa_key -N '' > /dev/null
45 fi 45 fi
46 46
47 if [ ! -f "${SYSCONFDIR}/ssh_host_dsa_key" ] 47 if [ ! -f "${SYSCONFDIR}/ssh_host_dsa_key" ]
48 then 48 then
49 csih_inform "Generating ${SYSCONFDIR}/ssh_host_dsa_key" 49 csih_inform "Generating ${SYSCONFDIR}/ssh_host_dsa_key"
@@ -75,12 +75,12 @@ update_services_file() {
75 _spaces=" # " 75 _spaces=" # "
76 fi 76 fi
77 _serv_tmp="${_my_etcdir}/srv.out.$$" 77 _serv_tmp="${_my_etcdir}/srv.out.$$"
78 78
79 mount -t -f "${_win_etcdir}" "${_my_etcdir}" 79 mount -o text -f "${_win_etcdir}" "${_my_etcdir}"
80 80
81 # Depends on the above mount 81 # Depends on the above mount
82 _wservices=`cygpath -w "${_services}"` 82 _wservices=`cygpath -w "${_services}"`
83 83
84 # Remove sshd 22/port from services 84 # Remove sshd 22/port from services
85 if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -eq 0 ] 85 if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -eq 0 ]
86 then 86 then
@@ -89,16 +89,16 @@ update_services_file() {
89 then 89 then
90 if mv "${_serv_tmp}" "${_services}" 90 if mv "${_serv_tmp}" "${_services}"
91 then 91 then
92 csih_inform "Removing sshd from ${_wservices}" 92 csih_inform "Removing sshd from ${_wservices}"
93 else 93 else
94 csih_warning "Removing sshd from ${_wservices} failed!" 94 csih_warning "Removing sshd from ${_wservices} failed!"
95 fi 95 fi
96 rm -f "${_serv_tmp}" 96 rm -f "${_serv_tmp}"
97 else 97 else
98 csih_warning "Removing sshd from ${_wservices} failed!" 98 csih_warning "Removing sshd from ${_wservices} failed!"
99 fi 99 fi
100 fi 100 fi
101 101
102 # Add ssh 22/tcp and ssh 22/udp to services 102 # Add ssh 22/tcp and ssh 22/udp to services
103 if [ `grep -q 'ssh[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ] 103 if [ `grep -q 'ssh[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ]
104 then 104 then
@@ -106,9 +106,9 @@ update_services_file() {
106 then 106 then
107 if mv "${_serv_tmp}" "${_services}" 107 if mv "${_serv_tmp}" "${_services}"
108 then 108 then
109 csih_inform "Added ssh to ${_wservices}" 109 csih_inform "Added ssh to ${_wservices}"
110 else 110 else
111 csih_warning "Adding ssh to ${_wservices} failed!" 111 csih_warning "Adding ssh to ${_wservices} failed!"
112 fi 112 fi
113 rm -f "${_serv_tmp}" 113 rm -f "${_serv_tmp}"
114 else 114 else
@@ -134,16 +134,16 @@ sshd_privsep() {
134 csih_inform "For more info on privilege separation read /usr/share/doc/openssh/README.privsep." 134 csih_inform "For more info on privilege separation read /usr/share/doc/openssh/README.privsep."
135 if csih_request "Should privilege separation be used?" 135 if csih_request "Should privilege separation be used?"
136 then 136 then
137 privsep_used=yes 137 privsep_used=yes
138 if ! csih_create_unprivileged_user sshd 138 if ! csih_create_unprivileged_user sshd
139 then 139 then
140 csih_warning "Couldn't create user 'sshd'!" 140 csih_warning "Couldn't create user 'sshd'!"
141 csih_warning "Privilege separation set to 'no' again!" 141 csih_warning "Privilege separation set to 'no' again!"
142 csih_warning "Check your ${SYSCONFDIR}/sshd_config file!" 142 csih_warning "Check your ${SYSCONFDIR}/sshd_config file!"
143 privsep_used=no 143 privsep_used=no
144 fi 144 fi
145 else 145 else
146 privsep_used=no 146 privsep_used=no
147 fi 147 fi
148 else 148 else
149 # On 9x don't use privilege separation. Since security isn't 149 # On 9x don't use privilege separation. Since security isn't
@@ -151,7 +151,7 @@ sshd_privsep() {
151 privsep_used=no 151 privsep_used=no
152 fi 152 fi
153 fi 153 fi
154 154
155 # Create default sshd_config from skeleton files in /etc/defaults/etc or 155 # Create default sshd_config from skeleton files in /etc/defaults/etc or
156 # modify to add the missing privsep configuration option 156 # modify to add the missing privsep configuration option
157 if cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1 157 if cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1
@@ -161,8 +161,8 @@ sshd_privsep() {
161 sed -e "s/^#UsePrivilegeSeparation yes/UsePrivilegeSeparation ${privsep_used}/ 161 sed -e "s/^#UsePrivilegeSeparation yes/UsePrivilegeSeparation ${privsep_used}/
162 s/^#Port 22/Port ${port_number}/ 162 s/^#Port 22/Port ${port_number}/
163 s/^#StrictModes yes/StrictModes no/" \ 163 s/^#StrictModes yes/StrictModes no/" \
164 < ${SYSCONFDIR}/sshd_config \ 164 < ${SYSCONFDIR}/sshd_config \
165 > "${sshdconfig_tmp}" 165 > "${sshdconfig_tmp}"
166 mv "${sshdconfig_tmp}" ${SYSCONFDIR}/sshd_config 166 mv "${sshdconfig_tmp}" ${SYSCONFDIR}/sshd_config
167 elif [ "${privsep_configured}" != "yes" ] 167 elif [ "${privsep_configured}" != "yes" ]
168 then 168 then
@@ -193,19 +193,19 @@ update_inetd_conf() {
193 # will be replaced by a file in inetd.d/ 193 # will be replaced by a file in inetd.d/
194 if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -eq 0 ] 194 if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -eq 0 ]
195 then 195 then
196 grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}" 196 grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}"
197 if [ -f "${_inetcnf_tmp}" ] 197 if [ -f "${_inetcnf_tmp}" ]
198 then 198 then
199 if mv "${_inetcnf_tmp}" "${_inetcnf}" 199 if mv "${_inetcnf_tmp}" "${_inetcnf}"
200 then 200 then
201 csih_inform "Removed ssh[d] from ${_inetcnf}" 201 csih_inform "Removed ssh[d] from ${_inetcnf}"
202 else 202 else
203 csih_warning "Removing ssh[d] from ${_inetcnf} failed!" 203 csih_warning "Removing ssh[d] from ${_inetcnf} failed!"
204 fi 204 fi
205 rm -f "${_inetcnf_tmp}" 205 rm -f "${_inetcnf_tmp}"
206 else 206 else
207 csih_warning "Removing ssh[d] from ${_inetcnf} failed!" 207 csih_warning "Removing ssh[d] from ${_inetcnf} failed!"
208 fi 208 fi
209 fi 209 fi
210 fi 210 fi
211 211
@@ -214,13 +214,13 @@ update_inetd_conf() {
214 then 214 then
215 if [ "${_with_comment}" -eq 0 ] 215 if [ "${_with_comment}" -eq 0 ]
216 then 216 then
217 sed -e 's/@COMMENT@[ \t]*//' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" 217 sed -e 's/@COMMENT@[ \t]*//' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}"
218 else 218 else
219 sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" 219 sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}"
220 fi 220 fi
221 mv "${_sshd_inetd_conf_tmp}" "${_sshd_inetd_conf}" 221 mv "${_sshd_inetd_conf_tmp}" "${_sshd_inetd_conf}"
222 csih_inform "Updated ${_sshd_inetd_conf}" 222 csih_inform "Updated ${_sshd_inetd_conf}"
223 fi 223 fi
224 224
225 elif [ -f "${_inetcnf}" ] 225 elif [ -f "${_inetcnf}" ]
226 then 226 then
@@ -233,26 +233,26 @@ update_inetd_conf() {
233 grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}" 233 grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}"
234 if [ -f "${_inetcnf_tmp}" ] 234 if [ -f "${_inetcnf_tmp}" ]
235 then 235 then
236 if mv "${_inetcnf_tmp}" "${_inetcnf}" 236 if mv "${_inetcnf_tmp}" "${_inetcnf}"
237 then 237 then
238 csih_inform "Removed sshd from ${_inetcnf}" 238 csih_inform "Removed sshd from ${_inetcnf}"
239 else 239 else
240 csih_warning "Removing sshd from ${_inetcnf} failed!" 240 csih_warning "Removing sshd from ${_inetcnf} failed!"
241 fi 241 fi
242 rm -f "${_inetcnf_tmp}" 242 rm -f "${_inetcnf_tmp}"
243 else 243 else
244 csih_warning "Removing sshd from ${_inetcnf} failed!" 244 csih_warning "Removing sshd from ${_inetcnf} failed!"
245 fi 245 fi
246 fi 246 fi
247 247
248 # Add ssh line to inetd.conf 248 # Add ssh line to inetd.conf
249 if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -ne 0 ] 249 if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -ne 0 ]
250 then 250 then
251 if [ "${_with_comment}" -eq 0 ] 251 if [ "${_with_comment}" -eq 0 ]
252 then 252 then
253 echo 'ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" 253 echo 'ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}"
254 else 254 else
255 echo '# ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" 255 echo '# ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}"
256 fi 256 fi
257 csih_inform "Added ssh to ${_inetcnf}" 257 csih_inform "Added ssh to ${_inetcnf}"
258 fi 258 fi
@@ -278,80 +278,83 @@ install_service() {
278 echo -e "${_csih_QUERY_STR} Do you want to install sshd as a service?" 278 echo -e "${_csih_QUERY_STR} Do you want to install sshd as a service?"
279 if csih_request "(Say \"no\" if it is already installed as a service)" 279 if csih_request "(Say \"no\" if it is already installed as a service)"
280 then 280 then
281 csih_inform "Note that the CYGWIN variable must contain at least \"ntsec\"" 281 csih_get_cygenv "${cygwin_value}"
282 csih_inform "for sshd to be able to change user context without password." 282
283 csih_get_cygenv "${cygwin_value}" 283 if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] )
284 284 then
285 if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) 285 csih_inform "On Windows Server 2003, Windows Vista, and above, the"
286 then 286 csih_inform "SYSTEM account cannot setuid to other users -- a capability"
287 csih_inform "On Windows Server 2003, Windows Vista, and above, the" 287 csih_inform "sshd requires. You need to have or to create a privileged"
288 csih_inform "SYSTEM account cannot setuid to other users -- a capability" 288 csih_inform "account. This script will help you do so."
289 csih_inform "sshd requires. You need to have or to create a privileged" 289 echo
290 csih_inform "account. This script will help you do so." 290 if ! csih_create_privileged_user "${password_value}"
291 echo 291 then
292 if ! csih_create_privileged_user "${password_value}" 292 csih_error_recoverable "There was a serious problem creating a privileged user."
293 then 293 csih_request "Do you want to proceed anyway?" || exit 1
294 csih_error_recoverable "There was a serious problem creating a privileged user." 294 fi
295 csih_request "Do you want to proceed anyway?" || exit 1 295 fi
296 fi 296
297 fi 297 # never returns empty if NT or above
298 298 run_service_as=$(csih_service_should_run_as)
299 # never returns empty if NT or above 299
300 run_service_as=$(csih_service_should_run_as) 300 if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ]
301 301 then
302 if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ] 302 password="${csih_PRIVILEGED_PASSWORD}"
303 then 303 if [ -z "${password}" ]
304 password="${csih_PRIVILEGED_PASSWORD}" 304 then
305 if [ -z "${password}" ] 305 csih_get_value "Please enter the password for user '${run_service_as}':" "-s"
306 then 306 password="${csih_value}"
307 csih_get_value "Please enter the password for user '${run_service_as}':" "-s" 307 fi
308 password="${csih_value}" 308 fi
309 fi 309
310 fi 310 # at this point, we either have $run_service_as = "system" and $password is empty,
311 311 # or $run_service_as is some privileged user and (hopefully) $password contains
312 # at this point, we either have $run_service_as = "system" and $password is empty, 312 # the correct password. So, from here out, we use '-z "${password}"' to discriminate
313 # or $run_service_as is some privileged user and (hopefully) $password contains 313 # the two cases.
314 # the correct password. So, from here out, we use '-z "${password}"' to discriminate 314
315 # the two cases. 315 csih_check_user "${run_service_as}"
316 316
317 csih_check_user "${run_service_as}" 317 if [ -n "${csih_cygenv}" ]
318 318 then
319 if [ -z "${password}" ] 319 cygwin_env="-e CYGWIN=\"${csih_cygenv}\""
320 then 320 fi
321 if cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a "-D" -y tcpip \ 321 if [ -z "${password}" ]
322 -e CYGWIN="${csih_cygenv}" 322 then
323 then 323 if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \
324 echo 324 -a "-D" -y tcpip ${cygwin_env}
325 csih_inform "The sshd service has been installed under the LocalSystem" 325 then
326 csih_inform "account (also known as SYSTEM). To start the service now, call" 326 echo
327 csih_inform "\`net start sshd' or \`cygrunsrv -S sshd'. Otherwise, it" 327 csih_inform "The sshd service has been installed under the LocalSystem"
328 csih_inform "will start automatically after the next reboot." 328 csih_inform "account (also known as SYSTEM). To start the service now, call"
329 fi 329 csih_inform "\`net start sshd' or \`cygrunsrv -S sshd'. Otherwise, it"
330 else 330 csih_inform "will start automatically after the next reboot."
331 if cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a "-D" -y tcpip \ 331 fi
332 -e CYGWIN="${csih_cygenv}" -u "${run_service_as}" -w "${password}" 332 else
333 then 333 if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \
334 -a "-D" -y tcpip ${cygwin_env} \
335 -u "${run_service_as}" -w "${password}"
336 then
334 echo 337 echo
335 csih_inform "The sshd service has been installed under the '${run_service_as}'" 338 csih_inform "The sshd service has been installed under the '${run_service_as}'"
336 csih_inform "account. To start the service now, call \`net start sshd' or" 339 csih_inform "account. To start the service now, call \`net start sshd' or"
337 csih_inform "\`cygrunsrv -S sshd'. Otherwise, it will start automatically" 340 csih_inform "\`cygrunsrv -S sshd'. Otherwise, it will start automatically"
338 csih_inform "after the next reboot." 341 csih_inform "after the next reboot."
339 fi 342 fi
340 fi 343 fi
341 344
342 # now, if successfully installed, set ownership of the affected files 345 # now, if successfully installed, set ownership of the affected files
343 if cygrunsrv -Q sshd >/dev/null 2>&1 346 if cygrunsrv -Q sshd >/dev/null 2>&1
344 then 347 then
345 chown "${run_service_as}" ${SYSCONFDIR}/ssh* 348 chown "${run_service_as}" ${SYSCONFDIR}/ssh*
346 chown "${run_service_as}".544 ${LOCALSTATEDIR}/empty 349 chown "${run_service_as}".544 ${LOCALSTATEDIR}/empty
347 chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/lastlog 350 chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/lastlog
348 if [ -f ${LOCALSTATEDIR}/log/sshd.log ] 351 if [ -f ${LOCALSTATEDIR}/log/sshd.log ]
349 then 352 then
350 chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/sshd.log 353 chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/sshd.log
351 fi 354 fi
352 else 355 else
353 csih_warning "Something went wrong installing the sshd service." 356 csih_warning "Something went wrong installing the sshd service."
354 fi 357 fi
355 fi # user allowed us to install as service 358 fi # user allowed us to install as service
356 fi # service not yet installed 359 fi # service not yet installed
357 fi # csih_is_nt 360 fi # csih_is_nt
@@ -456,7 +459,7 @@ done
456 459
457# Check for running ssh/sshd processes first. Refuse to do anything while 460# Check for running ssh/sshd processes first. Refuse to do anything while
458# some ssh processes are still running 461# some ssh processes are still running
459if ps -ef | grep -v grep | grep -q ssh 462if ps -ef | grep -q '/sshd\?$'
460then 463then
461 echo 464 echo
462 csih_error "There are still ssh processes running. Please shut them down first." 465 csih_error "There are still ssh processes running. Please shut them down first."
@@ -475,9 +478,9 @@ setfacl -m u:system:rwx "${LOCALSTATEDIR}/log"
475# Create /var/log/lastlog if not already exists 478# Create /var/log/lastlog if not already exists
476if [ -e ${LOCALSTATEDIR}/log/lastlog -a ! -f ${LOCALSTATEDIR}/log/lastlog ] 479if [ -e ${LOCALSTATEDIR}/log/lastlog -a ! -f ${LOCALSTATEDIR}/log/lastlog ]
477then 480then
478 echo 481 echo
479 csih_error_multi "${LOCALSTATEDIR}/log/lastlog exists, but is not a file." \ 482 csih_error_multi "${LOCALSTATEDIR}/log/lastlog exists, but is not a file." \
480 "Cannot create ssh host configuration." 483 "Cannot create ssh host configuration."
481fi 484fi
482if [ ! -e ${LOCALSTATEDIR}/log/lastlog ] 485if [ ! -e ${LOCALSTATEDIR}/log/lastlog ]
483then 486then
@@ -520,7 +523,7 @@ sshd_privsep
520 523
521 524
522 525
523update_services_file 526update_services_file
524update_inetd_conf 527update_inetd_conf
525install_service 528install_service
526 529
diff --git a/contrib/gnome-ssh-askpass.c b/contrib/gnome-ssh-askpass.c
deleted file mode 100644
index 7cece5620..000000000
--- a/contrib/gnome-ssh-askpass.c
+++ /dev/null
@@ -1,168 +0,0 @@
1/*
2 * Copyright (c) 2000-2002 Damien Miller. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25/*
26 * This is a simple GNOME SSH passphrase grabber. To use it, set the
27 * environment variable SSH_ASKPASS to point to the location of
28 * gnome-ssh-askpass before calling "ssh-add < /dev/null".
29 *
30 * There is only two run-time options: if you set the environment variable
31 * "GNOME_SSH_ASKPASS_GRAB_SERVER=true" then gnome-ssh-askpass will grab
32 * the X server. If you set "GNOME_SSH_ASKPASS_GRAB_POINTER=true", then the
33 * pointer will be grabbed too. These may have some benefit to security if
34 * you don't trust your X server. We grab the keyboard always.
35 */
36
37/*
38 * Compile with:
39 *
40 * cc `gnome-config --cflags gnome gnomeui` \
41 * gnome-ssh-askpass.c -o gnome-ssh-askpass \
42 * `gnome-config --libs gnome gnomeui`
43 *
44 */
45
46#include <stdlib.h>
47#include <stdio.h>
48#include <string.h>
49#include <gnome.h>
50#include <X11/Xlib.h>
51#include <gdk/gdkx.h>
52
53void
54report_failed_grab (void)
55{
56 GtkWidget *err;
57
58 err = gnome_message_box_new("Could not grab keyboard or mouse.\n"
59 "A malicious client may be eavesdropping on your session.",
60 GNOME_MESSAGE_BOX_ERROR, "EXIT", NULL);
61 gtk_window_set_position(GTK_WINDOW(err), GTK_WIN_POS_CENTER);
62 gtk_object_set(GTK_OBJECT(err), "type", GTK_WINDOW_POPUP, NULL);
63
64 gnome_dialog_run_and_close(GNOME_DIALOG(err));
65}
66
67void
68passphrase_dialog(char *message)
69{
70 char *passphrase;
71 char **messages;
72 int result, i, grab_server, grab_pointer;
73 GtkWidget *dialog, *entry, *label;
74
75 grab_server = (getenv("GNOME_SSH_ASKPASS_GRAB_SERVER") != NULL);
76 grab_pointer = (getenv("GNOME_SSH_ASKPASS_GRAB_POINTER") != NULL);
77
78 dialog = gnome_dialog_new("OpenSSH", GNOME_STOCK_BUTTON_OK,
79 GNOME_STOCK_BUTTON_CANCEL, NULL);
80
81 messages = g_strsplit(message, "\\n", 0);
82 if (messages)
83 for(i = 0; messages[i]; i++) {
84 label = gtk_label_new(messages[i]);
85 gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dialog)->vbox),
86 label, FALSE, FALSE, 0);
87 }
88
89 entry = gtk_entry_new();
90 gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dialog)->vbox), entry, FALSE,
91 FALSE, 0);
92 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
93 gtk_widget_grab_focus(entry);
94
95 /* Center window and prepare for grab */
96 gtk_object_set(GTK_OBJECT(dialog), "type", GTK_WINDOW_POPUP, NULL);
97 gnome_dialog_set_default(GNOME_DIALOG(dialog), 0);
98 gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
99 gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE);
100 gnome_dialog_close_hides(GNOME_DIALOG(dialog), TRUE);
101 gtk_container_set_border_width(GTK_CONTAINER(GNOME_DIALOG(dialog)->vbox),
102 GNOME_PAD);
103 gtk_widget_show_all(dialog);
104
105 /* Grab focus */
106 if (grab_server)
107 XGrabServer(GDK_DISPLAY());
108 if (grab_pointer && gdk_pointer_grab(dialog->window, TRUE, 0,
109 NULL, NULL, GDK_CURRENT_TIME))
110 goto nograb;
111 if (gdk_keyboard_grab(dialog->window, FALSE, GDK_CURRENT_TIME))
112 goto nograbkb;
113
114 /* Make <enter> close dialog */
115 gnome_dialog_editable_enters(GNOME_DIALOG(dialog), GTK_EDITABLE(entry));
116
117 /* Run dialog */
118 result = gnome_dialog_run(GNOME_DIALOG(dialog));
119
120 /* Ungrab */
121 if (grab_server)
122 XUngrabServer(GDK_DISPLAY());
123 if (grab_pointer)
124 gdk_pointer_ungrab(GDK_CURRENT_TIME);
125 gdk_keyboard_ungrab(GDK_CURRENT_TIME);
126 gdk_flush();
127
128 /* Report passphrase if user selected OK */
129 passphrase = gtk_entry_get_text(GTK_ENTRY(entry));
130 if (result == 0)
131 puts(passphrase);
132
133 /* Zero passphrase in memory */
134 memset(passphrase, '\0', strlen(passphrase));
135 gtk_entry_set_text(GTK_ENTRY(entry), passphrase);
136
137 gnome_dialog_close(GNOME_DIALOG(dialog));
138 return;
139
140 /* At least one grab failed - ungrab what we got, and report
141 the failure to the user. Note that XGrabServer() cannot
142 fail. */
143 nograbkb:
144 gdk_pointer_ungrab(GDK_CURRENT_TIME);
145 nograb:
146 if (grab_server)
147 XUngrabServer(GDK_DISPLAY());
148 gnome_dialog_close(GNOME_DIALOG(dialog));
149
150 report_failed_grab();
151}
152
153int
154main(int argc, char **argv)
155{
156 char *message;
157
158 gnome_init("GNOME ssh-askpass", "0.1", argc, argv);
159
160 if (argc == 2)
161 message = argv[1];
162 else
163 message = "Enter your OpenSSH passphrase:";
164
165 setvbuf(stdout, 0, _IONBF, 0);
166 passphrase_dialog(message);
167 return 0;
168}
diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec
index bb9e4d616..10bdc1989 100644
--- a/contrib/redhat/openssh.spec
+++ b/contrib/redhat/openssh.spec
@@ -1,4 +1,4 @@
1%define ver 5.1p1 1%define ver 5.2p1
2%define rel 1 2%define rel 1
3 3
4# OpenSSH privilege separation requires a user & group ID 4# OpenSSH privilege separation requires a user & group ID
@@ -333,7 +333,7 @@ fi
333 333
334%files 334%files
335%defattr(-,root,root) 335%defattr(-,root,root)
336%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* RFC* TODO WARNING* 336%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* PROTOCOL* TODO WARNING*
337%attr(0755,root,root) %{_bindir}/scp 337%attr(0755,root,root) %{_bindir}/scp
338%attr(0644,root,root) %{_mandir}/man1/scp.1* 338%attr(0644,root,root) %{_mandir}/man1/scp.1*
339%attr(0755,root,root) %dir %{_sysconfdir}/ssh 339%attr(0755,root,root) %dir %{_sysconfdir}/ssh
diff --git a/contrib/redhat/sshd.pam b/contrib/redhat/sshd.pam
index e48607766..ffa5adbe5 100644
--- a/contrib/redhat/sshd.pam
+++ b/contrib/redhat/sshd.pam
@@ -1,6 +1,6 @@
1#%PAM-1.0 1#%PAM-1.0
2auth required pam_stack.so service=system-auth 2auth required pam_stack.so service=system-auth
3auth required pam_nologin.so 3account required pam_nologin.so
4account required pam_stack.so service=system-auth 4account required pam_stack.so service=system-auth
5password required pam_stack.so service=system-auth 5password required pam_stack.so service=system-auth
6session required pam_stack.so service=system-auth 6session required pam_stack.so service=system-auth
diff --git a/contrib/solaris/buildpkg.sh b/contrib/solaris/buildpkg.sh
deleted file mode 100755
index 29d096306..000000000
--- a/contrib/solaris/buildpkg.sh
+++ /dev/null
@@ -1,386 +0,0 @@
1#!/bin/sh
2#
3# Fake Root Solaris/SVR4/SVR5 Build System - Prototype
4#
5# The following code has been provide under Public Domain License. I really
6# don't care what you use it for. Just as long as you don't complain to me
7# nor my employer if you break it. - Ben Lindstrom (mouring@eviladmin.org)
8#
9umask 022
10#
11# Options for building the package
12# You can create a config.local with your customized options
13#
14# uncommenting TEST_DIR and using
15# configure --prefix=/var/tmp --with-privsep-path=/var/tmp/empty
16# and
17# PKGNAME=tOpenSSH should allow testing a package without interfering
18# with a real OpenSSH package on a system. This is not needed on systems
19# that support the -R option to pkgadd.
20#TEST_DIR=/var/tmp # leave commented out for production build
21PKGNAME=OpenSSH
22SYSVINIT_NAME=opensshd
23MAKE=${MAKE:="make"}
24SSHDUID=67 # Default privsep uid
25SSHDGID=67 # Default privsep gid
26# uncomment these next three as needed
27#PERMIT_ROOT_LOGIN=no
28#X11_FORWARDING=yes
29#USR_LOCAL_IS_SYMLINK=yes
30# list of system directories we do NOT want to change owner/group/perms
31# when installing our package
32SYSTEM_DIR="/etc \
33/etc/init.d \
34/etc/rcS.d \
35/etc/rc0.d \
36/etc/rc1.d \
37/etc/rc2.d \
38/etc/opt \
39/opt \
40/opt/bin \
41/usr \
42/usr/bin \
43/usr/lib \
44/usr/sbin \
45/usr/share \
46/usr/share/man \
47/usr/share/man/man1 \
48/usr/share/man/man8 \
49/usr/local \
50/usr/local/bin \
51/usr/local/etc \
52/usr/local/libexec \
53/usr/local/man \
54/usr/local/man/man1 \
55/usr/local/man/man8 \
56/usr/local/sbin \
57/usr/local/share \
58/var \
59/var/opt \
60/var/run \
61/var/tmp \
62/tmp"
63
64# We may need to build as root so we make sure PATH is set up
65# only set the path if it's not set already
66[ -d /usr/local/bin ] && {
67 echo $PATH | grep ":/usr/local/bin" > /dev/null 2>&1
68 [ $? -ne 0 ] && PATH=$PATH:/usr/local/bin
69}
70[ -d /usr/ccs/bin ] && {
71 echo $PATH | grep ":/usr/ccs/bin" > /dev/null 2>&1
72 [ $? -ne 0 ] && PATH=$PATH:/usr/ccs/bin
73}
74export PATH
75#
76
77[ -f Makefile ] || {
78 echo "Please run this script from your build directory"
79 exit 1
80}
81
82# we will look for config.local to override the above options
83[ -s ./config.local ] && . ./config.local
84
85## Start by faking root install
86echo "Faking root install..."
87START=`pwd`
88OPENSSHD_IN=`dirname $0`/opensshd.in
89FAKE_ROOT=$START/package
90[ -d $FAKE_ROOT ] && rm -fr $FAKE_ROOT
91mkdir $FAKE_ROOT
92${MAKE} install-nokeys DESTDIR=$FAKE_ROOT
93if [ $? -gt 0 ]
94then
95 echo "Fake root install failed, stopping."
96 exit 1
97fi
98
99## Fill in some details, like prefix and sysconfdir
100for confvar in prefix exec_prefix bindir sbindir libexecdir datadir mandir sysconfdir piddir
101do
102 eval $confvar=`grep "^$confvar=" Makefile | cut -d = -f 2`
103done
104
105
106## Collect value of privsep user
107for confvar in SSH_PRIVSEP_USER
108do
109 eval $confvar=`awk '/#define[ \t]'$confvar'/{print $3}' config.h`
110done
111
112## Set privsep defaults if not defined
113if [ -z "$SSH_PRIVSEP_USER" ]
114then
115 SSH_PRIVSEP_USER=sshd
116fi
117
118## Extract common info requires for the 'info' part of the package.
119VERSION=`./ssh -V 2>&1 | sed -e 's/,.*//'`
120
121UNAME_S=`uname -s`
122case ${UNAME_S} in
123 SunOS) UNAME_S=Solaris
124 ARCH=`uname -p`
125 RCS_D=yes
126 DEF_MSG="(default: n)"
127 ;;
128 *) ARCH=`uname -m`
129 DEF_MSG="\n" ;;
130esac
131
132## Setup our run level stuff while we are at it.
133mkdir -p $FAKE_ROOT${TEST_DIR}/etc/init.d
134
135## setup our initscript correctly
136sed -e "s#%%configDir%%#${sysconfdir}#g" \
137 -e "s#%%openSSHDir%%#$prefix#g" \
138 -e "s#%%pidDir%%#${piddir}#g" \
139 ${OPENSSHD_IN} > $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
140chmod 744 $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
141
142[ "${PERMIT_ROOT_LOGIN}" = no ] && \
143 perl -p -i -e "s/#PermitRootLogin yes/PermitRootLogin no/" \
144 $FAKE_ROOT/${sysconfdir}/sshd_config
145[ "${X11_FORWARDING}" = yes ] && \
146 perl -p -i -e "s/#X11Forwarding no/X11Forwarding yes/" \
147 $FAKE_ROOT/${sysconfdir}/sshd_config
148# fix PrintMotd
149perl -p -i -e "s/#PrintMotd yes/PrintMotd no/" \
150 $FAKE_ROOT/${sysconfdir}/sshd_config
151
152# We don't want to overwrite config files on multiple installs
153mv $FAKE_ROOT/${sysconfdir}/ssh_config $FAKE_ROOT/${sysconfdir}/ssh_config.default
154mv $FAKE_ROOT/${sysconfdir}/sshd_config $FAKE_ROOT/${sysconfdir}/sshd_config.default
155[ -f $FAKE_ROOT/${sysconfdir}/ssh_prng_cmds ] && \
156mv $FAKE_ROOT/${sysconfdir}/ssh_prng_cmds $FAKE_ROOT/${sysconfdir}/ssh_prng_cmds.default
157
158cd $FAKE_ROOT
159
160## Ok, this is outright wrong, but it will work. I'm tired of pkgmk
161## whining.
162for i in *; do
163 PROTO_ARGS="$PROTO_ARGS $i=/$i";
164done
165
166## Build info file
167echo "Building pkginfo file..."
168cat > pkginfo << _EOF
169PKG=$PKGNAME
170NAME="OpenSSH Portable for ${UNAME_S}"
171DESC="Secure Shell remote access utility; replaces telnet and rlogin/rsh."
172VENDOR="OpenSSH Portable Team - http://www.openssh.com/portable.html"
173ARCH=$ARCH
174VERSION=$VERSION
175CATEGORY="Security,application"
176BASEDIR=/
177CLASSES="none"
178_EOF
179
180## Build preinstall file
181echo "Building preinstall file..."
182cat > preinstall << _EOF
183#! /sbin/sh
184#
185[ "\${PRE_INS_STOP}" = "yes" ] && ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop
186exit 0
187_EOF
188
189## Build postinstall file
190echo "Building postinstall file..."
191cat > postinstall << _EOF
192#! /sbin/sh
193#
194[ -f \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_config ] || \\
195 cp -p \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_config.default \\
196 \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_config
197[ -f \${PKG_INSTALL_ROOT}${sysconfdir}/sshd_config ] || \\
198 cp -p \${PKG_INSTALL_ROOT}${sysconfdir}/sshd_config.default \\
199 \${PKG_INSTALL_ROOT}${sysconfdir}/sshd_config
200[ -f \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_prng_cmds.default ] && {
201 [ -f \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_prng_cmds ] || \\
202 cp -p \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_prng_cmds.default \\
203 \${PKG_INSTALL_ROOT}${sysconfdir}/ssh_prng_cmds
204}
205
206# make rc?.d dirs only if we are doing a test install
207[ -n "${TEST_DIR}" ] && {
208 [ "$RCS_D" = yes ] && mkdir -p ${TEST_DIR}/etc/rcS.d
209 mkdir -p ${TEST_DIR}/etc/rc0.d
210 mkdir -p ${TEST_DIR}/etc/rc1.d
211 mkdir -p ${TEST_DIR}/etc/rc2.d
212}
213
214if [ "\${USE_SYM_LINKS}" = yes ]
215then
216 [ "$RCS_D" = yes ] && \
217installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/K30${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
218 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/K30${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
219 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/K30${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
220 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/S98${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
221else
222 [ "$RCS_D" = yes ] && \
223installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/K30${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
224 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/K30${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
225 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/K30${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
226 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/S98${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
227fi
228
229# If piddir doesn't exist we add it. (Ie. --with-pid-dir=/var/opt/ssh)
230[ -d $piddir ] || installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR$piddir d 755 root sys
231
232installf -f ${PKGNAME}
233
234# Use chroot to handle PKG_INSTALL_ROOT
235if [ ! -z "\${PKG_INSTALL_ROOT}" ]
236then
237 chroot="chroot \${PKG_INSTALL_ROOT}"
238fi
239# If this is a test build, we will skip the groupadd/useradd/passwd commands
240if [ ! -z "${TEST_DIR}" ]
241then
242 chroot=echo
243fi
244
245if egrep '^[ \t]*UsePrivilegeSeparation[ \t]+no' \${PKG_INSTALL_ROOT}/$sysconfdir/sshd_config >/dev/null
246then
247 echo "UsePrivilegeSeparation disabled in config, not creating PrivSep user"
248 echo "or group."
249else
250 echo "UsePrivilegeSeparation enabled in config (or defaulting to on)."
251
252 # create group if required
253 if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/group | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
254 then
255 echo "PrivSep group $SSH_PRIVSEP_USER already exists."
256 else
257 # Use gid of 67 if possible
258 if cut -f3 -d: \${PKG_INSTALL_ROOT}/etc/group | egrep '^'$SSHDGID'\$' >/dev/null
259 then
260 :
261 else
262 sshdgid="-g $SSHDGID"
263 fi
264 echo "Creating PrivSep group $SSH_PRIVSEP_USER."
265 \$chroot /usr/sbin/groupadd \$sshdgid $SSH_PRIVSEP_USER
266 fi
267
268 # Create user if required
269 if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/passwd | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
270 then
271 echo "PrivSep user $SSH_PRIVSEP_USER already exists."
272 else
273 # Use uid of 67 if possible
274 if cut -f3 -d: \${PKG_INSTALL_ROOT}/etc/passwd | egrep '^'$SSHDGID'\$' >/dev/null
275 then
276 :
277 else
278 sshduid="-u $SSHDUID"
279 fi
280 echo "Creating PrivSep user $SSH_PRIVSEP_USER."
281 \$chroot /usr/sbin/useradd -c 'SSHD PrivSep User' -s /bin/false -g $SSH_PRIVSEP_USER \$sshduid $SSH_PRIVSEP_USER
282 \$chroot /usr/bin/passwd -l $SSH_PRIVSEP_USER
283 fi
284fi
285
286[ "\${POST_INS_START}" = "yes" ] && ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} start
287exit 0
288_EOF
289
290## Build preremove file
291echo "Building preremove file..."
292cat > preremove << _EOF
293#! /sbin/sh
294#
295${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop
296exit 0
297_EOF
298
299## Build request file
300echo "Building request file..."
301cat > request << _EOF
302trap 'exit 3' 15
303USE_SYM_LINKS=no
304PRE_INS_STOP=no
305POST_INS_START=no
306# Use symbolic links?
307ans=\`ckyorn -d n \
308-p "Do you want symbolic links for the start/stop scripts? ${DEF_MSG}"\` || exit \$?
309case \$ans in
310 [y,Y]*) USE_SYM_LINKS=yes ;;
311esac
312
313# determine if should restart the daemon
314if [ -s ${piddir}/sshd.pid -a -f ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} ]
315then
316 ans=\`ckyorn -d n \
317-p "Should the running sshd daemon be restarted? ${DEF_MSG}"\` || exit \$?
318 case \$ans in
319 [y,Y]*) PRE_INS_STOP=yes
320 POST_INS_START=yes
321 ;;
322 esac
323
324else
325
326# determine if we should start sshd
327 ans=\`ckyorn -d n \
328-p "Start the sshd daemon after installing this package? ${DEF_MSG}"\` || exit \$?
329 case \$ans in
330 [y,Y]*) POST_INS_START=yes ;;
331 esac
332fi
333
334# make parameters available to installation service,
335# and so to any other packaging scripts
336cat >\$1 <<!
337USE_SYM_LINKS='\$USE_SYM_LINKS'
338PRE_INS_STOP='\$PRE_INS_STOP'
339POST_INS_START='\$POST_INS_START'
340!
341exit 0
342
343_EOF
344
345## Build space file
346echo "Building space file..."
347cat > space << _EOF
348# extra space required by start/stop links added by installf in postinstall
349$TEST_DIR/etc/rc0.d/K30${SYSVINIT_NAME} 0 1
350$TEST_DIR/etc/rc1.d/K30${SYSVINIT_NAME} 0 1
351$TEST_DIR/etc/rc2.d/S98${SYSVINIT_NAME} 0 1
352_EOF
353[ "$RCS_D" = yes ] && \
354echo "$TEST_DIR/etc/rcS.d/K30${SYSVINIT_NAME} 0 1" >> space
355
356## Next Build our prototype
357echo "Building prototype file..."
358cat >mk-proto.awk << _EOF
359 BEGIN { print "i pkginfo"; print "i preinstall"; \\
360 print "i postinstall"; print "i preremove"; \\
361 print "i request"; print "i space"; \\
362 split("$SYSTEM_DIR",sys_files); }
363 {
364 for (dir in sys_files) { if ( \$3 != sys_files[dir] )
365 { \$5="root"; \$6="sys"; }
366 else
367 { \$4="?"; \$5="?"; \$6="?"; break;}
368 } }
369 { print; }
370_EOF
371find . | egrep -v "prototype|pkginfo|mk-proto.awk" | sort | \
372 pkgproto $PROTO_ARGS | nawk -f mk-proto.awk > prototype
373
374# /usr/local is a symlink on some systems
375[ "${USR_LOCAL_IS_SYMLINK}" = yes ] && {
376 grep -v "^d none /usr/local ? ? ?$" prototype > prototype.new
377 mv prototype.new prototype
378}
379
380## Step back a directory and now build the package.
381echo "Building package.."
382cd ..
383pkgmk -d ${FAKE_ROOT} -f $FAKE_ROOT/prototype -o
384echo | pkgtrans -os ${FAKE_ROOT} ${START}/$PKGNAME-$UNAME_S-$ARCH-$VERSION.pkg
385rm -rf $FAKE_ROOT
386
diff --git a/contrib/solaris/opensshd.in b/contrib/solaris/opensshd.in
deleted file mode 100755
index 50e18deea..000000000
--- a/contrib/solaris/opensshd.in
+++ /dev/null
@@ -1,82 +0,0 @@
1#!/sbin/sh
2# Donated code that was put under PD license.
3#
4# Stripped PRNGd out of it for the time being.
5
6umask 022
7
8CAT=/usr/bin/cat
9KILL=/usr/bin/kill
10
11prefix=%%openSSHDir%%
12etcdir=%%configDir%%
13piddir=%%pidDir%%
14
15SSHD=$prefix/sbin/sshd
16PIDFILE=$piddir/sshd.pid
17SSH_KEYGEN=$prefix/bin/ssh-keygen
18HOST_KEY_RSA1=$etcdir/ssh_host_key
19HOST_KEY_DSA=$etcdir/ssh_host_dsa_key
20HOST_KEY_RSA=$etcdir/ssh_host_rsa_key
21
22
23checkkeys() {
24 if [ ! -f $HOST_KEY_RSA1 ]; then
25 ${SSH_KEYGEN} -t rsa1 -f ${HOST_KEY_RSA1} -N ""
26 fi
27 if [ ! -f $HOST_KEY_DSA ]; then
28 ${SSH_KEYGEN} -t dsa -f ${HOST_KEY_DSA} -N ""
29 fi
30 if [ ! -f $HOST_KEY_RSA ]; then
31 ${SSH_KEYGEN} -t rsa -f ${HOST_KEY_RSA} -N ""
32 fi
33}
34
35stop_service() {
36 if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then
37 PID=`${CAT} ${PIDFILE}`
38 fi
39 if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
40 ${KILL} ${PID}
41 else
42 echo "Unable to read PID file"
43 fi
44}
45
46start_service() {
47 # XXX We really should check if the service is already going, but
48 # XXX we will opt out at this time. - Bal
49
50 # Check to see if we have keys that need to be made
51 checkkeys
52
53 # Start SSHD
54 echo "starting $SSHD... \c" ; $SSHD
55
56 sshd_rc=$?
57 if [ $sshd_rc -ne 0 ]; then
58 echo "$0: Error ${sshd_rc} starting ${SSHD}... bailing."
59 exit $sshd_rc
60 fi
61 echo done.
62}
63
64case $1 in
65
66'start')
67 start_service
68 ;;
69
70'stop')
71 stop_service
72 ;;
73
74'restart')
75 stop_service
76 start_service
77 ;;
78
79*)
80 echo "$0: usage: $0 {start|stop|restart}"
81 ;;
82esac
diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id
index acd36d398..df74d25c8 100644
--- a/contrib/ssh-copy-id
+++ b/contrib/ssh-copy-id
@@ -1,11 +1,11 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# Shell script to install your identity.pub on a remote machine 3# Shell script to install your public key on a remote machine
4# Takes the remote machine name as an argument. 4# Takes the remote machine name as an argument.
5# Obviously, the remote machine must accept password authentication, 5# Obviously, the remote machine must accept password authentication,
6# or one of the other keys in your ssh-agent, for this to work. 6# or one of the other keys in your ssh-agent, for this to work.
7 7
8ID_FILE="${HOME}/.ssh/identity.pub" 8ID_FILE="${HOME}/.ssh/id_rsa.pub"
9 9
10if [ "-i" = "$1" ]; then 10if [ "-i" = "$1" ]; then
11 shift 11 shift
diff --git a/contrib/ssh-copy-id.1 b/contrib/ssh-copy-id.1
index b331fa149..f25ed01f2 100644
--- a/contrib/ssh-copy-id.1
+++ b/contrib/ssh-copy-id.1
@@ -18,7 +18,7 @@ the original English.
18.. 18..
19.TH SSH-COPY-ID 1 "14 November 1999" "OpenSSH" 19.TH SSH-COPY-ID 1 "14 November 1999" "OpenSSH"
20.SH NAME 20.SH NAME
21ssh-copy-id \- install your identity.pub in a remote machine's authorized_keys 21ssh-copy-id \- install your public key in a remote machine's authorized_keys
22.SH SYNOPSIS 22.SH SYNOPSIS
23.B ssh-copy-id [-i [identity_file]] 23.B ssh-copy-id [-i [identity_file]]
24.I "[user@]machine" 24.I "[user@]machine"
@@ -42,7 +42,7 @@ set in its configuration).
42If the 42If the
43.B -i 43.B -i
44option is given then the identity file (defaults to 44option is given then the identity file (defaults to
45.BR ~/.ssh/identity.pub ) 45.BR ~/.ssh/id_rsa.pub )
46is used, regardless of whether there are any keys in your 46is used, regardless of whether there are any keys in your
47.BR ssh-agent . 47.BR ssh-agent .
48Otherwise, if this: 48Otherwise, if this:
diff --git a/contrib/sshd.pam.generic b/contrib/sshd.pam.generic
index cf5af3024..215f0fe30 100644
--- a/contrib/sshd.pam.generic
+++ b/contrib/sshd.pam.generic
@@ -1,6 +1,6 @@
1#%PAM-1.0 1#%PAM-1.0
2auth required /lib/security/pam_unix.so shadow nodelay 2auth required /lib/security/pam_unix.so shadow nodelay
3auth required /lib/security/pam_nologin.so 3account required /lib/security/pam_nologin.so
4account required /lib/security/pam_unix.so 4account required /lib/security/pam_unix.so
5password required /lib/security/pam_cracklib.so 5password required /lib/security/pam_cracklib.so
6password required /lib/security/pam_unix.so shadow nullok use_authtok 6password required /lib/security/pam_unix.so shadow nullok use_authtok
diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec
index 7bd9e0569..62f43e137 100644
--- a/contrib/suse/openssh.spec
+++ b/contrib/suse/openssh.spec
@@ -13,7 +13,7 @@
13 13
14Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation 14Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation
15Name: openssh 15Name: openssh
16Version: 5.1p1 16Version: 5.2p1
17URL: http://www.openssh.com/ 17URL: http://www.openssh.com/
18Release: 1 18Release: 1
19Source0: openssh-%{version}.tar.gz 19Source0: openssh-%{version}.tar.gz
@@ -200,7 +200,7 @@ fi
200 200
201%files 201%files
202%defattr(-,root,root) 202%defattr(-,root,root)
203%doc ChangeLog OVERVIEW README* 203%doc ChangeLog OVERVIEW README* PROTOCOL*
204%doc TODO CREDITS LICENCE 204%doc TODO CREDITS LICENCE
205%attr(0755,root,root) %dir %{_sysconfdir}/ssh 205%attr(0755,root,root) %dir %{_sysconfdir}/ssh
206%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config 206%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config
diff --git a/contrib/suse/rc.sshd b/contrib/suse/rc.sshd
index 573960bfa..4d4880d7e 100644
--- a/contrib/suse/rc.sshd
+++ b/contrib/suse/rc.sshd
@@ -45,17 +45,17 @@ case "$1" in
45 start) 45 start)
46 if ! test -f /etc/ssh/ssh_host_key ; then 46 if ! test -f /etc/ssh/ssh_host_key ; then
47 echo Generating /etc/ssh/ssh_host_key. 47 echo Generating /etc/ssh/ssh_host_key.
48 ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N '' 48 ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ''
49 fi 49 fi
50 if ! test -f /etc/ssh/ssh_host_dsa_key ; then 50 if ! test -f /etc/ssh/ssh_host_dsa_key ; then
51 echo Generating /etc/ssh/ssh_host_dsa_key. 51 echo Generating /etc/ssh/ssh_host_dsa_key.
52 52
53 ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N '' 53 ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
54 fi 54 fi
55 if ! test -f /etc/ssh/ssh_host_rsa_key ; then 55 if ! test -f /etc/ssh/ssh_host_rsa_key ; then
56 echo Generating /etc/ssh/ssh_host_rsa_key. 56 echo Generating /etc/ssh/ssh_host_rsa_key.
57 57
58 ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -N '' 58 ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
59 fi 59 fi
60 echo -n "Starting SSH daemon" 60 echo -n "Starting SSH daemon"
61 ## Start daemon with startproc(8). If this fails 61 ## Start daemon with startproc(8). If this fails
diff --git a/defines.h b/defines.h
index a8203ebbb..536ec4978 100644
--- a/defines.h
+++ b/defines.h
@@ -25,7 +25,7 @@
25#ifndef _DEFINES_H 25#ifndef _DEFINES_H
26#define _DEFINES_H 26#define _DEFINES_H
27 27
28/* $Id: defines.h,v 1.151 2008/07/04 13:10:49 djm Exp $ */ 28/* $Id: defines.h,v 1.153 2009/02/01 11:19:54 dtucker Exp $ */
29 29
30 30
31/* Constants */ 31/* Constants */
@@ -698,7 +698,7 @@ struct winsize {
698# define CUSTOM_SYS_AUTH_PASSWD 1 698# define CUSTOM_SYS_AUTH_PASSWD 1
699#endif 699#endif
700 700
701#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) 701#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) && !defined(HAVE_SECUREWARE)
702# define CUSTOM_SYS_AUTH_PASSWD 1 702# define CUSTOM_SYS_AUTH_PASSWD 1
703#endif 703#endif
704#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) && !defined(BROKEN_LIBIAF) 704#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) && !defined(BROKEN_LIBIAF)
@@ -738,4 +738,8 @@ struct winsize {
738# define EWOULDBLOCK EAGAIN 738# define EWOULDBLOCK EAGAIN
739#endif 739#endif
740 740
741#ifndef INET6_ADDRSTRLEN /* for non IPv6 machines */
742#define INET6_ADDRSTRLEN 46
743#endif
744
741#endif /* _DEFINES_H */ 745#endif /* _DEFINES_H */
diff --git a/dispatch.c b/dispatch.c
index d6b63be4b..64bb80947 100644
--- a/dispatch.c
+++ b/dispatch.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dispatch.c,v 1.21 2006/08/03 03:34:42 deraadt Exp $ */ 1/* $OpenBSD: dispatch.c,v 1.22 2008/10/31 15:05:34 stevesk Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -37,7 +37,6 @@
37#include "packet.h" 37#include "packet.h"
38#include "compat.h" 38#include "compat.h"
39 39
40#define DISPATCH_MIN 0
41#define DISPATCH_MAX 255 40#define DISPATCH_MAX 255
42 41
43dispatch_fn *dispatch[DISPATCH_MAX]; 42dispatch_fn *dispatch[DISPATCH_MAX];
diff --git a/envpass.sh b/envpass.sh
deleted file mode 100644
index 67044d421..000000000
--- a/envpass.sh
+++ /dev/null
@@ -1,44 +0,0 @@
1# $OpenBSD: envpass.sh,v 1.1 2004/04/27 09:47:30 djm Exp $
2# Placed in the Public Domain.
3
4tid="environment passing"
5
6# NB accepted env vars are in test-exec.sh (_XXX_TEST_* and _XXX_TEST)
7
8trace "pass env, don't accept"
9verbose "test $tid: pass env, don't accept"
10_TEST_ENV=blah ${SSH} -oSendEnv="*" -F $OBJ/ssh_proxy otherhost \
11 '[ -z "$_TEST_ENV" ]'
12r=$?
13if [ $r -ne 0 ]; then
14 fail "environment found"
15fi
16
17trace "don't pass env, accept"
18verbose "test $tid: don't pass env, accept"
19${SSH} -F $OBJ/ssh_proxy otherhost \
20 '[ -z "$_XXX_TEST_A" -a -z "$_XXX_TEST_B" ]'
21r=$?
22if [ $r -ne 0 ]; then
23 fail "environment found"
24fi
25
26trace "pass single env, accept single env"
27verbose "test $tid: pass single env, accept single env"
28_XXX_TEST=blah ${SSH} -oSendEnv="_XXX_TEST" -F $OBJ/ssh_proxy otherhost \
29 '[ "x$_XXX_TEST" = "xblah" ]'
30r=$?
31if [ $r -ne 0 ]; then
32 fail "environment not found"
33fi
34
35trace "pass multiple env, accept multiple env"
36verbose "test $tid: pass multiple env, accept multiple env"
37_XXX_TEST_A=1 _XXX_TEST_B=2 ${SSH} -oSendEnv="_XXX_TEST_*" \
38 -F $OBJ/ssh_proxy otherhost \
39 '[ "x$_XXX_TEST_A" = "x1" -a "x$_XXX_TEST_B" = "x2" ]'
40r=$?
41if [ $r -ne 0 ]; then
42 fail "environment not found"
43fi
44
diff --git a/getput.h b/getput.h
deleted file mode 100644
index 20cf8f20b..000000000
--- a/getput.h
+++ /dev/null
@@ -1,58 +0,0 @@
1/* $OpenBSD: getput.h,v 1.8 2002/03/04 17:27:39 stevesk Exp $ */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
7 * Macros for storing and retrieving data in msb first and lsb first order.
8 *
9 * As far as I am concerned, the code I have written for this software
10 * can be used freely for any purpose. Any derived versions of this
11 * software must be clearly marked as such, and if the derived work is
12 * incompatible with the protocol description in the RFC file, it must be
13 * called by a name other than "ssh" or "Secure Shell".
14 */
15
16#ifndef GETPUT_H
17#define GETPUT_H
18
19/*------------ macros for storing/extracting msb first words -------------*/
20
21#define GET_64BIT(cp) (((u_int64_t)(u_char)(cp)[0] << 56) | \
22 ((u_int64_t)(u_char)(cp)[1] << 48) | \
23 ((u_int64_t)(u_char)(cp)[2] << 40) | \
24 ((u_int64_t)(u_char)(cp)[3] << 32) | \
25 ((u_int64_t)(u_char)(cp)[4] << 24) | \
26 ((u_int64_t)(u_char)(cp)[5] << 16) | \
27 ((u_int64_t)(u_char)(cp)[6] << 8) | \
28 ((u_int64_t)(u_char)(cp)[7]))
29
30#define GET_32BIT(cp) (((u_long)(u_char)(cp)[0] << 24) | \
31 ((u_long)(u_char)(cp)[1] << 16) | \
32 ((u_long)(u_char)(cp)[2] << 8) | \
33 ((u_long)(u_char)(cp)[3]))
34
35#define GET_16BIT(cp) (((u_long)(u_char)(cp)[0] << 8) | \
36 ((u_long)(u_char)(cp)[1]))
37
38#define PUT_64BIT(cp, value) do { \
39 (cp)[0] = (value) >> 56; \
40 (cp)[1] = (value) >> 48; \
41 (cp)[2] = (value) >> 40; \
42 (cp)[3] = (value) >> 32; \
43 (cp)[4] = (value) >> 24; \
44 (cp)[5] = (value) >> 16; \
45 (cp)[6] = (value) >> 8; \
46 (cp)[7] = (value); } while (0)
47
48#define PUT_32BIT(cp, value) do { \
49 (cp)[0] = (value) >> 24; \
50 (cp)[1] = (value) >> 16; \
51 (cp)[2] = (value) >> 8; \
52 (cp)[3] = (value); } while (0)
53
54#define PUT_16BIT(cp, value) do { \
55 (cp)[0] = (value) >> 8; \
56 (cp)[1] = (value); } while (0)
57
58#endif /* GETPUT_H */
diff --git a/jpake.c b/jpake.c
new file mode 100644
index 000000000..565f2e255
--- /dev/null
+++ b/jpake.c
@@ -0,0 +1,604 @@
1/* $OpenBSD: jpake.c,v 1.1 2008/11/04 08:22:12 djm Exp $ */
2/*
3 * Copyright (c) 2008 Damien Miller. All rights reserved.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/*
19 * Shared components of zero-knowledge password auth using J-PAKE protocol
20 * as described in:
21 *
22 * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling",
23 * 16th Workshop on Security Protocols, Cambridge, April 2008
24 *
25 * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf
26 */
27
28#include "includes.h"
29
30#include <sys/types.h>
31
32#include <stdio.h>
33#include <string.h>
34#include <stdarg.h>
35
36#include <openssl/bn.h>
37#include <openssl/evp.h>
38
39#include "xmalloc.h"
40#include "ssh2.h"
41#include "key.h"
42#include "hostfile.h"
43#include "auth.h"
44#include "buffer.h"
45#include "packet.h"
46#include "dispatch.h"
47#include "log.h"
48
49#include "jpake.h"
50
51#ifdef JPAKE
52
53/* RFC3526 group 5, 1536 bits */
54#define JPAKE_GROUP_G "2"
55#define JPAKE_GROUP_P \
56 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74" \
57 "020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437" \
58 "4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" \
59 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05" \
60 "98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB" \
61 "9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF"
62
63struct jpake_group *
64jpake_default_group(void)
65{
66 struct jpake_group *ret;
67
68 ret = xmalloc(sizeof(*ret));
69 ret->p = ret->q = ret->g = NULL;
70 if (BN_hex2bn(&ret->p, JPAKE_GROUP_P) == 0 ||
71 BN_hex2bn(&ret->g, JPAKE_GROUP_G) == 0)
72 fatal("%s: BN_hex2bn", __func__);
73 /* Subgroup order is p/2 (p is a safe prime) */
74 if ((ret->q = BN_new()) == NULL)
75 fatal("%s: BN_new", __func__);
76 if (BN_rshift1(ret->q, ret->p) != 1)
77 fatal("%s: BN_rshift1", __func__);
78
79 return ret;
80}
81
82/*
83 * Generate uniformly distributed random number in range (1, high).
84 * Return number on success, NULL on failure.
85 */
86BIGNUM *
87bn_rand_range_gt_one(const BIGNUM *high)
88{
89 BIGNUM *r, *tmp;
90 int success = -1;
91
92 if ((tmp = BN_new()) == NULL) {
93 error("%s: BN_new", __func__);
94 return NULL;
95 }
96 if ((r = BN_new()) == NULL) {
97 error("%s: BN_new failed", __func__);
98 goto out;
99 }
100 if (BN_set_word(tmp, 2) != 1) {
101 error("%s: BN_set_word(tmp, 2)", __func__);
102 goto out;
103 }
104 if (BN_sub(tmp, high, tmp) == -1) {
105 error("%s: BN_sub failed (tmp = high - 2)", __func__);
106 goto out;
107 }
108 if (BN_rand_range(r, tmp) == -1) {
109 error("%s: BN_rand_range failed", __func__);
110 goto out;
111 }
112 if (BN_set_word(tmp, 2) != 1) {
113 error("%s: BN_set_word(tmp, 2)", __func__);
114 goto out;
115 }
116 if (BN_add(r, r, tmp) == -1) {
117 error("%s: BN_add failed (r = r + 2)", __func__);
118 goto out;
119 }
120 success = 0;
121 out:
122 BN_clear_free(tmp);
123 if (success == 0)
124 return r;
125 BN_clear_free(r);
126 return NULL;
127}
128
129/*
130 * Hash contents of buffer 'b' with hash 'md'. Returns 0 on success,
131 * with digest via 'digestp' (caller to free) and length via 'lenp'.
132 * Returns -1 on failure.
133 */
134int
135hash_buffer(const u_char *buf, u_int len, const EVP_MD *md,
136 u_char **digestp, u_int *lenp)
137{
138 u_char digest[EVP_MAX_MD_SIZE];
139 u_int digest_len;
140 EVP_MD_CTX evp_md_ctx;
141 int success = -1;
142
143 EVP_MD_CTX_init(&evp_md_ctx);
144
145 if (EVP_DigestInit_ex(&evp_md_ctx, md, NULL) != 1) {
146 error("%s: EVP_DigestInit_ex", __func__);
147 goto out;
148 }
149 if (EVP_DigestUpdate(&evp_md_ctx, buf, len) != 1) {
150 error("%s: EVP_DigestUpdate", __func__);
151 goto out;
152 }
153 if (EVP_DigestFinal_ex(&evp_md_ctx, digest, &digest_len) != 1) {
154 error("%s: EVP_DigestFinal_ex", __func__);
155 goto out;
156 }
157 *digestp = xmalloc(digest_len);
158 *lenp = digest_len;
159 memcpy(*digestp, digest, *lenp);
160 success = 0;
161 out:
162 EVP_MD_CTX_cleanup(&evp_md_ctx);
163 bzero(digest, sizeof(digest));
164 digest_len = 0;
165 return success;
166}
167
168/* print formatted string followed by bignum */
169void
170jpake_debug3_bn(const BIGNUM *n, const char *fmt, ...)
171{
172 char *out, *h;
173 va_list args;
174
175 out = NULL;
176 va_start(args, fmt);
177 vasprintf(&out, fmt, args);
178 va_end(args);
179 if (out == NULL)
180 fatal("%s: vasprintf failed", __func__);
181
182 if (n == NULL)
183 debug3("%s(null)", out);
184 else {
185 h = BN_bn2hex(n);
186 debug3("%s0x%s", out, h);
187 free(h);
188 }
189 free(out);
190}
191
192/* print formatted string followed by buffer contents in hex */
193void
194jpake_debug3_buf(const u_char *buf, u_int len, const char *fmt, ...)
195{
196 char *out, h[65];
197 u_int i, j;
198 va_list args;
199
200 out = NULL;
201 va_start(args, fmt);
202 vasprintf(&out, fmt, args);
203 va_end(args);
204 if (out == NULL)
205 fatal("%s: vasprintf failed", __func__);
206
207 debug3("%s length %u%s", out, len, buf == NULL ? " (null)" : "");
208 free(out);
209 if (buf == NULL)
210 return;
211
212 *h = '\0';
213 for (i = j = 0; i < len; i++) {
214 snprintf(h + j, sizeof(h) - j, "%02x", buf[i]);
215 j += 2;
216 if (j >= sizeof(h) - 1 || i == len - 1) {
217 debug3(" %s", h);
218 *h = '\0';
219 j = 0;
220 }
221 }
222}
223
224struct jpake_ctx *
225jpake_new(void)
226{
227 struct jpake_ctx *ret;
228
229 ret = xcalloc(1, sizeof(*ret));
230
231 ret->grp = jpake_default_group();
232
233 ret->s = ret->k = NULL;
234 ret->x1 = ret->x2 = ret->x3 = ret->x4 = NULL;
235 ret->g_x1 = ret->g_x2 = ret->g_x3 = ret->g_x4 = NULL;
236 ret->a = ret->b = NULL;
237
238 ret->client_id = ret->server_id = NULL;
239 ret->h_k_cid_sessid = ret->h_k_sid_sessid = NULL;
240
241 debug3("%s: alloc %p", __func__, ret);
242
243 return ret;
244}
245
246
247void
248jpake_free(struct jpake_ctx *pctx)
249{
250 debug3("%s: free %p", __func__, pctx);
251
252#define JPAKE_BN_CLEAR_FREE(v) \
253 do { \
254 if ((v) != NULL) { \
255 BN_clear_free(v); \
256 (v) = NULL; \
257 } \
258 } while (0)
259#define JPAKE_BUF_CLEAR_FREE(v, l) \
260 do { \
261 if ((v) != NULL) { \
262 bzero((v), (l)); \
263 xfree(v); \
264 (v) = NULL; \
265 (l) = 0; \
266 } \
267 } while (0)
268
269 JPAKE_BN_CLEAR_FREE(pctx->s);
270 JPAKE_BN_CLEAR_FREE(pctx->k);
271 JPAKE_BN_CLEAR_FREE(pctx->x1);
272 JPAKE_BN_CLEAR_FREE(pctx->x2);
273 JPAKE_BN_CLEAR_FREE(pctx->x3);
274 JPAKE_BN_CLEAR_FREE(pctx->x4);
275 JPAKE_BN_CLEAR_FREE(pctx->g_x1);
276 JPAKE_BN_CLEAR_FREE(pctx->g_x2);
277 JPAKE_BN_CLEAR_FREE(pctx->g_x3);
278 JPAKE_BN_CLEAR_FREE(pctx->g_x4);
279 JPAKE_BN_CLEAR_FREE(pctx->a);
280 JPAKE_BN_CLEAR_FREE(pctx->b);
281
282 JPAKE_BUF_CLEAR_FREE(pctx->client_id, pctx->client_id_len);
283 JPAKE_BUF_CLEAR_FREE(pctx->server_id, pctx->server_id_len);
284 JPAKE_BUF_CLEAR_FREE(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len);
285 JPAKE_BUF_CLEAR_FREE(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len);
286
287#undef JPAKE_BN_CLEAR_FREE
288#undef JPAKE_BUF_CLEAR_FREE
289
290 bzero(pctx, sizeof(pctx));
291 xfree(pctx);
292}
293
294/* dump entire jpake_ctx. NB. includes private values! */
295void
296jpake_dump(struct jpake_ctx *pctx, const char *fmt, ...)
297{
298 char *out;
299 va_list args;
300
301 out = NULL;
302 va_start(args, fmt);
303 vasprintf(&out, fmt, args);
304 va_end(args);
305 if (out == NULL)
306 fatal("%s: vasprintf failed", __func__);
307
308 debug3("%s: %s (ctx at %p)", __func__, out, pctx);
309 if (pctx == NULL) {
310 free(out);
311 return;
312 }
313
314#define JPAKE_DUMP_BN(a) do { \
315 if ((a) != NULL) \
316 JPAKE_DEBUG_BN(((a), "%s = ", #a)); \
317 } while (0)
318#define JPAKE_DUMP_BUF(a, b) do { \
319 if ((a) != NULL) \
320 JPAKE_DEBUG_BUF((a, b, "%s", #a)); \
321 } while (0)
322
323 JPAKE_DUMP_BN(pctx->s);
324 JPAKE_DUMP_BN(pctx->k);
325 JPAKE_DUMP_BN(pctx->x1);
326 JPAKE_DUMP_BN(pctx->x2);
327 JPAKE_DUMP_BN(pctx->x3);
328 JPAKE_DUMP_BN(pctx->x4);
329 JPAKE_DUMP_BN(pctx->g_x1);
330 JPAKE_DUMP_BN(pctx->g_x2);
331 JPAKE_DUMP_BN(pctx->g_x3);
332 JPAKE_DUMP_BN(pctx->g_x4);
333 JPAKE_DUMP_BN(pctx->a);
334 JPAKE_DUMP_BN(pctx->b);
335
336 JPAKE_DUMP_BUF(pctx->client_id, pctx->client_id_len);
337 JPAKE_DUMP_BUF(pctx->server_id, pctx->server_id_len);
338 JPAKE_DUMP_BUF(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len);
339 JPAKE_DUMP_BUF(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len);
340
341 debug3("%s: %s done", __func__, out);
342 free(out);
343}
344
345/* Shared parts of step 1 exchange calculation */
346void
347jpake_step1(struct jpake_group *grp,
348 u_char **id, u_int *id_len,
349 BIGNUM **priv1, BIGNUM **priv2, BIGNUM **g_priv1, BIGNUM **g_priv2,
350 u_char **priv1_proof, u_int *priv1_proof_len,
351 u_char **priv2_proof, u_int *priv2_proof_len)
352{
353 BN_CTX *bn_ctx;
354
355 if ((bn_ctx = BN_CTX_new()) == NULL)
356 fatal("%s: BN_CTX_new", __func__);
357
358 /* Random nonce to prevent replay */
359 *id = xmalloc(KZP_ID_LEN);
360 *id_len = KZP_ID_LEN;
361 arc4random_buf(*id, *id_len);
362
363 /*
364 * x1/x3 is a random element of Zq
365 * x2/x4 is a random element of Z*q
366 * We also exclude [1] from x1/x3 candidates and [0, 1] from
367 * x2/x4 candiates to avoid possible degeneracy (i.e. g^0, g^1).
368 */
369 if ((*priv1 = bn_rand_range_gt_one(grp->q)) == NULL ||
370 (*priv2 = bn_rand_range_gt_one(grp->q)) == NULL)
371 fatal("%s: bn_rand_range_gt_one", __func__);
372
373 /*
374 * client: g_x1 = g^x1 mod p / server: g_x3 = g^x3 mod p
375 * client: g_x2 = g^x2 mod p / server: g_x4 = g^x4 mod p
376 */
377 if ((*g_priv1 = BN_new()) == NULL ||
378 (*g_priv2 = BN_new()) == NULL)
379 fatal("%s: BN_new", __func__);
380 if (BN_mod_exp(*g_priv1, grp->g, *priv1, grp->p, bn_ctx) == -1)
381 fatal("%s: BN_mod_exp", __func__);
382 if (BN_mod_exp(*g_priv2, grp->g, *priv2, grp->p, bn_ctx) == -1)
383 fatal("%s: BN_mod_exp", __func__);
384
385 /* Generate proofs for holding x1/x3 and x2/x4 */
386 if (schnorr_sign(grp->p, grp->q, grp->g,
387 *priv1, *g_priv1, *id, *id_len,
388 priv1_proof, priv1_proof_len) != 0)
389 fatal("%s: schnorr_sign", __func__);
390 if (schnorr_sign(grp->p, grp->q, grp->g,
391 *priv2, *g_priv2, *id, *id_len,
392 priv2_proof, priv2_proof_len) != 0)
393 fatal("%s: schnorr_sign", __func__);
394
395 BN_CTX_free(bn_ctx);
396}
397
398/* Shared parts of step 2 exchange calculation */
399void
400jpake_step2(struct jpake_group *grp, BIGNUM *s,
401 BIGNUM *mypub1, BIGNUM *theirpub1, BIGNUM *theirpub2, BIGNUM *mypriv2,
402 const u_char *theirid, u_int theirid_len,
403 const u_char *myid, u_int myid_len,
404 const u_char *theirpub1_proof, u_int theirpub1_proof_len,
405 const u_char *theirpub2_proof, u_int theirpub2_proof_len,
406 BIGNUM **newpub,
407 u_char **newpub_exponent_proof, u_int *newpub_exponent_proof_len)
408{
409 BN_CTX *bn_ctx;
410 BIGNUM *tmp, *exponent;
411
412 /* Validate peer's step 1 values */
413 if (BN_cmp(theirpub1, BN_value_one()) <= 0)
414 fatal("%s: theirpub1 <= 1", __func__);
415 if (BN_cmp(theirpub2, BN_value_one()) <= 0)
416 fatal("%s: theirpub2 <= 1", __func__);
417
418 if (schnorr_verify(grp->p, grp->q, grp->g, theirpub1,
419 theirid, theirid_len, theirpub1_proof, theirpub1_proof_len) != 1)
420 fatal("%s: schnorr_verify theirpub1 failed", __func__);
421 if (schnorr_verify(grp->p, grp->q, grp->g, theirpub2,
422 theirid, theirid_len, theirpub2_proof, theirpub2_proof_len) != 1)
423 fatal("%s: schnorr_verify theirpub2 failed", __func__);
424
425 if ((bn_ctx = BN_CTX_new()) == NULL)
426 fatal("%s: BN_CTX_new", __func__);
427
428 if ((*newpub = BN_new()) == NULL ||
429 (tmp = BN_new()) == NULL ||
430 (exponent = BN_new()) == NULL)
431 fatal("%s: BN_new", __func__);
432
433 /*
434 * client: exponent = x2 * s mod p
435 * server: exponent = x4 * s mod p
436 */
437 if (BN_mod_mul(exponent, mypriv2, s, grp->q, bn_ctx) != 1)
438 fatal("%s: BN_mod_mul (exponent = mypriv2 * s mod p)",
439 __func__);
440
441 /*
442 * client: tmp = g^(x1 + x3 + x4) mod p
443 * server: tmp = g^(x1 + x2 + x3) mod p
444 */
445 if (BN_mod_mul(tmp, mypub1, theirpub1, grp->p, bn_ctx) != 1)
446 fatal("%s: BN_mod_mul (tmp = mypub1 * theirpub1 mod p)",
447 __func__);
448 if (BN_mod_mul(tmp, tmp, theirpub2, grp->p, bn_ctx) != 1)
449 fatal("%s: BN_mod_mul (tmp = tmp * theirpub2 mod p)", __func__);
450
451 /*
452 * client: a = tmp^exponent = g^((x1+x3+x4) * x2 * s) mod p
453 * server: b = tmp^exponent = g^((x1+x2+x3) * x4 * s) mod p
454 */
455 if (BN_mod_exp(*newpub, tmp, exponent, grp->p, bn_ctx) != 1)
456 fatal("%s: BN_mod_mul (newpub = tmp^exponent mod p)", __func__);
457
458 JPAKE_DEBUG_BN((tmp, "%s: tmp = ", __func__));
459 JPAKE_DEBUG_BN((exponent, "%s: exponent = ", __func__));
460
461 /* Note the generator here is 'tmp', not g */
462 if (schnorr_sign(grp->p, grp->q, tmp, exponent, *newpub,
463 myid, myid_len,
464 newpub_exponent_proof, newpub_exponent_proof_len) != 0)
465 fatal("%s: schnorr_sign newpub", __func__);
466
467 BN_clear_free(tmp); /* XXX stash for later use? */
468 BN_clear_free(exponent); /* XXX stash for later use? (yes, in conf) */
469
470 BN_CTX_free(bn_ctx);
471}
472
473/* Confirmation hash calculation */
474void
475jpake_confirm_hash(const BIGNUM *k,
476 const u_char *endpoint_id, u_int endpoint_id_len,
477 const u_char *sess_id, u_int sess_id_len,
478 u_char **confirm_hash, u_int *confirm_hash_len)
479{
480 Buffer b;
481
482 /*
483 * Calculate confirmation proof:
484 * client: H(k || client_id || session_id)
485 * server: H(k || server_id || session_id)
486 */
487 buffer_init(&b);
488 buffer_put_bignum2(&b, k);
489 buffer_put_string(&b, endpoint_id, endpoint_id_len);
490 buffer_put_string(&b, sess_id, sess_id_len);
491 if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(),
492 confirm_hash, confirm_hash_len) != 0)
493 fatal("%s: hash_buffer", __func__);
494 buffer_free(&b);
495}
496
497/* Shared parts of key derivation and confirmation calculation */
498void
499jpake_key_confirm(struct jpake_group *grp, BIGNUM *s, BIGNUM *step2_val,
500 BIGNUM *mypriv2, BIGNUM *mypub1, BIGNUM *mypub2,
501 BIGNUM *theirpub1, BIGNUM *theirpub2,
502 const u_char *my_id, u_int my_id_len,
503 const u_char *their_id, u_int their_id_len,
504 const u_char *sess_id, u_int sess_id_len,
505 const u_char *theirpriv2_s_proof, u_int theirpriv2_s_proof_len,
506 BIGNUM **k,
507 u_char **confirm_hash, u_int *confirm_hash_len)
508{
509 BN_CTX *bn_ctx;
510 BIGNUM *tmp;
511
512 if ((bn_ctx = BN_CTX_new()) == NULL)
513 fatal("%s: BN_CTX_new", __func__);
514 if ((tmp = BN_new()) == NULL ||
515 (*k = BN_new()) == NULL)
516 fatal("%s: BN_new", __func__);
517
518 /* Validate step 2 values */
519 if (BN_cmp(step2_val, BN_value_one()) <= 0)
520 fatal("%s: step2_val <= 1", __func__);
521
522 /*
523 * theirpriv2_s_proof is calculated with a different generator:
524 * tmp = g^(mypriv1+mypriv2+theirpub1) = g^mypub1*g^mypub2*g^theirpub1
525 * Calculate it here so we can check the signature.
526 */
527 if (BN_mod_mul(tmp, mypub1, mypub2, grp->p, bn_ctx) != 1)
528 fatal("%s: BN_mod_mul (tmp = mypub1 * mypub2 mod p)", __func__);
529 if (BN_mod_mul(tmp, tmp, theirpub1, grp->p, bn_ctx) != 1)
530 fatal("%s: BN_mod_mul (tmp = tmp * theirpub1 mod p)", __func__);
531
532 JPAKE_DEBUG_BN((tmp, "%s: tmp = ", __func__));
533
534 if (schnorr_verify(grp->p, grp->q, tmp, step2_val,
535 their_id, their_id_len,
536 theirpriv2_s_proof, theirpriv2_s_proof_len) != 1)
537 fatal("%s: schnorr_verify theirpriv2_s_proof failed", __func__);
538
539 /*
540 * Derive shared key:
541 * client: k = (b / g^(x2*x4*s))^x2 = g^((x1+x3)*x2*x4*s)
542 * server: k = (a / g^(x2*x4*s))^x4 = g^((x1+x3)*x2*x4*s)
543 *
544 * Computed as:
545 * client: k = (g_x4^(q - (x2 * s)) * b)^x2 mod p
546 * server: k = (g_x2^(q - (x4 * s)) * b)^x4 mod p
547 */
548 if (BN_mul(tmp, mypriv2, s, bn_ctx) != 1)
549 fatal("%s: BN_mul (tmp = mypriv2 * s)", __func__);
550 if (BN_mod_sub(tmp, grp->q, tmp, grp->q, bn_ctx) != 1)
551 fatal("%s: BN_mod_sub (tmp = q - tmp mod q)", __func__);
552 if (BN_mod_exp(tmp, theirpub2, tmp, grp->p, bn_ctx) != 1)
553 fatal("%s: BN_mod_exp (tmp = theirpub2^tmp) mod p", __func__);
554 if (BN_mod_mul(tmp, tmp, step2_val, grp->p, bn_ctx) != 1)
555 fatal("%s: BN_mod_mul (tmp = tmp * step2_val) mod p", __func__);
556 if (BN_mod_exp(*k, tmp, mypriv2, grp->p, bn_ctx) != 1)
557 fatal("%s: BN_mod_exp (k = tmp^mypriv2) mod p", __func__);
558
559 BN_CTX_free(bn_ctx);
560 BN_clear_free(tmp);
561
562 jpake_confirm_hash(*k, my_id, my_id_len, sess_id, sess_id_len,
563 confirm_hash, confirm_hash_len);
564}
565
566/*
567 * Calculate and check confirmation hash from peer. Returns 1 on success
568 * 0 on failure/mismatch.
569 */
570int
571jpake_check_confirm(const BIGNUM *k,
572 const u_char *peer_id, u_int peer_id_len,
573 const u_char *sess_id, u_int sess_id_len,
574 const u_char *peer_confirm_hash, u_int peer_confirm_hash_len)
575{
576 u_char *expected_confirm_hash;
577 u_int expected_confirm_hash_len;
578 int success = 0;
579
580 /* Calculate and verify expected confirmation hash */
581 jpake_confirm_hash(k, peer_id, peer_id_len, sess_id, sess_id_len,
582 &expected_confirm_hash, &expected_confirm_hash_len);
583
584 JPAKE_DEBUG_BUF((expected_confirm_hash, expected_confirm_hash_len,
585 "%s: expected confirm hash", __func__));
586 JPAKE_DEBUG_BUF((peer_confirm_hash, peer_confirm_hash_len,
587 "%s: received confirm hash", __func__));
588
589 if (peer_confirm_hash_len != expected_confirm_hash_len)
590 error("%s: confirmation length mismatch (my %u them %u)",
591 __func__, expected_confirm_hash_len, peer_confirm_hash_len);
592 else if (memcmp(peer_confirm_hash, expected_confirm_hash,
593 expected_confirm_hash_len) == 0)
594 success = 1;
595 bzero(expected_confirm_hash, expected_confirm_hash_len);
596 xfree(expected_confirm_hash);
597 debug3("%s: success = %d", __func__, success);
598 return success;
599}
600
601/* XXX main() function with tests */
602
603#endif /* JPAKE */
604
diff --git a/jpake.h b/jpake.h
new file mode 100644
index 000000000..a3d800cd3
--- /dev/null
+++ b/jpake.h
@@ -0,0 +1,134 @@
1/* $OpenBSD: jpake.h,v 1.1 2008/11/04 08:22:13 djm Exp $ */
2/*
3 * Copyright (c) 2008 Damien Miller. All rights reserved.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef JPAKE_H
19#define JPAKE_H
20
21#include <sys/types.h>
22
23#include <openssl/bn.h>
24
25/* Set JPAKE_DEBUG in CFLAGS for privacy-violating debugging */
26#ifndef JPAKE_DEBUG
27# define JPAKE_DEBUG_BN(a)
28# define JPAKE_DEBUG_BUF(a)
29# define JPAKE_DEBUG_CTX(a)
30#else
31# define JPAKE_DEBUG_BN(a) jpake_debug3_bn a
32# define JPAKE_DEBUG_BUF(a) jpake_debug3_buf a
33# define JPAKE_DEBUG_CTX(a) jpake_dump a
34#endif /* SCHNORR_DEBUG */
35
36struct jpake_group {
37 BIGNUM *p, *q, *g;
38};
39
40#define KZP_ID_LEN 16 /* Length of client and server IDs */
41
42struct jpake_ctx {
43 /* Parameters */
44 struct jpake_group *grp;
45
46 /* Private values shared by client and server */
47 BIGNUM *s; /* Secret (salted, crypted password) */
48 BIGNUM *k; /* Derived key */
49
50 /* Client private values (NULL for server) */
51 BIGNUM *x1; /* random in Zq */
52 BIGNUM *x2; /* random in Z*q */
53
54 /* Server private values (NULL for server) */
55 BIGNUM *x3; /* random in Zq */
56 BIGNUM *x4; /* random in Z*q */
57
58 /* Step 1: C->S */
59 u_char *client_id; /* Anti-replay nonce */
60 u_int client_id_len;
61 BIGNUM *g_x1; /* g^x1 */
62 BIGNUM *g_x2; /* g^x2 */
63
64 /* Step 1: S->C */
65 u_char *server_id; /* Anti-replay nonce */
66 u_int server_id_len;
67 BIGNUM *g_x3; /* g^x3 */
68 BIGNUM *g_x4; /* g^x4 */
69
70 /* Step 2: C->S */
71 BIGNUM *a; /* g^((x1+x3+x4)*x2*s) */
72
73 /* Step 2: S->C */
74 BIGNUM *b; /* g^((x1+x2+x3)*x4*s) */
75
76 /* Confirmation: C->S */
77 u_char *h_k_cid_sessid; /* H(k || client_id || session_id) */
78 u_int h_k_cid_sessid_len;
79
80 /* Confirmation: S->C */
81 u_char *h_k_sid_sessid; /* H(k || server_id || session_id) */
82 u_int h_k_sid_sessid_len;
83};
84
85/* jpake.c */
86struct jpake_group *jpake_default_group(void);
87BIGNUM *bn_rand_range_gt_one(const BIGNUM *high);
88int hash_buffer(const u_char *, u_int, const EVP_MD *, u_char **, u_int *);
89void jpake_debug3_bn(const BIGNUM *, const char *, ...)
90 __attribute__((__nonnull__ (2)))
91 __attribute__((format(printf, 2, 3)));
92void jpake_debug3_buf(const u_char *, u_int, const char *, ...)
93 __attribute__((__nonnull__ (3)))
94 __attribute__((format(printf, 3, 4)));
95void jpake_dump(struct jpake_ctx *, const char *, ...)
96 __attribute__((__nonnull__ (2)))
97 __attribute__((format(printf, 2, 3)));
98struct jpake_ctx *jpake_new(void);
99void jpake_free(struct jpake_ctx *);
100
101void jpake_step1(struct jpake_group *, u_char **, u_int *,
102 BIGNUM **, BIGNUM **, BIGNUM **, BIGNUM **,
103 u_char **, u_int *, u_char **, u_int *);
104
105void jpake_step2(struct jpake_group *, BIGNUM *,
106 BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *,
107 const u_char *, u_int, const u_char *, u_int,
108 const u_char *, u_int, const u_char *, u_int,
109 BIGNUM **, u_char **, u_int *);
110
111void jpake_confirm_hash(const BIGNUM *,
112 const u_char *, u_int,
113 const u_char *, u_int,
114 u_char **, u_int *);
115
116void jpake_key_confirm(struct jpake_group *, BIGNUM *, BIGNUM *,
117 BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *,
118 const u_char *, u_int, const u_char *, u_int,
119 const u_char *, u_int, const u_char *, u_int,
120 BIGNUM **, u_char **, u_int *);
121
122int jpake_check_confirm(const BIGNUM *, const u_char *, u_int,
123 const u_char *, u_int, const u_char *, u_int);
124
125/* schnorr.c */
126int schnorr_sign(const BIGNUM *, const BIGNUM *, const BIGNUM *,
127 const BIGNUM *, const BIGNUM *, const u_char *, u_int ,
128 u_char **, u_int *);
129int schnorr_verify(const BIGNUM *, const BIGNUM *, const BIGNUM *,
130 const BIGNUM *, const u_char *, u_int,
131 const u_char *, u_int);
132
133#endif /* JPAKE_H */
134
diff --git a/kex.c b/kex.c
index 332fadf6e..48b54f5f7 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kex.c,v 1.79 2007/06/05 06:52:37 djm Exp $ */ 1/* $OpenBSD: kex.c,v 1.80 2008/09/06 12:24:13 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
4 * 4 *
diff --git a/kexgexs.c b/kexgexs.c
index a037f57f2..76a0f8ca7 100644
--- a/kexgexs.c
+++ b/kexgexs.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexgexs.c,v 1.10 2006/11/06 21:25:28 markus Exp $ */ 1/* $OpenBSD: kexgexs.c,v 1.11 2009/01/01 21:17:36 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Niels Provos. All rights reserved. 3 * Copyright (c) 2000 Niels Provos. All rights reserved.
4 * Copyright (c) 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -56,7 +56,8 @@ kexgex_server(Kex *kex)
56 DH *dh; 56 DH *dh;
57 u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL; 57 u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL;
58 u_int sbloblen, klen, slen, hashlen; 58 u_int sbloblen, klen, slen, hashlen;
59 int min = -1, max = -1, nbits = -1, type, kout; 59 int omin = -1, min = -1, omax = -1, max = -1, onbits = -1, nbits = -1;
60 int type, kout;
60 61
61 if (kex->load_host_key == NULL) 62 if (kex->load_host_key == NULL)
62 fatal("Cannot load hostkey"); 63 fatal("Cannot load hostkey");
@@ -68,27 +69,29 @@ kexgex_server(Kex *kex)
68 switch (type) { 69 switch (type) {
69 case SSH2_MSG_KEX_DH_GEX_REQUEST: 70 case SSH2_MSG_KEX_DH_GEX_REQUEST:
70 debug("SSH2_MSG_KEX_DH_GEX_REQUEST received"); 71 debug("SSH2_MSG_KEX_DH_GEX_REQUEST received");
71 min = packet_get_int(); 72 omin = min = packet_get_int();
72 nbits = packet_get_int(); 73 onbits = nbits = packet_get_int();
73 max = packet_get_int(); 74 omax = max = packet_get_int();
74 min = MAX(DH_GRP_MIN, min); 75 min = MAX(DH_GRP_MIN, min);
75 max = MIN(DH_GRP_MAX, max); 76 max = MIN(DH_GRP_MAX, max);
77 nbits = MAX(DH_GRP_MIN, nbits);
78 nbits = MIN(DH_GRP_MAX, nbits);
76 break; 79 break;
77 case SSH2_MSG_KEX_DH_GEX_REQUEST_OLD: 80 case SSH2_MSG_KEX_DH_GEX_REQUEST_OLD:
78 debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received"); 81 debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received");
79 nbits = packet_get_int(); 82 onbits = nbits = packet_get_int();
80 min = DH_GRP_MIN;
81 max = DH_GRP_MAX;
82 /* unused for old GEX */ 83 /* unused for old GEX */
84 omin = min = DH_GRP_MIN;
85 omax = max = DH_GRP_MAX;
83 break; 86 break;
84 default: 87 default:
85 fatal("protocol error during kex, no DH_GEX_REQUEST: %d", type); 88 fatal("protocol error during kex, no DH_GEX_REQUEST: %d", type);
86 } 89 }
87 packet_check_eom(); 90 packet_check_eom();
88 91
89 if (max < min || nbits < min || max < nbits) 92 if (omax < omin || onbits < omin || omax < onbits)
90 fatal("DH_GEX_REQUEST, bad parameters: %d !< %d !< %d", 93 fatal("DH_GEX_REQUEST, bad parameters: %d !< %d !< %d",
91 min, nbits, max); 94 omin, onbits, omax);
92 95
93 /* Contact privileged parent */ 96 /* Contact privileged parent */
94 dh = PRIVSEP(choose_dh(min, nbits, max)); 97 dh = PRIVSEP(choose_dh(min, nbits, max));
@@ -149,7 +152,7 @@ kexgex_server(Kex *kex)
149 key_to_blob(server_host_key, &server_host_key_blob, &sbloblen); 152 key_to_blob(server_host_key, &server_host_key_blob, &sbloblen);
150 153
151 if (type == SSH2_MSG_KEX_DH_GEX_REQUEST_OLD) 154 if (type == SSH2_MSG_KEX_DH_GEX_REQUEST_OLD)
152 min = max = -1; 155 omin = min = omax = max = -1;
153 156
154 /* calc H */ 157 /* calc H */
155 kexgex_hash( 158 kexgex_hash(
@@ -159,7 +162,7 @@ kexgex_server(Kex *kex)
159 buffer_ptr(&kex->peer), buffer_len(&kex->peer), 162 buffer_ptr(&kex->peer), buffer_len(&kex->peer),
160 buffer_ptr(&kex->my), buffer_len(&kex->my), 163 buffer_ptr(&kex->my), buffer_len(&kex->my),
161 server_host_key_blob, sbloblen, 164 server_host_key_blob, sbloblen,
162 min, nbits, max, 165 omin, onbits, omax,
163 dh->p, dh->g, 166 dh->p, dh->g,
164 dh_client_pub, 167 dh_client_pub,
165 dh->pub_key, 168 dh->pub_key,
diff --git a/key.c b/key.c
index 2ea13d27d..3e17da601 100644
--- a/key.c
+++ b/key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: key.c,v 1.78 2008/07/07 23:32:51 stevesk Exp $ */ 1/* $OpenBSD: key.c,v 1.80 2008/10/10 05:00:12 stevesk Exp $ */
2/* 2/*
3 * read_bignum(): 3 * read_bignum():
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -369,7 +369,8 @@ key_fingerprint_randomart(u_char *dgst_raw, u_int dgst_raw_len, const Key *k)
369 y = MIN(y, FLDSIZE_Y - 1); 369 y = MIN(y, FLDSIZE_Y - 1);
370 370
371 /* augment the field */ 371 /* augment the field */
372 field[x][y]++; 372 if (field[x][y] < len - 2)
373 field[x][y]++;
373 input = input >> 2; 374 input = input >> 2;
374 } 375 }
375 } 376 }
@@ -427,7 +428,7 @@ key_fingerprint(const Key *k, enum fp_type dgst_type, enum fp_rep dgst_rep)
427 retval = key_fingerprint_randomart(dgst_raw, dgst_raw_len, k); 428 retval = key_fingerprint_randomart(dgst_raw, dgst_raw_len, k);
428 break; 429 break;
429 default: 430 default:
430 fatal("key_fingerprint_ex: bad digest representation %d", 431 fatal("key_fingerprint: bad digest representation %d",
431 dgst_rep); 432 dgst_rep);
432 break; 433 break;
433 } 434 }
diff --git a/loginrec.c b/loginrec.c
index b41114198..f4af06736 100644
--- a/loginrec.c
+++ b/loginrec.c
@@ -1456,25 +1456,14 @@ syslogin_write_entry(struct logininfo *li)
1456 **/ 1456 **/
1457 1457
1458#ifdef USE_LASTLOG 1458#ifdef USE_LASTLOG
1459#define LL_FILE 1
1460#define LL_DIR 2
1461#define LL_OTHER 3
1462
1463static void
1464lastlog_construct(struct logininfo *li, struct lastlog *last)
1465{
1466 /* clear the structure */
1467 memset(last, '\0', sizeof(*last));
1468
1469 line_stripname(last->ll_line, li->line, sizeof(last->ll_line));
1470 strlcpy(last->ll_host, li->hostname,
1471 MIN_SIZEOF(last->ll_host, li->hostname));
1472 last->ll_time = li->tv_sec;
1473}
1474 1459
1460#if !defined(LASTLOG_WRITE_PUTUTXLINE) || !defined(HAVE_GETLASTLOGXBYNAME)
1461/* open the file (using filemode) and seek to the login entry */
1475static int 1462static int
1476lastlog_filetype(char *filename) 1463lastlog_openseek(struct logininfo *li, int *fd, int filemode)
1477{ 1464{
1465 off_t offset;
1466 char lastlog_file[1024];
1478 struct stat st; 1467 struct stat st;
1479 1468
1480 if (stat(LASTLOG_FILE, &st) != 0) { 1469 if (stat(LASTLOG_FILE, &st) != 0) {
@@ -1482,34 +1471,12 @@ lastlog_filetype(char *filename)
1482 LASTLOG_FILE, strerror(errno)); 1471 LASTLOG_FILE, strerror(errno));
1483 return (0); 1472 return (0);
1484 } 1473 }
1485 if (S_ISDIR(st.st_mode)) 1474 if (S_ISDIR(st.st_mode)) {
1486 return (LL_DIR);
1487 else if (S_ISREG(st.st_mode))
1488 return (LL_FILE);
1489 else
1490 return (LL_OTHER);
1491}
1492
1493
1494/* open the file (using filemode) and seek to the login entry */
1495static int
1496lastlog_openseek(struct logininfo *li, int *fd, int filemode)
1497{
1498 off_t offset;
1499 int type;
1500 char lastlog_file[1024];
1501
1502 type = lastlog_filetype(LASTLOG_FILE);
1503 switch (type) {
1504 case LL_FILE:
1505 strlcpy(lastlog_file, LASTLOG_FILE,
1506 sizeof(lastlog_file));
1507 break;
1508 case LL_DIR:
1509 snprintf(lastlog_file, sizeof(lastlog_file), "%s/%s", 1475 snprintf(lastlog_file, sizeof(lastlog_file), "%s/%s",
1510 LASTLOG_FILE, li->username); 1476 LASTLOG_FILE, li->username);
1511 break; 1477 } else if (S_ISREG(st.st_mode)) {
1512 default: 1478 strlcpy(lastlog_file, LASTLOG_FILE, sizeof(lastlog_file));
1479 } else {
1513 logit("%s: %.100s is not a file or directory!", __func__, 1480 logit("%s: %.100s is not a file or directory!", __func__,
1514 LASTLOG_FILE); 1481 LASTLOG_FILE);
1515 return (0); 1482 return (0);
@@ -1522,7 +1489,7 @@ lastlog_openseek(struct logininfo *li, int *fd, int filemode)
1522 return (0); 1489 return (0);
1523 } 1490 }
1524 1491
1525 if (type == LL_FILE) { 1492 if (S_ISREG(st.st_mode)) {
1526 /* find this uid's offset in the lastlog file */ 1493 /* find this uid's offset in the lastlog file */
1527 offset = (off_t) ((long)li->uid * sizeof(struct lastlog)); 1494 offset = (off_t) ((long)li->uid * sizeof(struct lastlog));
1528 1495
@@ -1535,52 +1502,74 @@ lastlog_openseek(struct logininfo *li, int *fd, int filemode)
1535 1502
1536 return (1); 1503 return (1);
1537} 1504}
1505#endif /* !LASTLOG_WRITE_PUTUTXLINE || !HAVE_GETLASTLOGXBYNAME */
1538 1506
1539static int 1507#ifdef LASTLOG_WRITE_PUTUTXLINE
1540lastlog_perform_login(struct logininfo *li) 1508int
1509lastlog_write_entry(struct logininfo *li)
1541{ 1510{
1542 struct lastlog last; 1511 switch(li->type) {
1543 int fd; 1512 case LTYPE_LOGIN:
1544 1513 return 1; /* lastlog written by pututxline */
1545 /* create our struct lastlog */ 1514 default:
1546 lastlog_construct(li, &last); 1515 logit("lastlog_write_entry: Invalid type field");
1547 1516 return 0;
1548 if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT))
1549 return (0);
1550
1551 /* write the entry */
1552 if (atomicio(vwrite, fd, &last, sizeof(last)) != sizeof(last)) {
1553 close(fd);
1554 logit("%s: Error writing to %s: %s", __func__,
1555 LASTLOG_FILE, strerror(errno));
1556 return (0);
1557 } 1517 }
1558
1559 close(fd);
1560 return (1);
1561} 1518}
1562 1519#else /* LASTLOG_WRITE_PUTUTXLINE */
1563int 1520int
1564lastlog_write_entry(struct logininfo *li) 1521lastlog_write_entry(struct logininfo *li)
1565{ 1522{
1523 struct lastlog last;
1524 int fd;
1525
1566 switch(li->type) { 1526 switch(li->type) {
1567 case LTYPE_LOGIN: 1527 case LTYPE_LOGIN:
1568 return (lastlog_perform_login(li)); 1528 /* create our struct lastlog */
1529 memset(&last, '\0', sizeof(last));
1530 line_stripname(last.ll_line, li->line, sizeof(last.ll_line));
1531 strlcpy(last.ll_host, li->hostname,
1532 MIN_SIZEOF(last.ll_host, li->hostname));
1533 last.ll_time = li->tv_sec;
1534
1535 if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT))
1536 return (0);
1537
1538 /* write the entry */
1539 if (atomicio(vwrite, fd, &last, sizeof(last)) != sizeof(last)) {
1540 close(fd);
1541 logit("%s: Error writing to %s: %s", __func__,
1542 LASTLOG_FILE, strerror(errno));
1543 return (0);
1544 }
1545
1546 close(fd);
1547 return (1);
1569 default: 1548 default:
1570 logit("%s: Invalid type field", __func__); 1549 logit("%s: Invalid type field", __func__);
1571 return (0); 1550 return (0);
1572 } 1551 }
1573} 1552}
1553#endif /* LASTLOG_WRITE_PUTUTXLINE */
1574 1554
1575static void 1555#ifdef HAVE_GETLASTLOGXBYNAME
1576lastlog_populate_entry(struct logininfo *li, struct lastlog *last) 1556int
1557lastlog_get_entry(struct logininfo *li)
1577{ 1558{
1578 line_fullname(li->line, last->ll_line, sizeof(li->line)); 1559 struct lastlogx l, *ll;
1579 strlcpy(li->hostname, last->ll_host,
1580 MIN_SIZEOF(li->hostname, last->ll_host));
1581 li->tv_sec = last->ll_time;
1582}
1583 1560
1561 if ((ll = getlastlogxbyname(li->username, &l)) == NULL) {
1562 memset(&l, '\0', sizeof(l));
1563 ll = &l;
1564 }
1565 line_fullname(li->line, ll->ll_line, sizeof(li->line));
1566 strlcpy(li->hostname, ll->ll_host,
1567 MIN_SIZEOF(li->hostname, ll->ll_host));
1568 li->tv_sec = ll->ll_tv.tv_sec;
1569 li->tv_usec = ll->ll_tv.tv_usec;
1570 return (1);
1571}
1572#else /* HAVE_GETLASTLOGXBYNAME */
1584int 1573int
1585lastlog_get_entry(struct logininfo *li) 1574lastlog_get_entry(struct logininfo *li)
1586{ 1575{
@@ -1598,7 +1587,10 @@ lastlog_get_entry(struct logininfo *li)
1598 memset(&last, '\0', sizeof(last)); 1587 memset(&last, '\0', sizeof(last));
1599 /* FALLTHRU */ 1588 /* FALLTHRU */
1600 case sizeof(last): 1589 case sizeof(last):
1601 lastlog_populate_entry(li, &last); 1590 line_fullname(li->line, last.ll_line, sizeof(li->line));
1591 strlcpy(li->hostname, last.ll_host,
1592 MIN_SIZEOF(li->hostname, last.ll_host));
1593 li->tv_sec = last.ll_time;
1602 return (1); 1594 return (1);
1603 case -1: 1595 case -1:
1604 error("%s: Error reading from %s: %s", __func__, 1596 error("%s: Error reading from %s: %s", __func__,
@@ -1613,6 +1605,7 @@ lastlog_get_entry(struct logininfo *li)
1613 /* NOTREACHED */ 1605 /* NOTREACHED */
1614 return (0); 1606 return (0);
1615} 1607}
1608#endif /* HAVE_GETLASTLOGXBYNAME */
1616#endif /* USE_LASTLOG */ 1609#endif /* USE_LASTLOG */
1617 1610
1618#ifdef USE_BTMP 1611#ifdef USE_BTMP
diff --git a/mdoc2man.pl b/mdoc2man.pl
deleted file mode 100644
index 928fc5d7a..000000000
--- a/mdoc2man.pl
+++ /dev/null
@@ -1,592 +0,0 @@
1#!/usr/bin/perl
2###
3### Quick usage: mdoc2man.pl < mdoc_manpage.8 > man_manpage.8
4###
5###
6### Copyright (c) 2001 University of Illinois Board of Trustees
7### Copyright (c) 2001 Mark D. Roth
8### All rights reserved.
9###
10### Redistribution and use in source and binary forms, with or without
11### modification, are permitted provided that the following conditions
12### are met:
13### 1. Redistributions of source code must retain the above copyright
14### notice, this list of conditions and the following disclaimer.
15### 2. Redistributions in binary form must reproduce the above copyright
16### notice, this list of conditions and the following disclaimer in the
17### documentation and/or other materials provided with the distribution.
18### 3. All advertising materials mentioning features or use of this software
19### must display the following acknowledgement:
20### This product includes software developed by the University of
21### Illinois at Urbana, and their contributors.
22### 4. The University nor the names of their
23### contributors may be used to endorse or promote products derived from
24### this software without specific prior written permission.
25###
26### THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND
27### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29### ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE
30### FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31### DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32### OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33### HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34### LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35### OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36### SUCH DAMAGE.
37###
38
39use strict;
40
41my ($name, $date, $id);
42my ($line);
43my ($optlist, $oldoptlist, $nospace, $enum, $synopsis);
44my ($reference, $block, $ext, $extopt, $literal);
45my (@refauthors, $reftitle, $refissue, $refdate, $refopt);
46
47
48$optlist = 0; ### 1 = bullet, 2 = enum, 3 = tag, 4 = item
49$oldoptlist = 0;
50$nospace = 0;
51$synopsis = 0;
52$reference = 0;
53$block = 0;
54$ext = 0;
55$extopt = 0;
56$literal = 0;
57
58while ($line = <STDIN>)
59{
60 if ($line !~ /^\./)
61 {
62 print $line;
63 print ".br\n"
64 if ($literal);
65 next;
66 }
67
68 $line =~ s/^\.//;
69
70 next
71 if ($line =~ m/\\"/);
72
73 $line = ParseMacro($line);
74 print($line)
75 if (defined $line);
76}
77
78
79
80sub ParseMacro # ($line)
81{
82 my ($line) = @_;
83 my (@words, $retval, $option, $parens);
84
85 @words = split(/\s+/, $line);
86 $retval = '';
87 $option = 0;
88 $parens = 0;
89
90# print('@words = ', scalar(@words), ': ', join(' ', @words), "\n");
91
92 while ($_ = shift @words)
93 {
94# print "WORD: $_\n";
95
96 next
97 if (/^(Li|Pf)$/);
98
99 if (/^Xo$/)
100 {
101 $ext = 1;
102 $retval .= ' '
103 if ($retval ne '' && $retval !~ m/[\n ]$/);
104 next;
105 }
106
107 if (/^Xc$/)
108 {
109 $ext = 0;
110 $retval .= "\n"
111 if (! $extopt);
112 last;
113 }
114
115 if (/^Bd$/)
116 {
117 $literal = 1
118 if ($words[0] eq '-literal');
119 $retval .= "\n";
120 last;
121 }
122
123 if (/^Ed$/)
124 {
125 $literal = 0;
126 last;
127 }
128
129 if (/^Ns$/)
130 {
131 $nospace = 1
132 if (! $nospace);
133 $retval =~ s/ $//;
134 next;
135 }
136
137 if (/^No$/)
138 {
139 $retval =~ s/ $//;
140 $retval .= shift @words;
141 next;
142 }
143
144 if (/^Dq$/)
145 {
146 $retval .= '``';
147 do
148 {
149 $retval .= (shift @words) . ' ';
150 }
151 while (@words > 0 && $words[0] !~ m/^[\.,]/);
152 $retval =~ s/ $//;
153 $retval .= '\'\'';
154 $nospace = 1
155 if (! $nospace && $words[0] =~ m/^[\.,]/);
156 next;
157 }
158
159 if (/^(Sq|Ql)$/)
160 {
161 $retval .= '`' . (shift @words) . '\'';
162 $nospace = 1
163 if (! $nospace && $words[0] =~ m/^[\.,]/);
164 next;
165 }
166
167# if (/^Ic$/)
168# {
169# $retval .= '\\fB' . shift(@words) . '\\fP';
170# next;
171# }
172
173 if (/^Oo$/)
174 {
175# $retval .= "[\\c\n";
176 $extopt = 1;
177 $nospace = 1
178 if (! $nospace);
179 $retval .= '[';
180 next;
181 }
182
183 if (/^Oc$/)
184 {
185 $extopt = 0;
186 $retval .= ']';
187 next;
188 }
189
190 $retval .= ' '
191 if (! $nospace && $retval ne '' && $retval !~ m/[\n ]$/);
192 $nospace = 0
193 if ($nospace == 1);
194
195 if (/^Dd$/)
196 {
197 $date = join(' ', @words);
198 return undef;
199 }
200
201 if (/^Dt$/)
202 {
203 $id = join(' ', @words);
204 return undef;
205 }
206
207 if (/^Os$/)
208 {
209 $retval .= '.TH '
210 . $id
211 . " \"$date\" \""
212 . join(' ', @words)
213 . "\"";
214 last;
215 }
216
217 if (/^Sh$/)
218 {
219 $retval .= '.SH';
220 if ($words[0] eq 'SYNOPSIS')
221 {
222 $synopsis = 1;
223 }
224 else
225 {
226 $synopsis = 0;
227 }
228 next;
229 }
230
231 if (/^Xr$/)
232 {
233 $retval .= '\\fB' . (shift @words) .
234 '\\fP(' . (shift @words) . ')'
235 . (shift @words);
236 last;
237 }
238
239 if (/^Rs/)
240 {
241 @refauthors = ();
242 $reftitle = '';
243 $refissue = '';
244 $refdate = '';
245 $refopt = '';
246 $reference = 1;
247 last;
248 }
249
250 if (/^Re/)
251 {
252 $retval .= "\n";
253
254 # authors
255 while (scalar(@refauthors) > 1)
256 {
257 $retval .= shift(@refauthors) . ', ';
258 }
259 $retval .= 'and '
260 if ($retval ne '');
261 $retval .= shift(@refauthors);
262
263 # title
264 $retval .= ', \\fI' . $reftitle . '\\fP';
265
266 # issue
267 $retval .= ', ' . $refissue
268 if ($refissue ne '');
269
270 # date
271 $retval .= ', ' . $refdate
272 if ($refdate ne '');
273
274 # optional info
275 $retval .= ', ' . $refopt
276 if ($refopt ne '');
277
278 $retval .= ".\n";
279
280 $reference = 0;
281 last;
282 }
283
284 if ($reference)
285 {
286 if (/^%A$/)
287 {
288 unshift(@refauthors, join(' ', @words));
289 last;
290 }
291
292 if (/^%T$/)
293 {
294 $reftitle = join(' ', @words);
295 $reftitle =~ s/^"//;
296 $reftitle =~ s/"$//;
297 last;
298 }
299
300 if (/^%N$/)
301 {
302 $refissue = join(' ', @words);
303 last;
304 }
305
306 if (/^%D$/)
307 {
308 $refdate = join(' ', @words);
309 last;
310 }
311
312 if (/^%O$/)
313 {
314 $refopt = join(' ', @words);
315 last;
316 }
317 }
318
319 if (/^Nm$/)
320 {
321 my $n = $name;
322 $n = shift @words
323 if (@words > 0);
324 $name = $n unless $name;
325 $retval .= ".br\n"
326 if ($synopsis);
327 $retval .= "\\fB$n\\fP";
328 $nospace = 1
329 if (! $nospace && $words[0] =~ m/^[\.,]/);
330 next;
331 }
332
333 if (/^Nd$/)
334 {
335 $retval .= '\\-';
336 next;
337 }
338
339 if (/^Fl$/)
340 {
341 $retval .= '\\fB\\-' . (shift @words) . '\\fP';
342 $nospace = 1
343 if (! $nospace && $words[0] =~ m/^[\.,]/);
344 next;
345 }
346
347 if (/^Ar$/)
348 {
349 $retval .= '\\fI';
350 if (! defined $words[0])
351 {
352 $retval .= 'file ...\\fP';
353 }
354 else
355 {
356 $retval .= shift(@words) . '\\fP';
357 while ($words[0] eq '|')
358 {
359 $retval .= ' ' . shift(@words);
360 $retval .= ' \\fI' . shift(@words);
361 $retval .= '\\fP';
362 }
363 }
364 $nospace = 1
365 if (! $nospace && $words[0] =~ m/^[\.,]/);
366 next;
367 }
368
369 if (/^Cm$/)
370 {
371 $retval .= '\\fB' . (shift @words) . '\\fP';
372 while ($words[0] =~ m/^[\.,:)]$/)
373 {
374 $retval .= shift(@words);
375 }
376 next;
377 }
378
379 if (/^Op$/)
380 {
381 $option = 1;
382 $nospace = 1
383 if (! $nospace);
384 $retval .= '[';
385# my $tmp = pop(@words);
386# $tmp .= ']';
387# push(@words, $tmp);
388 next;
389 }
390
391 if (/^Pp$/)
392 {
393 $retval .= "\n";
394 next;
395 }
396
397 if (/^Ss$/)
398 {
399 $retval .= '.SS';
400 next;
401 }
402
403 if (/^Pa$/ && ! $option)
404 {
405 $retval .= '\\fI';
406 $retval .= '\\&'
407 if ($words[0] =~ m/^\./);
408 $retval .= (shift @words) . '\\fP';
409 while ($words[0] =~ m/^[\.,:;)]$/)
410 {
411 $retval .= shift(@words);
412 }
413# $nospace = 1
414# if (! $nospace && $words[0] =~ m/^[\.,:)]/);
415 next;
416 }
417
418 if (/^Dv$/)
419 {
420 $retval .= '.BR';
421 next;
422 }
423
424 if (/^(Em|Ev)$/)
425 {
426 $retval .= '.IR';
427 next;
428 }
429
430 if (/^Pq$/)
431 {
432 $retval .= '(';
433 $nospace = 1;
434 $parens = 1;
435 next;
436 }
437
438 if (/^(S[xy])$/)
439 {
440 $retval .= '.B ' . join(' ', @words);
441 last;
442 }
443
444 if (/^Ic$/)
445 {
446 $retval .= '\\fB';
447 while (defined $words[0]
448 && $words[0] !~ m/^[\.,]/)
449 {
450 if ($words[0] eq 'Op')
451 {
452 shift(@words);
453 $retval .= '[';
454 my $tmp = pop(@words);
455 $tmp .= ']';
456 push(@words, $tmp);
457 next;
458 }
459 if ($words[0] eq 'Ar')
460 {
461 shift @words;
462 $retval .= '\\fI';
463 $retval .= shift @words;
464 $retval .= '\\fP';
465 }
466 else
467 {
468 $retval .= shift @words;
469 }
470 $retval .= ' '
471 if (! $nospace);
472 }
473 $retval =~ s/ $//;
474 $retval .= '\\fP';
475 $retval .= shift @words
476 if (defined $words[0]);
477 last;
478 }
479
480 if (/^Bl$/)
481 {
482 $oldoptlist = $optlist;
483 if ($words[0] eq '-bullet')
484 {
485 $optlist = 1;
486 }
487 elsif ($words[0] eq '-enum')
488 {
489 $optlist = 2;
490 $enum = 0;
491 }
492 elsif ($words[0] eq '-tag')
493 {
494 $optlist = 3;
495 }
496 elsif ($words[0] eq '-item')
497 {
498 $optlist = 4;
499 }
500 last;
501 }
502
503 if (/^El$/)
504 {
505 $optlist = $oldoptlist;
506 next;
507 }
508
509 if ($optlist && /^It$/)
510 {
511 if ($optlist == 1)
512 {
513 # bullets
514 $retval .= '.IP \\(bu';
515 next;
516 }
517
518 if ($optlist == 2)
519 {
520 # enum
521 $retval .= '.IP ' . (++$enum) . '.';
522 next;
523 }
524
525 if ($optlist == 3)
526 {
527 # tags
528 $retval .= ".TP\n";
529 if ($words[0] =~ m/^(Pa|Ev)$/)
530 {
531 shift @words;
532 $retval .= '.B';
533 }
534 next;
535 }
536
537 if ($optlist == 4)
538 {
539 # item
540 $retval .= ".IP\n";
541 next;
542 }
543
544 next;
545 }
546
547 if (/^Sm$/)
548 {
549 if ($words[0] eq 'off')
550 {
551 $nospace = 2;
552 }
553 elsif ($words[0] eq 'on')
554 {
555# $retval .= "\n";
556 $nospace = 0;
557 }
558 shift @words;
559 next;
560 }
561
562 $retval .= "$_";
563 }
564
565 return undef
566 if ($retval eq '.');
567
568 $retval =~ s/^\.([^a-zA-Z])/$1/;
569# $retval =~ s/ $//;
570
571 $retval .= ')'
572 if ($parens == 1);
573
574 $retval .= ']'
575 if ($option == 1);
576
577# $retval .= ' '
578# if ($nospace && $retval ne '' && $retval !~ m/\n$/);
579
580# $retval .= ' '
581# if ($extended && $retval !~ m/ $/);
582
583 $retval .= ' '
584 if ($ext && ! $extopt && $retval !~ m/ $/);
585
586 $retval .= "\n"
587 if (! $ext && ! $extopt && $retval ne '' && $retval !~ m/\n$/);
588
589 return $retval;
590}
591
592
diff --git a/misc.c b/misc.c
index 8b303f16f..143dbf0e2 100644
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: misc.c,v 1.69 2008/06/13 01:38:23 dtucker Exp $ */ 1/* $OpenBSD: misc.c,v 1.71 2009/02/21 19:32:04 tobias Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * Copyright (c) 2005,2006 Damien Miller. All rights reserved. 4 * Copyright (c) 2005,2006 Damien Miller. All rights reserved.
@@ -221,23 +221,19 @@ pwcopy(struct passwd *pw)
221 221
222/* 222/*
223 * Convert ASCII string to TCP/IP port number. 223 * Convert ASCII string to TCP/IP port number.
224 * Port must be >0 and <=65535. 224 * Port must be >=0 and <=65535.
225 * Return 0 if invalid. 225 * Return -1 if invalid.
226 */ 226 */
227int 227int
228a2port(const char *s) 228a2port(const char *s)
229{ 229{
230 long port; 230 long long port;
231 char *endp; 231 const char *errstr;
232
233 errno = 0;
234 port = strtol(s, &endp, 0);
235 if (s == endp || *endp != '\0' ||
236 (errno == ERANGE && (port == LONG_MIN || port == LONG_MAX)) ||
237 port <= 0 || port > 65535)
238 return 0;
239 232
240 return port; 233 port = strtonum(s, 0, 65535, &errstr);
234 if (errstr != NULL)
235 return -1;
236 return (int)port;
241} 237}
242 238
243int 239int
@@ -718,7 +714,8 @@ sanitise_stdfd(void)
718 int nullfd, dupfd; 714 int nullfd, dupfd;
719 715
720 if ((nullfd = dupfd = open(_PATH_DEVNULL, O_RDWR)) == -1) { 716 if ((nullfd = dupfd = open(_PATH_DEVNULL, O_RDWR)) == -1) {
721 fprintf(stderr, "Couldn't open /dev/null: %s", strerror(errno)); 717 fprintf(stderr, "Couldn't open /dev/null: %s\n",
718 strerror(errno));
722 exit(1); 719 exit(1);
723 } 720 }
724 while (++dupfd <= 2) { 721 while (++dupfd <= 2) {
@@ -726,7 +723,7 @@ sanitise_stdfd(void)
726 if (fcntl(dupfd, F_GETFL, 0) >= 0) 723 if (fcntl(dupfd, F_GETFL, 0) >= 0)
727 continue; 724 continue;
728 if (dup2(nullfd, dupfd) == -1) { 725 if (dup2(nullfd, dupfd) == -1) {
729 fprintf(stderr, "dup2: %s", strerror(errno)); 726 fprintf(stderr, "dup2: %s\n", strerror(errno));
730 exit(1); 727 exit(1);
731 } 728 }
732 } 729 }
diff --git a/moduli.0 b/moduli.0
index 55a315fab..d4c0d4e67 100644
--- a/moduli.0
+++ b/moduli.0
@@ -69,4 +69,4 @@ SEE ALSO
69 Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer 69 Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer
70 Protocol, RFC 4419, 2006. 70 Protocol, RFC 4419, 2006.
71 71
72OpenBSD 4.4 June 26, 2008 2 72OpenBSD 4.5 June 26, 2008 2
diff --git a/moduli.h b/moduli.h
deleted file mode 100644
index 9cd1cd3f8..000000000
--- a/moduli.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/* $OpenBSD: moduli.h,v 1.1 2003/07/28 09:49:56 djm Exp $ */
2
3#include <sys/types.h>
4#include <openssl/bn.h>
5
6/*
7 * Using virtual memory can cause thrashing. This should be the largest
8 * number that is supported without a large amount of disk activity --
9 * that would increase the run time from hours to days or weeks!
10 */
11#define LARGE_MINIMUM (8UL) /* megabytes */
12
13/*
14 * Do not increase this number beyond the unsigned integer bit size.
15 * Due to a multiple of 4, it must be LESS than 128 (yielding 2**30 bits).
16 */
17#define LARGE_MAXIMUM (127UL) /* megabytes */
18
19/* Minimum number of primality tests to perform */
20#define TRIAL_MINIMUM (4)
21
22int gen_candidates(FILE *, int, int, BIGNUM *);
23int prime_test(FILE *, FILE *, u_int32_t, u_int32_t);
diff --git a/monitor.c b/monitor.c
index 73cf6bc9b..f57e74ba5 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor.c,v 1.99 2008/07/10 18:08:11 markus Exp $ */ 1/* $OpenBSD: monitor.c,v 1.101 2009/02/12 03:26:22 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -87,6 +87,7 @@
87#include "misc.h" 87#include "misc.h"
88#include "compat.h" 88#include "compat.h"
89#include "ssh2.h" 89#include "ssh2.h"
90#include "jpake.h"
90 91
91#ifdef GSSAPI 92#ifdef GSSAPI
92static Gssctxt *gsscontext = NULL; 93static Gssctxt *gsscontext = NULL;
@@ -149,6 +150,11 @@ int mm_answer_rsa_challenge(int, Buffer *);
149int mm_answer_rsa_response(int, Buffer *); 150int mm_answer_rsa_response(int, Buffer *);
150int mm_answer_sesskey(int, Buffer *); 151int mm_answer_sesskey(int, Buffer *);
151int mm_answer_sessid(int, Buffer *); 152int mm_answer_sessid(int, Buffer *);
153int mm_answer_jpake_get_pwdata(int, Buffer *);
154int mm_answer_jpake_step1(int, Buffer *);
155int mm_answer_jpake_step2(int, Buffer *);
156int mm_answer_jpake_key_confirm(int, Buffer *);
157int mm_answer_jpake_check_confirm(int, Buffer *);
152 158
153#ifdef USE_PAM 159#ifdef USE_PAM
154int mm_answer_pam_start(int, Buffer *); 160int mm_answer_pam_start(int, Buffer *);
@@ -234,6 +240,13 @@ struct mon_table mon_dispatch_proto20[] = {
234 {MONITOR_REQ_GSSUSEROK, MON_AUTH, mm_answer_gss_userok}, 240 {MONITOR_REQ_GSSUSEROK, MON_AUTH, mm_answer_gss_userok},
235 {MONITOR_REQ_GSSCHECKMIC, MON_ISAUTH, mm_answer_gss_checkmic}, 241 {MONITOR_REQ_GSSCHECKMIC, MON_ISAUTH, mm_answer_gss_checkmic},
236#endif 242#endif
243#ifdef JPAKE
244 {MONITOR_REQ_JPAKE_GET_PWDATA, MON_ONCE, mm_answer_jpake_get_pwdata},
245 {MONITOR_REQ_JPAKE_STEP1, MON_ISAUTH, mm_answer_jpake_step1},
246 {MONITOR_REQ_JPAKE_STEP2, MON_ONCE, mm_answer_jpake_step2},
247 {MONITOR_REQ_JPAKE_KEY_CONFIRM, MON_ONCE, mm_answer_jpake_key_confirm},
248 {MONITOR_REQ_JPAKE_CHECK_CONFIRM, MON_AUTH, mm_answer_jpake_check_confirm},
249#endif
237 {0, 0, NULL} 250 {0, 0, NULL}
238}; 251};
239 252
@@ -379,6 +392,15 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor)
379 if (!authenticated) 392 if (!authenticated)
380 authctxt->failures++; 393 authctxt->failures++;
381 } 394 }
395#ifdef JPAKE
396 /* Cleanup JPAKE context after authentication */
397 if (ent->flags & MON_AUTHDECIDE) {
398 if (authctxt->jpake_ctx != NULL) {
399 jpake_free(authctxt->jpake_ctx);
400 authctxt->jpake_ctx = NULL;
401 }
402 }
403#endif
382 } 404 }
383 405
384 if (!authctxt->valid) 406 if (!authctxt->valid)
@@ -1478,7 +1500,9 @@ mm_answer_rsa_challenge(int sock, Buffer *m)
1478 fatal("%s: key type mismatch", __func__); 1500 fatal("%s: key type mismatch", __func__);
1479 if ((key = key_from_blob(blob, blen)) == NULL) 1501 if ((key = key_from_blob(blob, blen)) == NULL)
1480 fatal("%s: received bad key", __func__); 1502 fatal("%s: received bad key", __func__);
1481 1503 if (key->type != KEY_RSA)
1504 fatal("%s: received bad key type %d", __func__, key->type);
1505 key->type = KEY_RSA1;
1482 if (ssh1_challenge) 1506 if (ssh1_challenge)
1483 BN_clear_free(ssh1_challenge); 1507 BN_clear_free(ssh1_challenge);
1484 ssh1_challenge = auth_rsa_generate_challenge(key); 1508 ssh1_challenge = auth_rsa_generate_challenge(key);
@@ -1969,3 +1993,206 @@ mm_answer_gss_userok(int sock, Buffer *m)
1969 return (authenticated); 1993 return (authenticated);
1970} 1994}
1971#endif /* GSSAPI */ 1995#endif /* GSSAPI */
1996
1997#ifdef JPAKE
1998int
1999mm_answer_jpake_step1(int sock, Buffer *m)
2000{
2001 struct jpake_ctx *pctx;
2002 u_char *x3_proof, *x4_proof;
2003 u_int x3_proof_len, x4_proof_len;
2004
2005 if (!options.zero_knowledge_password_authentication)
2006 fatal("zero_knowledge_password_authentication disabled");
2007
2008 if (authctxt->jpake_ctx != NULL)
2009 fatal("%s: authctxt->jpake_ctx already set (%p)",
2010 __func__, authctxt->jpake_ctx);
2011 authctxt->jpake_ctx = pctx = jpake_new();
2012
2013 jpake_step1(pctx->grp,
2014 &pctx->server_id, &pctx->server_id_len,
2015 &pctx->x3, &pctx->x4, &pctx->g_x3, &pctx->g_x4,
2016 &x3_proof, &x3_proof_len,
2017 &x4_proof, &x4_proof_len);
2018
2019 JPAKE_DEBUG_CTX((pctx, "step1 done in %s", __func__));
2020
2021 buffer_clear(m);
2022
2023 buffer_put_string(m, pctx->server_id, pctx->server_id_len);
2024 buffer_put_bignum2(m, pctx->g_x3);
2025 buffer_put_bignum2(m, pctx->g_x4);
2026 buffer_put_string(m, x3_proof, x3_proof_len);
2027 buffer_put_string(m, x4_proof, x4_proof_len);
2028
2029 debug3("%s: sending step1", __func__);
2030 mm_request_send(sock, MONITOR_ANS_JPAKE_STEP1, m);
2031
2032 bzero(x3_proof, x3_proof_len);
2033 bzero(x4_proof, x4_proof_len);
2034 xfree(x3_proof);
2035 xfree(x4_proof);
2036
2037 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_GET_PWDATA, 1);
2038 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP1, 0);
2039
2040 return 0;
2041}
2042
2043int
2044mm_answer_jpake_get_pwdata(int sock, Buffer *m)
2045{
2046 struct jpake_ctx *pctx = authctxt->jpake_ctx;
2047 char *hash_scheme, *salt;
2048
2049 if (pctx == NULL)
2050 fatal("%s: pctx == NULL", __func__);
2051
2052 auth2_jpake_get_pwdata(authctxt, &pctx->s, &hash_scheme, &salt);
2053
2054 buffer_clear(m);
2055 /* pctx->s is sensitive, not returned to slave */
2056 buffer_put_cstring(m, hash_scheme);
2057 buffer_put_cstring(m, salt);
2058
2059 debug3("%s: sending pwdata", __func__);
2060 mm_request_send(sock, MONITOR_ANS_JPAKE_GET_PWDATA, m);
2061
2062 bzero(hash_scheme, strlen(hash_scheme));
2063 bzero(salt, strlen(salt));
2064 xfree(hash_scheme);
2065 xfree(salt);
2066
2067 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP2, 1);
2068
2069 return 0;
2070}
2071
2072int
2073mm_answer_jpake_step2(int sock, Buffer *m)
2074{
2075 struct jpake_ctx *pctx = authctxt->jpake_ctx;
2076 u_char *x1_proof, *x2_proof, *x4_s_proof;
2077 u_int x1_proof_len, x2_proof_len, x4_s_proof_len;
2078
2079 if (pctx == NULL)
2080 fatal("%s: pctx == NULL", __func__);
2081
2082 if ((pctx->g_x1 = BN_new()) == NULL ||
2083 (pctx->g_x2 = BN_new()) == NULL)
2084 fatal("%s: BN_new", __func__);
2085 buffer_get_bignum2(m, pctx->g_x1);
2086 buffer_get_bignum2(m, pctx->g_x2);
2087 pctx->client_id = buffer_get_string(m, &pctx->client_id_len);
2088 x1_proof = buffer_get_string(m, &x1_proof_len);
2089 x2_proof = buffer_get_string(m, &x2_proof_len);
2090
2091 jpake_step2(pctx->grp, pctx->s, pctx->g_x3,
2092 pctx->g_x1, pctx->g_x2, pctx->x4,
2093 pctx->client_id, pctx->client_id_len,
2094 pctx->server_id, pctx->server_id_len,
2095 x1_proof, x1_proof_len,
2096 x2_proof, x2_proof_len,
2097 &pctx->b,
2098 &x4_s_proof, &x4_s_proof_len);
2099
2100 JPAKE_DEBUG_CTX((pctx, "step2 done in %s", __func__));
2101
2102 bzero(x1_proof, x1_proof_len);
2103 bzero(x2_proof, x2_proof_len);
2104 xfree(x1_proof);
2105 xfree(x2_proof);
2106
2107 buffer_clear(m);
2108
2109 buffer_put_bignum2(m, pctx->b);
2110 buffer_put_string(m, x4_s_proof, x4_s_proof_len);
2111
2112 debug3("%s: sending step2", __func__);
2113 mm_request_send(sock, MONITOR_ANS_JPAKE_STEP2, m);
2114
2115 bzero(x4_s_proof, x4_s_proof_len);
2116 xfree(x4_s_proof);
2117
2118 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_KEY_CONFIRM, 1);
2119
2120 return 0;
2121}
2122
2123int
2124mm_answer_jpake_key_confirm(int sock, Buffer *m)
2125{
2126 struct jpake_ctx *pctx = authctxt->jpake_ctx;
2127 u_char *x2_s_proof;
2128 u_int x2_s_proof_len;
2129
2130 if (pctx == NULL)
2131 fatal("%s: pctx == NULL", __func__);
2132
2133 if ((pctx->a = BN_new()) == NULL)
2134 fatal("%s: BN_new", __func__);
2135 buffer_get_bignum2(m, pctx->a);
2136 x2_s_proof = buffer_get_string(m, &x2_s_proof_len);
2137
2138 jpake_key_confirm(pctx->grp, pctx->s, pctx->a,
2139 pctx->x4, pctx->g_x3, pctx->g_x4, pctx->g_x1, pctx->g_x2,
2140 pctx->server_id, pctx->server_id_len,
2141 pctx->client_id, pctx->client_id_len,
2142 session_id2, session_id2_len,
2143 x2_s_proof, x2_s_proof_len,
2144 &pctx->k,
2145 &pctx->h_k_sid_sessid, &pctx->h_k_sid_sessid_len);
2146
2147 JPAKE_DEBUG_CTX((pctx, "key_confirm done in %s", __func__));
2148
2149 bzero(x2_s_proof, x2_s_proof_len);
2150 buffer_clear(m);
2151
2152 /* pctx->k is sensitive, not sent */
2153 buffer_put_string(m, pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len);
2154
2155 debug3("%s: sending confirmation hash", __func__);
2156 mm_request_send(sock, MONITOR_ANS_JPAKE_KEY_CONFIRM, m);
2157
2158 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_CHECK_CONFIRM, 1);
2159
2160 return 0;
2161}
2162
2163int
2164mm_answer_jpake_check_confirm(int sock, Buffer *m)
2165{
2166 int authenticated = 0;
2167 u_char *peer_confirm_hash;
2168 u_int peer_confirm_hash_len;
2169 struct jpake_ctx *pctx = authctxt->jpake_ctx;
2170
2171 if (pctx == NULL)
2172 fatal("%s: pctx == NULL", __func__);
2173
2174 peer_confirm_hash = buffer_get_string(m, &peer_confirm_hash_len);
2175
2176 authenticated = jpake_check_confirm(pctx->k,
2177 pctx->client_id, pctx->client_id_len,
2178 session_id2, session_id2_len,
2179 peer_confirm_hash, peer_confirm_hash_len) && authctxt->valid;
2180
2181 JPAKE_DEBUG_CTX((pctx, "check_confirm done in %s", __func__));
2182
2183 bzero(peer_confirm_hash, peer_confirm_hash_len);
2184 xfree(peer_confirm_hash);
2185
2186 buffer_clear(m);
2187 buffer_put_int(m, authenticated);
2188
2189 debug3("%s: sending result %d", __func__, authenticated);
2190 mm_request_send(sock, MONITOR_ANS_JPAKE_CHECK_CONFIRM, m);
2191
2192 monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP1, 1);
2193
2194 auth_method = "jpake-01@openssh.com";
2195 return authenticated;
2196}
2197
2198#endif /* JPAKE */
diff --git a/monitor.h b/monitor.h
index 464009ad8..a8a2c0c19 100644
--- a/monitor.h
+++ b/monitor.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor.h,v 1.14 2006/03/25 22:22:43 djm Exp $ */ 1/* $OpenBSD: monitor.h,v 1.15 2008/11/04 08:22:13 djm Exp $ */
2 2
3/* 3/*
4 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 4 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
@@ -60,7 +60,12 @@ enum monitor_reqtype {
60 MONITOR_REQ_PAM_RESPOND, MONITOR_ANS_PAM_RESPOND, 60 MONITOR_REQ_PAM_RESPOND, MONITOR_ANS_PAM_RESPOND,
61 MONITOR_REQ_PAM_FREE_CTX, MONITOR_ANS_PAM_FREE_CTX, 61 MONITOR_REQ_PAM_FREE_CTX, MONITOR_ANS_PAM_FREE_CTX,
62 MONITOR_REQ_AUDIT_EVENT, MONITOR_REQ_AUDIT_COMMAND, 62 MONITOR_REQ_AUDIT_EVENT, MONITOR_REQ_AUDIT_COMMAND,
63 MONITOR_REQ_TERM 63 MONITOR_REQ_TERM,
64 MONITOR_REQ_JPAKE_STEP1, MONITOR_ANS_JPAKE_STEP1,
65 MONITOR_REQ_JPAKE_GET_PWDATA, MONITOR_ANS_JPAKE_GET_PWDATA,
66 MONITOR_REQ_JPAKE_STEP2, MONITOR_ANS_JPAKE_STEP2,
67 MONITOR_REQ_JPAKE_KEY_CONFIRM, MONITOR_ANS_JPAKE_KEY_CONFIRM,
68 MONITOR_REQ_JPAKE_CHECK_CONFIRM, MONITOR_ANS_JPAKE_CHECK_CONFIRM,
64}; 69};
65 70
66struct mm_master; 71struct mm_master;
diff --git a/monitor_fdpass.c b/monitor_fdpass.c
index cab538bc9..4b9a066bc 100644
--- a/monitor_fdpass.c
+++ b/monitor_fdpass.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_fdpass.c,v 1.17 2008/03/24 16:11:07 deraadt Exp $ */ 1/* $OpenBSD: monitor_fdpass.c,v 1.18 2008/11/30 11:59:26 dtucker Exp $ */
2/* 2/*
3 * Copyright 2001 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2001 Niels Provos <provos@citi.umich.edu>
4 * All rights reserved. 4 * All rights reserved.
@@ -45,17 +45,16 @@ mm_send_fd(int sock, int fd)
45{ 45{
46#if defined(HAVE_SENDMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) 46#if defined(HAVE_SENDMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR))
47 struct msghdr msg; 47 struct msghdr msg;
48 struct iovec vec;
49 char ch = '\0';
50 ssize_t n;
51#ifndef HAVE_ACCRIGHTS_IN_MSGHDR 48#ifndef HAVE_ACCRIGHTS_IN_MSGHDR
52 union { 49 union {
53 struct cmsghdr hdr; 50 struct cmsghdr hdr;
54 char tmp[CMSG_SPACE(sizeof(int))];
55 char buf[CMSG_SPACE(sizeof(int))]; 51 char buf[CMSG_SPACE(sizeof(int))];
56 } cmsgbuf; 52 } cmsgbuf;
57 struct cmsghdr *cmsg; 53 struct cmsghdr *cmsg;
58#endif 54#endif
55 struct iovec vec;
56 char ch = '\0';
57 ssize_t n;
59 58
60 memset(&msg, 0, sizeof(msg)); 59 memset(&msg, 0, sizeof(msg));
61#ifdef HAVE_ACCRIGHTS_IN_MSGHDR 60#ifdef HAVE_ACCRIGHTS_IN_MSGHDR
@@ -76,7 +75,10 @@ mm_send_fd(int sock, int fd)
76 msg.msg_iov = &vec; 75 msg.msg_iov = &vec;
77 msg.msg_iovlen = 1; 76 msg.msg_iovlen = 1;
78 77
79 if ((n = sendmsg(sock, &msg, 0)) == -1) { 78 while ((n = sendmsg(sock, &msg, 0)) == -1 && (errno == EAGAIN ||
79 errno == EINTR))
80 debug3("%s: sendmsg(%d): %s", __func__, fd, strerror(errno));
81 if (n == -1) {
80 error("%s: sendmsg(%d): %s", __func__, fd, 82 error("%s: sendmsg(%d): %s", __func__, fd,
81 strerror(errno)); 83 strerror(errno));
82 return -1; 84 return -1;
@@ -99,10 +101,6 @@ mm_receive_fd(int sock)
99{ 101{
100#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) 102#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR))
101 struct msghdr msg; 103 struct msghdr msg;
102 struct iovec vec;
103 ssize_t n;
104 char ch;
105 int fd;
106#ifndef HAVE_ACCRIGHTS_IN_MSGHDR 104#ifndef HAVE_ACCRIGHTS_IN_MSGHDR
107 union { 105 union {
108 struct cmsghdr hdr; 106 struct cmsghdr hdr;
@@ -110,6 +108,10 @@ mm_receive_fd(int sock)
110 } cmsgbuf; 108 } cmsgbuf;
111 struct cmsghdr *cmsg; 109 struct cmsghdr *cmsg;
112#endif 110#endif
111 struct iovec vec;
112 ssize_t n;
113 char ch;
114 int fd;
113 115
114 memset(&msg, 0, sizeof(msg)); 116 memset(&msg, 0, sizeof(msg));
115 vec.iov_base = &ch; 117 vec.iov_base = &ch;
@@ -124,10 +126,14 @@ mm_receive_fd(int sock)
124 msg.msg_controllen = sizeof(cmsgbuf.buf); 126 msg.msg_controllen = sizeof(cmsgbuf.buf);
125#endif 127#endif
126 128
127 if ((n = recvmsg(sock, &msg, 0)) == -1) { 129 while ((n = recvmsg(sock, &msg, 0)) == -1 && (errno == EAGAIN ||
130 errno == EINTR))
131 debug3("%s: recvmsg: %s", __func__, strerror(errno));
132 if (n == -1) {
128 error("%s: recvmsg: %s", __func__, strerror(errno)); 133 error("%s: recvmsg: %s", __func__, strerror(errno));
129 return -1; 134 return -1;
130 } 135 }
136
131 if (n != 1) { 137 if (n != 1) {
132 error("%s: recvmsg: expected received 1 got %ld", 138 error("%s: recvmsg: expected received 1 got %ld",
133 __func__, (long)n); 139 __func__, (long)n);
@@ -145,6 +151,7 @@ mm_receive_fd(int sock)
145 error("%s: no message header", __func__); 151 error("%s: no message header", __func__);
146 return -1; 152 return -1;
147 } 153 }
154
148#ifndef BROKEN_CMSG_TYPE 155#ifndef BROKEN_CMSG_TYPE
149 if (cmsg->cmsg_type != SCM_RIGHTS) { 156 if (cmsg->cmsg_type != SCM_RIGHTS) {
150 error("%s: expected type %d got %d", __func__, 157 error("%s: expected type %d got %d", __func__,
diff --git a/monitor_wrap.c b/monitor_wrap.c
index 40463d078..0986fc518 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.c,v 1.63 2008/07/10 18:08:11 markus Exp $ */ 1/* $OpenBSD: monitor_wrap.c,v 1.64 2008/11/04 08:22:13 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -40,6 +40,7 @@
40 40
41#include <openssl/bn.h> 41#include <openssl/bn.h>
42#include <openssl/dh.h> 42#include <openssl/dh.h>
43#include <openssl/evp.h>
43 44
44#include "openbsd-compat/sys-queue.h" 45#include "openbsd-compat/sys-queue.h"
45#include "xmalloc.h" 46#include "xmalloc.h"
@@ -70,7 +71,7 @@
70#include "atomicio.h" 71#include "atomicio.h"
71#include "monitor_fdpass.h" 72#include "monitor_fdpass.h"
72#include "misc.h" 73#include "misc.h"
73#include "servconf.h" 74#include "jpake.h"
74 75
75#include "channels.h" 76#include "channels.h"
76#include "session.h" 77#include "session.h"
@@ -1256,3 +1257,165 @@ mm_ssh_gssapi_userok(char *user)
1256 return (authenticated); 1257 return (authenticated);
1257} 1258}
1258#endif /* GSSAPI */ 1259#endif /* GSSAPI */
1260
1261#ifdef JPAKE
1262void
1263mm_auth2_jpake_get_pwdata(Authctxt *authctxt, BIGNUM **s,
1264 char **hash_scheme, char **salt)
1265{
1266 Buffer m;
1267
1268 debug3("%s entering", __func__);
1269
1270 buffer_init(&m);
1271 mm_request_send(pmonitor->m_recvfd,
1272 MONITOR_REQ_JPAKE_GET_PWDATA, &m);
1273
1274 debug3("%s: waiting for MONITOR_ANS_JPAKE_GET_PWDATA", __func__);
1275 mm_request_receive_expect(pmonitor->m_recvfd,
1276 MONITOR_ANS_JPAKE_GET_PWDATA, &m);
1277
1278 *hash_scheme = buffer_get_string(&m, NULL);
1279 *salt = buffer_get_string(&m, NULL);
1280
1281 buffer_free(&m);
1282}
1283
1284void
1285mm_jpake_step1(struct jpake_group *grp,
1286 u_char **id, u_int *id_len,
1287 BIGNUM **priv1, BIGNUM **priv2, BIGNUM **g_priv1, BIGNUM **g_priv2,
1288 u_char **priv1_proof, u_int *priv1_proof_len,
1289 u_char **priv2_proof, u_int *priv2_proof_len)
1290{
1291 Buffer m;
1292
1293 debug3("%s entering", __func__);
1294
1295 buffer_init(&m);
1296 mm_request_send(pmonitor->m_recvfd,
1297 MONITOR_REQ_JPAKE_STEP1, &m);
1298
1299 debug3("%s: waiting for MONITOR_ANS_JPAKE_STEP1", __func__);
1300 mm_request_receive_expect(pmonitor->m_recvfd,
1301 MONITOR_ANS_JPAKE_STEP1, &m);
1302
1303 if ((*priv1 = BN_new()) == NULL ||
1304 (*priv2 = BN_new()) == NULL ||
1305 (*g_priv1 = BN_new()) == NULL ||
1306 (*g_priv2 = BN_new()) == NULL)
1307 fatal("%s: BN_new", __func__);
1308
1309 *id = buffer_get_string(&m, id_len);
1310 /* priv1 and priv2 are, well, private */
1311 buffer_get_bignum2(&m, *g_priv1);
1312 buffer_get_bignum2(&m, *g_priv2);
1313 *priv1_proof = buffer_get_string(&m, priv1_proof_len);
1314 *priv2_proof = buffer_get_string(&m, priv2_proof_len);
1315
1316 buffer_free(&m);
1317}
1318
1319void
1320mm_jpake_step2(struct jpake_group *grp, BIGNUM *s,
1321 BIGNUM *mypub1, BIGNUM *theirpub1, BIGNUM *theirpub2, BIGNUM *mypriv2,
1322 const u_char *theirid, u_int theirid_len,
1323 const u_char *myid, u_int myid_len,
1324 const u_char *theirpub1_proof, u_int theirpub1_proof_len,
1325 const u_char *theirpub2_proof, u_int theirpub2_proof_len,
1326 BIGNUM **newpub,
1327 u_char **newpub_exponent_proof, u_int *newpub_exponent_proof_len)
1328{
1329 Buffer m;
1330
1331 debug3("%s entering", __func__);
1332
1333 buffer_init(&m);
1334 /* monitor already has all bignums except theirpub1, theirpub2 */
1335 buffer_put_bignum2(&m, theirpub1);
1336 buffer_put_bignum2(&m, theirpub2);
1337 /* monitor already knows our id */
1338 buffer_put_string(&m, theirid, theirid_len);
1339 buffer_put_string(&m, theirpub1_proof, theirpub1_proof_len);
1340 buffer_put_string(&m, theirpub2_proof, theirpub2_proof_len);
1341
1342 mm_request_send(pmonitor->m_recvfd,
1343 MONITOR_REQ_JPAKE_STEP2, &m);
1344
1345 debug3("%s: waiting for MONITOR_ANS_JPAKE_STEP2", __func__);
1346 mm_request_receive_expect(pmonitor->m_recvfd,
1347 MONITOR_ANS_JPAKE_STEP2, &m);
1348
1349 if ((*newpub = BN_new()) == NULL)
1350 fatal("%s: BN_new", __func__);
1351
1352 buffer_get_bignum2(&m, *newpub);
1353 *newpub_exponent_proof = buffer_get_string(&m,
1354 newpub_exponent_proof_len);
1355
1356 buffer_free(&m);
1357}
1358
1359void
1360mm_jpake_key_confirm(struct jpake_group *grp, BIGNUM *s, BIGNUM *step2_val,
1361 BIGNUM *mypriv2, BIGNUM *mypub1, BIGNUM *mypub2,
1362 BIGNUM *theirpub1, BIGNUM *theirpub2,
1363 const u_char *my_id, u_int my_id_len,
1364 const u_char *their_id, u_int their_id_len,
1365 const u_char *sess_id, u_int sess_id_len,
1366 const u_char *theirpriv2_s_proof, u_int theirpriv2_s_proof_len,
1367 BIGNUM **k,
1368 u_char **confirm_hash, u_int *confirm_hash_len)
1369{
1370 Buffer m;
1371
1372 debug3("%s entering", __func__);
1373
1374 buffer_init(&m);
1375 /* monitor already has all bignums except step2_val */
1376 buffer_put_bignum2(&m, step2_val);
1377 /* monitor already knows all the ids */
1378 buffer_put_string(&m, theirpriv2_s_proof, theirpriv2_s_proof_len);
1379
1380 mm_request_send(pmonitor->m_recvfd,
1381 MONITOR_REQ_JPAKE_KEY_CONFIRM, &m);
1382
1383 debug3("%s: waiting for MONITOR_ANS_JPAKE_KEY_CONFIRM", __func__);
1384 mm_request_receive_expect(pmonitor->m_recvfd,
1385 MONITOR_ANS_JPAKE_KEY_CONFIRM, &m);
1386
1387 /* 'k' is sensitive and stays in the monitor */
1388 *confirm_hash = buffer_get_string(&m, confirm_hash_len);
1389
1390 buffer_free(&m);
1391}
1392
1393int
1394mm_jpake_check_confirm(const BIGNUM *k,
1395 const u_char *peer_id, u_int peer_id_len,
1396 const u_char *sess_id, u_int sess_id_len,
1397 const u_char *peer_confirm_hash, u_int peer_confirm_hash_len)
1398{
1399 Buffer m;
1400 int success = 0;
1401
1402 debug3("%s entering", __func__);
1403
1404 buffer_init(&m);
1405 /* k is dummy in slave, ignored */
1406 /* monitor knows all the ids */
1407 buffer_put_string(&m, peer_confirm_hash, peer_confirm_hash_len);
1408 mm_request_send(pmonitor->m_recvfd,
1409 MONITOR_REQ_JPAKE_CHECK_CONFIRM, &m);
1410
1411 debug3("%s: waiting for MONITOR_ANS_JPAKE_CHECK_CONFIRM", __func__);
1412 mm_request_receive_expect(pmonitor->m_recvfd,
1413 MONITOR_ANS_JPAKE_CHECK_CONFIRM, &m);
1414
1415 success = buffer_get_int(&m);
1416 buffer_free(&m);
1417
1418 debug3("%s: success = %d", __func__, success);
1419 return success;
1420}
1421#endif /* JPAKE */
diff --git a/monitor_wrap.h b/monitor_wrap.h
index 329189c2a..55c4b99f3 100644
--- a/monitor_wrap.h
+++ b/monitor_wrap.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.h,v 1.20 2006/08/03 03:34:42 deraadt Exp $ */ 1/* $OpenBSD: monitor_wrap.h,v 1.21 2008/11/04 08:22:13 djm Exp $ */
2 2
3/* 3/*
4 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 4 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
@@ -101,6 +101,26 @@ int mm_bsdauth_respond(void *, u_int, char **);
101int mm_skey_query(void *, char **, char **, u_int *, char ***, u_int **); 101int mm_skey_query(void *, char **, char **, u_int *, char ***, u_int **);
102int mm_skey_respond(void *, u_int, char **); 102int mm_skey_respond(void *, u_int, char **);
103 103
104/* jpake */
105struct jpake_group;
106void mm_auth2_jpake_get_pwdata(struct Authctxt *, BIGNUM **, char **, char **);
107void mm_jpake_step1(struct jpake_group *, u_char **, u_int *,
108 BIGNUM **, BIGNUM **, BIGNUM **, BIGNUM **,
109 u_char **, u_int *, u_char **, u_int *);
110void mm_jpake_step2(struct jpake_group *, BIGNUM *,
111 BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *,
112 const u_char *, u_int, const u_char *, u_int,
113 const u_char *, u_int, const u_char *, u_int,
114 BIGNUM **, u_char **, u_int *);
115void mm_jpake_key_confirm(struct jpake_group *, BIGNUM *, BIGNUM *,
116 BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *,
117 const u_char *, u_int, const u_char *, u_int,
118 const u_char *, u_int, const u_char *, u_int,
119 BIGNUM **, u_char **, u_int *);
120int mm_jpake_check_confirm(const BIGNUM *,
121 const u_char *, u_int, const u_char *, u_int, const u_char *, u_int);
122
123
104/* zlib allocation hooks */ 124/* zlib allocation hooks */
105 125
106void *mm_zalloc(struct mm_master *, u_int, u_int); 126void *mm_zalloc(struct mm_master *, u_int, u_int);
diff --git a/mpaux.c b/mpaux.c
deleted file mode 100644
index 0c486275f..000000000
--- a/mpaux.c
+++ /dev/null
@@ -1,46 +0,0 @@
1/*
2 * Author: Tatu Ylonen <ylo@cs.hut.fi>
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved
5 * This file contains various auxiliary functions related to multiple
6 * precision integers.
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose. Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15#include "includes.h"
16RCSID("$OpenBSD: mpaux.c,v 1.16 2001/02/08 19:30:52 itojun Exp $");
17
18#include <openssl/bn.h>
19#include "getput.h"
20#include "xmalloc.h"
21
22#include <openssl/md5.h>
23
24#include "mpaux.h"
25
26void
27compute_session_id(u_char session_id[16],
28 u_char cookie[8],
29 BIGNUM* host_key_n,
30 BIGNUM* session_key_n)
31{
32 u_int host_key_bytes = BN_num_bytes(host_key_n);
33 u_int session_key_bytes = BN_num_bytes(session_key_n);
34 u_int bytes = host_key_bytes + session_key_bytes;
35 u_char *buf = xmalloc(bytes);
36 MD5_CTX md;
37
38 BN_bn2bin(host_key_n, buf);
39 BN_bn2bin(session_key_n, buf + host_key_bytes);
40 MD5_Init(&md);
41 MD5_Update(&md, buf, bytes);
42 MD5_Update(&md, cookie, 8);
43 MD5_Final(session_id, &md);
44 memset(buf, 0, bytes);
45 xfree(buf);
46}
diff --git a/mpaux.h b/mpaux.h
deleted file mode 100644
index 2a312f5cb..000000000
--- a/mpaux.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/* $OpenBSD: mpaux.h,v 1.12 2002/03/04 17:27:39 stevesk Exp $ */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
7 * This file contains various auxiliary functions related to multiple
8 * precision integers.
9 *
10 * As far as I am concerned, the code I have written for this software
11 * can be used freely for any purpose. Any derived versions of this
12 * software must be clearly marked as such, and if the derived work is
13 * incompatible with the protocol description in the RFC file, it must be
14 * called by a name other than "ssh" or "Secure Shell".
15 */
16
17#ifndef MPAUX_H
18#define MPAUX_H
19
20void compute_session_id(u_char[16], u_char[8], BIGNUM *, BIGNUM *);
21
22#endif /* MPAUX_H */
diff --git a/myproposal.h b/myproposal.h
index 87a9e5820..7bca3bcae 100644
--- a/myproposal.h
+++ b/myproposal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: myproposal.h,v 1.22 2007/06/07 19:37:34 pvalchev Exp $ */ 1/* $OpenBSD: myproposal.h,v 1.23 2009/01/23 07:58:11 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
@@ -41,11 +41,12 @@
41#endif 41#endif
42 42
43#define KEX_DEFAULT_PK_ALG "ssh-rsa,ssh-dss" 43#define KEX_DEFAULT_PK_ALG "ssh-rsa,ssh-dss"
44
44#define KEX_DEFAULT_ENCRYPT \ 45#define KEX_DEFAULT_ENCRYPT \
46 "aes128-ctr,aes192-ctr,aes256-ctr," \
47 "arcfour256,arcfour128," \
45 "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \ 48 "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \
46 "arcfour128,arcfour256,arcfour," \ 49 "aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se"
47 "aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se," \
48 "aes128-ctr,aes192-ctr,aes256-ctr"
49#define KEX_DEFAULT_MAC \ 50#define KEX_DEFAULT_MAC \
50 "hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160," \ 51 "hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160," \
51 "hmac-ripemd160@openssh.com," \ 52 "hmac-ripemd160@openssh.com," \
diff --git a/nchan.c b/nchan.c
index e0ebf43f1..160445e5a 100644
--- a/nchan.c
+++ b/nchan.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: nchan.c,v 1.60 2008/06/30 12:16:02 djm Exp $ */ 1/* $OpenBSD: nchan.c,v 1.62 2008/11/07 18:50:18 stevesk Exp $ */
2/* 2/*
3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. 3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
4 * 4 *
@@ -387,6 +387,8 @@ chan_send_eow2(Channel *c)
387 c->self); 387 c->self);
388 return; 388 return;
389 } 389 }
390 if (!(datafellows & SSH_NEW_OPENSSH))
391 return;
390 packet_start(SSH2_MSG_CHANNEL_REQUEST); 392 packet_start(SSH2_MSG_CHANNEL_REQUEST);
391 packet_put_int(c->remote_id); 393 packet_put_int(c->remote_id);
392 packet_put_cstring("eow@openssh.com"); 394 packet_put_cstring("eow@openssh.com");
@@ -484,12 +486,12 @@ chan_shutdown_write(Channel *c)
484 if (c->sock != -1) { 486 if (c->sock != -1) {
485 if (shutdown(c->sock, SHUT_WR) < 0) 487 if (shutdown(c->sock, SHUT_WR) < 0)
486 debug2("channel %d: chan_shutdown_write: " 488 debug2("channel %d: chan_shutdown_write: "
487 "shutdown() failed for fd%d: %.100s", 489 "shutdown() failed for fd %d: %.100s",
488 c->self, c->sock, strerror(errno)); 490 c->self, c->sock, strerror(errno));
489 } else { 491 } else {
490 if (channel_close_fd(&c->wfd) < 0) 492 if (channel_close_fd(&c->wfd) < 0)
491 logit("channel %d: chan_shutdown_write: " 493 logit("channel %d: chan_shutdown_write: "
492 "close() failed for fd%d: %.100s", 494 "close() failed for fd %d: %.100s",
493 c->self, c->wfd, strerror(errno)); 495 c->self, c->wfd, strerror(errno));
494 } 496 }
495} 497}
@@ -508,13 +510,13 @@ chan_shutdown_read(Channel *c)
508 if (shutdown(c->sock, SHUT_RD) < 0 510 if (shutdown(c->sock, SHUT_RD) < 0
509 && errno != ENOTCONN) 511 && errno != ENOTCONN)
510 error("channel %d: chan_shutdown_read: " 512 error("channel %d: chan_shutdown_read: "
511 "shutdown() failed for fd%d [i%d o%d]: %.100s", 513 "shutdown() failed for fd %d [i%d o%d]: %.100s",
512 c->self, c->sock, c->istate, c->ostate, 514 c->self, c->sock, c->istate, c->ostate,
513 strerror(errno)); 515 strerror(errno));
514 } else { 516 } else {
515 if (channel_close_fd(&c->rfd) < 0) 517 if (channel_close_fd(&c->rfd) < 0)
516 logit("channel %d: chan_shutdown_read: " 518 logit("channel %d: chan_shutdown_read: "
517 "close() failed for fd%d: %.100s", 519 "close() failed for fd %d: %.100s",
518 c->self, c->rfd, strerror(errno)); 520 c->self, c->rfd, strerror(errno));
519 } 521 }
520} 522}
diff --git a/openbsd-compat/.cvsignore b/openbsd-compat/.cvsignore
deleted file mode 100644
index f3c7a7c5d..000000000
--- a/openbsd-compat/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
1Makefile
diff --git a/openbsd-compat/basename.h b/openbsd-compat/basename.h
deleted file mode 100644
index a8bd6c17c..000000000
--- a/openbsd-compat/basename.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: basename.h,v 1.3 2003/02/25 03:32:16 djm Exp $ */
2
3#ifndef _BASENAME_H
4#define _BASENAME_H
5#include "config.h"
6
7#if !defined(HAVE_BASENAME)
8
9char *basename(const char *path);
10
11#endif /* !defined(HAVE_BASENAME) */
12#endif /* _BASENAME_H */
diff --git a/openbsd-compat/bindresvport.h b/openbsd-compat/bindresvport.h
deleted file mode 100644
index b42f46983..000000000
--- a/openbsd-compat/bindresvport.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: bindresvport.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_BINDRESVPORT_H
4#define _BSD_BINDRESVPORT_H
5
6#include "config.h"
7
8#ifndef HAVE_BINDRESVPORT_SA
9int bindresvport_sa(int sd, struct sockaddr *sa);
10#endif /* !HAVE_BINDRESVPORT_SA */
11
12#endif /* _BSD_BINDRESVPORT_H */
diff --git a/openbsd-compat/bsd-arc4random.h b/openbsd-compat/bsd-arc4random.h
deleted file mode 100644
index 7af757b2d..000000000
--- a/openbsd-compat/bsd-arc4random.h
+++ /dev/null
@@ -1,37 +0,0 @@
1/*
2 * Copyright (c) 1999-2000 Damien Miller. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25/* $Id: bsd-arc4random.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
26
27#ifndef _BSD_ARC4RANDOM_H
28#define _BSD_ARC4RANDOM_H
29
30#include "config.h"
31
32#ifndef HAVE_ARC4RANDOM
33unsigned int arc4random(void);
34void arc4random_stir(void);
35#endif /* !HAVE_ARC4RANDOM */
36
37#endif /* _BSD_ARC4RANDOM_H */
diff --git a/openbsd-compat/bsd-getpeereid.h b/openbsd-compat/bsd-getpeereid.h
deleted file mode 100644
index 2e9f077f9..000000000
--- a/openbsd-compat/bsd-getpeereid.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/* $Id: bsd-getpeereid.h,v 1.1 2002/09/12 00:33:02 djm Exp $ */
2
3#ifndef _BSD_GETPEEREID_H
4#define _BSD_GETPEEREID_H
5
6#include "config.h"
7
8#include <sys/types.h> /* For uid_t, gid_t */
9
10#ifndef HAVE_GETPEEREID
11int getpeereid(int , uid_t *, gid_t *);
12#endif /* HAVE_GETPEEREID */
13
14#endif /* _BSD_GETPEEREID_H */
diff --git a/openbsd-compat/bsd-poll.c b/openbsd-compat/bsd-poll.c
index 284db3a1f..f899d7a24 100644
--- a/openbsd-compat/bsd-poll.c
+++ b/openbsd-compat/bsd-poll.c
@@ -1,4 +1,4 @@
1/* $Id: bsd-poll.c,v 1.3 2008/04/04 05:16:36 djm Exp $ */ 1/* $Id: bsd-poll.c,v 1.4 2008/08/29 21:32:38 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au). 4 * Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au).
@@ -46,11 +46,12 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout)
46 struct timeval tv, *tvp = NULL; 46 struct timeval tv, *tvp = NULL;
47 47
48 for (i = 0; i < nfds; i++) { 48 for (i = 0; i < nfds; i++) {
49 fd = fds[i].fd;
49 if (fd >= FD_SETSIZE) { 50 if (fd >= FD_SETSIZE) {
50 errno = EINVAL; 51 errno = EINVAL;
51 return -1; 52 return -1;
52 } 53 }
53 maxfd = MAX(maxfd, fds[i].fd); 54 maxfd = MAX(maxfd, fd);
54 } 55 }
55 56
56 nmemb = howmany(maxfd + 1 , NFDBITS); 57 nmemb = howmany(maxfd + 1 , NFDBITS);
diff --git a/openbsd-compat/bsd-snprintf.h b/openbsd-compat/bsd-snprintf.h
deleted file mode 100644
index 002b764e3..000000000
--- a/openbsd-compat/bsd-snprintf.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/* $Id: bsd-snprintf.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_SNPRINTF_H
4#define _BSD_SNPRINTF_H
5
6#include "config.h"
7
8#include <sys/types.h> /* For size_t */
9
10#ifndef HAVE_SNPRINTF
11int snprintf(char *str, size_t count, const char *fmt, ...);
12#endif /* !HAVE_SNPRINTF */
13
14#ifndef HAVE_VSNPRINTF
15int vsnprintf(char *str, size_t count, const char *fmt, va_list args);
16#endif /* !HAVE_SNPRINTF */
17
18
19#endif /* _BSD_SNPRINTF_H */
diff --git a/openbsd-compat/daemon.h b/openbsd-compat/daemon.h
deleted file mode 100644
index 95a077359..000000000
--- a/openbsd-compat/daemon.h
+++ /dev/null
@@ -1,11 +0,0 @@
1/* $Id: daemon.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_DAEMON_H
4#define _BSD_DAEMON_H
5
6#include "config.h"
7#ifndef HAVE_DAEMON
8int daemon(int nochdir, int noclose);
9#endif /* !HAVE_DAEMON */
10
11#endif /* _BSD_DAEMON_H */
diff --git a/openbsd-compat/dirname.h b/openbsd-compat/dirname.h
deleted file mode 100644
index 1d61dd06c..000000000
--- a/openbsd-compat/dirname.h
+++ /dev/null
@@ -1,5 +0,0 @@
1#ifndef HAVE_DIRNAME
2
3char *dirname(const char *path);
4
5#endif
diff --git a/openbsd-compat/fake-gai-errnos.h b/openbsd-compat/fake-gai-errnos.h
deleted file mode 100644
index 5edc31b59..000000000
--- a/openbsd-compat/fake-gai-errnos.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/*
2 * fake library for ssh
3 *
4 * This file is included in getaddrinfo.c and getnameinfo.c.
5 * See getaddrinfo.c and getnameinfo.c.
6 */
7
8/* $Id: fake-gai-errnos.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
9
10/* for old netdb.h */
11#ifndef EAI_NODATA
12#define EAI_NODATA 1
13#define EAI_MEMORY 2
14#endif
diff --git a/openbsd-compat/fake-getaddrinfo.c b/openbsd-compat/fake-getaddrinfo.c
deleted file mode 100644
index e63bda970..000000000
--- a/openbsd-compat/fake-getaddrinfo.c
+++ /dev/null
@@ -1,135 +0,0 @@
1/*
2 * fake library for ssh
3 *
4 * This file includes getaddrinfo(), freeaddrinfo() and gai_strerror().
5 * These funtions are defined in rfc2133.
6 *
7 * But these functions are not implemented correctly. The minimum subset
8 * is implemented for ssh use only. For exapmle, this routine assumes
9 * that ai_family is AF_INET. Don't use it for another purpose.
10 */
11
12#include "includes.h"
13#include "ssh.h"
14
15RCSID("$Id: fake-getaddrinfo.c,v 1.5 2003/03/24 02:35:59 djm Exp $");
16
17#ifndef HAVE_GAI_STRERROR
18char *gai_strerror(int ecode)
19{
20 switch (ecode) {
21 case EAI_NODATA:
22 return "no address associated with hostname.";
23 case EAI_MEMORY:
24 return "memory allocation failure.";
25 default:
26 return "unknown error.";
27 }
28}
29#endif /* !HAVE_GAI_STRERROR */
30
31#ifndef HAVE_FREEADDRINFO
32void freeaddrinfo(struct addrinfo *ai)
33{
34 struct addrinfo *next;
35
36 do {
37 next = ai->ai_next;
38 free(ai);
39 } while (NULL != (ai = next));
40}
41#endif /* !HAVE_FREEADDRINFO */
42
43#ifndef HAVE_GETADDRINFO
44static struct addrinfo *malloc_ai(int port, u_long addr)
45{
46 struct addrinfo *ai;
47
48 ai = malloc(sizeof(struct addrinfo) + sizeof(struct sockaddr_in));
49 if (ai == NULL)
50 return(NULL);
51
52 memset(ai, 0, sizeof(struct addrinfo) + sizeof(struct sockaddr_in));
53
54 ai->ai_addr = (struct sockaddr *)(ai + 1);
55 /* XXX -- ssh doesn't use sa_len */
56 ai->ai_addrlen = sizeof(struct sockaddr_in);
57 ai->ai_addr->sa_family = ai->ai_family = AF_INET;
58
59 ((struct sockaddr_in *)(ai)->ai_addr)->sin_port = port;
60 ((struct sockaddr_in *)(ai)->ai_addr)->sin_addr.s_addr = addr;
61
62 return(ai);
63}
64
65int getaddrinfo(const char *hostname, const char *servname,
66 const struct addrinfo *hints, struct addrinfo **res)
67{
68 struct addrinfo *cur, *prev = NULL;
69 struct hostent *hp;
70 struct servent *sp;
71 struct in_addr in;
72 int i;
73 long int port;
74 u_long addr;
75
76 port = 0;
77 if (servname != NULL) {
78 char *cp;
79
80 port = strtol(servname, &cp, 10);
81 if (port > 0 && port <= 65535 && *cp == '\0')
82 port = htons(port);
83 else if ((sp = getservbyname(servname, NULL)) != NULL)
84 port = sp->s_port;
85 else
86 port = 0;
87 }
88
89 if (hints && hints->ai_flags & AI_PASSIVE) {
90 addr = htonl(0x00000000);
91 if (hostname && inet_aton(hostname, &in) != 0)
92 addr = in.s_addr;
93 if (NULL != (*res = malloc_ai(port, addr)))
94 return 0;
95 else
96 return EAI_MEMORY;
97 }
98
99 if (!hostname) {
100 if (NULL != (*res = malloc_ai(port, htonl(0x7f000001))))
101 return 0;
102 else
103 return EAI_MEMORY;
104 }
105
106 if (inet_aton(hostname, &in)) {
107 if (NULL != (*res = malloc_ai(port, in.s_addr)))
108 return 0;
109 else
110 return EAI_MEMORY;
111 }
112
113 hp = gethostbyname(hostname);
114 if (hp && hp->h_name && hp->h_name[0] && hp->h_addr_list[0]) {
115 for (i = 0; hp->h_addr_list[i]; i++) {
116 cur = malloc_ai(port, ((struct in_addr *)hp->h_addr_list[i])->s_addr);
117 if (cur == NULL) {
118 if (*res)
119 freeaddrinfo(*res);
120 return EAI_MEMORY;
121 }
122
123 if (prev)
124 prev->ai_next = cur;
125 else
126 *res = cur;
127
128 prev = cur;
129 }
130 return 0;
131 }
132
133 return EAI_NODATA;
134}
135#endif /* !HAVE_GETADDRINFO */
diff --git a/openbsd-compat/fake-getaddrinfo.h b/openbsd-compat/fake-getaddrinfo.h
deleted file mode 100644
index 6943378e9..000000000
--- a/openbsd-compat/fake-getaddrinfo.h
+++ /dev/null
@@ -1,47 +0,0 @@
1/* $Id: fake-getaddrinfo.h,v 1.4 2003/02/24 01:35:09 djm Exp $ */
2
3#ifndef _FAKE_GETADDRINFO_H
4#define _FAKE_GETADDRINFO_H
5
6#include "config.h"
7
8#include "fake-gai-errnos.h"
9
10#ifndef AI_PASSIVE
11# define AI_PASSIVE 1
12# define AI_CANONNAME 2
13#endif
14
15#ifndef NI_NUMERICHOST
16# define NI_NUMERICHOST 2
17# define NI_NAMEREQD 4
18# define NI_NUMERICSERV 8
19#endif
20
21#ifndef HAVE_STRUCT_ADDRINFO
22struct addrinfo {
23 int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
24 int ai_family; /* PF_xxx */
25 int ai_socktype; /* SOCK_xxx */
26 int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
27 size_t ai_addrlen; /* length of ai_addr */
28 char *ai_canonname; /* canonical name for hostname */
29 struct sockaddr *ai_addr; /* binary address */
30 struct addrinfo *ai_next; /* next structure in linked list */
31};
32#endif /* !HAVE_STRUCT_ADDRINFO */
33
34#ifndef HAVE_GETADDRINFO
35int getaddrinfo(const char *hostname, const char *servname,
36 const struct addrinfo *hints, struct addrinfo **res);
37#endif /* !HAVE_GETADDRINFO */
38
39#ifndef HAVE_GAI_STRERROR
40char *gai_strerror(int ecode);
41#endif /* !HAVE_GAI_STRERROR */
42
43#ifndef HAVE_FREEADDRINFO
44void freeaddrinfo(struct addrinfo *ai);
45#endif /* !HAVE_FREEADDRINFO */
46
47#endif /* _FAKE_GETADDRINFO_H */
diff --git a/openbsd-compat/fake-getnameinfo.c b/openbsd-compat/fake-getnameinfo.c
deleted file mode 100644
index e255ed333..000000000
--- a/openbsd-compat/fake-getnameinfo.c
+++ /dev/null
@@ -1,55 +0,0 @@
1/*
2 * fake library for ssh
3 *
4 * This file includes getnameinfo().
5 * These funtions are defined in rfc2133.
6 *
7 * But these functions are not implemented correctly. The minimum subset
8 * is implemented for ssh use only. For exapmle, this routine assumes
9 * that ai_family is AF_INET. Don't use it for another purpose.
10 */
11
12#include "includes.h"
13#include "ssh.h"
14
15RCSID("$Id: fake-getnameinfo.c,v 1.2 2001/02/09 01:55:36 djm Exp $");
16
17#ifndef HAVE_GETNAMEINFO
18int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
19 size_t hostlen, char *serv, size_t servlen, int flags)
20{
21 struct sockaddr_in *sin = (struct sockaddr_in *)sa;
22 struct hostent *hp;
23 char tmpserv[16];
24
25 if (serv) {
26 snprintf(tmpserv, sizeof(tmpserv), "%d", ntohs(sin->sin_port));
27 if (strlen(tmpserv) >= servlen)
28 return EAI_MEMORY;
29 else
30 strcpy(serv, tmpserv);
31 }
32
33 if (host) {
34 if (flags & NI_NUMERICHOST) {
35 if (strlen(inet_ntoa(sin->sin_addr)) >= hostlen)
36 return EAI_MEMORY;
37
38 strcpy(host, inet_ntoa(sin->sin_addr));
39 return 0;
40 } else {
41 hp = gethostbyaddr((char *)&sin->sin_addr,
42 sizeof(struct in_addr), AF_INET);
43 if (hp == NULL)
44 return EAI_NODATA;
45
46 if (strlen(hp->h_name) >= hostlen)
47 return EAI_MEMORY;
48
49 strcpy(host, hp->h_name);
50 return 0;
51 }
52 }
53 return 0;
54}
55#endif /* !HAVE_GETNAMEINFO */
diff --git a/openbsd-compat/fake-getnameinfo.h b/openbsd-compat/fake-getnameinfo.h
deleted file mode 100644
index c9b7908aa..000000000
--- a/openbsd-compat/fake-getnameinfo.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* $Id: fake-getnameinfo.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _FAKE_GETNAMEINFO_H
4#define _FAKE_GETNAMEINFO_H
5
6#include "config.h"
7
8#ifndef HAVE_GETNAMEINFO
9int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
10 size_t hostlen, char *serv, size_t servlen, int flags);
11#endif /* !HAVE_GETNAMEINFO */
12
13#ifndef NI_MAXSERV
14# define NI_MAXSERV 32
15#endif /* !NI_MAXSERV */
16#ifndef NI_MAXHOST
17# define NI_MAXHOST 1025
18#endif /* !NI_MAXHOST */
19
20#endif /* _FAKE_GETNAMEINFO_H */
diff --git a/openbsd-compat/fake-queue.h b/openbsd-compat/fake-queue.h
deleted file mode 100644
index 176fe3174..000000000
--- a/openbsd-compat/fake-queue.h
+++ /dev/null
@@ -1,584 +0,0 @@
1/* $OpenBSD: queue.h,v 1.22 2001/06/23 04:39:35 angelos Exp $ */
2/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */
3
4/*
5 * Copyright (c) 1991, 1993
6 * The Regents of the University of California. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by the University of
19 * California, Berkeley and its contributors.
20 * 4. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)queue.h 8.5 (Berkeley) 8/20/94
37 */
38
39#ifndef _FAKE_QUEUE_H_
40#define _FAKE_QUEUE_H_
41
42/*
43 * Ignore all <sys/queue.h> since older platforms have broken/incomplete
44 * <sys/queue.h> that are too hard to work around.
45 */
46#undef SLIST_HEAD
47#undef SLIST_HEAD_INITIALIZER
48#undef SLIST_ENTRY
49#undef SLIST_FIRST
50#undef SLIST_END
51#undef SLIST_EMPTY
52#undef SLIST_NEXT
53#undef SLIST_FOREACH
54#undef SLIST_INIT
55#undef SLIST_INSERT_AFTER
56#undef SLIST_INSERT_HEAD
57#undef SLIST_REMOVE_HEAD
58#undef SLIST_REMOVE
59#undef LIST_HEAD
60#undef LIST_HEAD_INITIALIZER
61#undef LIST_ENTRY
62#undef LIST_FIRST
63#undef LIST_END
64#undef LIST_EMPTY
65#undef LIST_NEXT
66#undef LIST_FOREACH
67#undef LIST_INIT
68#undef LIST_INSERT_AFTER
69#undef LIST_INSERT_BEFORE
70#undef LIST_INSERT_HEAD
71#undef LIST_REMOVE
72#undef LIST_REPLACE
73#undef SIMPLEQ_HEAD
74#undef SIMPLEQ_HEAD_INITIALIZER
75#undef SIMPLEQ_ENTRY
76#undef SIMPLEQ_FIRST
77#undef SIMPLEQ_END
78#undef SIMPLEQ_EMPTY
79#undef SIMPLEQ_NEXT
80#undef SIMPLEQ_FOREACH
81#undef SIMPLEQ_INIT
82#undef SIMPLEQ_INSERT_HEAD
83#undef SIMPLEQ_INSERT_TAIL
84#undef SIMPLEQ_INSERT_AFTER
85#undef SIMPLEQ_REMOVE_HEAD
86#undef TAILQ_HEAD
87#undef TAILQ_HEAD_INITIALIZER
88#undef TAILQ_ENTRY
89#undef TAILQ_FIRST
90#undef TAILQ_END
91#undef TAILQ_NEXT
92#undef TAILQ_LAST
93#undef TAILQ_PREV
94#undef TAILQ_EMPTY
95#undef TAILQ_FOREACH
96#undef TAILQ_FOREACH_REVERSE
97#undef TAILQ_INIT
98#undef TAILQ_INSERT_HEAD
99#undef TAILQ_INSERT_TAIL
100#undef TAILQ_INSERT_AFTER
101#undef TAILQ_INSERT_BEFORE
102#undef TAILQ_REMOVE
103#undef TAILQ_REPLACE
104#undef CIRCLEQ_HEAD
105#undef CIRCLEQ_HEAD_INITIALIZER
106#undef CIRCLEQ_ENTRY
107#undef CIRCLEQ_FIRST
108#undef CIRCLEQ_LAST
109#undef CIRCLEQ_END
110#undef CIRCLEQ_NEXT
111#undef CIRCLEQ_PREV
112#undef CIRCLEQ_EMPTY
113#undef CIRCLEQ_FOREACH
114#undef CIRCLEQ_FOREACH_REVERSE
115#undef CIRCLEQ_INIT
116#undef CIRCLEQ_INSERT_AFTER
117#undef CIRCLEQ_INSERT_BEFORE
118#undef CIRCLEQ_INSERT_HEAD
119#undef CIRCLEQ_INSERT_TAIL
120#undef CIRCLEQ_REMOVE
121#undef CIRCLEQ_REPLACE
122
123/*
124 * This file defines five types of data structures: singly-linked lists,
125 * lists, simple queues, tail queues, and circular queues.
126 *
127 *
128 * A singly-linked list is headed by a single forward pointer. The elements
129 * are singly linked for minimum space and pointer manipulation overhead at
130 * the expense of O(n) removal for arbitrary elements. New elements can be
131 * added to the list after an existing element or at the head of the list.
132 * Elements being removed from the head of the list should use the explicit
133 * macro for this purpose for optimum efficiency. A singly-linked list may
134 * only be traversed in the forward direction. Singly-linked lists are ideal
135 * for applications with large datasets and few or no removals or for
136 * implementing a LIFO queue.
137 *
138 * A list is headed by a single forward pointer (or an array of forward
139 * pointers for a hash table header). The elements are doubly linked
140 * so that an arbitrary element can be removed without a need to
141 * traverse the list. New elements can be added to the list before
142 * or after an existing element or at the head of the list. A list
143 * may only be traversed in the forward direction.
144 *
145 * A simple queue is headed by a pair of pointers, one the head of the
146 * list and the other to the tail of the list. The elements are singly
147 * linked to save space, so elements can only be removed from the
148 * head of the list. New elements can be added to the list before or after
149 * an existing element, at the head of the list, or at the end of the
150 * list. A simple queue may only be traversed in the forward direction.
151 *
152 * A tail queue is headed by a pair of pointers, one to the head of the
153 * list and the other to the tail of the list. The elements are doubly
154 * linked so that an arbitrary element can be removed without a need to
155 * traverse the list. New elements can be added to the list before or
156 * after an existing element, at the head of the list, or at the end of
157 * the list. A tail queue may be traversed in either direction.
158 *
159 * A circle queue is headed by a pair of pointers, one to the head of the
160 * list and the other to the tail of the list. The elements are doubly
161 * linked so that an arbitrary element can be removed without a need to
162 * traverse the list. New elements can be added to the list before or after
163 * an existing element, at the head of the list, or at the end of the list.
164 * A circle queue may be traversed in either direction, but has a more
165 * complex end of list detection.
166 *
167 * For details on the use of these macros, see the queue(3) manual page.
168 */
169
170/*
171 * Singly-linked List definitions.
172 */
173#define SLIST_HEAD(name, type) \
174struct name { \
175 struct type *slh_first; /* first element */ \
176}
177
178#define SLIST_HEAD_INITIALIZER(head) \
179 { NULL }
180
181#define SLIST_ENTRY(type) \
182struct { \
183 struct type *sle_next; /* next element */ \
184}
185
186/*
187 * Singly-linked List access methods.
188 */
189#define SLIST_FIRST(head) ((head)->slh_first)
190#define SLIST_END(head) NULL
191#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head))
192#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
193
194#define SLIST_FOREACH(var, head, field) \
195 for((var) = SLIST_FIRST(head); \
196 (var) != SLIST_END(head); \
197 (var) = SLIST_NEXT(var, field))
198
199/*
200 * Singly-linked List functions.
201 */
202#define SLIST_INIT(head) { \
203 SLIST_FIRST(head) = SLIST_END(head); \
204}
205
206#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
207 (elm)->field.sle_next = (slistelm)->field.sle_next; \
208 (slistelm)->field.sle_next = (elm); \
209} while (0)
210
211#define SLIST_INSERT_HEAD(head, elm, field) do { \
212 (elm)->field.sle_next = (head)->slh_first; \
213 (head)->slh_first = (elm); \
214} while (0)
215
216#define SLIST_REMOVE_HEAD(head, field) do { \
217 (head)->slh_first = (head)->slh_first->field.sle_next; \
218} while (0)
219
220#define SLIST_REMOVE(head, elm, type, field) do { \
221 if ((head)->slh_first == (elm)) { \
222 SLIST_REMOVE_HEAD((head), field); \
223 } \
224 else { \
225 struct type *curelm = (head)->slh_first; \
226 while( curelm->field.sle_next != (elm) ) \
227 curelm = curelm->field.sle_next; \
228 curelm->field.sle_next = \
229 curelm->field.sle_next->field.sle_next; \
230 } \
231} while (0)
232
233/*
234 * List definitions.
235 */
236#define LIST_HEAD(name, type) \
237struct name { \
238 struct type *lh_first; /* first element */ \
239}
240
241#define LIST_HEAD_INITIALIZER(head) \
242 { NULL }
243
244#define LIST_ENTRY(type) \
245struct { \
246 struct type *le_next; /* next element */ \
247 struct type **le_prev; /* address of previous next element */ \
248}
249
250/*
251 * List access methods
252 */
253#define LIST_FIRST(head) ((head)->lh_first)
254#define LIST_END(head) NULL
255#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head))
256#define LIST_NEXT(elm, field) ((elm)->field.le_next)
257
258#define LIST_FOREACH(var, head, field) \
259 for((var) = LIST_FIRST(head); \
260 (var)!= LIST_END(head); \
261 (var) = LIST_NEXT(var, field))
262
263/*
264 * List functions.
265 */
266#define LIST_INIT(head) do { \
267 LIST_FIRST(head) = LIST_END(head); \
268} while (0)
269
270#define LIST_INSERT_AFTER(listelm, elm, field) do { \
271 if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
272 (listelm)->field.le_next->field.le_prev = \
273 &(elm)->field.le_next; \
274 (listelm)->field.le_next = (elm); \
275 (elm)->field.le_prev = &(listelm)->field.le_next; \
276} while (0)
277
278#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
279 (elm)->field.le_prev = (listelm)->field.le_prev; \
280 (elm)->field.le_next = (listelm); \
281 *(listelm)->field.le_prev = (elm); \
282 (listelm)->field.le_prev = &(elm)->field.le_next; \
283} while (0)
284
285#define LIST_INSERT_HEAD(head, elm, field) do { \
286 if (((elm)->field.le_next = (head)->lh_first) != NULL) \
287 (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
288 (head)->lh_first = (elm); \
289 (elm)->field.le_prev = &(head)->lh_first; \
290} while (0)
291
292#define LIST_REMOVE(elm, field) do { \
293 if ((elm)->field.le_next != NULL) \
294 (elm)->field.le_next->field.le_prev = \
295 (elm)->field.le_prev; \
296 *(elm)->field.le_prev = (elm)->field.le_next; \
297} while (0)
298
299#define LIST_REPLACE(elm, elm2, field) do { \
300 if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \
301 (elm2)->field.le_next->field.le_prev = \
302 &(elm2)->field.le_next; \
303 (elm2)->field.le_prev = (elm)->field.le_prev; \
304 *(elm2)->field.le_prev = (elm2); \
305} while (0)
306
307/*
308 * Simple queue definitions.
309 */
310#define SIMPLEQ_HEAD(name, type) \
311struct name { \
312 struct type *sqh_first; /* first element */ \
313 struct type **sqh_last; /* addr of last next element */ \
314}
315
316#define SIMPLEQ_HEAD_INITIALIZER(head) \
317 { NULL, &(head).sqh_first }
318
319#define SIMPLEQ_ENTRY(type) \
320struct { \
321 struct type *sqe_next; /* next element */ \
322}
323
324/*
325 * Simple queue access methods.
326 */
327#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
328#define SIMPLEQ_END(head) NULL
329#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))
330#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
331
332#define SIMPLEQ_FOREACH(var, head, field) \
333 for((var) = SIMPLEQ_FIRST(head); \
334 (var) != SIMPLEQ_END(head); \
335 (var) = SIMPLEQ_NEXT(var, field))
336
337/*
338 * Simple queue functions.
339 */
340#define SIMPLEQ_INIT(head) do { \
341 (head)->sqh_first = NULL; \
342 (head)->sqh_last = &(head)->sqh_first; \
343} while (0)
344
345#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
346 if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
347 (head)->sqh_last = &(elm)->field.sqe_next; \
348 (head)->sqh_first = (elm); \
349} while (0)
350
351#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
352 (elm)->field.sqe_next = NULL; \
353 *(head)->sqh_last = (elm); \
354 (head)->sqh_last = &(elm)->field.sqe_next; \
355} while (0)
356
357#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
358 if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
359 (head)->sqh_last = &(elm)->field.sqe_next; \
360 (listelm)->field.sqe_next = (elm); \
361} while (0)
362
363#define SIMPLEQ_REMOVE_HEAD(head, elm, field) do { \
364 if (((head)->sqh_first = (elm)->field.sqe_next) == NULL) \
365 (head)->sqh_last = &(head)->sqh_first; \
366} while (0)
367
368/*
369 * Tail queue definitions.
370 */
371#define TAILQ_HEAD(name, type) \
372struct name { \
373 struct type *tqh_first; /* first element */ \
374 struct type **tqh_last; /* addr of last next element */ \
375}
376
377#define TAILQ_HEAD_INITIALIZER(head) \
378 { NULL, &(head).tqh_first }
379
380#define TAILQ_ENTRY(type) \
381struct { \
382 struct type *tqe_next; /* next element */ \
383 struct type **tqe_prev; /* address of previous next element */ \
384}
385
386/*
387 * tail queue access methods
388 */
389#define TAILQ_FIRST(head) ((head)->tqh_first)
390#define TAILQ_END(head) NULL
391#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
392#define TAILQ_LAST(head, headname) \
393 (*(((struct headname *)((head)->tqh_last))->tqh_last))
394/* XXX */
395#define TAILQ_PREV(elm, headname, field) \
396 (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
397#define TAILQ_EMPTY(head) \
398 (TAILQ_FIRST(head) == TAILQ_END(head))
399
400#define TAILQ_FOREACH(var, head, field) \
401 for((var) = TAILQ_FIRST(head); \
402 (var) != TAILQ_END(head); \
403 (var) = TAILQ_NEXT(var, field))
404
405#define TAILQ_FOREACH_REVERSE(var, head, field, headname) \
406 for((var) = TAILQ_LAST(head, headname); \
407 (var) != TAILQ_END(head); \
408 (var) = TAILQ_PREV(var, headname, field))
409
410/*
411 * Tail queue functions.
412 */
413#define TAILQ_INIT(head) do { \
414 (head)->tqh_first = NULL; \
415 (head)->tqh_last = &(head)->tqh_first; \
416} while (0)
417
418#define TAILQ_INSERT_HEAD(head, elm, field) do { \
419 if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
420 (head)->tqh_first->field.tqe_prev = \
421 &(elm)->field.tqe_next; \
422 else \
423 (head)->tqh_last = &(elm)->field.tqe_next; \
424 (head)->tqh_first = (elm); \
425 (elm)->field.tqe_prev = &(head)->tqh_first; \
426} while (0)
427
428#define TAILQ_INSERT_TAIL(head, elm, field) do { \
429 (elm)->field.tqe_next = NULL; \
430 (elm)->field.tqe_prev = (head)->tqh_last; \
431 *(head)->tqh_last = (elm); \
432 (head)->tqh_last = &(elm)->field.tqe_next; \
433} while (0)
434
435#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
436 if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
437 (elm)->field.tqe_next->field.tqe_prev = \
438 &(elm)->field.tqe_next; \
439 else \
440 (head)->tqh_last = &(elm)->field.tqe_next; \
441 (listelm)->field.tqe_next = (elm); \
442 (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
443} while (0)
444
445#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
446 (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
447 (elm)->field.tqe_next = (listelm); \
448 *(listelm)->field.tqe_prev = (elm); \
449 (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
450} while (0)
451
452#define TAILQ_REMOVE(head, elm, field) do { \
453 if (((elm)->field.tqe_next) != NULL) \
454 (elm)->field.tqe_next->field.tqe_prev = \
455 (elm)->field.tqe_prev; \
456 else \
457 (head)->tqh_last = (elm)->field.tqe_prev; \
458 *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
459} while (0)
460
461#define TAILQ_REPLACE(head, elm, elm2, field) do { \
462 if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \
463 (elm2)->field.tqe_next->field.tqe_prev = \
464 &(elm2)->field.tqe_next; \
465 else \
466 (head)->tqh_last = &(elm2)->field.tqe_next; \
467 (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \
468 *(elm2)->field.tqe_prev = (elm2); \
469} while (0)
470
471/*
472 * Circular queue definitions.
473 */
474#define CIRCLEQ_HEAD(name, type) \
475struct name { \
476 struct type *cqh_first; /* first element */ \
477 struct type *cqh_last; /* last element */ \
478}
479
480#define CIRCLEQ_HEAD_INITIALIZER(head) \
481 { CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
482
483#define CIRCLEQ_ENTRY(type) \
484struct { \
485 struct type *cqe_next; /* next element */ \
486 struct type *cqe_prev; /* previous element */ \
487}
488
489/*
490 * Circular queue access methods
491 */
492#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
493#define CIRCLEQ_LAST(head) ((head)->cqh_last)
494#define CIRCLEQ_END(head) ((void *)(head))
495#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
496#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
497#define CIRCLEQ_EMPTY(head) \
498 (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
499
500#define CIRCLEQ_FOREACH(var, head, field) \
501 for((var) = CIRCLEQ_FIRST(head); \
502 (var) != CIRCLEQ_END(head); \
503 (var) = CIRCLEQ_NEXT(var, field))
504
505#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
506 for((var) = CIRCLEQ_LAST(head); \
507 (var) != CIRCLEQ_END(head); \
508 (var) = CIRCLEQ_PREV(var, field))
509
510/*
511 * Circular queue functions.
512 */
513#define CIRCLEQ_INIT(head) do { \
514 (head)->cqh_first = CIRCLEQ_END(head); \
515 (head)->cqh_last = CIRCLEQ_END(head); \
516} while (0)
517
518#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
519 (elm)->field.cqe_next = (listelm)->field.cqe_next; \
520 (elm)->field.cqe_prev = (listelm); \
521 if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \
522 (head)->cqh_last = (elm); \
523 else \
524 (listelm)->field.cqe_next->field.cqe_prev = (elm); \
525 (listelm)->field.cqe_next = (elm); \
526} while (0)
527
528#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
529 (elm)->field.cqe_next = (listelm); \
530 (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
531 if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \
532 (head)->cqh_first = (elm); \
533 else \
534 (listelm)->field.cqe_prev->field.cqe_next = (elm); \
535 (listelm)->field.cqe_prev = (elm); \
536} while (0)
537
538#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
539 (elm)->field.cqe_next = (head)->cqh_first; \
540 (elm)->field.cqe_prev = CIRCLEQ_END(head); \
541 if ((head)->cqh_last == CIRCLEQ_END(head)) \
542 (head)->cqh_last = (elm); \
543 else \
544 (head)->cqh_first->field.cqe_prev = (elm); \
545 (head)->cqh_first = (elm); \
546} while (0)
547
548#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
549 (elm)->field.cqe_next = CIRCLEQ_END(head); \
550 (elm)->field.cqe_prev = (head)->cqh_last; \
551 if ((head)->cqh_first == CIRCLEQ_END(head)) \
552 (head)->cqh_first = (elm); \
553 else \
554 (head)->cqh_last->field.cqe_next = (elm); \
555 (head)->cqh_last = (elm); \
556} while (0)
557
558#define CIRCLEQ_REMOVE(head, elm, field) do { \
559 if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \
560 (head)->cqh_last = (elm)->field.cqe_prev; \
561 else \
562 (elm)->field.cqe_next->field.cqe_prev = \
563 (elm)->field.cqe_prev; \
564 if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \
565 (head)->cqh_first = (elm)->field.cqe_next; \
566 else \
567 (elm)->field.cqe_prev->field.cqe_next = \
568 (elm)->field.cqe_next; \
569} while (0)
570
571#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \
572 if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \
573 CIRCLEQ_END(head)) \
574 (head).cqh_last = (elm2); \
575 else \
576 (elm2)->field.cqe_next->field.cqe_prev = (elm2); \
577 if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \
578 CIRCLEQ_END(head)) \
579 (head).cqh_first = (elm2); \
580 else \
581 (elm2)->field.cqe_prev->field.cqe_next = (elm2); \
582} while (0)
583
584#endif /* !_FAKE_QUEUE_H_ */
diff --git a/openbsd-compat/fake-socket.h b/openbsd-compat/fake-socket.h
deleted file mode 100644
index f364797fa..000000000
--- a/openbsd-compat/fake-socket.h
+++ /dev/null
@@ -1,47 +0,0 @@
1/* $Id: fake-socket.h,v 1.3 2002/04/12 03:35:40 tim Exp $ */
2
3#ifndef _FAKE_SOCKET_H
4#define _FAKE_SOCKET_H
5
6#include "includes.h"
7#include "sys/types.h"
8
9#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
10# define _SS_MAXSIZE 128 /* Implementation specific max size */
11# define _SS_PADSIZE (_SS_MAXSIZE - sizeof (struct sockaddr))
12
13struct sockaddr_storage {
14 struct sockaddr ss_sa;
15 char __ss_pad2[_SS_PADSIZE];
16};
17# define ss_family ss_sa.sa_family
18#endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
19
20#ifndef IN6_IS_ADDR_LOOPBACK
21# define IN6_IS_ADDR_LOOPBACK(a) \
22 (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
23 ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
24#endif /* !IN6_IS_ADDR_LOOPBACK */
25
26#ifndef HAVE_STRUCT_IN6_ADDR
27struct in6_addr {
28 u_int8_t s6_addr[16];
29};
30#endif /* !HAVE_STRUCT_IN6_ADDR */
31
32#ifndef HAVE_STRUCT_SOCKADDR_IN6
33struct sockaddr_in6 {
34 unsigned short sin6_family;
35 u_int16_t sin6_port;
36 u_int32_t sin6_flowinfo;
37 struct in6_addr sin6_addr;
38};
39#endif /* !HAVE_STRUCT_SOCKADDR_IN6 */
40
41#ifndef AF_INET6
42/* Define it to something that should never appear */
43#define AF_INET6 AF_MAX
44#endif
45
46#endif /* !_FAKE_SOCKET_H */
47
diff --git a/openbsd-compat/getcwd.h b/openbsd-compat/getcwd.h
deleted file mode 100644
index 1137b3ed5..000000000
--- a/openbsd-compat/getcwd.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: getcwd.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_GETCWD_H
4#define _BSD_GETCWD_H
5#include "config.h"
6
7#if !defined(HAVE_GETCWD)
8
9char *getcwd(char *pt, size_t size);
10
11#endif /* !defined(HAVE_GETCWD) */
12#endif /* _BSD_GETCWD_H */
diff --git a/openbsd-compat/getgrouplist.h b/openbsd-compat/getgrouplist.h
deleted file mode 100644
index 27a9703f2..000000000
--- a/openbsd-compat/getgrouplist.h
+++ /dev/null
@@ -1,16 +0,0 @@
1/* $Id: getgrouplist.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_GETGROUPLIST_H
4#define _BSD_GETGROUPLIST_H
5
6#include "config.h"
7
8#ifndef HAVE_GETGROUPLIST
9
10#include <grp.h>
11
12int getgrouplist(const char *, gid_t, gid_t *, int *);
13
14#endif
15
16#endif
diff --git a/openbsd-compat/getopt.h b/openbsd-compat/getopt.h
deleted file mode 100644
index 9abdae8e9..000000000
--- a/openbsd-compat/getopt.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/* $Id: getopt.h,v 1.4 2001/09/18 05:05:21 djm Exp $ */
2
3#ifndef _BSDGETOPT_H
4#define _BSDGETOPT_H
5
6#include "config.h"
7
8#if !defined(HAVE_GETOPT) || !defined(HAVE_GETOPT_OPTRESET)
9
10int BSDgetopt(int argc, char * const *argv, const char *opts);
11
12#endif
13
14#endif /* _BSDGETOPT_H */
diff --git a/openbsd-compat/inet_aton.h b/openbsd-compat/inet_aton.h
deleted file mode 100644
index 9b59cb908..000000000
--- a/openbsd-compat/inet_aton.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: inet_aton.h,v 1.4 2001/07/16 02:07:51 tim Exp $ */
2
3#ifndef _BSD_INET_ATON_H
4#define _BSD_INET_ATON_H
5
6#include "config.h"
7
8#ifndef HAVE_INET_ATON
9int inet_aton(const char *cp, struct in_addr *addr);
10#endif /* HAVE_INET_ATON */
11
12#endif /* _BSD_INET_ATON_H */
diff --git a/openbsd-compat/inet_ntoa.h b/openbsd-compat/inet_ntoa.h
deleted file mode 100644
index 85bc3d6fe..000000000
--- a/openbsd-compat/inet_ntoa.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: inet_ntoa.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_INET_NTOA_H
4#define _BSD_INET_NTOA_H
5
6#include "config.h"
7
8#if defined(BROKEN_INET_NTOA) || !defined(HAVE_INET_NTOA)
9char *inet_ntoa(struct in_addr in);
10#endif /* defined(BROKEN_INET_NTOA) || !defined(HAVE_INET_NTOA) */
11
12#endif /* _BSD_INET_NTOA_H */
diff --git a/openbsd-compat/inet_ntop.h b/openbsd-compat/inet_ntop.h
deleted file mode 100644
index c774df95c..000000000
--- a/openbsd-compat/inet_ntop.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/* $Id: inet_ntop.h,v 1.4 2001/08/09 00:56:53 mouring Exp $ */
2
3#ifndef _BSD_INET_NTOP_H
4#define _BSD_INET_NTOP_H
5
6#include "config.h"
7
8#ifndef HAVE_INET_NTOP
9const char *
10inet_ntop(int af, const void *src, char *dst, size_t size);
11#endif /* !HAVE_INET_NTOP */
12
13#endif /* _BSD_INET_NTOP_H */
diff --git a/openbsd-compat/mktemp.h b/openbsd-compat/mktemp.h
deleted file mode 100644
index 505ca6a1f..000000000
--- a/openbsd-compat/mktemp.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/* $Id: mktemp.h,v 1.3 2003/01/07 04:18:33 djm Exp $ */
2
3#ifndef _BSD_MKTEMP_H
4#define _BSD_MKTEMP_H
5
6#include "config.h"
7#if !defined(HAVE_MKDTEMP) || defined(HAVE_STRICT_MKSTEMP)
8int mkstemps(char *path, int slen);
9int mkstemp(char *path);
10char *mkdtemp(char *path);
11#endif /* !defined(HAVE_MKDTEMP) || defined(HAVE_STRICT_MKSTEMP) */
12
13#endif /* _BSD_MKTEMP_H */
diff --git a/openbsd-compat/port-uw.c b/openbsd-compat/port-uw.c
index ebc229a6a..be9905a6a 100644
--- a/openbsd-compat/port-uw.c
+++ b/openbsd-compat/port-uw.c
@@ -25,7 +25,7 @@
25 25
26#include "includes.h" 26#include "includes.h"
27 27
28#ifdef HAVE_LIBIAF 28#if defined(HAVE_LIBIAF) && !defined(HAVE_SECUREWARE)
29#include <sys/types.h> 29#include <sys/types.h>
30#ifdef HAVE_CRYPT_H 30#ifdef HAVE_CRYPT_H
31# include <crypt.h> 31# include <crypt.h>
@@ -145,5 +145,5 @@ get_iaf_password(struct passwd *pw)
145 fatal("ia_openinfo: Unable to open the shadow passwd file"); 145 fatal("ia_openinfo: Unable to open the shadow passwd file");
146} 146}
147#endif /* USE_LIBIAF */ 147#endif /* USE_LIBIAF */
148#endif /* HAVE_LIBIAF */ 148#endif /* HAVE_LIBIAF and not HAVE_SECUREWARE */
149 149
diff --git a/openbsd-compat/realpath.h b/openbsd-compat/realpath.h
deleted file mode 100644
index 25e4075d7..000000000
--- a/openbsd-compat/realpath.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/* $Id: realpath.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_REALPATH_H
4#define _BSD_REALPATH_H
5
6#include "config.h"
7
8#if !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH)
9
10char *realpath(const char *path, char *resolved);
11
12#endif /* !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) */
13#endif /* _BSD_REALPATH_H */
diff --git a/openbsd-compat/rresvport.h b/openbsd-compat/rresvport.h
deleted file mode 100644
index a52e4515b..000000000
--- a/openbsd-compat/rresvport.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: rresvport.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_RRESVPORT_H
4#define _BSD_RRESVPORT_H
5
6#include "config.h"
7
8#ifndef HAVE_RRESVPORT_AF
9int rresvport_af(int *alport, sa_family_t af);
10#endif /* !HAVE_RRESVPORT_AF */
11
12#endif /* _BSD_RRESVPORT_H */
diff --git a/openbsd-compat/setenv.h b/openbsd-compat/setenv.h
deleted file mode 100644
index 77256d802..000000000
--- a/openbsd-compat/setenv.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/* $Id: setenv.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_SETENV_H
4#define _BSD_SETENV_H
5
6#include "config.h"
7
8#ifndef HAVE_SETENV
9
10int setenv(register const char *name, register const char *value, int rewrite);
11
12#endif /* !HAVE_SETENV */
13
14#endif /* _BSD_SETENV_H */
diff --git a/openbsd-compat/setproctitle.h b/openbsd-compat/setproctitle.h
deleted file mode 100644
index 48d26c6ea..000000000
--- a/openbsd-compat/setproctitle.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/* $Id: setproctitle.h,v 1.3 2003/01/09 22:53:13 djm Exp $ */
2
3#ifndef _BSD_SETPROCTITLE_H
4#define _BSD_SETPROCTITLE_H
5
6#include "config.h"
7
8#ifndef HAVE_SETPROCTITLE
9void setproctitle(const char *fmt, ...);
10void compat_init_setproctitle(int argc, char *argv[]);
11#endif
12
13#endif /* _BSD_SETPROCTITLE_H */
diff --git a/openbsd-compat/strlcat.h b/openbsd-compat/strlcat.h
deleted file mode 100644
index 753668563..000000000
--- a/openbsd-compat/strlcat.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: strlcat.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_STRLCAT_H
4#define _BSD_STRLCAT_H
5
6#include "config.h"
7#ifndef HAVE_STRLCAT
8#include <sys/types.h>
9size_t strlcat(char *dst, const char *src, size_t siz);
10#endif /* !HAVE_STRLCAT */
11
12#endif /* _BSD_STRLCAT_H */
diff --git a/openbsd-compat/strlcpy.h b/openbsd-compat/strlcpy.h
deleted file mode 100644
index 3b137670d..000000000
--- a/openbsd-compat/strlcpy.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: strlcpy.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_STRLCPY_H
4#define _BSD_STRLCPY_H
5
6#include "config.h"
7#ifndef HAVE_STRLCPY
8#include <sys/types.h>
9size_t strlcpy(char *dst, const char *src, size_t siz);
10#endif /* !HAVE_STRLCPY */
11
12#endif /* _BSD_STRLCPY_H */
diff --git a/openbsd-compat/strmode.h b/openbsd-compat/strmode.h
deleted file mode 100644
index 64f7c8aae..000000000
--- a/openbsd-compat/strmode.h
+++ /dev/null
@@ -1,7 +0,0 @@
1/* $Id: strmode.h,v 1.3 2001/06/09 02:22:17 mouring Exp $ */
2
3#ifndef HAVE_STRMODE
4
5void strmode(register mode_t mode, register char *p);
6
7#endif
diff --git a/openbsd-compat/strsep.h b/openbsd-compat/strsep.h
deleted file mode 100644
index 6ed810ac1..000000000
--- a/openbsd-compat/strsep.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* $Id: strsep.h,v 1.2 2001/02/09 01:55:36 djm Exp $ */
2
3#ifndef _BSD_STRSEP_H
4#define _BSD_STRSEP_H
5
6#include "config.h"
7
8#ifndef HAVE_STRSEP
9char *strsep(char **stringp, const char *delim);
10#endif /* HAVE_STRSEP */
11
12#endif /* _BSD_STRSEP_H */
diff --git a/openbsd-compat/tree.h b/openbsd-compat/tree.h
deleted file mode 100644
index 30b4a8561..000000000
--- a/openbsd-compat/tree.h
+++ /dev/null
@@ -1,667 +0,0 @@
1/*
2 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef _SYS_TREE_H_
27#define _SYS_TREE_H_
28
29/*
30 * This file defines data structures for different types of trees:
31 * splay trees and red-black trees.
32 *
33 * A splay tree is a self-organizing data structure. Every operation
34 * on the tree causes a splay to happen. The splay moves the requested
35 * node to the root of the tree and partly rebalances it.
36 *
37 * This has the benefit that request locality causes faster lookups as
38 * the requested nodes move to the top of the tree. On the other hand,
39 * every lookup causes memory writes.
40 *
41 * The Balance Theorem bounds the total access time for m operations
42 * and n inserts on an initially empty tree as O((m + n)lg n). The
43 * amortized cost for a sequence of m accesses to a splay tree is O(lg n);
44 *
45 * A red-black tree is a binary search tree with the node color as an
46 * extra attribute. It fulfills a set of conditions:
47 * - every search path from the root to a leaf consists of the
48 * same number of black nodes,
49 * - each red node (except for the root) has a black parent,
50 * - each leaf node is black.
51 *
52 * Every operation on a red-black tree is bounded as O(lg n).
53 * The maximum height of a red-black tree is 2lg (n+1).
54 */
55
56#define SPLAY_HEAD(name, type) \
57struct name { \
58 struct type *sph_root; /* root of the tree */ \
59}
60
61#define SPLAY_INITIALIZER(root) \
62 { NULL }
63
64#define SPLAY_INIT(root) do { \
65 (root)->sph_root = NULL; \
66} while (0)
67
68#define SPLAY_ENTRY(type) \
69struct { \
70 struct type *spe_left; /* left element */ \
71 struct type *spe_right; /* right element */ \
72}
73
74#define SPLAY_LEFT(elm, field) (elm)->field.spe_left
75#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right
76#define SPLAY_ROOT(head) (head)->sph_root
77#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL)
78
79/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */
80#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \
81 SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \
82 SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
83 (head)->sph_root = tmp; \
84} while (0)
85
86#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \
87 SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \
88 SPLAY_LEFT(tmp, field) = (head)->sph_root; \
89 (head)->sph_root = tmp; \
90} while (0)
91
92#define SPLAY_LINKLEFT(head, tmp, field) do { \
93 SPLAY_LEFT(tmp, field) = (head)->sph_root; \
94 tmp = (head)->sph_root; \
95 (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \
96} while (0)
97
98#define SPLAY_LINKRIGHT(head, tmp, field) do { \
99 SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
100 tmp = (head)->sph_root; \
101 (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \
102} while (0)
103
104#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \
105 SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \
106 SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\
107 SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \
108 SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \
109} while (0)
110
111/* Generates prototypes and inline functions */
112
113#define SPLAY_PROTOTYPE(name, type, field, cmp) \
114void name##_SPLAY(struct name *, struct type *); \
115void name##_SPLAY_MINMAX(struct name *, int); \
116 \
117static __inline void \
118name##_SPLAY_INSERT(struct name *head, struct type *elm) \
119{ \
120 if (SPLAY_EMPTY(head)) { \
121 SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \
122 } else { \
123 int __comp; \
124 name##_SPLAY(head, elm); \
125 __comp = (cmp)(elm, (head)->sph_root); \
126 if(__comp < 0) { \
127 SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\
128 SPLAY_RIGHT(elm, field) = (head)->sph_root; \
129 SPLAY_LEFT((head)->sph_root, field) = NULL; \
130 } else if (__comp > 0) { \
131 SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\
132 SPLAY_LEFT(elm, field) = (head)->sph_root; \
133 SPLAY_RIGHT((head)->sph_root, field) = NULL; \
134 } else \
135 return; \
136 } \
137 (head)->sph_root = (elm); \
138} \
139 \
140static __inline void \
141name##_SPLAY_REMOVE(struct name *head, struct type *elm) \
142{ \
143 struct type *__tmp; \
144 if (SPLAY_EMPTY(head)) \
145 return; \
146 name##_SPLAY(head, elm); \
147 if ((cmp)(elm, (head)->sph_root) == 0) { \
148 if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \
149 (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\
150 } else { \
151 __tmp = SPLAY_RIGHT((head)->sph_root, field); \
152 (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\
153 name##_SPLAY(head, elm); \
154 SPLAY_RIGHT((head)->sph_root, field) = __tmp; \
155 } \
156 } \
157} \
158 \
159/* Finds the node with the same key as elm */ \
160static __inline struct type * \
161name##_SPLAY_FIND(struct name *head, struct type *elm) \
162{ \
163 if (SPLAY_EMPTY(head)) \
164 return(NULL); \
165 name##_SPLAY(head, elm); \
166 if ((cmp)(elm, (head)->sph_root) == 0) \
167 return (head->sph_root); \
168 return (NULL); \
169} \
170 \
171static __inline struct type * \
172name##_SPLAY_NEXT(struct name *head, struct type *elm) \
173{ \
174 name##_SPLAY(head, elm); \
175 if (SPLAY_RIGHT(elm, field) != NULL) { \
176 elm = SPLAY_RIGHT(elm, field); \
177 while (SPLAY_LEFT(elm, field) != NULL) { \
178 elm = SPLAY_LEFT(elm, field); \
179 } \
180 } else \
181 elm = NULL; \
182 return (elm); \
183} \
184 \
185static __inline struct type * \
186name##_SPLAY_MIN_MAX(struct name *head, int val) \
187{ \
188 name##_SPLAY_MINMAX(head, val); \
189 return (SPLAY_ROOT(head)); \
190}
191
192/* Main splay operation.
193 * Moves node close to the key of elm to top
194 */
195#define SPLAY_GENERATE(name, type, field, cmp) \
196void name##_SPLAY(struct name *head, struct type *elm) \
197{ \
198 struct type __node, *__left, *__right, *__tmp; \
199 int __comp; \
200\
201 SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
202 __left = __right = &__node; \
203\
204 while ((__comp = (cmp)(elm, (head)->sph_root))) { \
205 if (__comp < 0) { \
206 __tmp = SPLAY_LEFT((head)->sph_root, field); \
207 if (__tmp == NULL) \
208 break; \
209 if ((cmp)(elm, __tmp) < 0){ \
210 SPLAY_ROTATE_RIGHT(head, __tmp, field); \
211 if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
212 break; \
213 } \
214 SPLAY_LINKLEFT(head, __right, field); \
215 } else if (__comp > 0) { \
216 __tmp = SPLAY_RIGHT((head)->sph_root, field); \
217 if (__tmp == NULL) \
218 break; \
219 if ((cmp)(elm, __tmp) > 0){ \
220 SPLAY_ROTATE_LEFT(head, __tmp, field); \
221 if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
222 break; \
223 } \
224 SPLAY_LINKRIGHT(head, __left, field); \
225 } \
226 } \
227 SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
228} \
229 \
230/* Splay with either the minimum or the maximum element \
231 * Used to find minimum or maximum element in tree. \
232 */ \
233void name##_SPLAY_MINMAX(struct name *head, int __comp) \
234{ \
235 struct type __node, *__left, *__right, *__tmp; \
236\
237 SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
238 __left = __right = &__node; \
239\
240 while (1) { \
241 if (__comp < 0) { \
242 __tmp = SPLAY_LEFT((head)->sph_root, field); \
243 if (__tmp == NULL) \
244 break; \
245 if (__comp < 0){ \
246 SPLAY_ROTATE_RIGHT(head, __tmp, field); \
247 if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
248 break; \
249 } \
250 SPLAY_LINKLEFT(head, __right, field); \
251 } else if (__comp > 0) { \
252 __tmp = SPLAY_RIGHT((head)->sph_root, field); \
253 if (__tmp == NULL) \
254 break; \
255 if (__comp > 0) { \
256 SPLAY_ROTATE_LEFT(head, __tmp, field); \
257 if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
258 break; \
259 } \
260 SPLAY_LINKRIGHT(head, __left, field); \
261 } \
262 } \
263 SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
264}
265
266#define SPLAY_NEGINF -1
267#define SPLAY_INF 1
268
269#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y)
270#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y)
271#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y)
272#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y)
273#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \
274 : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF))
275#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \
276 : name##_SPLAY_MIN_MAX(x, SPLAY_INF))
277
278#define SPLAY_FOREACH(x, name, head) \
279 for ((x) = SPLAY_MIN(name, head); \
280 (x) != NULL; \
281 (x) = SPLAY_NEXT(name, head, x))
282
283/* Macros that define a red-back tree */
284#define RB_HEAD(name, type) \
285struct name { \
286 struct type *rbh_root; /* root of the tree */ \
287}
288
289#define RB_INITIALIZER(root) \
290 { NULL }
291
292#define RB_INIT(root) do { \
293 (root)->rbh_root = NULL; \
294} while (0)
295
296#define RB_BLACK 0
297#define RB_RED 1
298#define RB_ENTRY(type) \
299struct { \
300 struct type *rbe_left; /* left element */ \
301 struct type *rbe_right; /* right element */ \
302 struct type *rbe_parent; /* parent element */ \
303 int rbe_color; /* node color */ \
304}
305
306#define RB_LEFT(elm, field) (elm)->field.rbe_left
307#define RB_RIGHT(elm, field) (elm)->field.rbe_right
308#define RB_PARENT(elm, field) (elm)->field.rbe_parent
309#define RB_COLOR(elm, field) (elm)->field.rbe_color
310#define RB_ROOT(head) (head)->rbh_root
311#define RB_EMPTY(head) (RB_ROOT(head) == NULL)
312
313#define RB_SET(elm, parent, field) do { \
314 RB_PARENT(elm, field) = parent; \
315 RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \
316 RB_COLOR(elm, field) = RB_RED; \
317} while (0)
318
319#define RB_SET_BLACKRED(black, red, field) do { \
320 RB_COLOR(black, field) = RB_BLACK; \
321 RB_COLOR(red, field) = RB_RED; \
322} while (0)
323
324#ifndef RB_AUGMENT
325#define RB_AUGMENT(x)
326#endif
327
328#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \
329 (tmp) = RB_RIGHT(elm, field); \
330 if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field))) { \
331 RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \
332 } \
333 RB_AUGMENT(elm); \
334 if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field))) { \
335 if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
336 RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
337 else \
338 RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
339 RB_AUGMENT(RB_PARENT(elm, field)); \
340 } else \
341 (head)->rbh_root = (tmp); \
342 RB_LEFT(tmp, field) = (elm); \
343 RB_PARENT(elm, field) = (tmp); \
344 RB_AUGMENT(tmp); \
345} while (0)
346
347#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \
348 (tmp) = RB_LEFT(elm, field); \
349 if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field))) { \
350 RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \
351 } \
352 RB_AUGMENT(elm); \
353 if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field))) { \
354 if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
355 RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
356 else \
357 RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
358 RB_AUGMENT(RB_PARENT(elm, field)); \
359 } else \
360 (head)->rbh_root = (tmp); \
361 RB_RIGHT(tmp, field) = (elm); \
362 RB_PARENT(elm, field) = (tmp); \
363 RB_AUGMENT(tmp); \
364} while (0)
365
366/* Generates prototypes and inline functions */
367#define RB_PROTOTYPE(name, type, field, cmp) \
368void name##_RB_INSERT_COLOR(struct name *, struct type *); \
369void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\
370void name##_RB_REMOVE(struct name *, struct type *); \
371struct type *name##_RB_INSERT(struct name *, struct type *); \
372struct type *name##_RB_FIND(struct name *, struct type *); \
373struct type *name##_RB_NEXT(struct name *, struct type *); \
374struct type *name##_RB_MINMAX(struct name *, int); \
375 \
376
377/* Main rb operation.
378 * Moves node close to the key of elm to top
379 */
380#define RB_GENERATE(name, type, field, cmp) \
381void \
382name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \
383{ \
384 struct type *parent, *gparent, *tmp; \
385 while ((parent = RB_PARENT(elm, field)) && \
386 RB_COLOR(parent, field) == RB_RED) { \
387 gparent = RB_PARENT(parent, field); \
388 if (parent == RB_LEFT(gparent, field)) { \
389 tmp = RB_RIGHT(gparent, field); \
390 if (tmp && RB_COLOR(tmp, field) == RB_RED) { \
391 RB_COLOR(tmp, field) = RB_BLACK; \
392 RB_SET_BLACKRED(parent, gparent, field);\
393 elm = gparent; \
394 continue; \
395 } \
396 if (RB_RIGHT(parent, field) == elm) { \
397 RB_ROTATE_LEFT(head, parent, tmp, field);\
398 tmp = parent; \
399 parent = elm; \
400 elm = tmp; \
401 } \
402 RB_SET_BLACKRED(parent, gparent, field); \
403 RB_ROTATE_RIGHT(head, gparent, tmp, field); \
404 } else { \
405 tmp = RB_LEFT(gparent, field); \
406 if (tmp && RB_COLOR(tmp, field) == RB_RED) { \
407 RB_COLOR(tmp, field) = RB_BLACK; \
408 RB_SET_BLACKRED(parent, gparent, field);\
409 elm = gparent; \
410 continue; \
411 } \
412 if (RB_LEFT(parent, field) == elm) { \
413 RB_ROTATE_RIGHT(head, parent, tmp, field);\
414 tmp = parent; \
415 parent = elm; \
416 elm = tmp; \
417 } \
418 RB_SET_BLACKRED(parent, gparent, field); \
419 RB_ROTATE_LEFT(head, gparent, tmp, field); \
420 } \
421 } \
422 RB_COLOR(head->rbh_root, field) = RB_BLACK; \
423} \
424 \
425void \
426name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \
427{ \
428 struct type *tmp; \
429 while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \
430 elm != RB_ROOT(head)) { \
431 if (RB_LEFT(parent, field) == elm) { \
432 tmp = RB_RIGHT(parent, field); \
433 if (RB_COLOR(tmp, field) == RB_RED) { \
434 RB_SET_BLACKRED(tmp, parent, field); \
435 RB_ROTATE_LEFT(head, parent, tmp, field);\
436 tmp = RB_RIGHT(parent, field); \
437 } \
438 if ((RB_LEFT(tmp, field) == NULL || \
439 RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
440 (RB_RIGHT(tmp, field) == NULL || \
441 RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
442 RB_COLOR(tmp, field) = RB_RED; \
443 elm = parent; \
444 parent = RB_PARENT(elm, field); \
445 } else { \
446 if (RB_RIGHT(tmp, field) == NULL || \
447 RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\
448 struct type *oleft; \
449 if ((oleft = RB_LEFT(tmp, field)))\
450 RB_COLOR(oleft, field) = RB_BLACK;\
451 RB_COLOR(tmp, field) = RB_RED; \
452 RB_ROTATE_RIGHT(head, tmp, oleft, field);\
453 tmp = RB_RIGHT(parent, field); \
454 } \
455 RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
456 RB_COLOR(parent, field) = RB_BLACK; \
457 if (RB_RIGHT(tmp, field)) \
458 RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\
459 RB_ROTATE_LEFT(head, parent, tmp, field);\
460 elm = RB_ROOT(head); \
461 break; \
462 } \
463 } else { \
464 tmp = RB_LEFT(parent, field); \
465 if (RB_COLOR(tmp, field) == RB_RED) { \
466 RB_SET_BLACKRED(tmp, parent, field); \
467 RB_ROTATE_RIGHT(head, parent, tmp, field);\
468 tmp = RB_LEFT(parent, field); \
469 } \
470 if ((RB_LEFT(tmp, field) == NULL || \
471 RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
472 (RB_RIGHT(tmp, field) == NULL || \
473 RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
474 RB_COLOR(tmp, field) = RB_RED; \
475 elm = parent; \
476 parent = RB_PARENT(elm, field); \
477 } else { \
478 if (RB_LEFT(tmp, field) == NULL || \
479 RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\
480 struct type *oright; \
481 if ((oright = RB_RIGHT(tmp, field)))\
482 RB_COLOR(oright, field) = RB_BLACK;\
483 RB_COLOR(tmp, field) = RB_RED; \
484 RB_ROTATE_LEFT(head, tmp, oright, field);\
485 tmp = RB_LEFT(parent, field); \
486 } \
487 RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
488 RB_COLOR(parent, field) = RB_BLACK; \
489 if (RB_LEFT(tmp, field)) \
490 RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\
491 RB_ROTATE_RIGHT(head, parent, tmp, field);\
492 elm = RB_ROOT(head); \
493 break; \
494 } \
495 } \
496 } \
497 if (elm) \
498 RB_COLOR(elm, field) = RB_BLACK; \
499} \
500 \
501void \
502name##_RB_REMOVE(struct name *head, struct type *elm) \
503{ \
504 struct type *child, *parent; \
505 int color; \
506 if (RB_LEFT(elm, field) == NULL) \
507 child = RB_RIGHT(elm, field); \
508 else if (RB_RIGHT(elm, field) == NULL) \
509 child = RB_LEFT(elm, field); \
510 else { \
511 struct type *old = elm, *left; \
512 elm = RB_RIGHT(elm, field); \
513 while ((left = RB_LEFT(elm, field))) \
514 elm = left; \
515 child = RB_RIGHT(elm, field); \
516 parent = RB_PARENT(elm, field); \
517 color = RB_COLOR(elm, field); \
518 if (child) \
519 RB_PARENT(child, field) = parent; \
520 if (parent) { \
521 if (RB_LEFT(parent, field) == elm) \
522 RB_LEFT(parent, field) = child; \
523 else \
524 RB_RIGHT(parent, field) = child; \
525 RB_AUGMENT(parent); \
526 } else \
527 RB_ROOT(head) = child; \
528 if (RB_PARENT(elm, field) == old) \
529 parent = elm; \
530 (elm)->field = (old)->field; \
531 if (RB_PARENT(old, field)) { \
532 if (RB_LEFT(RB_PARENT(old, field), field) == old)\
533 RB_LEFT(RB_PARENT(old, field), field) = elm;\
534 else \
535 RB_RIGHT(RB_PARENT(old, field), field) = elm;\
536 RB_AUGMENT(RB_PARENT(old, field)); \
537 } else \
538 RB_ROOT(head) = elm; \
539 RB_PARENT(RB_LEFT(old, field), field) = elm; \
540 if (RB_RIGHT(old, field)) \
541 RB_PARENT(RB_RIGHT(old, field), field) = elm; \
542 if (parent) { \
543 left = parent; \
544 do { \
545 RB_AUGMENT(left); \
546 } while ((left = RB_PARENT(left, field))); \
547 } \
548 goto color; \
549 } \
550 parent = RB_PARENT(elm, field); \
551 color = RB_COLOR(elm, field); \
552 if (child) \
553 RB_PARENT(child, field) = parent; \
554 if (parent) { \
555 if (RB_LEFT(parent, field) == elm) \
556 RB_LEFT(parent, field) = child; \
557 else \
558 RB_RIGHT(parent, field) = child; \
559 RB_AUGMENT(parent); \
560 } else \
561 RB_ROOT(head) = child; \
562color: \
563 if (color == RB_BLACK) \
564 name##_RB_REMOVE_COLOR(head, parent, child); \
565} \
566 \
567/* Inserts a node into the RB tree */ \
568struct type * \
569name##_RB_INSERT(struct name *head, struct type *elm) \
570{ \
571 struct type *tmp; \
572 struct type *parent = NULL; \
573 int comp = 0; \
574 tmp = RB_ROOT(head); \
575 while (tmp) { \
576 parent = tmp; \
577 comp = (cmp)(elm, parent); \
578 if (comp < 0) \
579 tmp = RB_LEFT(tmp, field); \
580 else if (comp > 0) \
581 tmp = RB_RIGHT(tmp, field); \
582 else \
583 return (tmp); \
584 } \
585 RB_SET(elm, parent, field); \
586 if (parent != NULL) { \
587 if (comp < 0) \
588 RB_LEFT(parent, field) = elm; \
589 else \
590 RB_RIGHT(parent, field) = elm; \
591 RB_AUGMENT(parent); \
592 } else \
593 RB_ROOT(head) = elm; \
594 name##_RB_INSERT_COLOR(head, elm); \
595 return (NULL); \
596} \
597 \
598/* Finds the node with the same key as elm */ \
599struct type * \
600name##_RB_FIND(struct name *head, struct type *elm) \
601{ \
602 struct type *tmp = RB_ROOT(head); \
603 int comp; \
604 while (tmp) { \
605 comp = cmp(elm, tmp); \
606 if (comp < 0) \
607 tmp = RB_LEFT(tmp, field); \
608 else if (comp > 0) \
609 tmp = RB_RIGHT(tmp, field); \
610 else \
611 return (tmp); \
612 } \
613 return (NULL); \
614} \
615 \
616struct type * \
617name##_RB_NEXT(struct name *head, struct type *elm) \
618{ \
619 if (RB_RIGHT(elm, field)) { \
620 elm = RB_RIGHT(elm, field); \
621 while (RB_LEFT(elm, field)) \
622 elm = RB_LEFT(elm, field); \
623 } else { \
624 if (RB_PARENT(elm, field) && \
625 (elm == RB_LEFT(RB_PARENT(elm, field), field))) \
626 elm = RB_PARENT(elm, field); \
627 else { \
628 while (RB_PARENT(elm, field) && \
629 (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\
630 elm = RB_PARENT(elm, field); \
631 elm = RB_PARENT(elm, field); \
632 } \
633 } \
634 return (elm); \
635} \
636 \
637struct type * \
638name##_RB_MINMAX(struct name *head, int val) \
639{ \
640 struct type *tmp = RB_ROOT(head); \
641 struct type *parent = NULL; \
642 while (tmp) { \
643 parent = tmp; \
644 if (val < 0) \
645 tmp = RB_LEFT(tmp, field); \
646 else \
647 tmp = RB_RIGHT(tmp, field); \
648 } \
649 return (parent); \
650}
651
652#define RB_NEGINF -1
653#define RB_INF 1
654
655#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y)
656#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y)
657#define RB_FIND(name, x, y) name##_RB_FIND(x, y)
658#define RB_NEXT(name, x, y) name##_RB_NEXT(x, y)
659#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF)
660#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF)
661
662#define RB_FOREACH(x, name, head) \
663 for ((x) = RB_MIN(name, head); \
664 (x) != NULL; \
665 (x) = name##_RB_NEXT(head, x))
666
667#endif /* _SYS_TREE_H_ */
diff --git a/openbsd-compat/xcrypt.c b/openbsd-compat/xcrypt.c
index d8636bb39..6291e2884 100644
--- a/openbsd-compat/xcrypt.c
+++ b/openbsd-compat/xcrypt.c
@@ -28,7 +28,7 @@
28#include <unistd.h> 28#include <unistd.h>
29#include <pwd.h> 29#include <pwd.h>
30 30
31# ifdef HAVE_CRYPT_H 31# if defined(HAVE_CRYPT_H) && !defined(HAVE_SECUREWARE)
32# include <crypt.h> 32# include <crypt.h>
33# endif 33# endif
34 34
diff --git a/openbsd-compat/xmmap.c b/openbsd-compat/xmmap.c
index 23efe3888..04c6babc2 100644
--- a/openbsd-compat/xmmap.c
+++ b/openbsd-compat/xmmap.c
@@ -23,7 +23,7 @@
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26/* $Id: xmmap.c,v 1.14 2007/06/11 02:52:24 djm Exp $ */ 26/* $Id: xmmap.c,v 1.15 2009/02/16 04:21:40 djm Exp $ */
27 27
28#include "includes.h" 28#include "includes.h"
29 29
@@ -71,7 +71,8 @@ xmmap(size_t size)
71 fatal("mkstemp(\"%s\"): %s", 71 fatal("mkstemp(\"%s\"): %s",
72 MM_SWAP_TEMPLATE, strerror(errno)); 72 MM_SWAP_TEMPLATE, strerror(errno));
73 unlink(tmpname); 73 unlink(tmpname);
74 ftruncate(tmpfd, size); 74 if (ftruncate(tmpfd, size) != 0)
75 fatal("%s: ftruncate: %s", __func__, strerror(errno));
75 address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_SHARED, 76 address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_SHARED,
76 tmpfd, (off_t)0); 77 tmpfd, (off_t)0);
77 close(tmpfd); 78 close(tmpfd);
diff --git a/openbsd-compat/xmmap.h b/openbsd-compat/xmmap.h
deleted file mode 100644
index c0fa04aca..000000000
--- a/openbsd-compat/xmmap.h
+++ /dev/null
@@ -1,23 +0,0 @@
1/*
2 * Redistribution and use in source and binary forms, with or without
3 * modification, are permitted provided that the following conditions
4 * are met:
5 * 1. Redistributions of source code must retain the above copyright
6 * notice, this list of conditions and the following disclaimer.
7 * 2. Redistributions in binary form must reproduce the above copyright
8 * notice, this list of conditions and the following disclaimer in the
9 * documentation and/or other materials provided with the distribution.
10 *
11 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
12 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
13 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
14 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
17 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
18 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 */
22
23void *xmmap(size_t size);
diff --git a/packet.c b/packet.c
index 8abd43eb4..5afc84ce0 100644
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: packet.c,v 1.157 2008/07/10 18:08:11 markus Exp $ */ 1/* $OpenBSD: packet.c,v 1.160 2009/02/13 11:50:21 markus Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -84,6 +84,8 @@
84#define DBG(x) 84#define DBG(x)
85#endif 85#endif
86 86
87#define PACKET_MAX_SIZE (256 * 1024)
88
87/* 89/*
88 * This variable contains the file descriptors used for communicating with 90 * This variable contains the file descriptors used for communicating with
89 * the other side. connection_in is used for reading; connection_out for 91 * the other side. connection_in is used for reading; connection_out for
@@ -160,6 +162,10 @@ static u_int ssh1_keylen;
160/* roundup current message to extra_pad bytes */ 162/* roundup current message to extra_pad bytes */
161static u_char extra_pad = 0; 163static u_char extra_pad = 0;
162 164
165/* XXX discard incoming data after MAC error */
166static u_int packet_discard = 0;
167static Mac *packet_discard_mac = NULL;
168
163struct packet { 169struct packet {
164 TAILQ_ENTRY(packet) next; 170 TAILQ_ENTRY(packet) next;
165 u_char type; 171 u_char type;
@@ -209,6 +215,36 @@ packet_set_timeout(int timeout, int count)
209 packet_timeout_ms = timeout * count * 1000; 215 packet_timeout_ms = timeout * count * 1000;
210} 216}
211 217
218static void
219packet_stop_discard(void)
220{
221 if (packet_discard_mac) {
222 char buf[1024];
223
224 memset(buf, 'a', sizeof(buf));
225 while (buffer_len(&incoming_packet) < PACKET_MAX_SIZE)
226 buffer_append(&incoming_packet, buf, sizeof(buf));
227 (void) mac_compute(packet_discard_mac,
228 p_read.seqnr,
229 buffer_ptr(&incoming_packet),
230 PACKET_MAX_SIZE);
231 }
232 logit("Finished discarding for %.200s", get_remote_ipaddr());
233 cleanup_exit(255);
234}
235
236static void
237packet_start_discard(Enc *enc, Mac *mac, u_int packet_length, u_int discard)
238{
239 if (enc == NULL || !cipher_is_cbc(enc->cipher))
240 packet_disconnect("Packet corrupt");
241 if (packet_length != PACKET_MAX_SIZE && mac && mac->enabled)
242 packet_discard_mac = mac;
243 if (buffer_len(&input) >= discard)
244 packet_stop_discard();
245 packet_discard = discard - buffer_len(&input);
246}
247
212/* Returns 1 if remote host is connected via socket, 0 if not. */ 248/* Returns 1 if remote host is connected via socket, 0 if not. */
213 249
214int 250int
@@ -1127,6 +1163,9 @@ packet_read_poll2(u_int32_t *seqnr_p)
1127 Mac *mac = NULL; 1163 Mac *mac = NULL;
1128 Comp *comp = NULL; 1164 Comp *comp = NULL;
1129 1165
1166 if (packet_discard)
1167 return SSH_MSG_NONE;
1168
1130 if (newkeys[MODE_IN] != NULL) { 1169 if (newkeys[MODE_IN] != NULL) {
1131 enc = &newkeys[MODE_IN]->enc; 1170 enc = &newkeys[MODE_IN]->enc;
1132 mac = &newkeys[MODE_IN]->mac; 1171 mac = &newkeys[MODE_IN]->mac;
@@ -1148,11 +1187,14 @@ packet_read_poll2(u_int32_t *seqnr_p)
1148 block_size); 1187 block_size);
1149 cp = buffer_ptr(&incoming_packet); 1188 cp = buffer_ptr(&incoming_packet);
1150 packet_length = get_u32(cp); 1189 packet_length = get_u32(cp);
1151 if (packet_length < 1 + 4 || packet_length > 256 * 1024) { 1190 if (packet_length < 1 + 4 || packet_length > PACKET_MAX_SIZE) {
1152#ifdef PACKET_DEBUG 1191#ifdef PACKET_DEBUG
1153 buffer_dump(&incoming_packet); 1192 buffer_dump(&incoming_packet);
1154#endif 1193#endif
1155 packet_disconnect("Bad packet length %u.", packet_length); 1194 logit("Bad packet length %u.", packet_length);
1195 packet_start_discard(enc, mac, packet_length,
1196 PACKET_MAX_SIZE);
1197 return SSH_MSG_NONE;
1156 } 1198 }
1157 DBG(debug("input: packet len %u", packet_length+4)); 1199 DBG(debug("input: packet len %u", packet_length+4));
1158 buffer_consume(&input, block_size); 1200 buffer_consume(&input, block_size);
@@ -1161,9 +1203,13 @@ packet_read_poll2(u_int32_t *seqnr_p)
1161 need = 4 + packet_length - block_size; 1203 need = 4 + packet_length - block_size;
1162 DBG(debug("partial packet %d, need %d, maclen %d", block_size, 1204 DBG(debug("partial packet %d, need %d, maclen %d", block_size,
1163 need, maclen)); 1205 need, maclen));
1164 if (need % block_size != 0) 1206 if (need % block_size != 0) {
1165 fatal("padding error: need %d block %d mod %d", 1207 logit("padding error: need %d block %d mod %d",
1166 need, block_size, need % block_size); 1208 need, block_size, need % block_size);
1209 packet_start_discard(enc, mac, packet_length,
1210 PACKET_MAX_SIZE - block_size);
1211 return SSH_MSG_NONE;
1212 }
1167 /* 1213 /*
1168 * check if the entire packet has been received and 1214 * check if the entire packet has been received and
1169 * decrypt into incoming_packet 1215 * decrypt into incoming_packet
@@ -1185,11 +1231,19 @@ packet_read_poll2(u_int32_t *seqnr_p)
1185 macbuf = mac_compute(mac, p_read.seqnr, 1231 macbuf = mac_compute(mac, p_read.seqnr,
1186 buffer_ptr(&incoming_packet), 1232 buffer_ptr(&incoming_packet),
1187 buffer_len(&incoming_packet)); 1233 buffer_len(&incoming_packet));
1188 if (memcmp(macbuf, buffer_ptr(&input), mac->mac_len) != 0) 1234 if (memcmp(macbuf, buffer_ptr(&input), mac->mac_len) != 0) {
1189 packet_disconnect("Corrupted MAC on input."); 1235 logit("Corrupted MAC on input.");
1236 if (need > PACKET_MAX_SIZE)
1237 fatal("internal error need %d", need);
1238 packet_start_discard(enc, mac, packet_length,
1239 PACKET_MAX_SIZE - need);
1240 return SSH_MSG_NONE;
1241 }
1242
1190 DBG(debug("MAC #%d ok", p_read.seqnr)); 1243 DBG(debug("MAC #%d ok", p_read.seqnr));
1191 buffer_consume(&input, mac->mac_len); 1244 buffer_consume(&input, mac->mac_len);
1192 } 1245 }
1246 /* XXX now it's safe to use fatal/packet_disconnect */
1193 if (seqnr_p != NULL) 1247 if (seqnr_p != NULL)
1194 *seqnr_p = p_read.seqnr; 1248 *seqnr_p = p_read.seqnr;
1195 if (++p_read.seqnr == 0) 1249 if (++p_read.seqnr == 0)
@@ -1322,6 +1376,13 @@ packet_read_poll(void)
1322void 1376void
1323packet_process_incoming(const char *buf, u_int len) 1377packet_process_incoming(const char *buf, u_int len)
1324{ 1378{
1379 if (packet_discard) {
1380 keep_alive_timeouts = 0; /* ?? */
1381 if (len >= packet_discard)
1382 packet_stop_discard();
1383 packet_discard -= len;
1384 return;
1385 }
1325 buffer_append(&input, buf, len); 1386 buffer_append(&input, buf, len);
1326} 1387}
1327 1388
diff --git a/pathnames.h b/pathnames.h
index f2571e274..80c5d9cbb 100644
--- a/pathnames.h
+++ b/pathnames.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: pathnames.h,v 1.16 2006/03/25 22:22:43 djm Exp $ */ 1/* $OpenBSD: pathnames.h,v 1.17 2008/12/29 02:23:26 stevesk Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -54,7 +54,7 @@
54#define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/sshd.pid" 54#define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/sshd.pid"
55 55
56/* 56/*
57 * The directory in user\'s home directory in which the files reside. The 57 * The directory in user's home directory in which the files reside. The
58 * directory should be world-readable (though not all files are). 58 * directory should be world-readable (though not all files are).
59 */ 59 */
60#define _PATH_SSH_USER_DIR ".ssh" 60#define _PATH_SSH_USER_DIR ".ssh"
@@ -77,9 +77,9 @@
77#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" 77#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa"
78 78
79/* 79/*
80 * Configuration file in user\'s home directory. This file need not be 80 * Configuration file in user's home directory. This file need not be
81 * readable by anyone but the user him/herself, but does not contain anything 81 * readable by anyone but the user him/herself, but does not contain anything
82 * particularly secret. If the user\'s home directory resides on an NFS 82 * particularly secret. If the user's home directory resides on an NFS
83 * volume where root is mapped to nobody, this may need to be world-readable. 83 * volume where root is mapped to nobody, this may need to be world-readable.
84 */ 84 */
85#define _PATH_SSH_USER_CONFFILE ".ssh/config" 85#define _PATH_SSH_USER_CONFFILE ".ssh/config"
@@ -87,7 +87,7 @@
87/* 87/*
88 * File containing a list of those rsa keys that permit logging in as this 88 * File containing a list of those rsa keys that permit logging in as this
89 * user. This file need not be readable by anyone but the user him/herself, 89 * user. This file need not be readable by anyone but the user him/herself,
90 * but does not contain anything particularly secret. If the user\'s home 90 * but does not contain anything particularly secret. If the user's home
91 * directory resides on an NFS volume where root is mapped to nobody, this 91 * directory resides on an NFS volume where root is mapped to nobody, this
92 * may need to be world-readable. (This file is read by the daemon which is 92 * may need to be world-readable. (This file is read by the daemon which is
93 * running as root.) 93 * running as root.)
diff --git a/radix.c b/radix.c
deleted file mode 100644
index c680d6bf3..000000000
--- a/radix.c
+++ /dev/null
@@ -1,158 +0,0 @@
1/*
2 * Copyright (c) 1999 Dug Song. All rights reserved.
3 * Copyright (c) 2002 Markus Friedl. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "includes.h"
27#include "uuencode.h"
28
29RCSID("$OpenBSD: radix.c,v 1.22 2002/09/09 14:54:15 markus Exp $");
30
31#ifdef AFS
32#include <krb.h>
33
34#include <radix.h>
35#include "bufaux.h"
36
37int
38creds_to_radix(CREDENTIALS *creds, u_char *buf, size_t buflen)
39{
40 Buffer b;
41 int ret;
42
43 buffer_init(&b);
44
45 buffer_put_char(&b, 1); /* version */
46
47 buffer_append(&b, creds->service, strlen(creds->service));
48 buffer_put_char(&b, '\0');
49 buffer_append(&b, creds->instance, strlen(creds->instance));
50 buffer_put_char(&b, '\0');
51 buffer_append(&b, creds->realm, strlen(creds->realm));
52 buffer_put_char(&b, '\0');
53 buffer_append(&b, creds->pname, strlen(creds->pname));
54 buffer_put_char(&b, '\0');
55 buffer_append(&b, creds->pinst, strlen(creds->pinst));
56 buffer_put_char(&b, '\0');
57
58 /* Null string to repeat the realm. */
59 buffer_put_char(&b, '\0');
60
61 buffer_put_int(&b, creds->issue_date);
62 buffer_put_int(&b, krb_life_to_time(creds->issue_date,
63 creds->lifetime));
64 buffer_append(&b, creds->session, sizeof(creds->session));
65 buffer_put_short(&b, creds->kvno);
66
67 /* 32 bit size + data */
68 buffer_put_string(&b, creds->ticket_st.dat, creds->ticket_st.length);
69
70 ret = uuencode(buffer_ptr(&b), buffer_len(&b), (char *)buf, buflen);
71
72 buffer_free(&b);
73 return ret;
74}
75
76#define GETSTRING(b, t, tlen) \
77 do { \
78 int i, found = 0; \
79 for (i = 0; i < tlen; i++) { \
80 if (buffer_len(b) == 0) \
81 goto done; \
82 t[i] = buffer_get_char(b); \
83 if (t[i] == '\0') { \
84 found = 1; \
85 break; \
86 } \
87 } \
88 if (!found) \
89 goto done; \
90 } while(0)
91
92int
93radix_to_creds(const char *buf, CREDENTIALS *creds)
94{
95 Buffer b;
96 u_char *space;
97 char c, version, *p;
98 u_int endTime, len;
99 int blen, ret;
100
101 ret = 0;
102 blen = strlen(buf);
103
104 /* sanity check for size */
105 if (blen > 8192)
106 return 0;
107
108 buffer_init(&b);
109 space = buffer_append_space(&b, blen);
110
111 /* check version and length! */
112 len = uudecode(buf, space, blen);
113 if (len < 1)
114 goto done;
115
116 version = buffer_get_char(&b);
117
118 GETSTRING(&b, creds->service, sizeof creds->service);
119 GETSTRING(&b, creds->instance, sizeof creds->instance);
120 GETSTRING(&b, creds->realm, sizeof creds->realm);
121 GETSTRING(&b, creds->pname, sizeof creds->pname);
122 GETSTRING(&b, creds->pinst, sizeof creds->pinst);
123
124 if (buffer_len(&b) == 0)
125 goto done;
126
127 /* Ignore possibly different realm. */
128 while (buffer_len(&b) > 0 && (c = buffer_get_char(&b)) != '\0')
129 ;
130
131 if (buffer_len(&b) == 0)
132 goto done;
133
134 creds->issue_date = buffer_get_int(&b);
135
136 endTime = buffer_get_int(&b);
137 creds->lifetime = krb_time_to_life(creds->issue_date, endTime);
138
139 len = buffer_len(&b);
140 if (len < sizeof(creds->session))
141 goto done;
142 memcpy(&creds->session, buffer_ptr(&b), sizeof(creds->session));
143 buffer_consume(&b, sizeof(creds->session));
144
145 creds->kvno = buffer_get_short(&b);
146
147 p = buffer_get_string(&b, &len);
148 if (len < 0 || len > sizeof(creds->ticket_st.dat))
149 goto done;
150 memcpy(&creds->ticket_st.dat, p, len);
151 creds->ticket_st.length = len;
152
153 ret = 1;
154done:
155 buffer_free(&b);
156 return ret;
157}
158#endif /* AFS */
diff --git a/radix.h b/radix.h
deleted file mode 100644
index e94e4acc6..000000000
--- a/radix.h
+++ /dev/null
@@ -1,28 +0,0 @@
1/* $OpenBSD: radix.h,v 1.4 2001/06/26 17:27:24 markus Exp $ */
2
3/*
4 * Copyright (c) 1999 Dug Song. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27int creds_to_radix(CREDENTIALS *, u_char *, size_t);
28int radix_to_creds(const char *, CREDENTIALS *);
diff --git a/readconf.c b/readconf.c
index 73f6eb361..53fc6c7ba 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: readconf.c,v 1.167 2008/06/26 11:46:31 grunk Exp $ */ 1/* $OpenBSD: readconf.c,v 1.176 2009/02/12 03:00:56 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -130,7 +130,7 @@ typedef enum {
130 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, 130 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
131 oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, 131 oSendEnv, oControlPath, oControlMaster, oHashKnownHosts,
132 oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, 132 oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand,
133 oVisualHostKey, 133 oVisualHostKey, oZeroKnowledgePasswordAuthentication,
134 oDeprecated, oUnsupported 134 oDeprecated, oUnsupported
135} OpCodes; 135} OpCodes;
136 136
@@ -172,7 +172,7 @@ static struct {
172 { "fallbacktorsh", oDeprecated }, 172 { "fallbacktorsh", oDeprecated },
173 { "usersh", oDeprecated }, 173 { "usersh", oDeprecated },
174 { "identityfile", oIdentityFile }, 174 { "identityfile", oIdentityFile },
175 { "identityfile2", oIdentityFile }, /* alias */ 175 { "identityfile2", oIdentityFile }, /* obsolete */
176 { "identitiesonly", oIdentitiesOnly }, 176 { "identitiesonly", oIdentitiesOnly },
177 { "hostname", oHostName }, 177 { "hostname", oHostName },
178 { "hostkeyalias", oHostKeyAlias }, 178 { "hostkeyalias", oHostKeyAlias },
@@ -188,8 +188,8 @@ static struct {
188 { "host", oHost }, 188 { "host", oHost },
189 { "escapechar", oEscapeChar }, 189 { "escapechar", oEscapeChar },
190 { "globalknownhostsfile", oGlobalKnownHostsFile }, 190 { "globalknownhostsfile", oGlobalKnownHostsFile },
191 { "userknownhostsfile", oUserKnownHostsFile }, /* obsolete */ 191 { "globalknownhostsfile2", oGlobalKnownHostsFile2 }, /* obsolete */
192 { "globalknownhostsfile2", oGlobalKnownHostsFile2 }, 192 { "userknownhostsfile", oUserKnownHostsFile },
193 { "userknownhostsfile2", oUserKnownHostsFile2 }, /* obsolete */ 193 { "userknownhostsfile2", oUserKnownHostsFile2 }, /* obsolete */
194 { "connectionattempts", oConnectionAttempts }, 194 { "connectionattempts", oConnectionAttempts },
195 { "batchmode", oBatchMode }, 195 { "batchmode", oBatchMode },
@@ -228,6 +228,13 @@ static struct {
228 { "localcommand", oLocalCommand }, 228 { "localcommand", oLocalCommand },
229 { "permitlocalcommand", oPermitLocalCommand }, 229 { "permitlocalcommand", oPermitLocalCommand },
230 { "visualhostkey", oVisualHostKey }, 230 { "visualhostkey", oVisualHostKey },
231#ifdef JPAKE
232 { "zeroknowledgepasswordauthentication",
233 oZeroKnowledgePasswordAuthentication },
234#else
235 { "zeroknowledgepasswordauthentication", oUnsupported },
236#endif
237
231 { NULL, oBadOption } 238 { NULL, oBadOption }
232}; 239};
233 240
@@ -249,10 +256,9 @@ add_local_forward(Options *options, const Forward *newfwd)
249 fatal("Too many local forwards (max %d).", SSH_MAX_FORWARDS_PER_DIRECTION); 256 fatal("Too many local forwards (max %d).", SSH_MAX_FORWARDS_PER_DIRECTION);
250 fwd = &options->local_forwards[options->num_local_forwards++]; 257 fwd = &options->local_forwards[options->num_local_forwards++];
251 258
252 fwd->listen_host = (newfwd->listen_host == NULL) ? 259 fwd->listen_host = newfwd->listen_host;
253 NULL : xstrdup(newfwd->listen_host);
254 fwd->listen_port = newfwd->listen_port; 260 fwd->listen_port = newfwd->listen_port;
255 fwd->connect_host = xstrdup(newfwd->connect_host); 261 fwd->connect_host = newfwd->connect_host;
256 fwd->connect_port = newfwd->connect_port; 262 fwd->connect_port = newfwd->connect_port;
257} 263}
258 264
@@ -270,10 +276,9 @@ add_remote_forward(Options *options, const Forward *newfwd)
270 SSH_MAX_FORWARDS_PER_DIRECTION); 276 SSH_MAX_FORWARDS_PER_DIRECTION);
271 fwd = &options->remote_forwards[options->num_remote_forwards++]; 277 fwd = &options->remote_forwards[options->num_remote_forwards++];
272 278
273 fwd->listen_host = (newfwd->listen_host == NULL) ? 279 fwd->listen_host = newfwd->listen_host;
274 NULL : xstrdup(newfwd->listen_host);
275 fwd->listen_port = newfwd->listen_port; 280 fwd->listen_port = newfwd->listen_port;
276 fwd->connect_host = xstrdup(newfwd->connect_host); 281 fwd->connect_host = newfwd->connect_host;
277 fwd->connect_port = newfwd->connect_port; 282 fwd->connect_port = newfwd->connect_port;
278} 283}
279 284
@@ -412,6 +417,10 @@ parse_flag:
412 intptr = &options->password_authentication; 417 intptr = &options->password_authentication;
413 goto parse_flag; 418 goto parse_flag;
414 419
420 case oZeroKnowledgePasswordAuthentication:
421 intptr = &options->zero_knowledge_password_authentication;
422 goto parse_flag;
423
415 case oKbdInteractiveAuthentication: 424 case oKbdInteractiveAuthentication:
416 intptr = &options->kbd_interactive_authentication; 425 intptr = &options->kbd_interactive_authentication;
417 goto parse_flag; 426 goto parse_flag;
@@ -706,56 +715,40 @@ parse_int:
706 715
707 case oLocalForward: 716 case oLocalForward:
708 case oRemoteForward: 717 case oRemoteForward:
718 case oDynamicForward:
709 arg = strdelim(&s); 719 arg = strdelim(&s);
710 if (arg == NULL || *arg == '\0') 720 if (arg == NULL || *arg == '\0')
711 fatal("%.200s line %d: Missing port argument.", 721 fatal("%.200s line %d: Missing port argument.",
712 filename, linenum); 722 filename, linenum);
713 arg2 = strdelim(&s);
714 if (arg2 == NULL || *arg2 == '\0')
715 fatal("%.200s line %d: Missing target argument.",
716 filename, linenum);
717 723
718 /* construct a string for parse_forward */ 724 if (opcode == oLocalForward ||
719 snprintf(fwdarg, sizeof(fwdarg), "%s:%s", arg, arg2); 725 opcode == oRemoteForward) {
726 arg2 = strdelim(&s);
727 if (arg2 == NULL || *arg2 == '\0')
728 fatal("%.200s line %d: Missing target argument.",
729 filename, linenum);
730
731 /* construct a string for parse_forward */
732 snprintf(fwdarg, sizeof(fwdarg), "%s:%s", arg, arg2);
733 } else if (opcode == oDynamicForward) {
734 strlcpy(fwdarg, arg, sizeof(fwdarg));
735 }
720 736
721 if (parse_forward(&fwd, fwdarg) == 0) 737 if (parse_forward(&fwd, fwdarg,
738 opcode == oDynamicForward ? 1 : 0,
739 opcode == oRemoteForward ? 1 : 0) == 0)
722 fatal("%.200s line %d: Bad forwarding specification.", 740 fatal("%.200s line %d: Bad forwarding specification.",
723 filename, linenum); 741 filename, linenum);
724 742
725 if (*activep) { 743 if (*activep) {
726 if (opcode == oLocalForward) 744 if (opcode == oLocalForward ||
745 opcode == oDynamicForward)
727 add_local_forward(options, &fwd); 746 add_local_forward(options, &fwd);
728 else if (opcode == oRemoteForward) 747 else if (opcode == oRemoteForward)
729 add_remote_forward(options, &fwd); 748 add_remote_forward(options, &fwd);
730 } 749 }
731 break; 750 break;
732 751
733 case oDynamicForward:
734 arg = strdelim(&s);
735 if (!arg || *arg == '\0')
736 fatal("%.200s line %d: Missing port argument.",
737 filename, linenum);
738 memset(&fwd, '\0', sizeof(fwd));
739 fwd.connect_host = "socks";
740 fwd.listen_host = hpdelim(&arg);
741 if (fwd.listen_host == NULL ||
742 strlen(fwd.listen_host) >= NI_MAXHOST)
743 fatal("%.200s line %d: Bad forwarding specification.",
744 filename, linenum);
745 if (arg) {
746 fwd.listen_port = a2port(arg);
747 fwd.listen_host = cleanhostname(fwd.listen_host);
748 } else {
749 fwd.listen_port = a2port(fwd.listen_host);
750 fwd.listen_host = NULL;
751 }
752 if (fwd.listen_port == 0)
753 fatal("%.200s line %d: Badly formatted port number.",
754 filename, linenum);
755 if (*activep)
756 add_local_forward(options, &fwd);
757 break;
758
759 case oClearAllForwardings: 752 case oClearAllForwardings:
760 intptr = &options->clear_forwardings; 753 intptr = &options->clear_forwardings;
761 goto parse_flag; 754 goto parse_flag;
@@ -959,7 +952,6 @@ read_config_file(const char *filename, const char *host, Options *options,
959 int active, linenum; 952 int active, linenum;
960 int bad_options = 0; 953 int bad_options = 0;
961 954
962 /* Open the file. */
963 if ((f = fopen(filename, "r")) == NULL) 955 if ((f = fopen(filename, "r")) == NULL)
964 return 0; 956 return 0;
965 957
@@ -1072,6 +1064,7 @@ initialize_options(Options * options)
1072 options->local_command = NULL; 1064 options->local_command = NULL;
1073 options->permit_local_command = -1; 1065 options->permit_local_command = -1;
1074 options->visual_host_key = -1; 1066 options->visual_host_key = -1;
1067 options->zero_knowledge_password_authentication = -1;
1075} 1068}
1076 1069
1077/* 1070/*
@@ -1208,6 +1201,8 @@ fill_default_options(Options * options)
1208 options->permit_local_command = 0; 1201 options->permit_local_command = 0;
1209 if (options->visual_host_key == -1) 1202 if (options->visual_host_key == -1)
1210 options->visual_host_key = 0; 1203 options->visual_host_key = 0;
1204 if (options->zero_knowledge_password_authentication == -1)
1205 options->zero_knowledge_password_authentication = 0;
1211 /* options->local_command should not be set by default */ 1206 /* options->local_command should not be set by default */
1212 /* options->proxy_command should not be set by default */ 1207 /* options->proxy_command should not be set by default */
1213 /* options->user will be set in the main program if appropriate */ 1208 /* options->user will be set in the main program if appropriate */
@@ -1219,11 +1214,14 @@ fill_default_options(Options * options)
1219/* 1214/*
1220 * parse_forward 1215 * parse_forward
1221 * parses a string containing a port forwarding specification of the form: 1216 * parses a string containing a port forwarding specification of the form:
1217 * dynamicfwd == 0
1222 * [listenhost:]listenport:connecthost:connectport 1218 * [listenhost:]listenport:connecthost:connectport
1219 * dynamicfwd == 1
1220 * [listenhost:]listenport
1223 * returns number of arguments parsed or zero on error 1221 * returns number of arguments parsed or zero on error
1224 */ 1222 */
1225int 1223int
1226parse_forward(Forward *fwd, const char *fwdspec) 1224parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd, int remotefwd)
1227{ 1225{
1228 int i; 1226 int i;
1229 char *p, *cp, *fwdarg[4]; 1227 char *p, *cp, *fwdarg[4];
@@ -1240,11 +1238,23 @@ parse_forward(Forward *fwd, const char *fwdspec)
1240 if ((fwdarg[i] = hpdelim(&cp)) == NULL) 1238 if ((fwdarg[i] = hpdelim(&cp)) == NULL)
1241 break; 1239 break;
1242 1240
1243 /* Check for trailing garbage in 4-arg case*/ 1241 /* Check for trailing garbage */
1244 if (cp != NULL) 1242 if (cp != NULL)
1245 i = 0; /* failure */ 1243 i = 0; /* failure */
1246 1244
1247 switch (i) { 1245 switch (i) {
1246 case 1:
1247 fwd->listen_host = NULL;
1248 fwd->listen_port = a2port(fwdarg[0]);
1249 fwd->connect_host = xstrdup("socks");
1250 break;
1251
1252 case 2:
1253 fwd->listen_host = xstrdup(cleanhostname(fwdarg[0]));
1254 fwd->listen_port = a2port(fwdarg[1]);
1255 fwd->connect_host = xstrdup("socks");
1256 break;
1257
1248 case 3: 1258 case 3:
1249 fwd->listen_host = NULL; 1259 fwd->listen_host = NULL;
1250 fwd->listen_port = a2port(fwdarg[0]); 1260 fwd->listen_port = a2port(fwdarg[0]);
@@ -1264,19 +1274,37 @@ parse_forward(Forward *fwd, const char *fwdspec)
1264 1274
1265 xfree(p); 1275 xfree(p);
1266 1276
1267 if (fwd->listen_port == 0 || fwd->connect_port == 0) 1277 if (dynamicfwd) {
1278 if (!(i == 1 || i == 2))
1279 goto fail_free;
1280 } else {
1281 if (!(i == 3 || i == 4))
1282 goto fail_free;
1283 if (fwd->connect_port <= 0)
1284 goto fail_free;
1285 }
1286
1287 if (fwd->listen_port < 0 || (!remotefwd && fwd->listen_port == 0))
1268 goto fail_free; 1288 goto fail_free;
1269 1289
1270 if (fwd->connect_host != NULL && 1290 if (fwd->connect_host != NULL &&
1271 strlen(fwd->connect_host) >= NI_MAXHOST) 1291 strlen(fwd->connect_host) >= NI_MAXHOST)
1272 goto fail_free; 1292 goto fail_free;
1293 if (fwd->listen_host != NULL &&
1294 strlen(fwd->listen_host) >= NI_MAXHOST)
1295 goto fail_free;
1296
1273 1297
1274 return (i); 1298 return (i);
1275 1299
1276 fail_free: 1300 fail_free:
1277 if (fwd->connect_host != NULL) 1301 if (fwd->connect_host != NULL) {
1278 xfree(fwd->connect_host); 1302 xfree(fwd->connect_host);
1279 if (fwd->listen_host != NULL) 1303 fwd->connect_host = NULL;
1304 }
1305 if (fwd->listen_host != NULL) {
1280 xfree(fwd->listen_host); 1306 xfree(fwd->listen_host);
1307 fwd->listen_host = NULL;
1308 }
1281 return (0); 1309 return (0);
1282} 1310}
diff --git a/readconf.h b/readconf.h
index 47c7aef4e..8fb3a8528 100644
--- a/readconf.h
+++ b/readconf.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: readconf.h,v 1.74 2008/06/26 11:46:31 grunk Exp $ */ 1/* $OpenBSD: readconf.h,v 1.78 2009/02/12 03:00:56 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -20,9 +20,9 @@
20 20
21typedef struct { 21typedef struct {
22 char *listen_host; /* Host (address) to listen on. */ 22 char *listen_host; /* Host (address) to listen on. */
23 u_short listen_port; /* Port to forward. */ 23 int listen_port; /* Port to forward. */
24 char *connect_host; /* Host to connect. */ 24 char *connect_host; /* Host to connect. */
25 u_short connect_port; /* Port to connect on connect_host. */ 25 int connect_port; /* Port to connect on connect_host. */
26} Forward; 26} Forward;
27/* Data structure for representing option data. */ 27/* Data structure for representing option data. */
28 28
@@ -49,6 +49,7 @@ typedef struct {
49 * authentication. */ 49 * authentication. */
50 int kbd_interactive_authentication; /* Try keyboard-interactive auth. */ 50 int kbd_interactive_authentication; /* Try keyboard-interactive auth. */
51 char *kbd_interactive_devices; /* Keyboard-interactive auth devices. */ 51 char *kbd_interactive_devices; /* Keyboard-interactive auth devices. */
52 int zero_knowledge_password_authentication; /* Try jpake */
52 int batch_mode; /* Batch mode: do not ask for passwords. */ 53 int batch_mode; /* Batch mode: do not ask for passwords. */
53 int check_host_ip; /* Also keep track of keys for IP address */ 54 int check_host_ip; /* Also keep track of keys for IP address */
54 int strict_host_key_checking; /* Strict host key checking. */ 55 int strict_host_key_checking; /* Strict host key checking. */
@@ -133,7 +134,7 @@ typedef struct {
133void initialize_options(Options *); 134void initialize_options(Options *);
134void fill_default_options(Options *); 135void fill_default_options(Options *);
135int read_config_file(const char *, const char *, Options *, int); 136int read_config_file(const char *, const char *, Options *, int);
136int parse_forward(Forward *, const char *); 137int parse_forward(Forward *, const char *, int, int);
137 138
138int 139int
139process_config_line(Options *, const char *, char *, const char *, int, int *); 140process_config_line(Options *, const char *, char *, const char *, int, int *);
diff --git a/readpass.h b/readpass.h
deleted file mode 100644
index a45d32f2a..000000000
--- a/readpass.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/* $OpenBSD: readpass.h,v 1.7 2002/03/26 15:58:46 markus Exp $ */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose. Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15#define RP_ECHO 0x0001
16#define RP_ALLOW_STDIN 0x0002
17#define RP_ALLOW_EOF 0x0004
18
19char *read_passphrase(const char *, int);
diff --git a/regress/authorized_keys_root b/regress/authorized_keys_root
deleted file mode 100644
index 328537120..000000000
--- a/regress/authorized_keys_root
+++ /dev/null
@@ -1,2 +0,0 @@
1ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAt6ttBacbgvLPsF1VWWfT51t55/5Mj62Xp8EaoH5SNSaLiGIgrrja077lKEept75U4uKFUYU5JJX9GPE9A7Y43LXv+/A6Jm4rEj/U0s4H8tf0UmzVC3t6xh0sRK0hYVNILyoHnIAgdY8CmOiybw7p6DxJY8MRAehD3n9+kFcachU= root@xenon
21024 35 132789427207755621599908461558918671787816692978751485815532032934821830960131244604702969298486352138126114080367609979552547448841583955126231410604842765726397407176910594168641969541792069550006878863592030567875913190224374005367884774859544943329148178663694126456638431428703289837638970464685771819219 root@xenon
diff --git a/regress/conch-ciphers.sh b/regress/conch-ciphers.sh
index 84b190618..5b65cd993 100644
--- a/regress/conch-ciphers.sh
+++ b/regress/conch-ciphers.sh
@@ -7,7 +7,8 @@ DATA=/bin/ls
7COPY=${OBJ}/copy 7COPY=${OBJ}/copy
8 8
9if test "x$REGRESS_INTEROP_CONCH" != "xyes" ; then 9if test "x$REGRESS_INTEROP_CONCH" != "xyes" ; then
10 fatal "conch interop tests not enabled" 10 echo "conch interop tests not enabled"
11 exit 0
11fi 12fi
12 13
13start_sshd 14start_sshd
diff --git a/regress/copy.1 b/regress/copy.1
deleted file mode 100755
index 92d4d20f9..000000000
--- a/regress/copy.1
+++ /dev/null
Binary files differ
diff --git a/regress/copy.2 b/regress/copy.2
deleted file mode 100755
index 92d4d20f9..000000000
--- a/regress/copy.2
+++ /dev/null
Binary files differ
diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh
index 40435ef41..928ea60d2 100644
--- a/regress/putty-ciphers.sh
+++ b/regress/putty-ciphers.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: putty-ciphers.sh,v 1.2 2008/06/30 10:31:11 djm Exp $ 1# $OpenBSD: putty-ciphers.sh,v 1.3 2008/11/10 02:06:35 djm Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="putty ciphers" 4tid="putty ciphers"
@@ -7,10 +7,11 @@ DATA=/bin/ls
7COPY=${OBJ}/copy 7COPY=${OBJ}/copy
8 8
9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then 9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then
10 fatal "putty interop tests not enabled" 10 echo "putty interop tests not enabled"
11 exit 0
11fi 12fi
12 13
13for c in aes blowfish 3des arcfour ; do 14for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do
14 verbose "$tid: cipher $c" 15 verbose "$tid: cipher $c"
15 cp ${OBJ}/.putty/sessions/localhost_proxy \ 16 cp ${OBJ}/.putty/sessions/localhost_proxy \
16 ${OBJ}/.putty/sessions/cipher_$c 17 ${OBJ}/.putty/sessions/cipher_$c
diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh
index 2534b8575..293885a8a 100644
--- a/regress/putty-kex.sh
+++ b/regress/putty-kex.sh
@@ -7,7 +7,8 @@ DATA=/bin/ls
7COPY=${OBJ}/copy 7COPY=${OBJ}/copy
8 8
9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then 9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then
10 fatal "putty interop tests not enabled" 10 echo "putty interop tests not enabled"
11 exit 0
11fi 12fi
12 13
13for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do 14for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do
diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh
index 6b21f3be7..9e1e1550a 100644
--- a/regress/putty-transfer.sh
+++ b/regress/putty-transfer.sh
@@ -7,7 +7,8 @@ DATA=/bin/ls
7COPY=${OBJ}/copy 7COPY=${OBJ}/copy
8 8
9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then 9if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then
10 fatal "putty interop tests not enabled" 10 echo "putty interop tests not enabled"
11 exit 0
11fi 12fi
12 13
13# XXX support protocol 1 too 14# XXX support protocol 1 too
diff --git a/scard/.cvsignore b/scard/.cvsignore
deleted file mode 100644
index 5349d34ae..000000000
--- a/scard/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
1Makefile
2Ssh.bin
diff --git a/schnorr.c b/schnorr.c
new file mode 100644
index 000000000..546975072
--- /dev/null
+++ b/schnorr.c
@@ -0,0 +1,409 @@
1/* $OpenBSD: schnorr.c,v 1.2 2009/02/18 04:31:21 djm Exp $ */
2/*
3 * Copyright (c) 2008 Damien Miller. All rights reserved.
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/*
19 * Implementation of Schnorr signatures / zero-knowledge proofs, based on
20 * description in:
21 *
22 * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling",
23 * 16th Workshop on Security Protocols, Cambridge, April 2008
24 *
25 * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf
26 */
27
28#include "includes.h"
29
30#include <sys/types.h>
31
32#include <string.h>
33#include <stdarg.h>
34#include <stdio.h>
35
36#include <openssl/evp.h>
37#include <openssl/bn.h>
38
39#include "xmalloc.h"
40#include "buffer.h"
41#include "log.h"
42
43#include "jpake.h"
44
45/* #define SCHNORR_DEBUG */ /* Privacy-violating debugging */
46/* #define SCHNORR_MAIN */ /* Include main() selftest */
47
48/* XXX */
49/* Parametise signature hash? (sha256, sha1, etc.) */
50/* Signature format - include type name, hash type, group params? */
51
52#ifndef SCHNORR_DEBUG
53# define SCHNORR_DEBUG_BN(a)
54# define SCHNORR_DEBUG_BUF(a)
55#else
56# define SCHNORR_DEBUG_BN(a) jpake_debug3_bn a
57# define SCHNORR_DEBUG_BUF(a) jpake_debug3_buf a
58#endif /* SCHNORR_DEBUG */
59
60/*
61 * Calculate hash component of Schnorr signature H(g || g^v || g^x || id)
62 * using SHA1. Returns signature as bignum or NULL on error.
63 */
64static BIGNUM *
65schnorr_hash(const BIGNUM *p, const BIGNUM *q, const BIGNUM *g,
66 const BIGNUM *g_v, const BIGNUM *g_x,
67 const u_char *id, u_int idlen)
68{
69 u_char *digest;
70 u_int digest_len;
71 BIGNUM *h;
72 EVP_MD_CTX evp_md_ctx;
73 Buffer b;
74 int success = -1;
75
76 if ((h = BN_new()) == NULL) {
77 error("%s: BN_new", __func__);
78 return NULL;
79 }
80
81 buffer_init(&b);
82 EVP_MD_CTX_init(&evp_md_ctx);
83
84 /* h = H(g || p || q || g^v || g^x || id) */
85 buffer_put_bignum2(&b, g);
86 buffer_put_bignum2(&b, p);
87 buffer_put_bignum2(&b, q);
88 buffer_put_bignum2(&b, g_v);
89 buffer_put_bignum2(&b, g_x);
90 buffer_put_string(&b, id, idlen);
91
92 SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b),
93 "%s: hashblob", __func__));
94 if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(),
95 &digest, &digest_len) != 0) {
96 error("%s: hash_buffer", __func__);
97 goto out;
98 }
99 if (BN_bin2bn(digest, (int)digest_len, h) == NULL) {
100 error("%s: BN_bin2bn", __func__);
101 goto out;
102 }
103 success = 0;
104 SCHNORR_DEBUG_BN((h, "%s: h = ", __func__));
105 out:
106 buffer_free(&b);
107 EVP_MD_CTX_cleanup(&evp_md_ctx);
108 bzero(digest, digest_len);
109 xfree(digest);
110 digest_len = 0;
111 if (success == 0)
112 return h;
113 BN_clear_free(h);
114 return NULL;
115}
116
117/*
118 * Generate Schnorr signature to prove knowledge of private value 'x' used
119 * in public exponent g^x, under group defined by 'grp_p', 'grp_q' and 'grp_g'
120 * 'idlen' bytes from 'id' will be included in the signature hash as an anti-
121 * replay salt.
122 * On success, 0 is returned and *siglen bytes of signature are returned in
123 * *sig (caller to free). Returns -1 on failure.
124 */
125int
126schnorr_sign(const BIGNUM *grp_p, const BIGNUM *grp_q, const BIGNUM *grp_g,
127 const BIGNUM *x, const BIGNUM *g_x, const u_char *id, u_int idlen,
128 u_char **sig, u_int *siglen)
129{
130 int success = -1;
131 Buffer b;
132 BIGNUM *h, *tmp, *v, *g_v, *r;
133 BN_CTX *bn_ctx;
134
135 SCHNORR_DEBUG_BN((x, "%s: x = ", __func__));
136 SCHNORR_DEBUG_BN((g_x, "%s: g_x = ", __func__));
137
138 /* Avoid degenerate cases: g^0 yields a spoofable signature */
139 if (BN_cmp(g_x, BN_value_one()) <= 0) {
140 error("%s: g_x < 1", __func__);
141 return -1;
142 }
143
144 h = g_v = r = tmp = v = NULL;
145 if ((bn_ctx = BN_CTX_new()) == NULL) {
146 error("%s: BN_CTX_new", __func__);
147 goto out;
148 }
149 if ((g_v = BN_new()) == NULL ||
150 (r = BN_new()) == NULL ||
151 (tmp = BN_new()) == NULL) {
152 error("%s: BN_new", __func__);
153 goto out;
154 }
155
156 /*
157 * v must be a random element of Zq, so 1 <= v < q
158 * we also exclude v = 1, since g^1 looks dangerous
159 */
160 if ((v = bn_rand_range_gt_one(grp_p)) == NULL) {
161 error("%s: bn_rand_range2", __func__);
162 goto out;
163 }
164 SCHNORR_DEBUG_BN((v, "%s: v = ", __func__));
165
166 /* g_v = g^v mod p */
167 if (BN_mod_exp(g_v, grp_g, v, grp_p, bn_ctx) == -1) {
168 error("%s: BN_mod_exp (g^v mod p)", __func__);
169 goto out;
170 }
171 SCHNORR_DEBUG_BN((g_v, "%s: g_v = ", __func__));
172
173 /* h = H(g || g^v || g^x || id) */
174 if ((h = schnorr_hash(grp_p, grp_q, grp_g, g_v, g_x,
175 id, idlen)) == NULL) {
176 error("%s: schnorr_hash failed", __func__);
177 goto out;
178 }
179
180 /* r = v - xh mod q */
181 if (BN_mod_mul(tmp, x, h, grp_q, bn_ctx) == -1) {
182 error("%s: BN_mod_mul (tmp = xv mod q)", __func__);
183 goto out;
184 }
185 if (BN_mod_sub(r, v, tmp, grp_q, bn_ctx) == -1) {
186 error("%s: BN_mod_mul (r = v - tmp)", __func__);
187 goto out;
188 }
189 SCHNORR_DEBUG_BN((r, "%s: r = ", __func__));
190
191 /* Signature is (g_v, r) */
192 buffer_init(&b);
193 /* XXX sigtype-hash as string? */
194 buffer_put_bignum2(&b, g_v);
195 buffer_put_bignum2(&b, r);
196 *siglen = buffer_len(&b);
197 *sig = xmalloc(*siglen);
198 memcpy(*sig, buffer_ptr(&b), *siglen);
199 SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b),
200 "%s: sigblob", __func__));
201 buffer_free(&b);
202 success = 0;
203 out:
204 BN_CTX_free(bn_ctx);
205 if (h != NULL)
206 BN_clear_free(h);
207 if (v != NULL)
208 BN_clear_free(v);
209 BN_clear_free(r);
210 BN_clear_free(g_v);
211 BN_clear_free(tmp);
212
213 return success;
214}
215
216/*
217 * Verify Schnorr signature 'sig' of length 'siglen' against public exponent
218 * g_x (g^x) under group defined by 'grp_p', 'grp_q' and 'grp_g'.
219 * Signature hash will be salted with 'idlen' bytes from 'id'.
220 * Returns -1 on failure, 0 on incorrect signature or 1 on matching signature.
221 */
222int
223schnorr_verify(const BIGNUM *grp_p, const BIGNUM *grp_q, const BIGNUM *grp_g,
224 const BIGNUM *g_x, const u_char *id, u_int idlen,
225 const u_char *sig, u_int siglen)
226{
227 int success = -1;
228 Buffer b;
229 BIGNUM *g_v, *h, *r, *g_xh, *g_r, *expected;
230 BN_CTX *bn_ctx;
231 u_int rlen;
232
233 SCHNORR_DEBUG_BN((g_x, "%s: g_x = ", __func__));
234
235 /* Avoid degenerate cases: g^0 yields a spoofable signature */
236 if (BN_cmp(g_x, BN_value_one()) <= 0) {
237 error("%s: g_x < 1", __func__);
238 return -1;
239 }
240
241 g_v = h = r = g_xh = g_r = expected = NULL;
242 if ((bn_ctx = BN_CTX_new()) == NULL) {
243 error("%s: BN_CTX_new", __func__);
244 goto out;
245 }
246 if ((g_v = BN_new()) == NULL ||
247 (r = BN_new()) == NULL ||
248 (g_xh = BN_new()) == NULL ||
249 (g_r = BN_new()) == NULL ||
250 (expected = BN_new()) == NULL) {
251 error("%s: BN_new", __func__);
252 goto out;
253 }
254
255 /* Extract g^v and r from signature blob */
256 buffer_init(&b);
257 buffer_append(&b, sig, siglen);
258 SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b),
259 "%s: sigblob", __func__));
260 buffer_get_bignum2(&b, g_v);
261 buffer_get_bignum2(&b, r);
262 rlen = buffer_len(&b);
263 buffer_free(&b);
264 if (rlen != 0) {
265 error("%s: remaining bytes in signature %d", __func__, rlen);
266 goto out;
267 }
268 buffer_free(&b);
269 SCHNORR_DEBUG_BN((g_v, "%s: g_v = ", __func__));
270 SCHNORR_DEBUG_BN((r, "%s: r = ", __func__));
271
272 /* h = H(g || g^v || g^x || id) */
273 if ((h = schnorr_hash(grp_p, grp_q, grp_g, g_v, g_x,
274 id, idlen)) == NULL) {
275 error("%s: schnorr_hash failed", __func__);
276 goto out;
277 }
278
279 /* g_xh = (g^x)^h */
280 if (BN_mod_exp(g_xh, g_x, h, grp_p, bn_ctx) == -1) {
281 error("%s: BN_mod_exp (g_x^h mod p)", __func__);
282 goto out;
283 }
284 SCHNORR_DEBUG_BN((g_xh, "%s: g_xh = ", __func__));
285
286 /* g_r = g^r */
287 if (BN_mod_exp(g_r, grp_g, r, grp_p, bn_ctx) == -1) {
288 error("%s: BN_mod_exp (g_x^h mod p)", __func__);
289 goto out;
290 }
291 SCHNORR_DEBUG_BN((g_r, "%s: g_r = ", __func__));
292
293 /* expected = g^r * g_xh */
294 if (BN_mod_mul(expected, g_r, g_xh, grp_p, bn_ctx) == -1) {
295 error("%s: BN_mod_mul (expected = g_r mod p)", __func__);
296 goto out;
297 }
298 SCHNORR_DEBUG_BN((expected, "%s: expected = ", __func__));
299
300 /* Check g_v == expected */
301 success = BN_cmp(expected, g_v) == 0;
302 out:
303 BN_CTX_free(bn_ctx);
304 if (h != NULL)
305 BN_clear_free(h);
306 BN_clear_free(g_v);
307 BN_clear_free(r);
308 BN_clear_free(g_xh);
309 BN_clear_free(g_r);
310 BN_clear_free(expected);
311 return success;
312}
313
314#ifdef SCHNORR_MAIN
315static void
316schnorr_selftest_one(const BIGNUM *grp_p, const BIGNUM *grp_q,
317 const BIGNUM *grp_g, const BIGNUM *x)
318{
319 BIGNUM *g_x;
320 u_char *sig;
321 u_int siglen;
322 BN_CTX *bn_ctx;
323
324 if ((bn_ctx = BN_CTX_new()) == NULL)
325 fatal("%s: BN_CTX_new", __func__);
326 if ((g_x = BN_new()) == NULL)
327 fatal("%s: BN_new", __func__);
328
329 if (BN_mod_exp(g_x, grp_g, x, grp_p, bn_ctx) == -1)
330 fatal("%s: g_x", __func__);
331 if (schnorr_sign(grp_p, grp_q, grp_g, x, g_x, "junk", 4, &sig, &siglen))
332 fatal("%s: schnorr_sign", __func__);
333 if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "junk", 4,
334 sig, siglen) != 1)
335 fatal("%s: verify fail", __func__);
336 if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "JUNK", 4,
337 sig, siglen) != 0)
338 fatal("%s: verify should have failed (bad ID)", __func__);
339 sig[4] ^= 1;
340 if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "junk", 4,
341 sig, siglen) != 0)
342 fatal("%s: verify should have failed (bit error)", __func__);
343 xfree(sig);
344 BN_free(g_x);
345 BN_CTX_free(bn_ctx);
346}
347
348static void
349schnorr_selftest(void)
350{
351 BIGNUM *x;
352 struct jpake_group *grp;
353 u_int i;
354 char *hh;
355
356 grp = jpake_default_group();
357 if ((x = BN_new()) == NULL)
358 fatal("%s: BN_new", __func__);
359 SCHNORR_DEBUG_BN((grp->p, "%s: grp->p = ", __func__));
360 SCHNORR_DEBUG_BN((grp->q, "%s: grp->q = ", __func__));
361 SCHNORR_DEBUG_BN((grp->g, "%s: grp->g = ", __func__));
362
363 /* [1, 20) */
364 for (i = 1; i < 20; i++) {
365 printf("x = %u\n", i);
366 fflush(stdout);
367 if (BN_set_word(x, i) != 1)
368 fatal("%s: set x word", __func__);
369 schnorr_selftest_one(grp->p, grp->q, grp->g, x);
370 }
371
372 /* 100 x random [0, p) */
373 for (i = 0; i < 100; i++) {
374 if (BN_rand_range(x, grp->p) != 1)
375 fatal("%s: BN_rand_range", __func__);
376 hh = BN_bn2hex(x);
377 printf("x = (random) 0x%s\n", hh);
378 free(hh);
379 fflush(stdout);
380 schnorr_selftest_one(grp->p, grp->q, grp->g, x);
381 }
382
383 /* [q-20, q) */
384 if (BN_set_word(x, 20) != 1)
385 fatal("%s: BN_set_word (x = 20)", __func__);
386 if (BN_sub(x, grp->q, x) != 1)
387 fatal("%s: BN_sub (q - x)", __func__);
388 for (i = 0; i < 19; i++) {
389 hh = BN_bn2hex(x);
390 printf("x = (q - %d) 0x%s\n", 20 - i, hh);
391 free(hh);
392 fflush(stdout);
393 schnorr_selftest_one(grp->p, grp->q, grp->g, x);
394 if (BN_add(x, x, BN_value_one()) != 1)
395 fatal("%s: BN_add (x + 1)", __func__);
396 }
397 BN_free(x);
398}
399
400int
401main(int argc, char **argv)
402{
403 log_init(argv[0], SYSLOG_LEVEL_DEBUG3, SYSLOG_FACILITY_USER, 1);
404
405 schnorr_selftest();
406 return 0;
407}
408#endif
409
diff --git a/scp.0 b/scp.0
index b6b9d919c..26b3fc728 100644
--- a/scp.0
+++ b/scp.0
@@ -145,4 +145,4 @@ AUTHORS
145 Timo Rinne <tri@iki.fi> 145 Timo Rinne <tri@iki.fi>
146 Tatu Ylonen <ylo@cs.hut.fi> 146 Tatu Ylonen <ylo@cs.hut.fi>
147 147
148OpenBSD 4.4 July 12, 2008 3 148OpenBSD 4.5 July 12, 2008 3
diff --git a/scp.c b/scp.c
index 9f8b7a192..323747806 100644
--- a/scp.c
+++ b/scp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: scp.c,v 1.163 2008/06/13 18:55:22 dtucker Exp $ */ 1/* $OpenBSD: scp.c,v 1.164 2008/10/10 04:55:16 stevesk Exp $ */
2/* 2/*
3 * scp - secure remote copy. This is basically patched BSD rcp which 3 * scp - secure remote copy. This is basically patched BSD rcp which
4 * uses ssh to do the data transfer (instead of using rcmd). 4 * uses ssh to do the data transfer (instead of using rcmd).
@@ -434,7 +434,7 @@ main(int argc, char **argv)
434 } 434 }
435 /* 435 /*
436 * Finally check the exit status of the ssh process, if one was forked 436 * Finally check the exit status of the ssh process, if one was forked
437 * and no error has occured yet 437 * and no error has occurred yet
438 */ 438 */
439 if (do_cmd_pid != -1 && errs == 0) { 439 if (do_cmd_pid != -1 && errs == 0) {
440 if (remin != -1) 440 if (remin != -1)
diff --git a/servconf.c b/servconf.c
index 66e22979f..e7fc2a781 100644
--- a/servconf.c
+++ b/servconf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: servconf.c,v 1.186 2008/07/04 03:44:59 djm Exp $ */ 1/* $OpenBSD: servconf.c,v 1.194 2009/01/22 10:02:34 djm Exp $ */
2/* 2/*
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved 4 * All rights reserved
@@ -42,8 +42,8 @@
42#include "channels.h" 42#include "channels.h"
43#include "groupaccess.h" 43#include "groupaccess.h"
44 44
45static void add_listen_addr(ServerOptions *, char *, u_short); 45static void add_listen_addr(ServerOptions *, char *, int);
46static void add_one_listen_addr(ServerOptions *, char *, u_short); 46static void add_one_listen_addr(ServerOptions *, char *, int);
47 47
48/* Use of privilege separation or not */ 48/* Use of privilege separation or not */
49extern int use_privsep; 49extern int use_privsep;
@@ -127,6 +127,7 @@ initialize_server_options(ServerOptions *options)
127 options->num_permitted_opens = -1; 127 options->num_permitted_opens = -1;
128 options->adm_forced_command = NULL; 128 options->adm_forced_command = NULL;
129 options->chroot_directory = NULL; 129 options->chroot_directory = NULL;
130 options->zero_knowledge_password_authentication = -1;
130} 131}
131 132
132void 133void
@@ -258,6 +259,8 @@ fill_default_server_options(ServerOptions *options)
258 options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; 259 options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS;
259 if (options->permit_tun == -1) 260 if (options->permit_tun == -1)
260 options->permit_tun = SSH_TUNMODE_NO; 261 options->permit_tun = SSH_TUNMODE_NO;
262 if (options->zero_knowledge_password_authentication == -1)
263 options->zero_knowledge_password_authentication = 0;
261 264
262 /* Turn privilege separation on by default */ 265 /* Turn privilege separation on by default */
263 if (use_privsep == -1) 266 if (use_privsep == -1)
@@ -302,6 +305,7 @@ typedef enum {
302 sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel, 305 sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel,
303 sMatch, sPermitOpen, sForceCommand, sChrootDirectory, 306 sMatch, sPermitOpen, sForceCommand, sChrootDirectory,
304 sUsePrivilegeSeparation, sAllowAgentForwarding, 307 sUsePrivilegeSeparation, sAllowAgentForwarding,
308 sZeroKnowledgePasswordAuthentication,
305 sDeprecated, sUnsupported 309 sDeprecated, sUnsupported
306} ServerOpCodes; 310} ServerOpCodes;
307 311
@@ -368,6 +372,11 @@ static struct {
368 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, 372 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL },
369 { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, 373 { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL },
370 { "skeyauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, /* alias */ 374 { "skeyauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, /* alias */
375#ifdef JPAKE
376 { "zeroknowledgepasswordauthentication", sZeroKnowledgePasswordAuthentication, SSHCFG_ALL },
377#else
378 { "zeroknowledgepasswordauthentication", sUnsupported, SSHCFG_ALL },
379#endif
371 { "checkmail", sDeprecated, SSHCFG_GLOBAL }, 380 { "checkmail", sDeprecated, SSHCFG_GLOBAL },
372 { "listenaddress", sListenAddress, SSHCFG_GLOBAL }, 381 { "listenaddress", sListenAddress, SSHCFG_GLOBAL },
373 { "addressfamily", sAddressFamily, SSHCFG_GLOBAL }, 382 { "addressfamily", sAddressFamily, SSHCFG_GLOBAL },
@@ -380,7 +389,7 @@ static struct {
380 { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL }, 389 { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL },
381 { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL }, 390 { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL },
382 { "strictmodes", sStrictModes, SSHCFG_GLOBAL }, 391 { "strictmodes", sStrictModes, SSHCFG_GLOBAL },
383 { "permitemptypasswords", sEmptyPasswd, SSHCFG_GLOBAL }, 392 { "permitemptypasswords", sEmptyPasswd, SSHCFG_ALL },
384 { "permituserenvironment", sPermitUserEnvironment, SSHCFG_GLOBAL }, 393 { "permituserenvironment", sPermitUserEnvironment, SSHCFG_GLOBAL },
385 { "uselogin", sUseLogin, SSHCFG_GLOBAL }, 394 { "uselogin", sUseLogin, SSHCFG_GLOBAL },
386 { "compression", sCompression, SSHCFG_GLOBAL }, 395 { "compression", sCompression, SSHCFG_GLOBAL },
@@ -451,7 +460,7 @@ parse_token(const char *cp, const char *filename,
451} 460}
452 461
453static void 462static void
454add_listen_addr(ServerOptions *options, char *addr, u_short port) 463add_listen_addr(ServerOptions *options, char *addr, int port)
455{ 464{
456 u_int i; 465 u_int i;
457 466
@@ -467,7 +476,7 @@ add_listen_addr(ServerOptions *options, char *addr, u_short port)
467} 476}
468 477
469static void 478static void
470add_one_listen_addr(ServerOptions *options, char *addr, u_short port) 479add_one_listen_addr(ServerOptions *options, char *addr, int port)
471{ 480{
472 struct addrinfo hints, *ai, *aitop; 481 struct addrinfo hints, *ai, *aitop;
473 char strport[NI_MAXSERV]; 482 char strport[NI_MAXSERV];
@@ -477,7 +486,7 @@ add_one_listen_addr(ServerOptions *options, char *addr, u_short port)
477 hints.ai_family = options->address_family; 486 hints.ai_family = options->address_family;
478 hints.ai_socktype = SOCK_STREAM; 487 hints.ai_socktype = SOCK_STREAM;
479 hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; 488 hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0;
480 snprintf(strport, sizeof strport, "%u", port); 489 snprintf(strport, sizeof strport, "%d", port);
481 if ((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0) 490 if ((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0)
482 fatal("bad addr or host: %s (%s)", 491 fatal("bad addr or host: %s (%s)",
483 addr ? addr : "<NULL>", 492 addr ? addr : "<NULL>",
@@ -633,7 +642,7 @@ process_server_config_line(ServerOptions *options, char *line,
633 SyslogFacility *log_facility_ptr; 642 SyslogFacility *log_facility_ptr;
634 LogLevel *log_level_ptr; 643 LogLevel *log_level_ptr;
635 ServerOpCodes opcode; 644 ServerOpCodes opcode;
636 u_short port; 645 int port;
637 u_int i, flags = 0; 646 u_int i, flags = 0;
638 size_t len; 647 size_t len;
639 648
@@ -690,7 +699,7 @@ process_server_config_line(ServerOptions *options, char *line,
690 fatal("%s line %d: missing port number.", 699 fatal("%s line %d: missing port number.",
691 filename, linenum); 700 filename, linenum);
692 options->ports[options->num_ports++] = a2port(arg); 701 options->ports[options->num_ports++] = a2port(arg);
693 if (options->ports[options->num_ports-1] == 0) 702 if (options->ports[options->num_ports-1] <= 0)
694 fatal("%s line %d: Badly formatted port number.", 703 fatal("%s line %d: Badly formatted port number.",
695 filename, linenum); 704 filename, linenum);
696 break; 705 break;
@@ -743,7 +752,7 @@ process_server_config_line(ServerOptions *options, char *line,
743 p = cleanhostname(p); 752 p = cleanhostname(p);
744 if (arg == NULL) 753 if (arg == NULL)
745 port = 0; 754 port = 0;
746 else if ((port = a2port(arg)) == 0) 755 else if ((port = a2port(arg)) <= 0)
747 fatal("%s line %d: bad port number", filename, linenum); 756 fatal("%s line %d: bad port number", filename, linenum);
748 757
749 add_listen_addr(options, p, port); 758 add_listen_addr(options, p, port);
@@ -890,6 +899,10 @@ process_server_config_line(ServerOptions *options, char *line,
890 intptr = &options->password_authentication; 899 intptr = &options->password_authentication;
891 goto parse_flag; 900 goto parse_flag;
892 901
902 case sZeroKnowledgePasswordAuthentication:
903 intptr = &options->zero_knowledge_password_authentication;
904 goto parse_flag;
905
893 case sKbdInteractiveAuthentication: 906 case sKbdInteractiveAuthentication:
894 intptr = &options->kbd_interactive_authentication; 907 intptr = &options->kbd_interactive_authentication;
895 goto parse_flag; 908 goto parse_flag;
@@ -1252,7 +1265,7 @@ process_server_config_line(ServerOptions *options, char *line,
1252 fatal("%s line %d: missing host in PermitOpen", 1265 fatal("%s line %d: missing host in PermitOpen",
1253 filename, linenum); 1266 filename, linenum);
1254 p = cleanhostname(p); 1267 p = cleanhostname(p);
1255 if (arg == NULL || (port = a2port(arg)) == 0) 1268 if (arg == NULL || (port = a2port(arg)) <= 0)
1256 fatal("%s line %d: bad port number in " 1269 fatal("%s line %d: bad port number in "
1257 "PermitOpen", filename, linenum); 1270 "PermitOpen", filename, linenum);
1258 if (*activep && n == -1) 1271 if (*activep && n == -1)
@@ -1377,7 +1390,9 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth)
1377 M_CP_INTOPT(kerberos_authentication); 1390 M_CP_INTOPT(kerberos_authentication);
1378 M_CP_INTOPT(hostbased_authentication); 1391 M_CP_INTOPT(hostbased_authentication);
1379 M_CP_INTOPT(kbd_interactive_authentication); 1392 M_CP_INTOPT(kbd_interactive_authentication);
1393 M_CP_INTOPT(zero_knowledge_password_authentication);
1380 M_CP_INTOPT(permit_root_login); 1394 M_CP_INTOPT(permit_root_login);
1395 M_CP_INTOPT(permit_empty_passwd);
1381 1396
1382 M_CP_INTOPT(allow_tcp_forwarding); 1397 M_CP_INTOPT(allow_tcp_forwarding);
1383 M_CP_INTOPT(allow_agent_forwarding); 1398 M_CP_INTOPT(allow_agent_forwarding);
@@ -1439,7 +1454,7 @@ fmt_intarg(ServerOpCodes code, int val)
1439 if (code == sPermitRootLogin) { 1454 if (code == sPermitRootLogin) {
1440 switch (val) { 1455 switch (val) {
1441 case PERMIT_NO_PASSWD: 1456 case PERMIT_NO_PASSWD:
1442 return "without-passord"; 1457 return "without-password";
1443 case PERMIT_FORCED_ONLY: 1458 case PERMIT_FORCED_ONLY:
1444 return "forced-commands-only"; 1459 return "forced-commands-only";
1445 case PERMIT_YES: 1460 case PERMIT_YES:
@@ -1544,11 +1559,15 @@ dump_config(ServerOptions *o)
1544 } 1559 }
1545 1560
1546 /* integer arguments */ 1561 /* integer arguments */
1562#ifdef USE_PAM
1563 dump_cfg_int(sUsePAM, o->use_pam);
1564#endif
1547 dump_cfg_int(sServerKeyBits, o->server_key_bits); 1565 dump_cfg_int(sServerKeyBits, o->server_key_bits);
1548 dump_cfg_int(sLoginGraceTime, o->login_grace_time); 1566 dump_cfg_int(sLoginGraceTime, o->login_grace_time);
1549 dump_cfg_int(sKeyRegenerationTime, o->key_regeneration_time); 1567 dump_cfg_int(sKeyRegenerationTime, o->key_regeneration_time);
1550 dump_cfg_int(sX11DisplayOffset, o->x11_display_offset); 1568 dump_cfg_int(sX11DisplayOffset, o->x11_display_offset);
1551 dump_cfg_int(sMaxAuthTries, o->max_authtries); 1569 dump_cfg_int(sMaxAuthTries, o->max_authtries);
1570 dump_cfg_int(sMaxSessions, o->max_sessions);
1552 dump_cfg_int(sClientAliveInterval, o->client_alive_interval); 1571 dump_cfg_int(sClientAliveInterval, o->client_alive_interval);
1553 dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max); 1572 dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max);
1554 1573
@@ -1562,12 +1581,22 @@ dump_config(ServerOptions *o)
1562 o->hostbased_uses_name_from_packet_only); 1581 o->hostbased_uses_name_from_packet_only);
1563 dump_cfg_fmtint(sRSAAuthentication, o->rsa_authentication); 1582 dump_cfg_fmtint(sRSAAuthentication, o->rsa_authentication);
1564 dump_cfg_fmtint(sPubkeyAuthentication, o->pubkey_authentication); 1583 dump_cfg_fmtint(sPubkeyAuthentication, o->pubkey_authentication);
1584#ifdef KRB5
1565 dump_cfg_fmtint(sKerberosAuthentication, o->kerberos_authentication); 1585 dump_cfg_fmtint(sKerberosAuthentication, o->kerberos_authentication);
1566 dump_cfg_fmtint(sKerberosOrLocalPasswd, o->kerberos_or_local_passwd); 1586 dump_cfg_fmtint(sKerberosOrLocalPasswd, o->kerberos_or_local_passwd);
1567 dump_cfg_fmtint(sKerberosTicketCleanup, o->kerberos_ticket_cleanup); 1587 dump_cfg_fmtint(sKerberosTicketCleanup, o->kerberos_ticket_cleanup);
1588# ifdef USE_AFS
1568 dump_cfg_fmtint(sKerberosGetAFSToken, o->kerberos_get_afs_token); 1589 dump_cfg_fmtint(sKerberosGetAFSToken, o->kerberos_get_afs_token);
1590# endif
1591#endif
1592#ifdef GSSAPI
1569 dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); 1593 dump_cfg_fmtint(sGssAuthentication, o->gss_authentication);
1570 dump_cfg_fmtint(sGssCleanupCreds, o->gss_cleanup_creds); 1594 dump_cfg_fmtint(sGssCleanupCreds, o->gss_cleanup_creds);
1595#endif
1596#ifdef JPAKE
1597 dump_cfg_fmtint(sZeroKnowledgePasswordAuthentication,
1598 o->zero_knowledge_password_authentication);
1599#endif
1571 dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); 1600 dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication);
1572 dump_cfg_fmtint(sKbdInteractiveAuthentication, 1601 dump_cfg_fmtint(sKbdInteractiveAuthentication,
1573 o->kbd_interactive_authentication); 1602 o->kbd_interactive_authentication);
@@ -1626,7 +1655,5 @@ dump_config(ServerOptions *o)
1626 } 1655 }
1627 dump_cfg_string(sPermitTunnel, s); 1656 dump_cfg_string(sPermitTunnel, s);
1628 1657
1629 printf("permitopen");
1630 channel_print_adm_permitted_opens(); 1658 channel_print_adm_permitted_opens();
1631 printf("\n");
1632} 1659}
diff --git a/servconf.h b/servconf.h
index 40ac64f13..b3ac7da4b 100644
--- a/servconf.h
+++ b/servconf.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: servconf.h,v 1.85 2008/06/10 04:50:25 dtucker Exp $ */ 1/* $OpenBSD: servconf.h,v 1.87 2009/01/22 10:02:34 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -41,9 +41,9 @@
41#define INTERNAL_SFTP_NAME "internal-sftp" 41#define INTERNAL_SFTP_NAME "internal-sftp"
42 42
43typedef struct { 43typedef struct {
44 u_int num_ports; 44 u_int num_ports;
45 u_int ports_from_cmdline; 45 u_int ports_from_cmdline;
46 u_short ports[MAX_PORTS]; /* Port number to listen on. */ 46 int ports[MAX_PORTS]; /* Port number to listen on. */
47 char *listen_addr; /* Address on which the server listens. */ 47 char *listen_addr; /* Address on which the server listens. */
48 struct addrinfo *listen_addrs; /* Addresses on which the server listens. */ 48 struct addrinfo *listen_addrs; /* Addresses on which the server listens. */
49 int address_family; /* Address family used by the server. */ 49 int address_family; /* Address family used by the server. */
@@ -96,6 +96,8 @@ typedef struct {
96 * authentication. */ 96 * authentication. */
97 int kbd_interactive_authentication; /* If true, permit */ 97 int kbd_interactive_authentication; /* If true, permit */
98 int challenge_response_authentication; 98 int challenge_response_authentication;
99 int zero_knowledge_password_authentication;
100 /* If true, permit jpake auth */
99 int permit_empty_passwd; /* If false, do not permit empty 101 int permit_empty_passwd; /* If false, do not permit empty
100 * passwords. */ 102 * passwords. */
101 int permit_user_env; /* If true, read ~/.ssh/environment */ 103 int permit_user_env; /* If true, read ~/.ssh/environment */
diff --git a/serverloop.c b/serverloop.c
index 77d9dee75..81cafe6ad 100644
--- a/serverloop.c
+++ b/serverloop.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: serverloop.c,v 1.153 2008/06/30 12:15:39 djm Exp $ */ 1/* $OpenBSD: serverloop.c,v 1.157 2009/02/12 03:16:01 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -942,7 +942,7 @@ server_request_direct_tcpip(void)
942{ 942{
943 Channel *c; 943 Channel *c;
944 char *target, *originator; 944 char *target, *originator;
945 int target_port, originator_port; 945 u_short target_port, originator_port;
946 946
947 target = packet_get_string(NULL); 947 target = packet_get_string(NULL);
948 target_port = packet_get_int(); 948 target_port = packet_get_int();
@@ -1095,7 +1095,7 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt)
1095{ 1095{
1096 char *rtype; 1096 char *rtype;
1097 int want_reply; 1097 int want_reply;
1098 int success = 0; 1098 int success = 0, allocated_listen_port = 0;
1099 1099
1100 rtype = packet_get_string(NULL); 1100 rtype = packet_get_string(NULL);
1101 want_reply = packet_get_char(); 1101 want_reply = packet_get_char();
@@ -1117,7 +1117,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt)
1117 1117
1118 /* check permissions */ 1118 /* check permissions */
1119 if (!options.allow_tcp_forwarding || 1119 if (!options.allow_tcp_forwarding ||
1120 no_port_forwarding_flag 1120 no_port_forwarding_flag ||
1121 (!want_reply && listen_port == 0)
1121#ifndef NO_IPPORT_RESERVED_CONCEPT 1122#ifndef NO_IPPORT_RESERVED_CONCEPT
1122 || (listen_port < IPPORT_RESERVED && pw->pw_uid != 0) 1123 || (listen_port < IPPORT_RESERVED && pw->pw_uid != 0)
1123#endif 1124#endif
@@ -1127,7 +1128,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt)
1127 } else { 1128 } else {
1128 /* Start listening on the port */ 1129 /* Start listening on the port */
1129 success = channel_setup_remote_fwd_listener( 1130 success = channel_setup_remote_fwd_listener(
1130 listen_address, listen_port, options.gateway_ports); 1131 listen_address, listen_port,
1132 &allocated_listen_port, options.gateway_ports);
1131 } 1133 }
1132 xfree(listen_address); 1134 xfree(listen_address);
1133 } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) { 1135 } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) {
@@ -1149,6 +1151,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt)
1149 if (want_reply) { 1151 if (want_reply) {
1150 packet_start(success ? 1152 packet_start(success ?
1151 SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE); 1153 SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE);
1154 if (success && allocated_listen_port > 0)
1155 packet_put_int(allocated_listen_port);
1152 packet_send(); 1156 packet_send();
1153 packet_write_wait(); 1157 packet_write_wait();
1154 } 1158 }
@@ -1202,9 +1206,9 @@ server_init_dispatch_20(void)
1202 dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req); 1206 dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req);
1203 dispatch_set(SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); 1207 dispatch_set(SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust);
1204 dispatch_set(SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request); 1208 dispatch_set(SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request);
1205 dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &channel_input_status_confirm);
1206 dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &channel_input_status_confirm);
1207 /* client_alive */ 1209 /* client_alive */
1210 dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive);
1211 dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive);
1208 dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive); 1212 dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive);
1209 dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive); 1213 dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive);
1210 /* rekeying */ 1214 /* rekeying */
diff --git a/session.c b/session.c
index 93babf957..f2549e0cd 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: session.c,v 1.241 2008/06/16 13:22:53 dtucker Exp $ */ 1/* $OpenBSD: session.c,v 1.245 2009/01/22 09:46:01 djm Exp $ */
2/* 2/*
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved 4 * All rights reserved
@@ -95,6 +95,12 @@
95#include <kafs.h> 95#include <kafs.h>
96#endif 96#endif
97 97
98#define IS_INTERNAL_SFTP(c) \
99 (!strncmp(c, INTERNAL_SFTP_NAME, sizeof(INTERNAL_SFTP_NAME) - 1) && \
100 (c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\0' || \
101 c[sizeof(INTERNAL_SFTP_NAME) - 1] == ' ' || \
102 c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\t'))
103
98/* func */ 104/* func */
99 105
100Session *session_new(void); 106Session *session_new(void);
@@ -228,7 +234,7 @@ auth_input_request_forwarding(struct passwd * pw)
228 SSH_CHANNEL_AUTH_SOCKET, sock, sock, -1, 234 SSH_CHANNEL_AUTH_SOCKET, sock, sock, -1,
229 CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, 235 CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT,
230 0, "auth socket", 1); 236 0, "auth socket", 1);
231 strlcpy(nc->path, auth_sock_name, sizeof(nc->path)); 237 nc->path = xstrdup(auth_sock_name);
232 return 1; 238 return 1;
233 239
234 authsock_err: 240 authsock_err:
@@ -781,7 +787,7 @@ do_exec(Session *s, const char *command)
781 if (options.adm_forced_command) { 787 if (options.adm_forced_command) {
782 original_command = command; 788 original_command = command;
783 command = options.adm_forced_command; 789 command = options.adm_forced_command;
784 if (strcmp(INTERNAL_SFTP_NAME, command) == 0) 790 if (IS_INTERNAL_SFTP(command))
785 s->is_subsystem = SUBSYSTEM_INT_SFTP; 791 s->is_subsystem = SUBSYSTEM_INT_SFTP;
786 else if (s->is_subsystem) 792 else if (s->is_subsystem)
787 s->is_subsystem = SUBSYSTEM_EXT; 793 s->is_subsystem = SUBSYSTEM_EXT;
@@ -789,7 +795,7 @@ do_exec(Session *s, const char *command)
789 } else if (forced_command) { 795 } else if (forced_command) {
790 original_command = command; 796 original_command = command;
791 command = forced_command; 797 command = forced_command;
792 if (strcmp(INTERNAL_SFTP_NAME, command) == 0) 798 if (IS_INTERNAL_SFTP(command))
793 s->is_subsystem = SUBSYSTEM_INT_SFTP; 799 s->is_subsystem = SUBSYSTEM_INT_SFTP;
794 else if (s->is_subsystem) 800 else if (s->is_subsystem)
795 s->is_subsystem = SUBSYSTEM_EXT; 801 s->is_subsystem = SUBSYSTEM_EXT;
@@ -926,7 +932,7 @@ check_quietlogin(Session *s, const char *command)
926 932
927/* 933/*
928 * Sets the value of the given variable in the environment. If the variable 934 * Sets the value of the given variable in the environment. If the variable
929 * already exists, its value is overriden. 935 * already exists, its value is overridden.
930 */ 936 */
931void 937void
932child_set_env(char ***envp, u_int *envsizep, const char *name, 938child_set_env(char ***envp, u_int *envsizep, const char *name,
@@ -1789,7 +1795,7 @@ do_child(Session *s, const char *command)
1789 char *p, *args; 1795 char *p, *args;
1790 1796
1791 setproctitle("%s@internal-sftp-server", s->pw->pw_name); 1797 setproctitle("%s@internal-sftp-server", s->pw->pw_name);
1792 args = strdup(command ? command : "sftp-server"); 1798 args = xstrdup(command ? command : "sftp-server");
1793 for (i = 0, (p = strtok(args, " ")); p; (p = strtok(NULL, " "))) 1799 for (i = 0, (p = strtok(args, " ")); p; (p = strtok(NULL, " ")))
1794 if (i < ARGV_MAX - 1) 1800 if (i < ARGV_MAX - 1)
1795 argv[i++] = p; 1801 argv[i++] = p;
diff --git a/sftp-glob.h b/sftp-glob.h
deleted file mode 100644
index f879e8719..000000000
--- a/sftp-glob.h
+++ /dev/null
@@ -1,37 +0,0 @@
1/* $OpenBSD: sftp-glob.h,v 1.8 2002/09/11 22:41:50 djm Exp $ */
2
3/*
4 * Copyright (c) 2001,2002 Damien Miller. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27/* Remote sftp filename globbing */
28
29#ifndef _SFTP_GLOB_H
30#define _SFTP_GLOB_H
31
32#include "sftp-client.h"
33
34int remote_glob(struct sftp_conn *, const char *, int,
35 int (*)(const char *, int), glob_t *);
36
37#endif
diff --git a/sftp-int.c b/sftp-int.c
deleted file mode 100644
index c93eaabff..000000000
--- a/sftp-int.c
+++ /dev/null
@@ -1,1191 +0,0 @@
1/*
2 * Copyright (c) 2001,2002 Damien Miller. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25/* XXX: recursive operations */
26
27#include "includes.h"
28RCSID("$OpenBSD: sftp-int.c,v 1.62 2003/08/25 08:13:09 fgsch Exp $");
29
30#include "buffer.h"
31#include "xmalloc.h"
32#include "log.h"
33#include "pathnames.h"
34
35#include "sftp.h"
36#include "sftp-common.h"
37#include "sftp-glob.h"
38#include "sftp-client.h"
39#include "sftp-int.h"
40
41/* File to read commands from */
42extern FILE *infile;
43
44/* Size of buffer used when copying files */
45extern size_t copy_buffer_len;
46
47/* Number of concurrent outstanding requests */
48extern int num_requests;
49
50/* This is set to 0 if the progressmeter is not desired. */
51int showprogress = 1;
52
53/* Seperators for interactive commands */
54#define WHITESPACE " \t\r\n"
55
56/* Define what type of ls view (0 - multi-column) */
57#define LONG_VIEW 1 /* Full view ala ls -l */
58#define SHORT_VIEW 2 /* Single row view ala ls -1 */
59
60/* Commands for interactive mode */
61#define I_CHDIR 1
62#define I_CHGRP 2
63#define I_CHMOD 3
64#define I_CHOWN 4
65#define I_GET 5
66#define I_HELP 6
67#define I_LCHDIR 7
68#define I_LLS 8
69#define I_LMKDIR 9
70#define I_LPWD 10
71#define I_LS 11
72#define I_LUMASK 12
73#define I_MKDIR 13
74#define I_PUT 14
75#define I_PWD 15
76#define I_QUIT 16
77#define I_RENAME 17
78#define I_RM 18
79#define I_RMDIR 19
80#define I_SHELL 20
81#define I_SYMLINK 21
82#define I_VERSION 22
83#define I_PROGRESS 23
84
85struct CMD {
86 const char *c;
87 const int n;
88};
89
90static const struct CMD cmds[] = {
91 { "bye", I_QUIT },
92 { "cd", I_CHDIR },
93 { "chdir", I_CHDIR },
94 { "chgrp", I_CHGRP },
95 { "chmod", I_CHMOD },
96 { "chown", I_CHOWN },
97 { "dir", I_LS },
98 { "exit", I_QUIT },
99 { "get", I_GET },
100 { "mget", I_GET },
101 { "help", I_HELP },
102 { "lcd", I_LCHDIR },
103 { "lchdir", I_LCHDIR },
104 { "lls", I_LLS },
105 { "lmkdir", I_LMKDIR },
106 { "ln", I_SYMLINK },
107 { "lpwd", I_LPWD },
108 { "ls", I_LS },
109 { "lumask", I_LUMASK },
110 { "mkdir", I_MKDIR },
111 { "progress", I_PROGRESS },
112 { "put", I_PUT },
113 { "mput", I_PUT },
114 { "pwd", I_PWD },
115 { "quit", I_QUIT },
116 { "rename", I_RENAME },
117 { "rm", I_RM },
118 { "rmdir", I_RMDIR },
119 { "symlink", I_SYMLINK },
120 { "version", I_VERSION },
121 { "!", I_SHELL },
122 { "?", I_HELP },
123 { NULL, -1}
124};
125
126static void
127help(void)
128{
129 printf("Available commands:\n");
130 printf("cd path Change remote directory to 'path'\n");
131 printf("lcd path Change local directory to 'path'\n");
132 printf("chgrp grp path Change group of file 'path' to 'grp'\n");
133 printf("chmod mode path Change permissions of file 'path' to 'mode'\n");
134 printf("chown own path Change owner of file 'path' to 'own'\n");
135 printf("help Display this help text\n");
136 printf("get remote-path [local-path] Download file\n");
137 printf("lls [ls-options [path]] Display local directory listing\n");
138 printf("ln oldpath newpath Symlink remote file\n");
139 printf("lmkdir path Create local directory\n");
140 printf("lpwd Print local working directory\n");
141 printf("ls [path] Display remote directory listing\n");
142 printf("lumask umask Set local umask to 'umask'\n");
143 printf("mkdir path Create remote directory\n");
144 printf("progress Toggle display of progress meter\n");
145 printf("put local-path [remote-path] Upload file\n");
146 printf("pwd Display remote working directory\n");
147 printf("exit Quit sftp\n");
148 printf("quit Quit sftp\n");
149 printf("rename oldpath newpath Rename remote file\n");
150 printf("rmdir path Remove remote directory\n");
151 printf("rm path Delete remote file\n");
152 printf("symlink oldpath newpath Symlink remote file\n");
153 printf("version Show SFTP version\n");
154 printf("!command Execute 'command' in local shell\n");
155 printf("! Escape to local shell\n");
156 printf("? Synonym for help\n");
157}
158
159static void
160local_do_shell(const char *args)
161{
162 int status;
163 char *shell;
164 pid_t pid;
165
166 if (!*args)
167 args = NULL;
168
169 if ((shell = getenv("SHELL")) == NULL)
170 shell = _PATH_BSHELL;
171
172 if ((pid = fork()) == -1)
173 fatal("Couldn't fork: %s", strerror(errno));
174
175 if (pid == 0) {
176 /* XXX: child has pipe fds to ssh subproc open - issue? */
177 if (args) {
178 debug3("Executing %s -c \"%s\"", shell, args);
179 execl(shell, shell, "-c", args, (char *)NULL);
180 } else {
181 debug3("Executing %s", shell);
182 execl(shell, shell, (char *)NULL);
183 }
184 fprintf(stderr, "Couldn't execute \"%s\": %s\n", shell,
185 strerror(errno));
186 _exit(1);
187 }
188 while (waitpid(pid, &status, 0) == -1)
189 if (errno != EINTR)
190 fatal("Couldn't wait for child: %s", strerror(errno));
191 if (!WIFEXITED(status))
192 error("Shell exited abormally");
193 else if (WEXITSTATUS(status))
194 error("Shell exited with status %d", WEXITSTATUS(status));
195}
196
197static void
198local_do_ls(const char *args)
199{
200 if (!args || !*args)
201 local_do_shell(_PATH_LS);
202 else {
203 int len = strlen(_PATH_LS " ") + strlen(args) + 1;
204 char *buf = xmalloc(len);
205
206 /* XXX: quoting - rip quoting code from ftp? */
207 snprintf(buf, len, _PATH_LS " %s", args);
208 local_do_shell(buf);
209 xfree(buf);
210 }
211}
212
213/* Strip one path (usually the pwd) from the start of another */
214static char *
215path_strip(char *path, char *strip)
216{
217 size_t len;
218
219 if (strip == NULL)
220 return (xstrdup(path));
221
222 len = strlen(strip);
223 if (strip != NULL && strncmp(path, strip, len) == 0) {
224 if (strip[len - 1] != '/' && path[len] == '/')
225 len++;
226 return (xstrdup(path + len));
227 }
228
229 return (xstrdup(path));
230}
231
232static char *
233path_append(char *p1, char *p2)
234{
235 char *ret;
236 int len = strlen(p1) + strlen(p2) + 2;
237
238 ret = xmalloc(len);
239 strlcpy(ret, p1, len);
240 if (p1[strlen(p1) - 1] != '/')
241 strlcat(ret, "/", len);
242 strlcat(ret, p2, len);
243
244 return(ret);
245}
246
247static char *
248make_absolute(char *p, char *pwd)
249{
250 char *abs;
251
252 /* Derelativise */
253 if (p && p[0] != '/') {
254 abs = path_append(pwd, p);
255 xfree(p);
256 return(abs);
257 } else
258 return(p);
259}
260
261static int
262infer_path(const char *p, char **ifp)
263{
264 char *cp;
265
266 cp = strrchr(p, '/');
267 if (cp == NULL) {
268 *ifp = xstrdup(p);
269 return(0);
270 }
271
272 if (!cp[1]) {
273 error("Invalid path");
274 return(-1);
275 }
276
277 *ifp = xstrdup(cp + 1);
278 return(0);
279}
280
281static int
282parse_getput_flags(const char **cpp, int *pflag)
283{
284 const char *cp = *cpp;
285
286 /* Check for flags */
287 if (cp[0] == '-' && cp[1] && strchr(WHITESPACE, cp[2])) {
288 switch (cp[1]) {
289 case 'p':
290 case 'P':
291 *pflag = 1;
292 break;
293 default:
294 error("Invalid flag -%c", cp[1]);
295 return(-1);
296 }
297 cp += 2;
298 *cpp = cp + strspn(cp, WHITESPACE);
299 }
300
301 return(0);
302}
303
304static int
305parse_ls_flags(const char **cpp, int *lflag)
306{
307 const char *cp = *cpp;
308
309 /* Check for flags */
310 if (cp++[0] == '-') {
311 for(; strchr(WHITESPACE, *cp) == NULL; cp++) {
312 switch (*cp) {
313 case 'l':
314 *lflag = LONG_VIEW;
315 break;
316 case '1':
317 *lflag = SHORT_VIEW;
318 break;
319 default:
320 error("Invalid flag -%c", *cp);
321 return(-1);
322 }
323 }
324 *cpp = cp + strspn(cp, WHITESPACE);
325 }
326
327 return(0);
328}
329
330static int
331get_pathname(const char **cpp, char **path)
332{
333 const char *cp = *cpp, *end;
334 char quot;
335 int i, j;
336
337 cp += strspn(cp, WHITESPACE);
338 if (!*cp) {
339 *cpp = cp;
340 *path = NULL;
341 return (0);
342 }
343
344 *path = xmalloc(strlen(cp) + 1);
345
346 /* Check for quoted filenames */
347 if (*cp == '\"' || *cp == '\'') {
348 quot = *cp++;
349
350 /* Search for terminating quote, unescape some chars */
351 for (i = j = 0; i <= strlen(cp); i++) {
352 if (cp[i] == quot) { /* Found quote */
353 (*path)[j] = '\0';
354 i++;
355 break;
356 }
357 if (cp[i] == '\0') { /* End of string */
358 error("Unterminated quote");
359 goto fail;
360 }
361 if (cp[i] == '\\') { /* Escaped characters */
362 i++;
363 if (cp[i] != '\'' && cp[i] != '\"' &&
364 cp[i] != '\\') {
365 error("Bad escaped character '\%c'",
366 cp[i]);
367 goto fail;
368 }
369 }
370 (*path)[j++] = cp[i];
371 }
372
373 if (j == 0) {
374 error("Empty quotes");
375 goto fail;
376 }
377 *cpp = cp + i + strspn(cp + i, WHITESPACE);
378 } else {
379 /* Read to end of filename */
380 end = strpbrk(cp, WHITESPACE);
381 if (end == NULL)
382 end = strchr(cp, '\0');
383 *cpp = end + strspn(end, WHITESPACE);
384
385 memcpy(*path, cp, end - cp);
386 (*path)[end - cp] = '\0';
387 }
388 return (0);
389
390 fail:
391 xfree(*path);
392 *path = NULL;
393 return (-1);
394}
395
396static int
397is_dir(char *path)
398{
399 struct stat sb;
400
401 /* XXX: report errors? */
402 if (stat(path, &sb) == -1)
403 return(0);
404
405 return(sb.st_mode & S_IFDIR);
406}
407
408static int
409is_reg(char *path)
410{
411 struct stat sb;
412
413 if (stat(path, &sb) == -1)
414 fatal("stat %s: %s", path, strerror(errno));
415
416 return(S_ISREG(sb.st_mode));
417}
418
419static int
420remote_is_dir(struct sftp_conn *conn, char *path)
421{
422 Attrib *a;
423
424 /* XXX: report errors? */
425 if ((a = do_stat(conn, path, 1)) == NULL)
426 return(0);
427 if (!(a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS))
428 return(0);
429 return(a->perm & S_IFDIR);
430}
431
432static int
433process_get(struct sftp_conn *conn, char *src, char *dst, char *pwd, int pflag)
434{
435 char *abs_src = NULL;
436 char *abs_dst = NULL;
437 char *tmp;
438 glob_t g;
439 int err = 0;
440 int i;
441
442 abs_src = xstrdup(src);
443 abs_src = make_absolute(abs_src, pwd);
444
445 memset(&g, 0, sizeof(g));
446 debug3("Looking up %s", abs_src);
447 if (remote_glob(conn, abs_src, 0, NULL, &g)) {
448 error("File \"%s\" not found.", abs_src);
449 err = -1;
450 goto out;
451 }
452
453 /* If multiple matches, dst must be a directory or unspecified */
454 if (g.gl_matchc > 1 && dst && !is_dir(dst)) {
455 error("Multiple files match, but \"%s\" is not a directory",
456 dst);
457 err = -1;
458 goto out;
459 }
460
461 for (i = 0; g.gl_pathv[i]; i++) {
462 if (infer_path(g.gl_pathv[i], &tmp)) {
463 err = -1;
464 goto out;
465 }
466
467 if (g.gl_matchc == 1 && dst) {
468 /* If directory specified, append filename */
469 if (is_dir(dst)) {
470 if (infer_path(g.gl_pathv[0], &tmp)) {
471 err = 1;
472 goto out;
473 }
474 abs_dst = path_append(dst, tmp);
475 xfree(tmp);
476 } else
477 abs_dst = xstrdup(dst);
478 } else if (dst) {
479 abs_dst = path_append(dst, tmp);
480 xfree(tmp);
481 } else
482 abs_dst = tmp;
483
484 printf("Fetching %s to %s\n", g.gl_pathv[i], abs_dst);
485 if (do_download(conn, g.gl_pathv[i], abs_dst, pflag) == -1)
486 err = -1;
487 xfree(abs_dst);
488 abs_dst = NULL;
489 }
490
491out:
492 xfree(abs_src);
493 if (abs_dst)
494 xfree(abs_dst);
495 globfree(&g);
496 return(err);
497}
498
499static int
500process_put(struct sftp_conn *conn, char *src, char *dst, char *pwd, int pflag)
501{
502 char *tmp_dst = NULL;
503 char *abs_dst = NULL;
504 char *tmp;
505 glob_t g;
506 int err = 0;
507 int i;
508
509 if (dst) {
510 tmp_dst = xstrdup(dst);
511 tmp_dst = make_absolute(tmp_dst, pwd);
512 }
513
514 memset(&g, 0, sizeof(g));
515 debug3("Looking up %s", src);
516 if (glob(src, 0, NULL, &g)) {
517 error("File \"%s\" not found.", src);
518 err = -1;
519 goto out;
520 }
521
522 /* If multiple matches, dst may be directory or unspecified */
523 if (g.gl_matchc > 1 && tmp_dst && !remote_is_dir(conn, tmp_dst)) {
524 error("Multiple files match, but \"%s\" is not a directory",
525 tmp_dst);
526 err = -1;
527 goto out;
528 }
529
530 for (i = 0; g.gl_pathv[i]; i++) {
531 if (!is_reg(g.gl_pathv[i])) {
532 error("skipping non-regular file %s",
533 g.gl_pathv[i]);
534 continue;
535 }
536 if (infer_path(g.gl_pathv[i], &tmp)) {
537 err = -1;
538 goto out;
539 }
540
541 if (g.gl_matchc == 1 && tmp_dst) {
542 /* If directory specified, append filename */
543 if (remote_is_dir(conn, tmp_dst)) {
544 if (infer_path(g.gl_pathv[0], &tmp)) {
545 err = 1;
546 goto out;
547 }
548 abs_dst = path_append(tmp_dst, tmp);
549 xfree(tmp);
550 } else
551 abs_dst = xstrdup(tmp_dst);
552
553 } else if (tmp_dst) {
554 abs_dst = path_append(tmp_dst, tmp);
555 xfree(tmp);
556 } else
557 abs_dst = make_absolute(tmp, pwd);
558
559 printf("Uploading %s to %s\n", g.gl_pathv[i], abs_dst);
560 if (do_upload(conn, g.gl_pathv[i], abs_dst, pflag) == -1)
561 err = -1;
562 }
563
564out:
565 if (abs_dst)
566 xfree(abs_dst);
567 if (tmp_dst)
568 xfree(tmp_dst);
569 globfree(&g);
570 return(err);
571}
572
573static int
574sdirent_comp(const void *aa, const void *bb)
575{
576 SFTP_DIRENT *a = *(SFTP_DIRENT **)aa;
577 SFTP_DIRENT *b = *(SFTP_DIRENT **)bb;
578
579 return (strcmp(a->filename, b->filename));
580}
581
582/* sftp ls.1 replacement for directories */
583static int
584do_ls_dir(struct sftp_conn *conn, char *path, char *strip_path, int lflag)
585{
586 int n, c = 1, colspace = 0, columns = 1;
587 SFTP_DIRENT **d;
588
589 if ((n = do_readdir(conn, path, &d)) != 0)
590 return (n);
591
592 if (!(lflag & SHORT_VIEW)) {
593 int m = 0, width = 80;
594 struct winsize ws;
595
596 /* Count entries for sort and find longest filename */
597 for (n = 0; d[n] != NULL; n++)
598 m = MAX(m, strlen(d[n]->filename));
599
600 if (ioctl(fileno(stdin), TIOCGWINSZ, &ws) != -1)
601 width = ws.ws_col;
602
603 columns = width / (m + 2);
604 columns = MAX(columns, 1);
605 colspace = width / columns;
606 }
607
608 qsort(d, n, sizeof(*d), sdirent_comp);
609
610 for (n = 0; d[n] != NULL; n++) {
611 char *tmp, *fname;
612
613 tmp = path_append(path, d[n]->filename);
614 fname = path_strip(tmp, strip_path);
615 xfree(tmp);
616
617 if (lflag & LONG_VIEW) {
618 char *lname;
619 struct stat sb;
620
621 memset(&sb, 0, sizeof(sb));
622 attrib_to_stat(&d[n]->a, &sb);
623 lname = ls_file(fname, &sb, 1);
624 printf("%s\n", lname);
625 xfree(lname);
626 } else {
627 printf("%-*s", colspace, fname);
628 if (c >= columns) {
629 printf("\n");
630 c = 1;
631 } else
632 c++;
633 }
634
635 xfree(fname);
636 }
637
638 if (!(lflag & LONG_VIEW) && (c != 1))
639 printf("\n");
640
641 free_sftp_dirents(d);
642 return (0);
643}
644
645/* sftp ls.1 replacement which handles path globs */
646static int
647do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path,
648 int lflag)
649{
650 glob_t g;
651 int i, c = 1, colspace = 0, columns = 1;
652 Attrib *a;
653
654 memset(&g, 0, sizeof(g));
655
656 if (remote_glob(conn, path, GLOB_MARK|GLOB_NOCHECK|GLOB_BRACE,
657 NULL, &g)) {
658 error("Can't ls: \"%s\" not found", path);
659 return (-1);
660 }
661
662 /*
663 * If the glob returns a single match, which is the same as the
664 * input glob, and it is a directory, then just list its contents
665 */
666 if (g.gl_pathc == 1 &&
667 strncmp(path, g.gl_pathv[0], strlen(g.gl_pathv[0]) - 1) == 0) {
668 if ((a = do_lstat(conn, path, 1)) == NULL) {
669 globfree(&g);
670 return (-1);
671 }
672 if ((a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) &&
673 S_ISDIR(a->perm)) {
674 globfree(&g);
675 return (do_ls_dir(conn, path, strip_path, lflag));
676 }
677 }
678
679 if (!(lflag & SHORT_VIEW)) {
680 int m = 0, width = 80;
681 struct winsize ws;
682
683 /* Count entries for sort and find longest filename */
684 for (i = 0; g.gl_pathv[i]; i++)
685 m = MAX(m, strlen(g.gl_pathv[i]));
686
687 if (ioctl(fileno(stdin), TIOCGWINSZ, &ws) != -1)
688 width = ws.ws_col;
689
690 columns = width / (m + 2);
691 columns = MAX(columns, 1);
692 colspace = width / columns;
693 }
694
695 for (i = 0; g.gl_pathv[i]; i++) {
696 char *fname;
697
698 fname = path_strip(g.gl_pathv[i], strip_path);
699
700 if (lflag & LONG_VIEW) {
701 char *lname;
702 struct stat sb;
703
704 /*
705 * XXX: this is slow - 1 roundtrip per path
706 * A solution to this is to fork glob() and
707 * build a sftp specific version which keeps the
708 * attribs (which currently get thrown away)
709 * that the server returns as well as the filenames.
710 */
711 memset(&sb, 0, sizeof(sb));
712 a = do_lstat(conn, g.gl_pathv[i], 1);
713 if (a != NULL)
714 attrib_to_stat(a, &sb);
715 lname = ls_file(fname, &sb, 1);
716 printf("%s\n", lname);
717 xfree(lname);
718 } else {
719 printf("%-*s", colspace, fname);
720 if (c >= columns) {
721 printf("\n");
722 c = 1;
723 } else
724 c++;
725 }
726 xfree(fname);
727 }
728
729 if (!(lflag & LONG_VIEW) && (c != 1))
730 printf("\n");
731
732 if (g.gl_pathc)
733 globfree(&g);
734
735 return (0);
736}
737
738static int
739parse_args(const char **cpp, int *pflag, int *lflag, int *iflag,
740 unsigned long *n_arg, char **path1, char **path2)
741{
742 const char *cmd, *cp = *cpp;
743 char *cp2;
744 int base = 0;
745 long l;
746 int i, cmdnum;
747
748 /* Skip leading whitespace */
749 cp = cp + strspn(cp, WHITESPACE);
750
751 /* Ignore blank lines and lines which begin with comment '#' char */
752 if (*cp == '\0' || *cp == '#')
753 return (0);
754
755 /* Check for leading '-' (disable error processing) */
756 *iflag = 0;
757 if (*cp == '-') {
758 *iflag = 1;
759 cp++;
760 }
761
762 /* Figure out which command we have */
763 for (i = 0; cmds[i].c; i++) {
764 int cmdlen = strlen(cmds[i].c);
765
766 /* Check for command followed by whitespace */
767 if (!strncasecmp(cp, cmds[i].c, cmdlen) &&
768 strchr(WHITESPACE, cp[cmdlen])) {
769 cp += cmdlen;
770 cp = cp + strspn(cp, WHITESPACE);
771 break;
772 }
773 }
774 cmdnum = cmds[i].n;
775 cmd = cmds[i].c;
776
777 /* Special case */
778 if (*cp == '!') {
779 cp++;
780 cmdnum = I_SHELL;
781 } else if (cmdnum == -1) {
782 error("Invalid command.");
783 return (-1);
784 }
785
786 /* Get arguments and parse flags */
787 *lflag = *pflag = *n_arg = 0;
788 *path1 = *path2 = NULL;
789 switch (cmdnum) {
790 case I_GET:
791 case I_PUT:
792 if (parse_getput_flags(&cp, pflag))
793 return(-1);
794 /* Get first pathname (mandatory) */
795 if (get_pathname(&cp, path1))
796 return(-1);
797 if (*path1 == NULL) {
798 error("You must specify at least one path after a "
799 "%s command.", cmd);
800 return(-1);
801 }
802 /* Try to get second pathname (optional) */
803 if (get_pathname(&cp, path2))
804 return(-1);
805 break;
806 case I_RENAME:
807 case I_SYMLINK:
808 if (get_pathname(&cp, path1))
809 return(-1);
810 if (get_pathname(&cp, path2))
811 return(-1);
812 if (!*path1 || !*path2) {
813 error("You must specify two paths after a %s "
814 "command.", cmd);
815 return(-1);
816 }
817 break;
818 case I_RM:
819 case I_MKDIR:
820 case I_RMDIR:
821 case I_CHDIR:
822 case I_LCHDIR:
823 case I_LMKDIR:
824 /* Get pathname (mandatory) */
825 if (get_pathname(&cp, path1))
826 return(-1);
827 if (*path1 == NULL) {
828 error("You must specify a path after a %s command.",
829 cmd);
830 return(-1);
831 }
832 break;
833 case I_LS:
834 if (parse_ls_flags(&cp, lflag))
835 return(-1);
836 /* Path is optional */
837 if (get_pathname(&cp, path1))
838 return(-1);
839 break;
840 case I_LLS:
841 case I_SHELL:
842 /* Uses the rest of the line */
843 break;
844 case I_LUMASK:
845 base = 8;
846 case I_CHMOD:
847 base = 8;
848 case I_CHOWN:
849 case I_CHGRP:
850 /* Get numeric arg (mandatory) */
851 l = strtol(cp, &cp2, base);
852 if (cp2 == cp || ((l == LONG_MIN || l == LONG_MAX) &&
853 errno == ERANGE) || l < 0) {
854 error("You must supply a numeric argument "
855 "to the %s command.", cmd);
856 return(-1);
857 }
858 cp = cp2;
859 *n_arg = l;
860 if (cmdnum == I_LUMASK && strchr(WHITESPACE, *cp))
861 break;
862 if (cmdnum == I_LUMASK || !strchr(WHITESPACE, *cp)) {
863 error("You must supply a numeric argument "
864 "to the %s command.", cmd);
865 return(-1);
866 }
867 cp += strspn(cp, WHITESPACE);
868
869 /* Get pathname (mandatory) */
870 if (get_pathname(&cp, path1))
871 return(-1);
872 if (*path1 == NULL) {
873 error("You must specify a path after a %s command.",
874 cmd);
875 return(-1);
876 }
877 break;
878 case I_QUIT:
879 case I_PWD:
880 case I_LPWD:
881 case I_HELP:
882 case I_VERSION:
883 case I_PROGRESS:
884 break;
885 default:
886 fatal("Command not implemented");
887 }
888
889 *cpp = cp;
890 return(cmdnum);
891}
892
893static int
894parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd,
895 int err_abort)
896{
897 char *path1, *path2, *tmp;
898 int pflag, lflag, iflag, cmdnum, i;
899 unsigned long n_arg;
900 Attrib a, *aa;
901 char path_buf[MAXPATHLEN];
902 int err = 0;
903 glob_t g;
904
905 path1 = path2 = NULL;
906 cmdnum = parse_args(&cmd, &pflag, &lflag, &iflag, &n_arg,
907 &path1, &path2);
908
909 if (iflag != 0)
910 err_abort = 0;
911
912 memset(&g, 0, sizeof(g));
913
914 /* Perform command */
915 switch (cmdnum) {
916 case 0:
917 /* Blank line */
918 break;
919 case -1:
920 /* Unrecognized command */
921 err = -1;
922 break;
923 case I_GET:
924 err = process_get(conn, path1, path2, *pwd, pflag);
925 break;
926 case I_PUT:
927 err = process_put(conn, path1, path2, *pwd, pflag);
928 break;
929 case I_RENAME:
930 path1 = make_absolute(path1, *pwd);
931 path2 = make_absolute(path2, *pwd);
932 err = do_rename(conn, path1, path2);
933 break;
934 case I_SYMLINK:
935 path2 = make_absolute(path2, *pwd);
936 err = do_symlink(conn, path1, path2);
937 break;
938 case I_RM:
939 path1 = make_absolute(path1, *pwd);
940 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);
941 for (i = 0; g.gl_pathv[i]; i++) {
942 printf("Removing %s\n", g.gl_pathv[i]);
943 err = do_rm(conn, g.gl_pathv[i]);
944 if (err != 0 && err_abort)
945 break;
946 }
947 break;
948 case I_MKDIR:
949 path1 = make_absolute(path1, *pwd);
950 attrib_clear(&a);
951 a.flags |= SSH2_FILEXFER_ATTR_PERMISSIONS;
952 a.perm = 0777;
953 err = do_mkdir(conn, path1, &a);
954 break;
955 case I_RMDIR:
956 path1 = make_absolute(path1, *pwd);
957 err = do_rmdir(conn, path1);
958 break;
959 case I_CHDIR:
960 path1 = make_absolute(path1, *pwd);
961 if ((tmp = do_realpath(conn, path1)) == NULL) {
962 err = 1;
963 break;
964 }
965 if ((aa = do_stat(conn, tmp, 0)) == NULL) {
966 xfree(tmp);
967 err = 1;
968 break;
969 }
970 if (!(aa->flags & SSH2_FILEXFER_ATTR_PERMISSIONS)) {
971 error("Can't change directory: Can't check target");
972 xfree(tmp);
973 err = 1;
974 break;
975 }
976 if (!S_ISDIR(aa->perm)) {
977 error("Can't change directory: \"%s\" is not "
978 "a directory", tmp);
979 xfree(tmp);
980 err = 1;
981 break;
982 }
983 xfree(*pwd);
984 *pwd = tmp;
985 break;
986 case I_LS:
987 if (!path1) {
988 do_globbed_ls(conn, *pwd, *pwd, lflag);
989 break;
990 }
991
992 /* Strip pwd off beginning of non-absolute paths */
993 tmp = NULL;
994 if (*path1 != '/')
995 tmp = *pwd;
996
997 path1 = make_absolute(path1, *pwd);
998 err = do_globbed_ls(conn, path1, tmp, lflag);
999 break;
1000 case I_LCHDIR:
1001 if (chdir(path1) == -1) {
1002 error("Couldn't change local directory to "
1003 "\"%s\": %s", path1, strerror(errno));
1004 err = 1;
1005 }
1006 break;
1007 case I_LMKDIR:
1008 if (mkdir(path1, 0777) == -1) {
1009 error("Couldn't create local directory "
1010 "\"%s\": %s", path1, strerror(errno));
1011 err = 1;
1012 }
1013 break;
1014 case I_LLS:
1015 local_do_ls(cmd);
1016 break;
1017 case I_SHELL:
1018 local_do_shell(cmd);
1019 break;
1020 case I_LUMASK:
1021 umask(n_arg);
1022 printf("Local umask: %03lo\n", n_arg);
1023 break;
1024 case I_CHMOD:
1025 path1 = make_absolute(path1, *pwd);
1026 attrib_clear(&a);
1027 a.flags |= SSH2_FILEXFER_ATTR_PERMISSIONS;
1028 a.perm = n_arg;
1029 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);
1030 for (i = 0; g.gl_pathv[i]; i++) {
1031 printf("Changing mode on %s\n", g.gl_pathv[i]);
1032 err = do_setstat(conn, g.gl_pathv[i], &a);
1033 if (err != 0 && err_abort)
1034 break;
1035 }
1036 break;
1037 case I_CHOWN:
1038 case I_CHGRP:
1039 path1 = make_absolute(path1, *pwd);
1040 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);
1041 for (i = 0; g.gl_pathv[i]; i++) {
1042 if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) {
1043 if (err != 0 && err_abort)
1044 break;
1045 else
1046 continue;
1047 }
1048 if (!(aa->flags & SSH2_FILEXFER_ATTR_UIDGID)) {
1049 error("Can't get current ownership of "
1050 "remote file \"%s\"", g.gl_pathv[i]);
1051 if (err != 0 && err_abort)
1052 break;
1053 else
1054 continue;
1055 }
1056 aa->flags &= SSH2_FILEXFER_ATTR_UIDGID;
1057 if (cmdnum == I_CHOWN) {
1058 printf("Changing owner on %s\n", g.gl_pathv[i]);
1059 aa->uid = n_arg;
1060 } else {
1061 printf("Changing group on %s\n", g.gl_pathv[i]);
1062 aa->gid = n_arg;
1063 }
1064 err = do_setstat(conn, g.gl_pathv[i], aa);
1065 if (err != 0 && err_abort)
1066 break;
1067 }
1068 break;
1069 case I_PWD:
1070 printf("Remote working directory: %s\n", *pwd);
1071 break;
1072 case I_LPWD:
1073 if (!getcwd(path_buf, sizeof(path_buf))) {
1074 error("Couldn't get local cwd: %s", strerror(errno));
1075 err = -1;
1076 break;
1077 }
1078 printf("Local working directory: %s\n", path_buf);
1079 break;
1080 case I_QUIT:
1081 /* Processed below */
1082 break;
1083 case I_HELP:
1084 help();
1085 break;
1086 case I_VERSION:
1087 printf("SFTP protocol version %u\n", sftp_proto_version(conn));
1088 break;
1089 case I_PROGRESS:
1090 showprogress = !showprogress;
1091 if (showprogress)
1092 printf("Progress meter enabled\n");
1093 else
1094 printf("Progress meter disabled\n");
1095 break;
1096 default:
1097 fatal("%d is not implemented", cmdnum);
1098 }
1099
1100 if (g.gl_pathc)
1101 globfree(&g);
1102 if (path1)
1103 xfree(path1);
1104 if (path2)
1105 xfree(path2);
1106
1107 /* If an unignored error occurs in batch mode we should abort. */
1108 if (err_abort && err != 0)
1109 return (-1);
1110 else if (cmdnum == I_QUIT)
1111 return (1);
1112
1113 return (0);
1114}
1115
1116int
1117interactive_loop(int fd_in, int fd_out, char *file1, char *file2)
1118{
1119 char *pwd;
1120 char *dir = NULL;
1121 char cmd[2048];
1122 struct sftp_conn *conn;
1123 int err;
1124
1125 conn = do_init(fd_in, fd_out, copy_buffer_len, num_requests);
1126 if (conn == NULL)
1127 fatal("Couldn't initialise connection to server");
1128
1129 pwd = do_realpath(conn, ".");
1130 if (pwd == NULL)
1131 fatal("Need cwd");
1132
1133 if (file1 != NULL) {
1134 dir = xstrdup(file1);
1135 dir = make_absolute(dir, pwd);
1136
1137 if (remote_is_dir(conn, dir) && file2 == NULL) {
1138 printf("Changing to: %s\n", dir);
1139 snprintf(cmd, sizeof cmd, "cd \"%s\"", dir);
1140 if (parse_dispatch_command(conn, cmd, &pwd, 1) != 0)
1141 return (-1);
1142 } else {
1143 if (file2 == NULL)
1144 snprintf(cmd, sizeof cmd, "get %s", dir);
1145 else
1146 snprintf(cmd, sizeof cmd, "get %s %s", dir,
1147 file2);
1148
1149 err = parse_dispatch_command(conn, cmd, &pwd, 1);
1150 xfree(dir);
1151 xfree(pwd);
1152 return (err);
1153 }
1154 xfree(dir);
1155 }
1156
1157#if HAVE_SETVBUF
1158 setvbuf(stdout, NULL, _IOLBF, 0);
1159 setvbuf(infile, NULL, _IOLBF, 0);
1160#else
1161 setlinebuf(stdout);
1162 setlinebuf(infile);
1163#endif
1164
1165 err = 0;
1166 for (;;) {
1167 char *cp;
1168
1169 printf("sftp> ");
1170
1171 /* XXX: use libedit */
1172 if (fgets(cmd, sizeof(cmd), infile) == NULL) {
1173 printf("\n");
1174 break;
1175 } else if (infile != stdin) /* Bluff typing */
1176 printf("%s", cmd);
1177
1178 cp = strrchr(cmd, '\n');
1179 if (cp)
1180 *cp = '\0';
1181
1182 err = parse_dispatch_command(conn, cmd, &pwd, infile != stdin);
1183 if (err != 0)
1184 break;
1185 }
1186 xfree(pwd);
1187
1188 /* err == 1 signifies normal "quit" exit */
1189 return (err >= 0 ? 0 : -1);
1190}
1191
diff --git a/sftp-int.h b/sftp-int.h
deleted file mode 100644
index 8a04a03f6..000000000
--- a/sftp-int.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* $OpenBSD: sftp-int.h,v 1.6 2003/01/08 23:53:26 djm Exp $ */
2
3/*
4 * Copyright (c) 2001,2002 Damien Miller. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27int interactive_loop(int, int, char *, char *);
diff --git a/sftp-server-main.c b/sftp-server-main.c
index 2b14569e4..7e644ab89 100644
--- a/sftp-server-main.c
+++ b/sftp-server-main.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp-server-main.c,v 1.3 2008/03/26 23:44:41 djm Exp $ */ 1/* $OpenBSD: sftp-server-main.c,v 1.4 2009/02/21 19:32:04 tobias Exp $ */
2/* 2/*
3 * Copyright (c) 2008 Markus Friedl. All rights reserved. 3 * Copyright (c) 2008 Markus Friedl. All rights reserved.
4 * 4 *
@@ -42,7 +42,8 @@ main(int argc, char **argv)
42 sanitise_stdfd(); 42 sanitise_stdfd();
43 43
44 if ((user_pw = getpwuid(getuid())) == NULL) { 44 if ((user_pw = getpwuid(getuid())) == NULL) {
45 fprintf(stderr, "No user found for uid %lu", (u_long)getuid()); 45 fprintf(stderr, "No user found for uid %lu\n",
46 (u_long)getuid());
46 return 1; 47 return 1;
47 } 48 }
48 49
diff --git a/sftp-server.0 b/sftp-server.0
index 941e99e14..510ceb64b 100644
--- a/sftp-server.0
+++ b/sftp-server.0
@@ -47,4 +47,4 @@ HISTORY
47AUTHORS 47AUTHORS
48 Markus Friedl <markus@openbsd.org> 48 Markus Friedl <markus@openbsd.org>
49 49
50OpenBSD 4.4 July 18, 2008 1 50OpenBSD 4.5 July 18, 2008 1
diff --git a/sftp.0 b/sftp.0
index 965e1fa18..4835c4f28 100644
--- a/sftp.0
+++ b/sftp.0
@@ -7,8 +7,8 @@ SYNOPSIS
7 sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] 7 sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]
8 [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] 8 [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program]
9 [-s subsystem | sftp_server] host 9 [-s subsystem | sftp_server] host
10 sftp [[user@]host[:file [file]]] 10 sftp [user@]host[:file ...]
11 sftp [[user@]host[:dir[/]]] 11 sftp [user@]host[:dir[/]]
12 sftp -b batchfile [user@]host 12 sftp -b batchfile [user@]host
13 13
14DESCRIPTION 14DESCRIPTION
@@ -257,7 +257,7 @@ INTERACTIVE COMMANDS
257 version 257 version
258 Display the sftp protocol version. 258 Display the sftp protocol version.
259 259
260 ! command 260 !command
261 Execute command in local shell. 261 Execute command in local shell.
262 262
263 ! Escape to local shell. 263 ! Escape to local shell.
@@ -271,4 +271,4 @@ SEE ALSO
271 T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- 271 T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
272 filexfer-00.txt, January 2001, work in progress material. 272 filexfer-00.txt, January 2001, work in progress material.
273 273
274OpenBSD 4.4 July 15, 2008 5 274OpenBSD 4.5 December 9, 2008 5
diff --git a/sftp.1 b/sftp.1
index b4f9a6884..37ccb3a38 100644
--- a/sftp.1
+++ b/sftp.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: sftp.1,v 1.67 2008/07/15 02:23:14 djm Exp $ 1.\" $OpenBSD: sftp.1,v 1.69 2008/12/09 15:35:00 sobrado Exp $
2.\" 2.\"
3.\" Copyright (c) 2001 Damien Miller. All rights reserved. 3.\" Copyright (c) 2001 Damien Miller. All rights reserved.
4.\" 4.\"
@@ -22,7 +22,7 @@
22.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24.\" 24.\"
25.Dd $Mdocdate: July 15 2008 $ 25.Dd $Mdocdate: December 9 2008 $
26.Dt SFTP 1 26.Dt SFTP 1
27.Os 27.Os
28.Sh NAME 28.Sh NAME
@@ -43,13 +43,12 @@
43.Ar host 43.Ar host
44.Ek 44.Ek
45.Nm sftp 45.Nm sftp
46.Oo Oo Ar user Ns @ Oc Ns 46.Oo Ar user Ns @ Oc Ns
47.Ar host Ns Oo : Ns Ar file Oo 47.Ar host Ns Op : Ns Ar
48.Ar file Oc Oc Oc
49.Nm sftp 48.Nm sftp
50.Oo Oo Ar user Ns @ Oc Ns 49.Oo Ar user Ns @ Oc Ns
51.Ar host Ns Oo : Ns Ar dir Ns 50.Ar host Ns Oo : Ns Ar dir Ns
52.Oo Ar / Oc Oc Oc 51.Op Ar / Oc
53.Nm sftp 52.Nm sftp
54.Fl b Ar batchfile 53.Fl b Ar batchfile
55.Oo Ar user Ns @ Oc Ns Ar host 54.Oo Ar user Ns @ Oc Ns Ar host
@@ -442,7 +441,7 @@ to
442Display the 441Display the
443.Nm 442.Nm
444protocol version. 443protocol version.
445.It Ic \&! Ar command 444.It Ic \&! Ns Ar command
446Execute 445Execute
447.Ar command 446.Ar command
448in local shell. 447in local shell.
diff --git a/sftp.c b/sftp.c
index e1aa49d0f..66bd111b1 100644
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp.c,v 1.103 2008/07/13 22:16:03 djm Exp $ */ 1/* $OpenBSD: sftp.c,v 1.107 2009/02/02 11:15:14 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> 3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
4 * 4 *
@@ -207,36 +207,37 @@ cmd_interrupt(int signo)
207static void 207static void
208help(void) 208help(void)
209{ 209{
210 printf("Available commands:\n"); 210 printf("Available commands:\n"
211 printf("cd path Change remote directory to 'path'\n"); 211 "bye Quit sftp\n"
212 printf("lcd path Change local directory to 'path'\n"); 212 "cd path Change remote directory to 'path'\n"
213 printf("chgrp grp path Change group of file 'path' to 'grp'\n"); 213 "chgrp grp path Change group of file 'path' to 'grp'\n"
214 printf("chmod mode path Change permissions of file 'path' to 'mode'\n"); 214 "chmod mode path Change permissions of file 'path' to 'mode'\n"
215 printf("chown own path Change owner of file 'path' to 'own'\n"); 215 "chown own path Change owner of file 'path' to 'own'\n"
216 printf("df [path] Display statistics for current directory or\n"); 216 "df [-hi] [path] Display statistics for current directory or\n"
217 printf(" filesystem containing 'path'\n"); 217 " filesystem containing 'path'\n"
218 printf("help Display this help text\n"); 218 "exit Quit sftp\n"
219 printf("get remote-path [local-path] Download file\n"); 219 "get [-P] remote-path [local-path] Download file\n"
220 printf("lls [ls-options [path]] Display local directory listing\n"); 220 "help Display this help text\n"
221 printf("ln oldpath newpath Symlink remote file\n"); 221 "lcd path Change local directory to 'path'\n"
222 printf("lmkdir path Create local directory\n"); 222 "lls [ls-options [path]] Display local directory listing\n"
223 printf("lpwd Print local working directory\n"); 223 "lmkdir path Create local directory\n"
224 printf("ls [path] Display remote directory listing\n"); 224 "ln oldpath newpath Symlink remote file\n"
225 printf("lumask umask Set local umask to 'umask'\n"); 225 "lpwd Print local working directory\n"
226 printf("mkdir path Create remote directory\n"); 226 "ls [-1aflnrSt] [path] Display remote directory listing\n"
227 printf("progress Toggle display of progress meter\n"); 227 "lumask umask Set local umask to 'umask'\n"
228 printf("put local-path [remote-path] Upload file\n"); 228 "mkdir path Create remote directory\n"
229 printf("pwd Display remote working directory\n"); 229 "progress Toggle display of progress meter\n"
230 printf("exit Quit sftp\n"); 230 "put [-P] local-path [remote-path] Upload file\n"
231 printf("quit Quit sftp\n"); 231 "pwd Display remote working directory\n"
232 printf("rename oldpath newpath Rename remote file\n"); 232 "quit Quit sftp\n"
233 printf("rmdir path Remove remote directory\n"); 233 "rename oldpath newpath Rename remote file\n"
234 printf("rm path Delete remote file\n"); 234 "rm path Delete remote file\n"
235 printf("symlink oldpath newpath Symlink remote file\n"); 235 "rmdir path Remove remote directory\n"
236 printf("version Show SFTP version\n"); 236 "symlink oldpath newpath Symlink remote file\n"
237 printf("!command Execute 'command' in local shell\n"); 237 "version Show SFTP version\n"
238 printf("! Escape to local shell\n"); 238 "!command Execute 'command' in local shell\n"
239 printf("? Synonym for help\n"); 239 "! Escape to local shell\n"
240 "? Synonym for help\n");
240} 241}
241 242
242static void 243static void
@@ -1234,8 +1235,8 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd,
1234 int err_abort) 1235 int err_abort)
1235{ 1236{
1236 char *path1, *path2, *tmp; 1237 char *path1, *path2, *tmp;
1237 int pflag, lflag, iflag, hflag, cmdnum, i; 1238 int pflag = 0, lflag = 0, iflag = 0, hflag = 0, cmdnum, i;
1238 unsigned long n_arg; 1239 unsigned long n_arg = 0;
1239 Attrib a, *aa; 1240 Attrib a, *aa;
1240 char path_buf[MAXPATHLEN]; 1241 char path_buf[MAXPATHLEN];
1241 int err = 0; 1242 int err = 0;
@@ -1386,17 +1387,19 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd,
1386 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g); 1387 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);
1387 for (i = 0; g.gl_pathv[i] && !interrupted; i++) { 1388 for (i = 0; g.gl_pathv[i] && !interrupted; i++) {
1388 if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) { 1389 if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) {
1389 if (err != 0 && err_abort) 1390 if (err_abort) {
1391 err = -1;
1390 break; 1392 break;
1391 else 1393 } else
1392 continue; 1394 continue;
1393 } 1395 }
1394 if (!(aa->flags & SSH2_FILEXFER_ATTR_UIDGID)) { 1396 if (!(aa->flags & SSH2_FILEXFER_ATTR_UIDGID)) {
1395 error("Can't get current ownership of " 1397 error("Can't get current ownership of "
1396 "remote file \"%s\"", g.gl_pathv[i]); 1398 "remote file \"%s\"", g.gl_pathv[i]);
1397 if (err != 0 && err_abort) 1399 if (err_abort) {
1400 err = -1;
1398 break; 1401 break;
1399 else 1402 } else
1400 continue; 1403 continue;
1401 } 1404 }
1402 aa->flags &= SSH2_FILEXFER_ATTR_UIDGID; 1405 aa->flags &= SSH2_FILEXFER_ATTR_UIDGID;
@@ -1668,8 +1671,8 @@ usage(void)
1668 "usage: %s [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]\n" 1671 "usage: %s [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]\n"
1669 " [-o ssh_option] [-P sftp_server_path] [-R num_requests]\n" 1672 " [-o ssh_option] [-P sftp_server_path] [-R num_requests]\n"
1670 " [-S program] [-s subsystem | sftp_server] host\n" 1673 " [-S program] [-s subsystem | sftp_server] host\n"
1671 " %s [[user@]host[:file [file]]]\n" 1674 " %s [user@]host[:file ...]\n"
1672 " %s [[user@]host[:dir[/]]]\n" 1675 " %s [user@]host[:dir[/]]\n"
1673 " %s -b batchfile [user@]host\n", __progname, __progname, __progname, __progname); 1676 " %s -b batchfile [user@]host\n", __progname, __progname, __progname, __progname);
1674 exit(1); 1677 exit(1);
1675} 1678}
diff --git a/ssh-add.0 b/ssh-add.0
index 3652bb5e5..2ef77d339 100644
--- a/ssh-add.0
+++ b/ssh-add.0
@@ -103,4 +103,4 @@ AUTHORS
103 ated OpenSSH. Markus Friedl contributed the support for SSH protocol 103 ated OpenSSH. Markus Friedl contributed the support for SSH protocol
104 versions 1.5 and 2.0. 104 versions 1.5 and 2.0.
105 105
106OpenBSD 4.4 June 12, 2007 2 106OpenBSD 4.5 June 12, 2007 2
diff --git a/ssh-agent.0 b/ssh-agent.0
index 90348a6b2..c21943212 100644
--- a/ssh-agent.0
+++ b/ssh-agent.0
@@ -114,4 +114,4 @@ AUTHORS
114 ated OpenSSH. Markus Friedl contributed the support for SSH protocol 114 ated OpenSSH. Markus Friedl contributed the support for SSH protocol
115 versions 1.5 and 2.0. 115 versions 1.5 and 2.0.
116 116
117OpenBSD 4.4 June 5, 2007 2 117OpenBSD 4.5 June 5, 2007 2
diff --git a/ssh-dss.h b/ssh-dss.h
deleted file mode 100644
index 94961b1e8..000000000
--- a/ssh-dss.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/* $OpenBSD: ssh-dss.h,v 1.6 2002/02/24 19:14:59 markus Exp $ */
2
3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26#ifndef DSA_H
27#define DSA_H
28
29int ssh_dss_sign(Key *, u_char **, u_int *, u_char *, u_int);
30int ssh_dss_verify(Key *, u_char *, u_int, u_char *, u_int);
31
32#endif
diff --git a/ssh-keygen.0 b/ssh-keygen.0
index ca8b5cf8c..b08d43b6d 100644
--- a/ssh-keygen.0
+++ b/ssh-keygen.0
@@ -14,7 +14,7 @@ SYNOPSIS
14 ssh-keygen -l [-f input_keyfile] 14 ssh-keygen -l [-f input_keyfile]
15 ssh-keygen -B [-f input_keyfile] 15 ssh-keygen -B [-f input_keyfile]
16 ssh-keygen -D reader 16 ssh-keygen -D reader
17 ssh-keygen -F hostname [-f known_hosts_file] 17 ssh-keygen -F hostname [-f known_hosts_file] [-l]
18 ssh-keygen -H [-f known_hosts_file] 18 ssh-keygen -H [-f known_hosts_file]
19 ssh-keygen -R hostname [-f known_hosts_file] 19 ssh-keygen -R hostname [-f known_hosts_file]
20 ssh-keygen -U reader [-f input_keyfile] 20 ssh-keygen -U reader [-f input_keyfile]
@@ -286,4 +286,4 @@ AUTHORS
286 created OpenSSH. Markus Friedl contributed the support for SSH protocol 286 created OpenSSH. Markus Friedl contributed the support for SSH protocol
287 versions 1.5 and 2.0. 287 versions 1.5 and 2.0.
288 288
289OpenBSD 4.4 June 12, 2008 5 289OpenBSD 4.5 July 24, 2008 5
diff --git a/ssh-keygen.1 b/ssh-keygen.1
index 3fff59e77..3596cc174 100644
--- a/ssh-keygen.1
+++ b/ssh-keygen.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ssh-keygen.1,v 1.78 2008/06/12 19:10:09 jmc Exp $ 1.\" $OpenBSD: ssh-keygen.1,v 1.79 2008/07/24 23:55:30 sthen Exp $
2.\" 2.\"
3.\" -*- nroff -*- 3.\" -*- nroff -*-
4.\" 4.\"
@@ -37,7 +37,7 @@
37.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 37.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
38.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39.\" 39.\"
40.Dd $Mdocdate: June 12 2008 $ 40.Dd $Mdocdate: July 24 2008 $
41.Dt SSH-KEYGEN 1 41.Dt SSH-KEYGEN 1
42.Os 42.Os
43.Sh NAME 43.Sh NAME
@@ -83,6 +83,7 @@
83.Nm ssh-keygen 83.Nm ssh-keygen
84.Fl F Ar hostname 84.Fl F Ar hostname
85.Op Fl f Ar known_hosts_file 85.Op Fl f Ar known_hosts_file
86.Op Fl l
86.Nm ssh-keygen 87.Nm ssh-keygen
87.Fl H 88.Fl H
88.Op Fl f Ar known_hosts_file 89.Op Fl f Ar known_hosts_file
diff --git a/ssh-keygen.c b/ssh-keygen.c
index f7e284062..5765cff08 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keygen.c,v 1.171 2008/07/13 21:22:52 sthen Exp $ */ 1/* $OpenBSD: ssh-keygen.c,v 1.173 2009/02/21 19:32:04 tobias Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -135,7 +135,7 @@ ask_filename(struct passwd *pw, const char *prompt)
135 name = _PATH_SSH_CLIENT_ID_RSA; 135 name = _PATH_SSH_CLIENT_ID_RSA;
136 break; 136 break;
137 default: 137 default:
138 fprintf(stderr, "bad key type"); 138 fprintf(stderr, "bad key type\n");
139 exit(1); 139 exit(1);
140 break; 140 break;
141 } 141 }
@@ -421,7 +421,7 @@ do_convert_from_ssh2(struct passwd *pw)
421 PEM_write_RSAPrivateKey(stdout, k->rsa, NULL, NULL, 0, NULL, NULL)) : 421 PEM_write_RSAPrivateKey(stdout, k->rsa, NULL, NULL, 0, NULL, NULL)) :
422 key_write(k, stdout); 422 key_write(k, stdout);
423 if (!ok) { 423 if (!ok) {
424 fprintf(stderr, "key write failed"); 424 fprintf(stderr, "key write failed\n");
425 exit(1); 425 exit(1);
426 } 426 }
427 key_free(k); 427 key_free(k);
@@ -1015,11 +1015,11 @@ do_change_comment(struct passwd *pw)
1015 } 1015 }
1016 f = fdopen(fd, "w"); 1016 f = fdopen(fd, "w");
1017 if (f == NULL) { 1017 if (f == NULL) {
1018 printf("fdopen %s failed", identity_file); 1018 printf("fdopen %s failed\n", identity_file);
1019 exit(1); 1019 exit(1);
1020 } 1020 }
1021 if (!key_write(public, f)) 1021 if (!key_write(public, f))
1022 fprintf(stderr, "write key failed"); 1022 fprintf(stderr, "write key failed\n");
1023 key_free(public); 1023 key_free(public);
1024 fprintf(f, " %s\n", new_comment); 1024 fprintf(f, " %s\n", new_comment);
1025 fclose(f); 1025 fclose(f);
@@ -1366,7 +1366,7 @@ main(int argc, char **argv)
1366 printf("Generating public/private %s key pair.\n", key_type_name); 1366 printf("Generating public/private %s key pair.\n", key_type_name);
1367 private = key_generate(type, bits); 1367 private = key_generate(type, bits);
1368 if (private == NULL) { 1368 if (private == NULL) {
1369 fprintf(stderr, "key_generate failed"); 1369 fprintf(stderr, "key_generate failed\n");
1370 exit(1); 1370 exit(1);
1371 } 1371 }
1372 public = key_from_private(private); 1372 public = key_from_private(private);
@@ -1426,7 +1426,7 @@ passphrase_again:
1426 if (identity_comment) { 1426 if (identity_comment) {
1427 strlcpy(comment, identity_comment, sizeof(comment)); 1427 strlcpy(comment, identity_comment, sizeof(comment));
1428 } else { 1428 } else {
1429 /* Create default commend field for the passphrase. */ 1429 /* Create default comment field for the passphrase. */
1430 snprintf(comment, sizeof comment, "%s@%s", pw->pw_name, hostname); 1430 snprintf(comment, sizeof comment, "%s@%s", pw->pw_name, hostname);
1431 } 1431 }
1432 1432
@@ -1456,11 +1456,11 @@ passphrase_again:
1456 } 1456 }
1457 f = fdopen(fd, "w"); 1457 f = fdopen(fd, "w");
1458 if (f == NULL) { 1458 if (f == NULL) {
1459 printf("fdopen %s failed", identity_file); 1459 printf("fdopen %s failed\n", identity_file);
1460 exit(1); 1460 exit(1);
1461 } 1461 }
1462 if (!key_write(public, f)) 1462 if (!key_write(public, f))
1463 fprintf(stderr, "write key failed"); 1463 fprintf(stderr, "write key failed\n");
1464 fprintf(f, " %s\n", comment); 1464 fprintf(f, " %s\n", comment);
1465 fclose(f); 1465 fclose(f);
1466 1466
diff --git a/ssh-keyscan.0 b/ssh-keyscan.0
index 5cd68816c..dadfd4b63 100644
--- a/ssh-keyscan.0
+++ b/ssh-keyscan.0
@@ -5,7 +5,7 @@ NAME
5 5
6SYNOPSIS 6SYNOPSIS
7 ssh-keyscan [-46Hv] [-f file] [-p port] [-T timeout] [-t type] 7 ssh-keyscan [-46Hv] [-f file] [-p port] [-T timeout] [-t type]
8 [host | addrlist namelist] [...] 8 [host | addrlist namelist] ...
9 9
10DESCRIPTION 10DESCRIPTION
11 ssh-keyscan is a utility for gathering the public ssh host keys of a num- 11 ssh-keyscan is a utility for gathering the public ssh host keys of a num-
@@ -80,7 +80,7 @@ FILES
80 /etc/ssh/ssh_known_hosts 80 /etc/ssh/ssh_known_hosts
81 81
82EXAMPLES 82EXAMPLES
83 Print the rsa1 host key for machine hostname: 83 Print the rsa host key for machine hostname:
84 84
85 $ ssh-keyscan hostname 85 $ ssh-keyscan hostname
86 86
@@ -104,4 +104,4 @@ BUGS
104 This is because it opens a connection to the ssh port, reads the public 104 This is because it opens a connection to the ssh port, reads the public
105 key, and drops the connection as soon as it gets the key. 105 key, and drops the connection as soon as it gets the key.
106 106
107OpenBSD 4.4 April 30, 2008 2 107OpenBSD 4.5 December 29, 2008 2
diff --git a/ssh-keyscan.1 b/ssh-keyscan.1
index 8a4f3bcba..4a5864566 100644
--- a/ssh-keyscan.1
+++ b/ssh-keyscan.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ssh-keyscan.1,v 1.24 2008/04/30 10:14:03 djm Exp $ 1.\" $OpenBSD: ssh-keyscan.1,v 1.26 2008/12/29 01:12:36 stevesk Exp $
2.\" 2.\"
3.\" Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. 3.\" Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4.\" 4.\"
@@ -6,7 +6,7 @@
6.\" permitted provided that due credit is given to the author and the 6.\" permitted provided that due credit is given to the author and the
7.\" OpenBSD project by leaving this copyright notice intact. 7.\" OpenBSD project by leaving this copyright notice intact.
8.\" 8.\"
9.Dd $Mdocdate: April 30 2008 $ 9.Dd $Mdocdate: December 29 2008 $
10.Dt SSH-KEYSCAN 1 10.Dt SSH-KEYSCAN 1
11.Os 11.Os
12.Sh NAME 12.Sh NAME
@@ -21,7 +21,7 @@
21.Op Fl T Ar timeout 21.Op Fl T Ar timeout
22.Op Fl t Ar type 22.Op Fl t Ar type
23.Op Ar host | addrlist namelist 23.Op Ar host | addrlist namelist
24.Op Ar ... 24.Ar ...
25.Ek 25.Ek
26.Sh DESCRIPTION 26.Sh DESCRIPTION
27.Nm 27.Nm
@@ -137,7 +137,7 @@ or
137.Pa /etc/ssh/ssh_known_hosts 137.Pa /etc/ssh/ssh_known_hosts
138.Sh EXAMPLES 138.Sh EXAMPLES
139Print the 139Print the
140.Pa rsa1 140.Pa rsa
141host key for machine 141host key for machine
142.Pa hostname : 142.Pa hostname :
143.Bd -literal 143.Bd -literal
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index d81077764..9a91be499 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keyscan.c,v 1.76 2008/04/30 10:14:03 djm Exp $ */ 1/* $OpenBSD: ssh-keyscan.c,v 1.78 2009/01/22 10:02:34 djm Exp $ */
2/* 2/*
3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. 3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4 * 4 *
@@ -713,8 +713,9 @@ fatal(const char *fmt,...)
713static void 713static void
714usage(void) 714usage(void)
715{ 715{
716 fprintf(stderr, "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n" 716 fprintf(stderr,
717 "\t\t [host | addrlist namelist] [...]\n", 717 "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n"
718 "\t\t [host | addrlist namelist] ...\n",
718 __progname); 719 __progname);
719 exit(1); 720 exit(1);
720} 721}
@@ -747,7 +748,7 @@ main(int argc, char **argv)
747 break; 748 break;
748 case 'p': 749 case 'p':
749 ssh_port = a2port(optarg); 750 ssh_port = a2port(optarg);
750 if (ssh_port == 0) { 751 if (ssh_port <= 0) {
751 fprintf(stderr, "Bad port '%s'\n", optarg); 752 fprintf(stderr, "Bad port '%s'\n", optarg);
752 exit(1); 753 exit(1);
753 } 754 }
diff --git a/ssh-keysign.0 b/ssh-keysign.0
index 07ffeca5c..5da5e5388 100644
--- a/ssh-keysign.0
+++ b/ssh-keysign.0
@@ -39,4 +39,4 @@ HISTORY
39AUTHORS 39AUTHORS
40 Markus Friedl <markus@openbsd.org> 40 Markus Friedl <markus@openbsd.org>
41 41
42OpenBSD 4.4 May 31, 2007 1 42OpenBSD 4.5 May 31, 2007 1
diff --git a/ssh-rand-helper.0 b/ssh-rand-helper.0
index e1d31c1cd..690e14159 100644
--- a/ssh-rand-helper.0
+++ b/ssh-rand-helper.0
@@ -48,4 +48,4 @@ AUTHORS
48SEE ALSO 48SEE ALSO
49 ssh(1), ssh-add(1), ssh-keygen(1), sshd(8) 49 ssh(1), ssh-add(1), ssh-keygen(1), sshd(8)
50 50
51OpenBSD 4.4 April 14, 2002 1 51OpenBSD 4.5 April 14, 2002 1
diff --git a/ssh-rsa.h b/ssh-rsa.h
deleted file mode 100644
index 7177a3f92..000000000
--- a/ssh-rsa.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/* $OpenBSD: ssh-rsa.h,v 1.6 2002/02/24 19:14:59 markus Exp $ */
2
3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26#ifndef SSH_RSA_H
27#define SSH_RSA_H
28
29int ssh_rsa_sign(Key *, u_char **, u_int *, u_char *, u_int);
30int ssh_rsa_verify(Key *, u_char *, u_int, u_char *, u_int);
31
32#endif
diff --git a/ssh.0 b/ssh.0
index 21e5ac9a3..1788bf9cc 100644
--- a/ssh.0
+++ b/ssh.0
@@ -4,7 +4,7 @@ NAME
4 ssh - OpenSSH SSH client (remote login program) 4 ssh - OpenSSH SSH client (remote login program)
5 5
6SYNOPSIS 6SYNOPSIS
7 ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] 7 ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
8 [-D [bind_address:]port] [-e escape_char] [-F configfile] 8 [-D [bind_address:]port] [-e escape_char] [-F configfile]
9 [-i identity_file] [-L [bind_address:]port:host:hostport] 9 [-i identity_file] [-L [bind_address:]port:host:hostport]
10 [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] 10 [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
@@ -304,12 +304,15 @@ DESCRIPTION
304 [bind_address/]host/port/hostport. 304 [bind_address/]host/port/hostport.
305 305
306 By default, the listening socket on the server will be bound to 306 By default, the listening socket on the server will be bound to
307 the loopback interface only. This may be overriden by specifying 307 the loopback interface only. This may be overridden by specify-
308 a bind_address. An empty bind_address, or the address `*', indi- 308 ing a bind_address. An empty bind_address, or the address `*',
309 cates that the remote socket should listen on all interfaces. 309 indicates that the remote socket should listen on all interfaces.
310 Specifying a remote bind_address will only succeed if the serv- 310 Specifying a remote bind_address will only succeed if the serv-
311 er's GatewayPorts option is enabled (see sshd_config(5)). 311 er's GatewayPorts option is enabled (see sshd_config(5)).
312 312
313 If the port argument is `0', the listen port will be dynamically
314 allocated on the server and reported to the client at run time.
315
313 -S ctl_path 316 -S ctl_path
314 Specifies the location of a control socket for connection shar- 317 Specifies the location of a control socket for connection shar-
315 ing. Refer to the description of ControlPath and ControlMaster 318 ing. Refer to the description of ControlPath and ControlMaster
@@ -365,6 +368,9 @@ DESCRIPTION
365 -Y Enables trusted X11 forwarding. Trusted X11 forwardings are not 368 -Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
366 subjected to the X11 SECURITY extension controls. 369 subjected to the X11 SECURITY extension controls.
367 370
371 -y Send log information using the syslog(3) system module. By de-
372 fault this information is sent to stderr.
373
368 ssh may additionally obtain configuration data from a per-user configura- 374 ssh may additionally obtain configuration data from a per-user configura-
369 tion file and a system-wide configuration file. The file format and con- 375 tion file and a system-wide configuration file. The file format and con-
370 figuration options are described in ssh_config(5). 376 figuration options are described in ssh_config(5).
@@ -500,8 +506,8 @@ ESCAPE CHARACTERS
500 version 2 and if the peer supports it). 506 version 2 and if the peer supports it).
501 507
502 ~C Open command line. Currently this allows the addition of port 508 ~C Open command line. Currently this allows the addition of port
503 forwardings using the -L and -R options (see above). It also al- 509 forwardings using the -L, -R and -D options (see above). It also
504 lows the cancellation of existing remote port-forwardings using 510 allows the cancellation of existing remote port-forwardings using
505 -KR[bind_address:]port. !command allows the user to execute a 511 -KR[bind_address:]port. !command allows the user to execute a
506 local command if the PermitLocalCommand option is enabled in 512 local command if the PermitLocalCommand option is enabled in
507 ssh_config(5). Basic help is available, using the -h option. 513 ssh_config(5). Basic help is available, using the -h option.
@@ -864,4 +870,4 @@ AUTHORS
864 created OpenSSH. Markus Friedl contributed the support for SSH protocol 870 created OpenSSH. Markus Friedl contributed the support for SSH protocol
865 versions 1.5 and 2.0. 871 versions 1.5 and 2.0.
866 872
867OpenBSD 4.4 July 2, 2008 14 873OpenBSD 4.5 February 12, 2009 14
diff --git a/ssh.1 b/ssh.1
index 1883578f2..421783be3 100644
--- a/ssh.1
+++ b/ssh.1
@@ -34,8 +34,8 @@
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.\" $OpenBSD: ssh.1,v 1.277 2008/07/02 13:47:39 djm Exp $ 37.\" $OpenBSD: ssh.1,v 1.282 2009/02/12 03:44:25 djm Exp $
38.Dd $Mdocdate: July 2 2008 $ 38.Dd $Mdocdate: February 12 2009 $
39.Dt SSH 1 39.Dt SSH 1
40.Os 40.Os
41.Sh NAME 41.Sh NAME
@@ -43,7 +43,7 @@
43.Nd OpenSSH SSH client (remote login program) 43.Nd OpenSSH SSH client (remote login program)
44.Sh SYNOPSIS 44.Sh SYNOPSIS
45.Nm ssh 45.Nm ssh
46.Op Fl 1246AaCfgKkMNnqsTtVvXxY 46.Op Fl 1246AaCfgKkMNnqsTtVvXxYy
47.Op Fl b Ar bind_address 47.Op Fl b Ar bind_address
48.Op Fl c Ar cipher_spec 48.Op Fl c Ar cipher_spec
49.Oo Fl D\ \& 49.Oo Fl D\ \&
@@ -550,7 +550,7 @@ using an alternative syntax:
550.Pp 550.Pp
551By default, the listening socket on the server will be bound to the loopback 551By default, the listening socket on the server will be bound to the loopback
552interface only. 552interface only.
553This may be overriden by specifying a 553This may be overridden by specifying a
554.Ar bind_address . 554.Ar bind_address .
555An empty 555An empty
556.Ar bind_address , 556.Ar bind_address ,
@@ -563,6 +563,13 @@ will only succeed if the server's
563.Cm GatewayPorts 563.Cm GatewayPorts
564option is enabled (see 564option is enabled (see
565.Xr sshd_config 5 ) . 565.Xr sshd_config 5 ) .
566.Pp
567If the
568.Ar port
569argument is
570.Ql 0 ,
571the listen port will be dynamically allocated on the server and reported
572to the client at run time.
566.It Fl S Ar ctl_path 573.It Fl S Ar ctl_path
567Specifies the location of a control socket for connection sharing. 574Specifies the location of a control socket for connection sharing.
568Refer to the description of 575Refer to the description of
@@ -658,6 +665,11 @@ Disables X11 forwarding.
658Enables trusted X11 forwarding. 665Enables trusted X11 forwarding.
659Trusted X11 forwardings are not subjected to the X11 SECURITY extension 666Trusted X11 forwardings are not subjected to the X11 SECURITY extension
660controls. 667controls.
668.It Fl y
669Send log information using the
670.Xr syslog 3
671system module.
672By default this information is sent to stderr.
661.El 673.El
662.Pp 674.Pp
663.Nm 675.Nm
@@ -893,9 +905,10 @@ Send a BREAK to the remote system
893.It Cm ~C 905.It Cm ~C
894Open command line. 906Open command line.
895Currently this allows the addition of port forwardings using the 907Currently this allows the addition of port forwardings using the
896.Fl L 908.Fl L ,
897and
898.Fl R 909.Fl R
910and
911.Fl D
899options (see above). 912options (see above).
900It also allows the cancellation of existing remote port-forwardings 913It also allows the cancellation of existing remote port-forwardings
901using 914using
diff --git a/ssh.c b/ssh.c
index e2dd67d68..9d43bb74f 100644
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh.c,v 1.318 2008/07/02 13:47:39 djm Exp $ */ 1/* $OpenBSD: ssh.c,v 1.324 2009/02/12 03:00:56 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -179,7 +179,7 @@ static void
179usage(void) 179usage(void)
180{ 180{
181 fprintf(stderr, 181 fprintf(stderr,
182"usage: ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]\n" 182"usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n"
183" [-D [bind_address:]port] [-e escape_char] [-F configfile]\n" 183" [-D [bind_address:]port] [-e escape_char] [-F configfile]\n"
184" [-i identity_file] [-L [bind_address:]port:host:hostport]\n" 184" [-i identity_file] [-L [bind_address:]port:host:hostport]\n"
185" [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n" 185" [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n"
@@ -203,7 +203,7 @@ void muxserver_listen(void);
203int 203int
204main(int ac, char **av) 204main(int ac, char **av)
205{ 205{
206 int i, opt, exit_status; 206 int i, opt, exit_status, use_syslog;
207 char *p, *cp, *line, buf[256]; 207 char *p, *cp, *line, buf[256];
208 struct stat st; 208 struct stat st;
209 struct passwd *pw; 209 struct passwd *pw;
@@ -269,10 +269,11 @@ main(int ac, char **av)
269 269
270 /* Parse command-line arguments. */ 270 /* Parse command-line arguments. */
271 host = NULL; 271 host = NULL;
272 use_syslog = 0;
272 273
273 again: 274 again:
274 while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx" 275 while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx"
275 "ACD:F:I:KL:MNO:PR:S:TVw:XY")) != -1) { 276 "ACD:F:I:KL:MNO:PR:S:TVw:XYy")) != -1) {
276 switch (opt) { 277 switch (opt) {
277 case '1': 278 case '1':
278 options.protocol = SSH_PROTO_1; 279 options.protocol = SSH_PROTO_1;
@@ -299,6 +300,9 @@ main(int ac, char **av)
299 case 'X': 300 case 'X':
300 options.forward_x11 = 1; 301 options.forward_x11 = 1;
301 break; 302 break;
303 case 'y':
304 use_syslog = 1;
305 break;
302 case 'Y': 306 case 'Y':
303 options.forward_x11 = 1; 307 options.forward_x11 = 1;
304 options.forward_x11_trusted = 1; 308 options.forward_x11_trusted = 1;
@@ -439,7 +443,7 @@ main(int ac, char **av)
439 break; 443 break;
440 case 'p': 444 case 'p':
441 options.port = a2port(optarg); 445 options.port = a2port(optarg);
442 if (options.port == 0) { 446 if (options.port <= 0) {
443 fprintf(stderr, "Bad port '%s'\n", optarg); 447 fprintf(stderr, "Bad port '%s'\n", optarg);
444 exit(255); 448 exit(255);
445 } 449 }
@@ -449,7 +453,7 @@ main(int ac, char **av)
449 break; 453 break;
450 454
451 case 'L': 455 case 'L':
452 if (parse_forward(&fwd, optarg)) 456 if (parse_forward(&fwd, optarg, 0, 0))
453 add_local_forward(&options, &fwd); 457 add_local_forward(&options, &fwd);
454 else { 458 else {
455 fprintf(stderr, 459 fprintf(stderr,
@@ -460,7 +464,7 @@ main(int ac, char **av)
460 break; 464 break;
461 465
462 case 'R': 466 case 'R':
463 if (parse_forward(&fwd, optarg)) { 467 if (parse_forward(&fwd, optarg, 0, 1)) {
464 add_remote_forward(&options, &fwd); 468 add_remote_forward(&options, &fwd);
465 } else { 469 } else {
466 fprintf(stderr, 470 fprintf(stderr,
@@ -471,30 +475,14 @@ main(int ac, char **av)
471 break; 475 break;
472 476
473 case 'D': 477 case 'D':
474 cp = p = xstrdup(optarg); 478 if (parse_forward(&fwd, optarg, 1, 0)) {
475 memset(&fwd, '\0', sizeof(fwd)); 479 add_local_forward(&options, &fwd);
476 fwd.connect_host = "socks";
477 if ((fwd.listen_host = hpdelim(&cp)) == NULL) {
478 fprintf(stderr, "Bad dynamic forwarding "
479 "specification '%.100s'\n", optarg);
480 exit(255);
481 }
482 if (cp != NULL) {
483 fwd.listen_port = a2port(cp);
484 fwd.listen_host =
485 cleanhostname(fwd.listen_host);
486 } else { 480 } else {
487 fwd.listen_port = a2port(fwd.listen_host); 481 fprintf(stderr,
488 fwd.listen_host = NULL; 482 "Bad dynamic forwarding specification "
489 } 483 "'%s'\n", optarg);
490
491 if (fwd.listen_port == 0) {
492 fprintf(stderr, "Bad dynamic port '%s'\n",
493 optarg);
494 exit(255); 484 exit(255);
495 } 485 }
496 add_local_forward(&options, &fwd);
497 xfree(p);
498 break; 486 break;
499 487
500 case 'C': 488 case 'C':
@@ -614,7 +602,7 @@ main(int ac, char **av)
614 */ 602 */
615 log_init(av[0], 603 log_init(av[0],
616 options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level, 604 options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level,
617 SYSLOG_FACILITY_USER, 1); 605 SYSLOG_FACILITY_USER, !use_syslog);
618 606
619 /* 607 /*
620 * Read per-user configuration file. Ignore the system wide config 608 * Read per-user configuration file. Ignore the system wide config
@@ -640,7 +628,7 @@ main(int ac, char **av)
640 channel_set_af(options.address_family); 628 channel_set_af(options.address_family);
641 629
642 /* reinit */ 630 /* reinit */
643 log_init(av[0], options.log_level, SYSLOG_FACILITY_USER, 1); 631 log_init(av[0], options.log_level, SYSLOG_FACILITY_USER, !use_syslog);
644 632
645 seed_rng(); 633 seed_rng();
646 634
@@ -849,9 +837,16 @@ ssh_confirm_remote_forward(int type, u_int32_t seq, void *ctxt)
849{ 837{
850 Forward *rfwd = (Forward *)ctxt; 838 Forward *rfwd = (Forward *)ctxt;
851 839
840 /* XXX verbose() on failure? */
852 debug("remote forward %s for: listen %d, connect %s:%d", 841 debug("remote forward %s for: listen %d, connect %s:%d",
853 type == SSH2_MSG_REQUEST_SUCCESS ? "success" : "failure", 842 type == SSH2_MSG_REQUEST_SUCCESS ? "success" : "failure",
854 rfwd->listen_port, rfwd->connect_host, rfwd->connect_port); 843 rfwd->listen_port, rfwd->connect_host, rfwd->connect_port);
844 if (type == SSH2_MSG_REQUEST_SUCCESS && rfwd->listen_port == 0) {
845 logit("Allocated port %u for remote forward to %s:%d",
846 packet_get_int(),
847 rfwd->connect_host, rfwd->connect_port);
848 }
849
855 if (type == SSH2_MSG_REQUEST_FAILURE) { 850 if (type == SSH2_MSG_REQUEST_FAILURE) {
856 if (options.exit_on_forward_failure) 851 if (options.exit_on_forward_failure)
857 fatal("Error: remote port forwarding failed for " 852 fatal("Error: remote port forwarding failed for "
@@ -1200,7 +1195,8 @@ ssh_session2(void)
1200 id = ssh_session2_open(); 1195 id = ssh_session2_open();
1201 1196
1202 /* If we don't expect to open a new session, then disallow it */ 1197 /* If we don't expect to open a new session, then disallow it */
1203 if (options.control_master == SSHCTL_MASTER_NO) { 1198 if (options.control_master == SSHCTL_MASTER_NO &&
1199 (datafellows & SSH_NEW_OPENSSH)) {
1204 debug("Requesting no-more-sessions@openssh.com"); 1200 debug("Requesting no-more-sessions@openssh.com");
1205 packet_start(SSH2_MSG_GLOBAL_REQUEST); 1201 packet_start(SSH2_MSG_GLOBAL_REQUEST);
1206 packet_put_cstring("no-more-sessions@openssh.com"); 1202 packet_put_cstring("no-more-sessions@openssh.com");
diff --git a/ssh2.h b/ssh2.h
index cf56bc4ee..1c33dc268 100644
--- a/ssh2.h
+++ b/ssh2.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh2.h,v 1.10 2006/03/25 22:22:43 djm Exp $ */ 1/* $OpenBSD: ssh2.h,v 1.11 2008/11/04 08:22:13 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
@@ -111,6 +111,12 @@
111#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60 111#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60
112#define SSH2_MSG_USERAUTH_INFO_REQUEST 60 112#define SSH2_MSG_USERAUTH_INFO_REQUEST 60
113#define SSH2_MSG_USERAUTH_INFO_RESPONSE 61 113#define SSH2_MSG_USERAUTH_INFO_RESPONSE 61
114#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1 60
115#define SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1 61
116#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2 62
117#define SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2 63
118#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM 64
119#define SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM 65
114 120
115/* connection protocol: generic */ 121/* connection protocol: generic */
116 122
@@ -159,3 +165,4 @@
159#define SSH2_OPEN_RESOURCE_SHORTAGE 4 165#define SSH2_OPEN_RESOURCE_SHORTAGE 4
160 166
161#define SSH2_EXTENDED_DATA_STDERR 1 167#define SSH2_EXTENDED_DATA_STDERR 1
168
diff --git a/ssh_config b/ssh_config
index 8cb0698a8..f28d59583 100644
--- a/ssh_config
+++ b/ssh_config
@@ -1,4 +1,4 @@
1# $OpenBSD: ssh_config,v 1.23 2007/06/08 04:40:40 pvalchev Exp $ 1# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $
2 2
3# This is the ssh client system-wide configuration file. See 3# This is the ssh client system-wide configuration file. See
4# ssh_config(5) for more information. This file provides defaults for 4# ssh_config(5) for more information. This file provides defaults for
@@ -37,9 +37,10 @@
37# Port 22 37# Port 22
38# Protocol 2,1 38# Protocol 2,1
39# Cipher 3des 39# Cipher 3des
40# Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc 40# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
41# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 41# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
42# EscapeChar ~ 42# EscapeChar ~
43# Tunnel no 43# Tunnel no
44# TunnelDevice any:any 44# TunnelDevice any:any
45# PermitLocalCommand no 45# PermitLocalCommand no
46# VisualHostKey no
diff --git a/ssh_config.0 b/ssh_config.0
index e2e645854..e5ded8e31 100644
--- a/ssh_config.0
+++ b/ssh_config.0
@@ -41,7 +41,7 @@ DESCRIPTION
41 Host Restricts the following declarations (up to the next Host key- 41 Host Restricts the following declarations (up to the next Host key-
42 word) to be only for those hosts that match one of the patterns 42 word) to be only for those hosts that match one of the patterns
43 given after the keyword. If more than one pattern is provided, 43 given after the keyword. If more than one pattern is provided,
44 they should be separated by whitepsace. A single `*' as a pat- 44 they should be separated by whitespace. A single `*' as a pat-
45 tern can be used to provide global defaults for all hosts. The 45 tern can be used to provide global defaults for all hosts. The
46 host is the hostname argument given on the command line (i.e. the 46 host is the hostname argument given on the command line (i.e. the
47 name is not converted to a canonicalized host name before match- 47 name is not converted to a canonicalized host name before match-
@@ -93,9 +93,9 @@ DESCRIPTION
93 ``arcfour128'', ``arcfour256'', ``arcfour'', ``blowfish-cbc'', 93 ``arcfour128'', ``arcfour256'', ``arcfour'', ``blowfish-cbc'',
94 and ``cast128-cbc''. The default is: 94 and ``cast128-cbc''. The default is:
95 95
96 aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, 96 aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
97 arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, 97 aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
98 aes192-ctr,aes256-ctr 98 aes256-cbc,arcfour
99 99
100 ClearAllForwardings 100 ClearAllForwardings
101 Specifies that all local, remote, and dynamic port forwardings 101 Specifies that all local, remote, and dynamic port forwardings
@@ -463,8 +463,11 @@ DESCRIPTION
463 specified by enclosing addresses in square brackets or by using 463 specified by enclosing addresses in square brackets or by using
464 an alternative syntax: [bind_address/]port and host/hostport. 464 an alternative syntax: [bind_address/]port and host/hostport.
465 Multiple forwardings may be specified, and additional forwardings 465 Multiple forwardings may be specified, and additional forwardings
466 can be given on the command line. Only the superuser can forward 466 can be given on the command line. Privileged ports can be for-
467 privileged ports. 467 warded only when logging in as root on the remote machine.
468
469 If the port argument is `0', the listen port will be dynamically
470 allocated on the server and reported to the client at run time.
468 471
469 If the bind_address is not specified, the default is to only bind 472 If the bind_address is not specified, the default is to only bind
470 to loopback addresses. If the bind_address is `*' or an empty 473 to loopback addresses. If the bind_address is `*' or an empty
@@ -609,9 +612,11 @@ DESCRIPTION
609 612
610 VisualHostKey 613 VisualHostKey
611 If this flag is set to ``yes'', an ASCII art representation of 614 If this flag is set to ``yes'', an ASCII art representation of
612 the remote host key fingerprint is printed additionally to the 615 the remote host key fingerprint is printed in addition to the hex
613 hex fingerprint string. If this flag is set to ``no'', only the 616 fingerprint string at login and for unknown host keys. If this
614 hex fingerprint string will be printed. The default is ``no''. 617 flag is set to ``no'', no fingerprint strings are printed at lo-
618 gin and only the hex fingerprint string will be printed for un-
619 known host keys. The default is ``no''.
615 620
616 XAuthLocation 621 XAuthLocation
617 Specifies the full pathname of the xauth(1) program. The default 622 Specifies the full pathname of the xauth(1) program. The default
@@ -662,4 +667,4 @@ AUTHORS
662 ated OpenSSH. Markus Friedl contributed the support for SSH protocol 667 ated OpenSSH. Markus Friedl contributed the support for SSH protocol
663 versions 1.5 and 2.0. 668 versions 1.5 and 2.0.
664 669
665OpenBSD 4.4 June 26, 2008 11 670OpenBSD 4.5 February 22, 2009 11
diff --git a/ssh_config.5 b/ssh_config.5
index 85e7ba06d..ea9a20b23 100644
--- a/ssh_config.5
+++ b/ssh_config.5
@@ -34,8 +34,8 @@
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.\" $OpenBSD: ssh_config.5,v 1.111 2008/06/26 11:46:31 grunk Exp $ 37.\" $OpenBSD: ssh_config.5,v 1.119 2009/02/22 23:50:57 djm Exp $
38.Dd $Mdocdate: June 26 2008 $ 38.Dd $Mdocdate: February 22 2009 $
39.Dt SSH_CONFIG 5 39.Dt SSH_CONFIG 5
40.Os 40.Os
41.Sh NAME 41.Sh NAME
@@ -103,7 +103,7 @@ Restricts the following declarations (up to the next
103.Cm Host 103.Cm Host
104keyword) to be only for those hosts that match one of the patterns 104keyword) to be only for those hosts that match one of the patterns
105given after the keyword. 105given after the keyword.
106If more than one pattern is provided, they should be separated by whitepsace. 106If more than one pattern is provided, they should be separated by whitespace.
107A single 107A single
108.Ql * 108.Ql *
109as a pattern can be used to provide global 109as a pattern can be used to provide global
@@ -204,9 +204,9 @@ and
204.Dq cast128-cbc . 204.Dq cast128-cbc .
205The default is: 205The default is:
206.Bd -literal -offset 3n 206.Bd -literal -offset 3n
207aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, 207aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
208arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, 208aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
209aes192-ctr,aes256-ctr 209aes256-cbc,arcfour
210.Ed 210.Ed
211.It Cm ClearAllForwardings 211.It Cm ClearAllForwardings
212Specifies that all local, remote, and dynamic port forwardings 212Specifies that all local, remote, and dynamic port forwardings
@@ -811,7 +811,15 @@ and
811.Ar host Ns / Ns Ar hostport . 811.Ar host Ns / Ns Ar hostport .
812Multiple forwardings may be specified, and additional 812Multiple forwardings may be specified, and additional
813forwardings can be given on the command line. 813forwardings can be given on the command line.
814Only the superuser can forward privileged ports. 814Privileged ports can be forwarded only when
815logging in as root on the remote machine.
816.Pp
817If the
818.Ar port
819argument is
820.Ql 0 ,
821the listen port will be dynamically allocated on the server and reported
822to the client at run time.
815.Pp 823.Pp
816If the 824If the
817.Ar bind_address 825.Ar bind_address
@@ -1064,10 +1072,12 @@ in
1064If this flag is set to 1072If this flag is set to
1065.Dq yes , 1073.Dq yes ,
1066an ASCII art representation of the remote host key fingerprint is 1074an ASCII art representation of the remote host key fingerprint is
1067printed additionally to the hex fingerprint string. 1075printed in addition to the hex fingerprint string at login and
1076for unknown host keys.
1068If this flag is set to 1077If this flag is set to
1069.Dq no , 1078.Dq no ,
1070only the hex fingerprint string will be printed. 1079no fingerprint strings are printed at login and
1080only the hex fingerprint string will be printed for unknown host keys.
1071The default is 1081The default is
1072.Dq no . 1082.Dq no .
1073.It Cm XAuthLocation 1083.It Cm XAuthLocation
diff --git a/sshconnect.c b/sshconnect.c
index ec8ba33e0..c04aa1057 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshconnect.c,v 1.211 2008/07/01 07:24:22 dtucker Exp $ */ 1/* $OpenBSD: sshconnect.c,v 1.212 2008/10/14 18:11:33 stevesk Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -70,10 +70,6 @@ extern uid_t original_real_uid;
70extern uid_t original_effective_uid; 70extern uid_t original_effective_uid;
71extern pid_t proxy_command_pid; 71extern pid_t proxy_command_pid;
72 72
73#ifndef INET6_ADDRSTRLEN /* for non IPv6 machines */
74#define INET6_ADDRSTRLEN 46
75#endif
76
77static int show_other_keys(const char *, Key *); 73static int show_other_keys(const char *, Key *);
78static void warn_changed_key(Key *); 74static void warn_changed_key(Key *);
79 75
@@ -741,8 +737,8 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port,
741 if (options.host_key_alias == NULL && port != 0 && 737 if (options.host_key_alias == NULL && port != 0 &&
742 port != SSH_DEFAULT_PORT) { 738 port != SSH_DEFAULT_PORT) {
743 debug("checking without port identifier"); 739 debug("checking without port identifier");
744 if (check_host_key(hostname, hostaddr, 0, host_key, 2, 740 if (check_host_key(hostname, hostaddr, 0, host_key,
745 user_hostfile, system_hostfile) == 0) { 741 ROQUIET, user_hostfile, system_hostfile) == 0) {
746 debug("found matching key w/out port"); 742 debug("found matching key w/out port");
747 break; 743 break;
748 } 744 }
diff --git a/sshconnect2.c b/sshconnect2.c
index 389bec9e4..a762eec3b 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -1,6 +1,7 @@
1/* $OpenBSD: sshconnect2.c,v 1.166 2008/07/17 08:48:00 djm Exp $ */ 1/* $OpenBSD: sshconnect2.c,v 1.170 2008/11/04 08:22:13 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * Copyright (c) 2008 Damien Miller. All rights reserved.
4 * 5 *
5 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
@@ -67,6 +68,7 @@
67#include "msg.h" 68#include "msg.h"
68#include "pathnames.h" 69#include "pathnames.h"
69#include "uidswap.h" 70#include "uidswap.h"
71#include "jpake.h"
70 72
71#ifdef GSSAPI 73#ifdef GSSAPI
72#include "ssh-gss.h" 74#include "ssh-gss.h"
@@ -201,6 +203,7 @@ struct Authctxt {
201struct Authmethod { 203struct Authmethod {
202 char *name; /* string to compare against server's list */ 204 char *name; /* string to compare against server's list */
203 int (*userauth)(Authctxt *authctxt); 205 int (*userauth)(Authctxt *authctxt);
206 void (*cleanup)(Authctxt *authctxt);
204 int *enabled; /* flag in option struct that enables method */ 207 int *enabled; /* flag in option struct that enables method */
205 int *batch_flag; /* flag in option struct that disables method */ 208 int *batch_flag; /* flag in option struct that disables method */
206}; 209};
@@ -212,13 +215,18 @@ void input_userauth_error(int, u_int32_t, void *);
212void input_userauth_info_req(int, u_int32_t, void *); 215void input_userauth_info_req(int, u_int32_t, void *);
213void input_userauth_pk_ok(int, u_int32_t, void *); 216void input_userauth_pk_ok(int, u_int32_t, void *);
214void input_userauth_passwd_changereq(int, u_int32_t, void *); 217void input_userauth_passwd_changereq(int, u_int32_t, void *);
218void input_userauth_jpake_server_step1(int, u_int32_t, void *);
219void input_userauth_jpake_server_step2(int, u_int32_t, void *);
220void input_userauth_jpake_server_confirm(int, u_int32_t, void *);
215 221
216int userauth_none(Authctxt *); 222int userauth_none(Authctxt *);
217int userauth_pubkey(Authctxt *); 223int userauth_pubkey(Authctxt *);
218int userauth_passwd(Authctxt *); 224int userauth_passwd(Authctxt *);
219int userauth_kbdint(Authctxt *); 225int userauth_kbdint(Authctxt *);
220int userauth_hostbased(Authctxt *); 226int userauth_hostbased(Authctxt *);
221int userauth_kerberos(Authctxt *); 227int userauth_jpake(Authctxt *);
228
229void userauth_jpake_cleanup(Authctxt *);
222 230
223#ifdef GSSAPI 231#ifdef GSSAPI
224int userauth_gssapi(Authctxt *authctxt); 232int userauth_gssapi(Authctxt *authctxt);
@@ -244,30 +252,43 @@ Authmethod authmethods[] = {
244#ifdef GSSAPI 252#ifdef GSSAPI
245 {"gssapi-with-mic", 253 {"gssapi-with-mic",
246 userauth_gssapi, 254 userauth_gssapi,
255 NULL,
247 &options.gss_authentication, 256 &options.gss_authentication,
248 NULL}, 257 NULL},
249#endif 258#endif
250 {"hostbased", 259 {"hostbased",
251 userauth_hostbased, 260 userauth_hostbased,
261 NULL,
252 &options.hostbased_authentication, 262 &options.hostbased_authentication,
253 NULL}, 263 NULL},
254 {"publickey", 264 {"publickey",
255 userauth_pubkey, 265 userauth_pubkey,
266 NULL,
256 &options.pubkey_authentication, 267 &options.pubkey_authentication,
257 NULL}, 268 NULL},
269#ifdef JPAKE
270 {"jpake-01@openssh.com",
271 userauth_jpake,
272 userauth_jpake_cleanup,
273 &options.zero_knowledge_password_authentication,
274 &options.batch_mode},
275#endif
258 {"keyboard-interactive", 276 {"keyboard-interactive",
259 userauth_kbdint, 277 userauth_kbdint,
278 NULL,
260 &options.kbd_interactive_authentication, 279 &options.kbd_interactive_authentication,
261 &options.batch_mode}, 280 &options.batch_mode},
262 {"password", 281 {"password",
263 userauth_passwd, 282 userauth_passwd,
283 NULL,
264 &options.password_authentication, 284 &options.password_authentication,
265 &options.batch_mode}, 285 &options.batch_mode},
266 {"none", 286 {"none",
267 userauth_none, 287 userauth_none,
268 NULL, 288 NULL,
289 NULL,
269 NULL}, 290 NULL},
270 {NULL, NULL, NULL, NULL} 291 {NULL, NULL, NULL, NULL, NULL}
271}; 292};
272 293
273void 294void
@@ -335,6 +356,9 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host,
335void 356void
336userauth(Authctxt *authctxt, char *authlist) 357userauth(Authctxt *authctxt, char *authlist)
337{ 358{
359 if (authctxt->method != NULL && authctxt->method->cleanup != NULL)
360 authctxt->method->cleanup(authctxt);
361
338 if (authctxt->methoddata) { 362 if (authctxt->methoddata) {
339 xfree(authctxt->methoddata); 363 xfree(authctxt->methoddata);
340 authctxt->methoddata = NULL; 364 authctxt->methoddata = NULL;
@@ -367,6 +391,7 @@ userauth(Authctxt *authctxt, char *authlist)
367 } 391 }
368} 392}
369 393
394/* ARGSUSED */
370void 395void
371input_userauth_error(int type, u_int32_t seq, void *ctxt) 396input_userauth_error(int type, u_int32_t seq, void *ctxt)
372{ 397{
@@ -374,6 +399,7 @@ input_userauth_error(int type, u_int32_t seq, void *ctxt)
374 "type %d", type); 399 "type %d", type);
375} 400}
376 401
402/* ARGSUSED */
377void 403void
378input_userauth_banner(int type, u_int32_t seq, void *ctxt) 404input_userauth_banner(int type, u_int32_t seq, void *ctxt)
379{ 405{
@@ -383,11 +409,11 @@ input_userauth_banner(int type, u_int32_t seq, void *ctxt)
383 debug3("input_userauth_banner"); 409 debug3("input_userauth_banner");
384 raw = packet_get_string(&len); 410 raw = packet_get_string(&len);
385 lang = packet_get_string(NULL); 411 lang = packet_get_string(NULL);
386 if (options.log_level >= SYSLOG_LEVEL_INFO) { 412 if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) {
387 if (len > 65536) 413 if (len > 65536)
388 len = 65536; 414 len = 65536;
389 msg = xmalloc(len * 4); /* max expansion from strnvis() */ 415 msg = xmalloc(len * 4 + 1); /* max expansion from strnvis() */
390 strnvis(msg, raw, len * 4, VIS_SAFE|VIS_OCTAL); 416 strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL);
391 fprintf(stderr, "%s", msg); 417 fprintf(stderr, "%s", msg);
392 xfree(msg); 418 xfree(msg);
393 } 419 }
@@ -395,6 +421,7 @@ input_userauth_banner(int type, u_int32_t seq, void *ctxt)
395 xfree(lang); 421 xfree(lang);
396} 422}
397 423
424/* ARGSUSED */
398void 425void
399input_userauth_success(int type, u_int32_t seq, void *ctxt) 426input_userauth_success(int type, u_int32_t seq, void *ctxt)
400{ 427{
@@ -412,6 +439,7 @@ input_userauth_success(int type, u_int32_t seq, void *ctxt)
412 authctxt->success = 1; /* break out */ 439 authctxt->success = 1; /* break out */
413} 440}
414 441
442/* ARGSUSED */
415void 443void
416input_userauth_failure(int type, u_int32_t seq, void *ctxt) 444input_userauth_failure(int type, u_int32_t seq, void *ctxt)
417{ 445{
@@ -432,6 +460,8 @@ input_userauth_failure(int type, u_int32_t seq, void *ctxt)
432 460
433 userauth(authctxt, authlist); 461 userauth(authctxt, authlist);
434} 462}
463
464/* ARGSUSED */
435void 465void
436input_userauth_pk_ok(int type, u_int32_t seq, void *ctxt) 466input_userauth_pk_ok(int type, u_int32_t seq, void *ctxt)
437{ 467{
@@ -614,6 +644,7 @@ process_gssapi_token(void *ctxt, gss_buffer_t recv_tok)
614 return status; 644 return status;
615} 645}
616 646
647/* ARGSUSED */
617void 648void
618input_gssapi_response(int type, u_int32_t plen, void *ctxt) 649input_gssapi_response(int type, u_int32_t plen, void *ctxt)
619{ 650{
@@ -653,6 +684,7 @@ input_gssapi_response(int type, u_int32_t plen, void *ctxt)
653 } 684 }
654} 685}
655 686
687/* ARGSUSED */
656void 688void
657input_gssapi_token(int type, u_int32_t plen, void *ctxt) 689input_gssapi_token(int type, u_int32_t plen, void *ctxt)
658{ 690{
@@ -680,6 +712,7 @@ input_gssapi_token(int type, u_int32_t plen, void *ctxt)
680 } 712 }
681} 713}
682 714
715/* ARGSUSED */
683void 716void
684input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) 717input_gssapi_errtok(int type, u_int32_t plen, void *ctxt)
685{ 718{
@@ -709,6 +742,7 @@ input_gssapi_errtok(int type, u_int32_t plen, void *ctxt)
709 /* Server will be returning a failed packet after this one */ 742 /* Server will be returning a failed packet after this one */
710} 743}
711 744
745/* ARGSUSED */
712void 746void
713input_gssapi_error(int type, u_int32_t plen, void *ctxt) 747input_gssapi_error(int type, u_int32_t plen, void *ctxt)
714{ 748{
@@ -773,9 +807,11 @@ userauth_passwd(Authctxt *authctxt)
773 807
774 return 1; 808 return 1;
775} 809}
810
776/* 811/*
777 * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST 812 * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST
778 */ 813 */
814/* ARGSUSED */
779void 815void
780input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt) 816input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt)
781{ 817{
@@ -840,6 +876,209 @@ input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt)
840 &input_userauth_passwd_changereq); 876 &input_userauth_passwd_changereq);
841} 877}
842 878
879#ifdef JPAKE
880static char *
881pw_encrypt(const char *password, const char *crypt_scheme, const char *salt)
882{
883 /* OpenBSD crypt(3) handles all of these */
884 if (strcmp(crypt_scheme, "crypt") == 0 ||
885 strcmp(crypt_scheme, "bcrypt") == 0 ||
886 strcmp(crypt_scheme, "md5crypt") == 0 ||
887 strcmp(crypt_scheme, "crypt-extended") == 0)
888 return xstrdup(crypt(password, salt));
889 error("%s: unsupported password encryption scheme \"%.100s\"",
890 __func__, crypt_scheme);
891 return NULL;
892}
893
894static BIGNUM *
895jpake_password_to_secret(Authctxt *authctxt, const char *crypt_scheme,
896 const char *salt)
897{
898 char prompt[256], *password, *crypted;
899 u_char *secret;
900 u_int secret_len;
901 BIGNUM *ret;
902
903 snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password (JPAKE): ",
904 authctxt->server_user, authctxt->host);
905 password = read_passphrase(prompt, 0);
906
907 if ((crypted = pw_encrypt(password, crypt_scheme, salt)) == NULL) {
908 logit("Disabling %s authentication", authctxt->method->name);
909 authctxt->method->enabled = NULL;
910 /* Continue with an empty password to fail gracefully */
911 crypted = xstrdup("");
912 }
913
914#ifdef JPAKE_DEBUG
915 debug3("%s: salt = %s", __func__, salt);
916 debug3("%s: scheme = %s", __func__, crypt_scheme);
917 debug3("%s: crypted = %s", __func__, crypted);
918#endif
919
920 if (hash_buffer(crypted, strlen(crypted), EVP_sha256(),
921 &secret, &secret_len) != 0)
922 fatal("%s: hash_buffer", __func__);
923
924 bzero(password, strlen(password));
925 bzero(crypted, strlen(crypted));
926 xfree(password);
927 xfree(crypted);
928
929 if ((ret = BN_bin2bn(secret, secret_len, NULL)) == NULL)
930 fatal("%s: BN_bin2bn (secret)", __func__);
931 bzero(secret, secret_len);
932 xfree(secret);
933
934 return ret;
935}
936
937/* ARGSUSED */
938void
939input_userauth_jpake_server_step1(int type, u_int32_t seq, void *ctxt)
940{
941 Authctxt *authctxt = ctxt;
942 struct jpake_ctx *pctx = authctxt->methoddata;
943 u_char *x3_proof, *x4_proof, *x2_s_proof;
944 u_int x3_proof_len, x4_proof_len, x2_s_proof_len;
945 char *crypt_scheme, *salt;
946
947 /* Disable this message */
948 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1, NULL);
949
950 if ((pctx->g_x3 = BN_new()) == NULL ||
951 (pctx->g_x4 = BN_new()) == NULL)
952 fatal("%s: BN_new", __func__);
953
954 /* Fetch step 1 values */
955 crypt_scheme = packet_get_string(NULL);
956 salt = packet_get_string(NULL);
957 pctx->server_id = packet_get_string(&pctx->server_id_len);
958 packet_get_bignum2(pctx->g_x3);
959 packet_get_bignum2(pctx->g_x4);
960 x3_proof = packet_get_string(&x3_proof_len);
961 x4_proof = packet_get_string(&x4_proof_len);
962 packet_check_eom();
963
964 JPAKE_DEBUG_CTX((pctx, "step 1 received in %s", __func__));
965
966 /* Obtain password and derive secret */
967 pctx->s = jpake_password_to_secret(authctxt, crypt_scheme, salt);
968 bzero(crypt_scheme, strlen(crypt_scheme));
969 bzero(salt, strlen(salt));
970 xfree(crypt_scheme);
971 xfree(salt);
972 JPAKE_DEBUG_BN((pctx->s, "%s: s = ", __func__));
973
974 /* Calculate step 2 values */
975 jpake_step2(pctx->grp, pctx->s, pctx->g_x1,
976 pctx->g_x3, pctx->g_x4, pctx->x2,
977 pctx->server_id, pctx->server_id_len,
978 pctx->client_id, pctx->client_id_len,
979 x3_proof, x3_proof_len,
980 x4_proof, x4_proof_len,
981 &pctx->a,
982 &x2_s_proof, &x2_s_proof_len);
983
984 bzero(x3_proof, x3_proof_len);
985 bzero(x4_proof, x4_proof_len);
986 xfree(x3_proof);
987 xfree(x4_proof);
988
989 JPAKE_DEBUG_CTX((pctx, "step 2 sending in %s", __func__));
990
991 /* Send values for step 2 */
992 packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2);
993 packet_put_bignum2(pctx->a);
994 packet_put_string(x2_s_proof, x2_s_proof_len);
995 packet_send();
996
997 bzero(x2_s_proof, x2_s_proof_len);
998 xfree(x2_s_proof);
999
1000 /* Expect step 2 packet from peer */
1001 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2,
1002 input_userauth_jpake_server_step2);
1003}
1004
1005/* ARGSUSED */
1006void
1007input_userauth_jpake_server_step2(int type, u_int32_t seq, void *ctxt)
1008{
1009 Authctxt *authctxt = ctxt;
1010 struct jpake_ctx *pctx = authctxt->methoddata;
1011 u_char *x4_s_proof;
1012 u_int x4_s_proof_len;
1013
1014 /* Disable this message */
1015 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2, NULL);
1016
1017 if ((pctx->b = BN_new()) == NULL)
1018 fatal("%s: BN_new", __func__);
1019
1020 /* Fetch step 2 values */
1021 packet_get_bignum2(pctx->b);
1022 x4_s_proof = packet_get_string(&x4_s_proof_len);
1023 packet_check_eom();
1024
1025 JPAKE_DEBUG_CTX((pctx, "step 2 received in %s", __func__));
1026
1027 /* Derive shared key and calculate confirmation hash */
1028 jpake_key_confirm(pctx->grp, pctx->s, pctx->b,
1029 pctx->x2, pctx->g_x1, pctx->g_x2, pctx->g_x3, pctx->g_x4,
1030 pctx->client_id, pctx->client_id_len,
1031 pctx->server_id, pctx->server_id_len,
1032 session_id2, session_id2_len,
1033 x4_s_proof, x4_s_proof_len,
1034 &pctx->k,
1035 &pctx->h_k_cid_sessid, &pctx->h_k_cid_sessid_len);
1036
1037 bzero(x4_s_proof, x4_s_proof_len);
1038 xfree(x4_s_proof);
1039
1040 JPAKE_DEBUG_CTX((pctx, "confirm sending in %s", __func__));
1041
1042 /* Send key confirmation proof */
1043 packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM);
1044 packet_put_string(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len);
1045 packet_send();
1046
1047 /* Expect confirmation from peer */
1048 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM,
1049 input_userauth_jpake_server_confirm);
1050}
1051
1052/* ARGSUSED */
1053void
1054input_userauth_jpake_server_confirm(int type, u_int32_t seq, void *ctxt)
1055{
1056 Authctxt *authctxt = ctxt;
1057 struct jpake_ctx *pctx = authctxt->methoddata;
1058
1059 /* Disable this message */
1060 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM, NULL);
1061
1062 pctx->h_k_sid_sessid = packet_get_string(&pctx->h_k_sid_sessid_len);
1063 packet_check_eom();
1064
1065 JPAKE_DEBUG_CTX((pctx, "confirm received in %s", __func__));
1066
1067 /* Verify expected confirmation hash */
1068 if (jpake_check_confirm(pctx->k,
1069 pctx->server_id, pctx->server_id_len,
1070 session_id2, session_id2_len,
1071 pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len) == 1)
1072 debug("%s: %s success", __func__, authctxt->method->name);
1073 else {
1074 debug("%s: confirmation mismatch", __func__);
1075 /* XXX stash this so if auth succeeds then we can warn/kill */
1076 }
1077
1078 userauth_jpake_cleanup(authctxt);
1079}
1080#endif /* JPAKE */
1081
843static int 1082static int
844identity_sign(Identity *id, u_char **sigp, u_int *lenp, 1083identity_sign(Identity *id, u_char **sigp, u_int *lenp,
845 u_char *data, u_int datalen) 1084 u_char *data, u_int datalen)
@@ -1414,6 +1653,76 @@ userauth_hostbased(Authctxt *authctxt)
1414 return 1; 1653 return 1;
1415} 1654}
1416 1655
1656#ifdef JPAKE
1657int
1658userauth_jpake(Authctxt *authctxt)
1659{
1660 struct jpake_ctx *pctx;
1661 u_char *x1_proof, *x2_proof;
1662 u_int x1_proof_len, x2_proof_len;
1663 static int attempt = 0; /* XXX share with userauth_password's? */
1664
1665 if (attempt++ >= options.number_of_password_prompts)
1666 return 0;
1667 if (attempt != 1)
1668 error("Permission denied, please try again.");
1669
1670 if (authctxt->methoddata != NULL)
1671 fatal("%s: authctxt->methoddata already set (%p)",
1672 __func__, authctxt->methoddata);
1673
1674 authctxt->methoddata = pctx = jpake_new();
1675
1676 /*
1677 * Send request immediately, to get the protocol going while
1678 * we do the initial computations.
1679 */
1680 packet_start(SSH2_MSG_USERAUTH_REQUEST);
1681 packet_put_cstring(authctxt->server_user);
1682 packet_put_cstring(authctxt->service);
1683 packet_put_cstring(authctxt->method->name);
1684 packet_send();
1685 packet_write_wait();
1686
1687 jpake_step1(pctx->grp,
1688 &pctx->client_id, &pctx->client_id_len,
1689 &pctx->x1, &pctx->x2, &pctx->g_x1, &pctx->g_x2,
1690 &x1_proof, &x1_proof_len,
1691 &x2_proof, &x2_proof_len);
1692
1693 JPAKE_DEBUG_CTX((pctx, "step 1 sending in %s", __func__));
1694
1695 packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1);
1696 packet_put_string(pctx->client_id, pctx->client_id_len);
1697 packet_put_bignum2(pctx->g_x1);
1698 packet_put_bignum2(pctx->g_x2);
1699 packet_put_string(x1_proof, x1_proof_len);
1700 packet_put_string(x2_proof, x2_proof_len);
1701 packet_send();
1702
1703 bzero(x1_proof, x1_proof_len);
1704 bzero(x2_proof, x2_proof_len);
1705 xfree(x1_proof);
1706 xfree(x2_proof);
1707
1708 /* Expect step 1 packet from peer */
1709 dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1,
1710 input_userauth_jpake_server_step1);
1711
1712 return 1;
1713}
1714
1715void
1716userauth_jpake_cleanup(Authctxt *authctxt)
1717{
1718 debug3("%s: clean up", __func__);
1719 if (authctxt->methoddata != NULL) {
1720 jpake_free(authctxt->methoddata);
1721 authctxt->methoddata = NULL;
1722 }
1723}
1724#endif /* JPAKE */
1725
1417/* find auth method */ 1726/* find auth method */
1418 1727
1419/* 1728/*
@@ -1515,3 +1824,4 @@ authmethods_get(void)
1515 buffer_free(&b); 1824 buffer_free(&b);
1516 return list; 1825 return list;
1517} 1826}
1827
diff --git a/sshd.0 b/sshd.0
index 04d64776e..d6f02324e 100644
--- a/sshd.0
+++ b/sshd.0
@@ -458,8 +458,7 @@ FILES
458 are writable by other users, then the file could be modified or 458 are writable by other users, then the file could be modified or
459 replaced by unauthorized users. In this case, sshd will not al- 459 replaced by unauthorized users. In this case, sshd will not al-
460 low it to be used unless the StrictModes option has been set to 460 low it to be used unless the StrictModes option has been set to
461 ``no''. The recommended permissions can be set by executing 461 ``no''.
462 ``chmod go-w ~/ ~/.ssh ~/.ssh/authorized_keys''.
463 462
464 ~/.ssh/environment 463 ~/.ssh/environment
465 This file is read into the environment at login (if it exists). 464 This file is read into the environment at login (if it exists).
@@ -572,4 +571,4 @@ CAVEATS
572 System security is not improved unless rshd, rlogind, and rexecd are dis- 571 System security is not improved unless rshd, rlogind, and rexecd are dis-
573 abled (thus completely disabling rlogin and rsh into the machine). 572 abled (thus completely disabling rlogin and rsh into the machine).
574 573
575OpenBSD 4.4 July 2, 2008 9 574OpenBSD 4.5 October 3, 2008 9
diff --git a/sshd.8 b/sshd.8
index c4c4181fc..a4b9e90c7 100644
--- a/sshd.8
+++ b/sshd.8
@@ -34,8 +34,8 @@
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.\" $OpenBSD: sshd.8,v 1.246 2008/07/02 02:24:18 djm Exp $ 37.\" $OpenBSD: sshd.8,v 1.247 2008/10/03 13:08:12 jmc Exp $
38.Dd $Mdocdate: July 2 2008 $ 38.Dd $Mdocdate: October 3 2008 $
39.Dt SSHD 8 39.Dt SSHD 8
40.Os 40.Os
41.Sh NAME 41.Sh NAME
@@ -741,8 +741,6 @@ will not allow it to be used unless the
741.Cm StrictModes 741.Cm StrictModes
742option has been set to 742option has been set to
743.Dq no . 743.Dq no .
744The recommended permissions can be set by executing
745.Dq chmod go-w ~/ ~/.ssh ~/.ssh/authorized_keys .
746.Pp 744.Pp
747.It ~/.ssh/environment 745.It ~/.ssh/environment
748This file is read into the environment at login (if it exists). 746This file is read into the environment at login (if it exists).
diff --git a/sshd.c b/sshd.c
index 6e5bb5476..3b5cd3cfd 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshd.c,v 1.364 2008/07/10 18:08:11 markus Exp $ */ 1/* $OpenBSD: sshd.c,v 1.366 2009/01/22 10:02:34 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -117,7 +117,6 @@
117#include "ssh-gss.h" 117#include "ssh-gss.h"
118#endif 118#endif
119#include "monitor_wrap.h" 119#include "monitor_wrap.h"
120#include "monitor_fdpass.h"
121#include "version.h" 120#include "version.h"
122 121
123#ifdef LIBWRAP 122#ifdef LIBWRAP
@@ -1334,7 +1333,7 @@ main(int ac, char **av)
1334 exit(1); 1333 exit(1);
1335 } 1334 }
1336 options.ports[options.num_ports++] = a2port(optarg); 1335 options.ports[options.num_ports++] = a2port(optarg);
1337 if (options.ports[options.num_ports-1] == 0) { 1336 if (options.ports[options.num_ports-1] <= 0) {
1338 fprintf(stderr, "Bad port number.\n"); 1337 fprintf(stderr, "Bad port number.\n");
1339 exit(1); 1338 exit(1);
1340 } 1339 }
diff --git a/sshd_config.0 b/sshd_config.0
index 15a6c9004..067f757de 100644
--- a/sshd_config.0
+++ b/sshd_config.0
@@ -122,9 +122,9 @@ DESCRIPTION
122 ``arcfour256'', ``arcfour'', ``blowfish-cbc'', and 122 ``arcfour256'', ``arcfour'', ``blowfish-cbc'', and
123 ``cast128-cbc''. The default is: 123 ``cast128-cbc''. The default is:
124 124
125 aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, 125 aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
126 arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, 126 aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
127 aes192-ctr,aes256-ctr 127 aes256-cbc,arcfour
128 128
129 ClientAliveCountMax 129 ClientAliveCountMax
130 Sets the number of client alive messages (see below) which may be 130 Sets the number of client alive messages (see below) which may be
@@ -337,13 +337,14 @@ DESCRIPTION
337 example, ``192.0.2.0/33'' and ``192.0.2.0/8'' respectively. 337 example, ``192.0.2.0/33'' and ``192.0.2.0/8'' respectively.
338 338
339 Only a subset of keywords may be used on the lines following a 339 Only a subset of keywords may be used on the lines following a
340 Match keyword. Available keywords are AllowTcpForwarding, 340 Match keyword. Available keywords are AllowAgentForwarding,
341 Banner, ChrootDirectory, ForceCommand, GatewayPorts, 341 AllowTcpForwarding, Banner, ChrootDirectory, ForceCommand,
342 GSSAPIAuthentication, HostbasedAuthentication, 342 GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication,
343 KbdInteractiveAuthentication, KerberosAuthentication, 343 KbdInteractiveAuthentication, KerberosAuthentication,
344 MaxAuthTries, MaxSessions, PasswordAuthentication, PermitOpen, 344 MaxAuthTries, MaxSessions, PasswordAuthentication,
345 PermitRootLogin, RhostsRSAAuthentication, RSAAuthentication, 345 PermitEmptyPasswords, PermitOpen, PermitRootLogin,
346 X11DisplayOffset, X11Forwarding, and X11UseLocalHost. 346 RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
347 X11Forwarding and X11UseLocalHost.
347 348
348 MaxAuthTries 349 MaxAuthTries
349 Specifies the maximum number of authentication attempts permitted 350 Specifies the maximum number of authentication attempts permitted
@@ -627,4 +628,4 @@ AUTHORS
627 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support 628 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
628 for privilege separation. 629 for privilege separation.
629 630
630OpenBSD 4.4 July 2, 2008 10 631OpenBSD 4.5 February 22, 2009 10
diff --git a/sshd_config.5 b/sshd_config.5
index 7255b1c22..dfd07b713 100644
--- a/sshd_config.5
+++ b/sshd_config.5
@@ -34,8 +34,8 @@
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.\" $OpenBSD: sshd_config.5,v 1.96 2008/07/02 02:24:18 djm Exp $ 37.\" $OpenBSD: sshd_config.5,v 1.102 2009/02/22 23:59:25 djm Exp $
38.Dd $Mdocdate: July 2 2008 $ 38.Dd $Mdocdate: February 22 2009 $
39.Dt SSHD_CONFIG 5 39.Dt SSHD_CONFIG 5
40.Os 40.Os
41.Sh NAME 41.Sh NAME
@@ -240,9 +240,9 @@ and
240.Dq cast128-cbc . 240.Dq cast128-cbc .
241The default is: 241The default is:
242.Bd -literal -offset 3n 242.Bd -literal -offset 3n
243aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, 243aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
244arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, 244aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
245aes192-ctr,aes256-ctr 245aes256-cbc,arcfour
246.Ed 246.Ed
247.It Cm ClientAliveCountMax 247.It Cm ClientAliveCountMax
248Sets the number of client alive messages (see below) which may be 248Sets the number of client alive messages (see below) which may be
@@ -593,6 +593,7 @@ Only a subset of keywords may be used on the lines following a
593.Cm Match 593.Cm Match
594keyword. 594keyword.
595Available keywords are 595Available keywords are
596.Cm AllowAgentForwarding ,
596.Cm AllowTcpForwarding , 597.Cm AllowTcpForwarding ,
597.Cm Banner , 598.Cm Banner ,
598.Cm ChrootDirectory , 599.Cm ChrootDirectory ,
@@ -605,12 +606,13 @@ Available keywords are
605.Cm MaxAuthTries , 606.Cm MaxAuthTries ,
606.Cm MaxSessions , 607.Cm MaxSessions ,
607.Cm PasswordAuthentication , 608.Cm PasswordAuthentication ,
609.Cm PermitEmptyPasswords ,
608.Cm PermitOpen , 610.Cm PermitOpen ,
609.Cm PermitRootLogin , 611.Cm PermitRootLogin ,
610.Cm RhostsRSAAuthentication , 612.Cm RhostsRSAAuthentication ,
611.Cm RSAAuthentication , 613.Cm RSAAuthentication ,
612.Cm X11DisplayOffset , 614.Cm X11DisplayOffset ,
613.Cm X11Forwarding , 615.Cm X11Forwarding
614and 616and
615.Cm X11UseLocalHost . 617.Cm X11UseLocalHost .
616.It Cm MaxAuthTries 618.It Cm MaxAuthTries
diff --git a/sshpty.c b/sshpty.c
index 5a0d1a7ad..bbbc0fefe 100644
--- a/sshpty.c
+++ b/sshpty.c
@@ -46,6 +46,13 @@
46#define O_NOCTTY 0 46#define O_NOCTTY 0
47#endif 47#endif
48 48
49#ifdef __APPLE__
50# include <AvailabilityMacros.h>
51# if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
52# define __APPLE_PRIVPTY__
53# endif
54#endif
55
49/* 56/*
50 * Allocates and opens a pty. Returns 0 if no pty could be allocated, or 57 * Allocates and opens a pty. Returns 0 if no pty could be allocated, or
51 * nonzero if a pty was successfully allocated. On success, open file 58 * nonzero if a pty was successfully allocated. On success, open file
@@ -78,10 +85,12 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen)
78void 85void
79pty_release(const char *tty) 86pty_release(const char *tty)
80{ 87{
88#ifndef __APPLE_PRIVPTY__
81 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0) 89 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0)
82 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno)); 90 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno));
83 if (chmod(tty, (mode_t) 0666) < 0) 91 if (chmod(tty, (mode_t) 0666) < 0)
84 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno)); 92 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno));
93#endif /* __APPLE_PRIVPTY__ */
85} 94}
86 95
87/* Makes the tty the process's controlling tty and sets it to sane modes. */ 96/* Makes the tty the process's controlling tty and sets it to sane modes. */
diff --git a/sshtty.h b/sshtty.h
deleted file mode 100644
index 723b27846..000000000
--- a/sshtty.h
+++ /dev/null
@@ -1,47 +0,0 @@
1/* $OpenBSD: sshtty.h,v 1.3 2003/09/19 17:43:35 markus Exp $ */
2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5 * All rights reserved
6 *
7 * As far as I am concerned, the code I have written for this software
8 * can be used freely for any purpose. Any derived versions of this
9 * software must be clearly marked as such, and if the derived work is
10 * incompatible with the protocol description in the RFC file, it must be
11 * called by a name other than "ssh" or "Secure Shell".
12 */
13/*
14 * Copyright (c) 2001 Markus Friedl. All rights reserved.
15 * Copyright (c) 2001 Kevin Steves. All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions
19 * are met:
20 * 1. Redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer.
22 * 2. Redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the distribution.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
27 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
30 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
31 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 */
37
38#ifndef SSHTTY_H
39#define SSHTTY_H
40
41#include <termios.h>
42
43struct termios get_saved_tio(void);
44void leave_raw_mode(void);
45void enter_raw_mode(void);
46
47#endif
diff --git a/stamp-h.in b/stamp-h.in
deleted file mode 100644
index e69de29bb..000000000
--- a/stamp-h.in
+++ /dev/null
diff --git a/tildexpand.c b/tildexpand.c
deleted file mode 100644
index cedb653b2..000000000
--- a/tildexpand.c
+++ /dev/null
@@ -1,73 +0,0 @@
1/*
2 * Author: Tatu Ylonen <ylo@cs.hut.fi>
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved
5 *
6 * As far as I am concerned, the code I have written for this software
7 * can be used freely for any purpose. Any derived versions of this
8 * software must be clearly marked as such, and if the derived work is
9 * incompatible with the protocol description in the RFC file, it must be
10 * called by a name other than "ssh" or "Secure Shell".
11 */
12
13#include "includes.h"
14RCSID("$OpenBSD: tildexpand.c,v 1.15 2004/05/21 08:43:03 markus Exp $");
15
16#include "xmalloc.h"
17#include "log.h"
18#include "misc.h"
19
20/*
21 * Expands tildes in the file name. Returns data allocated by xmalloc.
22 * Warning: this calls getpw*.
23 */
24char *
25tilde_expand_filename(const char *filename, uid_t my_uid)
26{
27 const char *cp;
28 u_int userlen;
29 char *expanded;
30 struct passwd *pw;
31 char user[100];
32 int len;
33
34 /* Return immediately if no tilde. */
35 if (filename[0] != '~')
36 return xstrdup(filename);
37
38 /* Skip the tilde. */
39 filename++;
40
41 /* Find where the username ends. */
42 cp = strchr(filename, '/');
43 if (cp)
44 userlen = cp - filename; /* Something after username. */
45 else
46 userlen = strlen(filename); /* Nothing after username. */
47 if (userlen == 0)
48 pw = getpwuid(my_uid); /* Own home directory. */
49 else {
50 /* Tilde refers to someone elses home directory. */
51 if (userlen > sizeof(user) - 1)
52 fatal("User name after tilde too long.");
53 memcpy(user, filename, userlen);
54 user[userlen] = 0;
55 pw = getpwnam(user);
56 }
57 if (!pw)
58 fatal("Unknown user %100s.", user);
59
60 /* If referring to someones home directory, return it now. */
61 if (!cp) {
62 /* Only home directory specified */
63 return xstrdup(pw->pw_dir);
64 }
65 /* Build a path combining the specified directory and path. */
66 len = strlen(pw->pw_dir) + strlen(cp + 1) + 2;
67 if (len > MAXPATHLEN)
68 fatal("Home directory too long (%d > %d", len-1, MAXPATHLEN-1);
69 expanded = xmalloc(len);
70 snprintf(expanded, len, "%s%s%s", pw->pw_dir,
71 strcmp(pw->pw_dir, "/") ? "/" : "", cp + 1);
72 return expanded;
73}
diff --git a/tildexpand.h b/tildexpand.h
deleted file mode 100644
index f5e7e40bc..000000000
--- a/tildexpand.h
+++ /dev/null
@@ -1,15 +0,0 @@
1/* $OpenBSD: tildexpand.h,v 1.4 2001/06/26 17:27:25 markus Exp $ */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose. Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15char *tilde_expand_filename(const char *, uid_t);
diff --git a/ttymodes.c b/ttymodes.c
index e116b1999..6f51b8a70 100644
--- a/ttymodes.c
+++ b/ttymodes.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ttymodes.c,v 1.28 2008/07/07 00:31:41 stevesk Exp $ */ 1/* $OpenBSD: ttymodes.c,v 1.29 2008/11/02 00:16:16 stevesk Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -311,11 +311,9 @@ tty_make_modes(int fd, struct termios *tiop)
311 311
312 /* Store input and output baud rates. */ 312 /* Store input and output baud rates. */
313 baud = speed_to_baud(cfgetospeed(&tio)); 313 baud = speed_to_baud(cfgetospeed(&tio));
314 debug3("tty_make_modes: ospeed %d", baud);
315 buffer_put_char(&buf, tty_op_ospeed); 314 buffer_put_char(&buf, tty_op_ospeed);
316 buffer_put_int(&buf, baud); 315 buffer_put_int(&buf, baud);
317 baud = speed_to_baud(cfgetispeed(&tio)); 316 baud = speed_to_baud(cfgetispeed(&tio));
318 debug3("tty_make_modes: ispeed %d", baud);
319 buffer_put_char(&buf, tty_op_ispeed); 317 buffer_put_char(&buf, tty_op_ispeed);
320 buffer_put_int(&buf, baud); 318 buffer_put_int(&buf, baud);
321 319
@@ -359,7 +357,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr)
359 357
360 if (compat20) { 358 if (compat20) {
361 *n_bytes_ptr = packet_get_int(); 359 *n_bytes_ptr = packet_get_int();
362 debug3("tty_parse_modes: SSH2 n_bytes %d", *n_bytes_ptr);
363 if (*n_bytes_ptr == 0) 360 if (*n_bytes_ptr == 0)
364 return; 361 return;
365 get_arg = packet_get_int; 362 get_arg = packet_get_int;
@@ -391,7 +388,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr)
391 case TTY_OP_ISPEED_PROTO2: 388 case TTY_OP_ISPEED_PROTO2:
392 n_bytes += 4; 389 n_bytes += 4;
393 baud = packet_get_int(); 390 baud = packet_get_int();
394 debug3("tty_parse_modes: ispeed %d", baud);
395 if (failure != -1 && 391 if (failure != -1 &&
396 cfsetispeed(&tio, baud_to_speed(baud)) == -1) 392 cfsetispeed(&tio, baud_to_speed(baud)) == -1)
397 error("cfsetispeed failed for %d", baud); 393 error("cfsetispeed failed for %d", baud);
@@ -402,7 +398,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr)
402 case TTY_OP_OSPEED_PROTO2: 398 case TTY_OP_OSPEED_PROTO2:
403 n_bytes += 4; 399 n_bytes += 4;
404 baud = packet_get_int(); 400 baud = packet_get_int();
405 debug3("tty_parse_modes: ospeed %d", baud);
406 if (failure != -1 && 401 if (failure != -1 &&
407 cfsetospeed(&tio, baud_to_speed(baud)) == -1) 402 cfsetospeed(&tio, baud_to_speed(baud)) == -1)
408 error("cfsetospeed failed for %d", baud); 403 error("cfsetospeed failed for %d", baud);
diff --git a/uidswap.c b/uidswap.c
index 91d878c30..837648396 100644
--- a/uidswap.c
+++ b/uidswap.c
@@ -233,6 +233,16 @@ permanently_set_uid(struct passwd *pw)
233 fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); 233 fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
234#endif 234#endif
235 235
236#ifdef __APPLE__
237 /*
238 * OS X requires initgroups after setgid to opt back into
239 * memberd support for >16 supplemental groups.
240 */
241 if (initgroups(pw->pw_name, pw->pw_gid) < 0)
242 fatal("initgroups %.100s %u: %.100s",
243 pw->pw_name, (u_int)pw->pw_gid, strerror(errno));
244#endif
245
236#if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID) 246#if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID)
237 if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0) 247 if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0)
238 fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); 248 fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));
diff --git a/version.h b/version.h
index 41a081f12..f2f3196ab 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
1/* $OpenBSD: version.h,v 1.54 2008/07/21 08:19:07 djm Exp $ */ 1/* $OpenBSD: version.h,v 1.55 2009/02/23 00:06:15 djm Exp $ */
2 2
3#define SSH_VERSION "OpenSSH_5.1" 3#define SSH_VERSION "OpenSSH_5.2"
4 4
5#define SSH_PORTABLE "p1" 5#define SSH_PORTABLE "p1"
6#define SSH_RELEASE SSH_VERSION SSH_PORTABLE 6#define SSH_RELEASE SSH_VERSION SSH_PORTABLE