aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Murray <markm@FreeBSD.org>2000-01-09 08:31:47 +0000
committerMark Murray <markm@FreeBSD.org>2000-01-09 08:31:47 +0000
commit8e2795854ba0ed6abadf642f4a11768fabd2165a (patch)
tree20a735799ecd3b90df122d0a8042762dd62c6b0e
parentf4c5d10e699c47c4d903bcf9f8486ecea140ef8f (diff)
downloadsrc-8e2795854ba0ed6abadf642f4a11768fabd2165a.tar.gz
src-8e2795854ba0ed6abadf642f4a11768fabd2165a.zip
Clean import of KTH Kerberos (eBones) v1.0.
Notes
Notes: svn path=/vendor-crypto/kerberosIV/dist/; revision=55643
-rw-r--r--crypto/kerberosIV/COPYRIGHT7
-rw-r--r--crypto/kerberosIV/ChangeLog165
-rw-r--r--crypto/kerberosIV/NEWS18
-rw-r--r--crypto/kerberosIV/PROBLEMS41
-rw-r--r--crypto/kerberosIV/acconfig.h4
-rw-r--r--crypto/kerberosIV/aclocal.m4108
-rw-r--r--crypto/kerberosIV/admin/adm_locl.h9
-rw-r--r--crypto/kerberosIV/admin/ext_srvtab.c4
-rw-r--r--crypto/kerberosIV/admin/kdb_edit.c6
-rw-r--r--crypto/kerberosIV/admin/kdb_init.c16
-rw-r--r--crypto/kerberosIV/admin/kdb_util.c20
-rw-r--r--crypto/kerberosIV/appl/afsutil/aklog.c9
-rw-r--r--crypto/kerberosIV/appl/afsutil/kstring2key.c11
-rw-r--r--crypto/kerberosIV/appl/afsutil/pagsh.c9
-rw-r--r--crypto/kerberosIV/appl/bsd/bsd_locl.h9
-rw-r--r--crypto/kerberosIV/appl/bsd/forkpty.c15
-rw-r--r--crypto/kerberosIV/appl/bsd/klogin.c49
-rw-r--r--crypto/kerberosIV/appl/bsd/login.c14
-rw-r--r--crypto/kerberosIV/appl/bsd/login_fbtab.c6
-rw-r--r--crypto/kerberosIV/appl/bsd/osfc2.c9
-rw-r--r--crypto/kerberosIV/appl/bsd/rcmd_util.c15
-rw-r--r--crypto/kerberosIV/appl/bsd/rcp.c21
-rw-r--r--crypto/kerberosIV/appl/bsd/rlogin.c6
-rw-r--r--crypto/kerberosIV/appl/bsd/rlogind.c4
-rw-r--r--crypto/kerberosIV/appl/bsd/rsh.c6
-rw-r--r--crypto/kerberosIV/appl/bsd/rshd.c10
-rw-r--r--crypto/kerberosIV/appl/bsd/stty_default.c9
-rw-r--r--crypto/kerberosIV/appl/bsd/su.c21
-rw-r--r--crypto/kerberosIV/appl/bsd/tty.c9
-rw-r--r--crypto/kerberosIV/appl/bsd/utmp_login.c9
-rw-r--r--crypto/kerberosIV/appl/ftp/ChangeLog180
-rw-r--r--crypto/kerberosIV/appl/ftp/common/Makefile.am2
-rw-r--r--crypto/kerberosIV/appl/ftp/common/buffer.c9
-rw-r--r--crypto/kerberosIV/appl/ftp/common/common.h14
-rw-r--r--crypto/kerberosIV/appl/ftp/common/sockbuf.c9
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/cmds.c38
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/domacro.c4
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/extern.h6
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ftp.c470
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h9
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/gssapi.c89
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/kauth.c20
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/krb4.c91
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/main.c8
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ruserpass.c8
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/security.c117
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/security.h15
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/Makefile.am3
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/Makefile.in6
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/extern.h16
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y134
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ftpd.c873
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ftpd_locl.h16
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/gss_userok.c9
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/kauth.c25
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c9
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ls.c572
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/popen.c6
-rw-r--r--crypto/kerberosIV/appl/kauth/ChangeLog6
-rw-r--r--crypto/kerberosIV/appl/kauth/encdata.c9
-rw-r--r--crypto/kerberosIV/appl/kauth/kauth.c102
-rw-r--r--crypto/kerberosIV/appl/kauth/kauth.h9
-rw-r--r--crypto/kerberosIV/appl/kauth/kauthd.c9
-rw-r--r--crypto/kerberosIV/appl/kauth/marshall.c19
-rw-r--r--crypto/kerberosIV/appl/kauth/rkinit.c18
-rw-r--r--crypto/kerberosIV/appl/kip/common.c9
-rw-r--r--crypto/kerberosIV/appl/kip/kip.c9
-rw-r--r--crypto/kerberosIV/appl/kip/kip.h9
-rw-r--r--crypto/kerberosIV/appl/kip/kipd.c9
-rw-r--r--crypto/kerberosIV/appl/push/ChangeLog135
-rw-r--r--crypto/kerberosIV/appl/push/Makefile.am27
-rw-r--r--crypto/kerberosIV/appl/push/Makefile.in95
-rw-r--r--crypto/kerberosIV/appl/push/pfrom.in6
-rw-r--r--crypto/kerberosIV/appl/push/push.8138
-rw-r--r--crypto/kerberosIV/appl/push/push.c795
-rw-r--r--crypto/kerberosIV/appl/push/push.cat877
-rw-r--r--crypto/kerberosIV/appl/push/push_locl.h98
-rw-r--r--crypto/kerberosIV/appl/sample/sample.h9
-rw-r--r--crypto/kerberosIV/appl/sample/sample_client.c8
-rw-r--r--crypto/kerberosIV/appl/sample/sample_server.c12
-rw-r--r--crypto/kerberosIV/appl/sample/simple_client.c8
-rw-r--r--crypto/kerberosIV/appl/sample/simple_server.c12
-rw-r--r--crypto/kerberosIV/cf/ChangeLog58
-rw-r--r--crypto/kerberosIV/cf/Makefile.am.common8
-rw-r--r--crypto/kerberosIV/cf/capabilities.m414
-rw-r--r--crypto/kerberosIV/cf/check-x.m44
-rw-r--r--crypto/kerberosIV/cf/find-func-no-libs.m46
-rw-r--r--crypto/kerberosIV/cf/find-func-no-libs2.m46
-rw-r--r--crypto/kerberosIV/cf/grok-type.m45
-rw-r--r--crypto/kerberosIV/cf/have-struct-field.m46
-rw-r--r--crypto/kerberosIV/cf/have-type.m431
-rw-r--r--crypto/kerberosIV/cf/have-types.m414
-rw-r--r--crypto/kerberosIV/cf/krb-func-getlogin.m422
-rw-r--r--crypto/kerberosIV/cf/krb-struct-spwd.m44
-rw-r--r--crypto/kerberosIV/cf/shared-libs.m47
-rw-r--r--crypto/kerberosIV/configure2096
-rw-r--r--crypto/kerberosIV/configure.in177
-rw-r--r--crypto/kerberosIV/doc/Makefile.in18
-rw-r--r--crypto/kerberosIV/doc/ack.texi2
-rw-r--r--crypto/kerberosIV/doc/install.texi116
-rw-r--r--crypto/kerberosIV/doc/kth-krb.texi11
-rw-r--r--crypto/kerberosIV/doc/problems.texi49
-rw-r--r--crypto/kerberosIV/doc/setup.texi117
-rw-r--r--crypto/kerberosIV/etc/inetd.conf.changes.in33
-rw-r--r--crypto/kerberosIV/include/Makefile.in7
-rw-r--r--crypto/kerberosIV/include/bits.c11
-rw-r--r--crypto/kerberosIV/include/config.h.in89
-rw-r--r--crypto/kerberosIV/include/netdb.x7
-rw-r--r--crypto/kerberosIV/include/protos.H9
-rw-r--r--crypto/kerberosIV/include/win32/config.h1185
-rw-r--r--crypto/kerberosIV/include/win32/ktypes.h11
-rw-r--r--crypto/kerberosIV/include/win32/roken.h214
-rw-r--r--crypto/kerberosIV/include/win32/version.h2
-rw-r--r--crypto/kerberosIV/include/win32/winconf.sh37
-rw-r--r--crypto/kerberosIV/kadmin/admin_server.c6
-rw-r--r--crypto/kerberosIV/kadmin/kadm_funcs.c40
-rw-r--r--crypto/kerberosIV/kadmin/kadm_locl.h9
-rw-r--r--crypto/kerberosIV/kadmin/kadm_ser_wrap.c8
-rw-r--r--crypto/kerberosIV/kadmin/kadmin.c24
-rw-r--r--crypto/kerberosIV/kadmin/kpasswd.c24
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil.c39
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil.h9
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil_get.c55
-rw-r--r--crypto/kerberosIV/kadmin/new_pwd.c9
-rw-r--r--crypto/kerberosIV/kadmin/pw_check.c9
-rw-r--r--crypto/kerberosIV/kadmin/pw_check.h9
-rw-r--r--crypto/kerberosIV/kadmin/random_password.c11
-rw-r--r--crypto/kerberosIV/kuser/kdestroy.c9
-rw-r--r--crypto/kerberosIV/kuser/klist.c60
-rw-r--r--crypto/kerberosIV/kuser/kuser_locl.h9
-rw-r--r--crypto/kerberosIV/lib/acl/acl.h9
-rw-r--r--crypto/kerberosIV/lib/acl/acl_files.c4
-rw-r--r--crypto/kerberosIV/lib/auth/ChangeLog31
-rw-r--r--crypto/kerberosIV/lib/auth/afskauthlib/Makefile.in5
-rw-r--r--crypto/kerberosIV/lib/auth/afskauthlib/verify.c143
-rw-r--r--crypto/kerberosIV/lib/auth/pam/Makefile.in13
-rw-r--r--crypto/kerberosIV/lib/auth/pam/README10
-rw-r--r--crypto/kerberosIV/lib/auth/pam/pam.c23
-rw-r--r--crypto/kerberosIV/lib/auth/pam/pam.conf.add63
-rw-r--r--crypto/kerberosIV/lib/auth/sia/Makefile.in5
-rw-r--r--crypto/kerberosIV/lib/auth/sia/README4
-rw-r--r--crypto/kerberosIV/lib/auth/sia/krb4+c2_matrix.conf9
-rw-r--r--crypto/kerberosIV/lib/auth/sia/krb4_matrix.conf9
-rw-r--r--crypto/kerberosIV/lib/auth/sia/sia.c29
-rw-r--r--crypto/kerberosIV/lib/kadm/check_password.c9
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_cli_wrap.c8
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_locl.h9
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_supp.c18
-rw-r--r--crypto/kerberosIV/lib/kafs/ChangeLog48
-rw-r--r--crypto/kerberosIV/lib/kafs/Makefile.am11
-rw-r--r--crypto/kerberosIV/lib/kafs/Makefile.in14
-rw-r--r--crypto/kerberosIV/lib/kafs/afskrb.c54
-rw-r--r--crypto/kerberosIV/lib/kafs/afskrb5.c38
-rw-r--r--crypto/kerberosIV/lib/kafs/afslib.c9
-rw-r--r--crypto/kerberosIV/lib/kafs/afssys.c11
-rw-r--r--crypto/kerberosIV/lib/kafs/afssysdefs.h9
-rw-r--r--crypto/kerberosIV/lib/kafs/common.c86
-rw-r--r--crypto/kerberosIV/lib/kafs/dlfcn.c28
-rw-r--r--crypto/kerberosIV/lib/kafs/kafs.h9
-rw-r--r--crypto/kerberosIV/lib/kafs/kafs_locl.h16
-rw-r--r--crypto/kerberosIV/lib/kclient/KClient.c440
-rw-r--r--crypto/kerberosIV/lib/kclient/KClient.def19
-rw-r--r--crypto/kerberosIV/lib/kclient/KClient.dsp127
-rw-r--r--crypto/kerberosIV/lib/kclient/KClient.h160
-rw-r--r--crypto/kerberosIV/lib/kclient/KClient.mak297
-rw-r--r--crypto/kerberosIV/lib/kclient/passwd_dialog.rc143
-rw-r--r--crypto/kerberosIV/lib/kclient/passwd_dialog.resbin0 -> 356 bytes
-rw-r--r--crypto/kerberosIV/lib/kclient/passwd_dlg.c109
-rw-r--r--crypto/kerberosIV/lib/kclient/passwd_dlg.h47
-rw-r--r--crypto/kerberosIV/lib/kclient/resource.h18
-rw-r--r--crypto/kerberosIV/lib/kdb/copykey.c9
-rw-r--r--crypto/kerberosIV/lib/kdb/kdb_locl.h9
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_dbm.c6
-rw-r--r--crypto/kerberosIV/lib/krb/Makefile.in24
-rw-r--r--crypto/kerberosIV/lib/krb/check_time.c9
-rw-r--r--crypto/kerberosIV/lib/krb/cr_err_reply.c9
-rw-r--r--crypto/kerberosIV/lib/krb/create_auth_reply.c9
-rw-r--r--crypto/kerberosIV/lib/krb/create_ciph.c9
-rw-r--r--crypto/kerberosIV/lib/krb/create_death_packet.c9
-rw-r--r--crypto/kerberosIV/lib/krb/create_ticket.c9
-rw-r--r--crypto/kerberosIV/lib/krb/decomp_ticket.c9
-rw-r--r--crypto/kerberosIV/lib/krb/defaults.c58
-rw-r--r--crypto/kerberosIV/lib/krb/dllmain.c9
-rw-r--r--crypto/kerberosIV/lib/krb/encrypt_ktext.c9
-rw-r--r--crypto/kerberosIV/lib/krb/extra.c9
-rw-r--r--crypto/kerberosIV/lib/krb/get_ad_tkt.c11
-rw-r--r--crypto/kerberosIV/lib/krb/get_default_principal.c17
-rw-r--r--crypto/kerberosIV/lib/krb/get_host.c23
-rw-r--r--crypto/kerberosIV/lib/krb/get_in_tkt.c6
-rw-r--r--crypto/kerberosIV/lib/krb/get_krbrlm.c13
-rw-r--r--crypto/kerberosIV/lib/krb/get_tf_fullname.c8
-rw-r--r--crypto/kerberosIV/lib/krb/getaddrs.c9
-rw-r--r--crypto/kerberosIV/lib/krb/getfile.c9
-rw-r--r--crypto/kerberosIV/lib/krb/getrealm.c10
-rw-r--r--crypto/kerberosIV/lib/krb/k_getport.c9
-rw-r--r--crypto/kerberosIV/lib/krb/k_getsockinst.c11
-rw-r--r--crypto/kerberosIV/lib/krb/k_localtime.c9
-rw-r--r--crypto/kerberosIV/lib/krb/kdc_reply.c9
-rw-r--r--crypto/kerberosIV/lib/krb/krb-protos.h32
-rw-r--r--crypto/kerberosIV/lib/krb/krb.h8
-rw-r--r--crypto/kerberosIV/lib/krb/krb_check_auth.c9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_equiv.c9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_get_in_tkt.c9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_ip_realm.c104
-rw-r--r--crypto/kerberosIV/lib/krb/krb_locl.h9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_log.h9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_net_read.c9
-rw-r--r--crypto/kerberosIV/lib/krb/krb_net_write.c9
-rw-r--r--crypto/kerberosIV/lib/krb/kuserok.c9
-rw-r--r--crypto/kerberosIV/lib/krb/logging.c11
-rw-r--r--crypto/kerberosIV/lib/krb/lsb_addr_comp.c9
-rw-r--r--crypto/kerberosIV/lib/krb/mk_auth.c11
-rw-r--r--crypto/kerberosIV/lib/krb/mk_priv.c9
-rw-r--r--crypto/kerberosIV/lib/krb/mk_req.c11
-rw-r--r--crypto/kerberosIV/lib/krb/mk_safe.c9
-rw-r--r--crypto/kerberosIV/lib/krb/name2name.c11
-rw-r--r--crypto/kerberosIV/lib/krb/parse_name.c15
-rw-r--r--crypto/kerberosIV/lib/krb/prot.h4
-rw-r--r--crypto/kerberosIV/lib/krb/rd_err.c9
-rw-r--r--crypto/kerberosIV/lib/krb/rd_priv.c9
-rw-r--r--crypto/kerberosIV/lib/krb/rd_req.c17
-rw-r--r--crypto/kerberosIV/lib/krb/rd_safe.c9
-rw-r--r--crypto/kerberosIV/lib/krb/read_service_key.c4
-rw-r--r--crypto/kerberosIV/lib/krb/realm_parse.c11
-rw-r--r--crypto/kerberosIV/lib/krb/roken_rename.h9
-rw-r--r--crypto/kerberosIV/lib/krb/rw.c11
-rw-r--r--crypto/kerberosIV/lib/krb/send_to_kdc.c209
-rw-r--r--crypto/kerberosIV/lib/krb/sendauth.c4
-rw-r--r--crypto/kerberosIV/lib/krb/solaris_compat.c9
-rw-r--r--crypto/kerberosIV/lib/krb/str2key.c187
-rw-r--r--crypto/kerberosIV/lib/krb/tf_util.c159
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.c29
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.h9
-rw-r--r--crypto/kerberosIV/lib/krb/time.c9
-rw-r--r--crypto/kerberosIV/lib/krb/tkt_string.c6
-rw-r--r--crypto/kerberosIV/lib/krb/unparse_name.c21
-rw-r--r--crypto/kerberosIV/lib/krb/verify_user.c54
-rw-r--r--crypto/kerberosIV/lib/roken/ChangeLog241
-rw-r--r--crypto/kerberosIV/lib/roken/Makefile.am32
-rw-r--r--crypto/kerberosIV/lib/roken/Makefile.in15
-rw-r--r--crypto/kerberosIV/lib/roken/base64.c15
-rw-r--r--crypto/kerberosIV/lib/roken/base64.h9
-rw-r--r--crypto/kerberosIV/lib/roken/chown.c9
-rw-r--r--crypto/kerberosIV/lib/roken/concat.c9
-rw-r--r--crypto/kerberosIV/lib/roken/copyhostent.c102
-rw-r--r--crypto/kerberosIV/lib/roken/emalloc.c9
-rw-r--r--crypto/kerberosIV/lib/roken/eread.c9
-rw-r--r--crypto/kerberosIV/lib/roken/erealloc.c9
-rw-r--r--crypto/kerberosIV/lib/roken/err.c9
-rw-r--r--crypto/kerberosIV/lib/roken/err.h9
-rw-r--r--crypto/kerberosIV/lib/roken/errx.c9
-rw-r--r--crypto/kerberosIV/lib/roken/estrdup.c9
-rw-r--r--crypto/kerberosIV/lib/roken/ewrite.c9
-rw-r--r--crypto/kerberosIV/lib/roken/fchown.c9
-rw-r--r--crypto/kerberosIV/lib/roken/flock.c9
-rw-r--r--crypto/kerberosIV/lib/roken/freehostent.c62
-rw-r--r--crypto/kerberosIV/lib/roken/get_default_username.c11
-rw-r--r--crypto/kerberosIV/lib/roken/get_window_size.c9
-rw-r--r--crypto/kerberosIV/lib/roken/getarg.3317
-rw-r--r--crypto/kerberosIV/lib/roken/getarg.c209
-rw-r--r--crypto/kerberosIV/lib/roken/getarg.h33
-rw-r--r--crypto/kerberosIV/lib/roken/getcap.c1118
-rw-r--r--crypto/kerberosIV/lib/roken/getcwd.c11
-rw-r--r--crypto/kerberosIV/lib/roken/getdtablesize.c9
-rw-r--r--crypto/kerberosIV/lib/roken/getegid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/geteuid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/getgid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/gethostname.c11
-rw-r--r--crypto/kerberosIV/lib/roken/getipnodebyaddr.c74
-rw-r--r--crypto/kerberosIV/lib/roken/getipnodebyname.c86
-rw-r--r--crypto/kerberosIV/lib/roken/getopt.c8
-rw-r--r--crypto/kerberosIV/lib/roken/gettimeofday.c9
-rw-r--r--crypto/kerberosIV/lib/roken/getuid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/glob.c2
-rw-r--r--crypto/kerberosIV/lib/roken/hstrerror.c9
-rw-r--r--crypto/kerberosIV/lib/roken/inaddr2str.c13
-rw-r--r--crypto/kerberosIV/lib/roken/inet_aton.c9
-rw-r--r--crypto/kerberosIV/lib/roken/inet_ntop.c153
-rw-r--r--crypto/kerberosIV/lib/roken/inet_pton.c66
-rw-r--r--crypto/kerberosIV/lib/roken/initgroups.c9
-rw-r--r--crypto/kerberosIV/lib/roken/iruserok.c4
-rw-r--r--crypto/kerberosIV/lib/roken/issuid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/k_getpwnam.c13
-rw-r--r--crypto/kerberosIV/lib/roken/k_getpwuid.c13
-rw-r--r--crypto/kerberosIV/lib/roken/lstat.c9
-rw-r--r--crypto/kerberosIV/lib/roken/make-print-version.c9
-rw-r--r--crypto/kerberosIV/lib/roken/memmove.c9
-rw-r--r--crypto/kerberosIV/lib/roken/mini_inetd.c145
-rw-r--r--crypto/kerberosIV/lib/roken/mkstemp.c9
-rw-r--r--crypto/kerberosIV/lib/roken/net_read.c9
-rw-r--r--crypto/kerberosIV/lib/roken/net_write.c11
-rw-r--r--crypto/kerberosIV/lib/roken/parse_bytes-test.c92
-rw-r--r--crypto/kerberosIV/lib/roken/parse_bytes.c78
-rw-r--r--crypto/kerberosIV/lib/roken/parse_bytes.h48
-rw-r--r--crypto/kerberosIV/lib/roken/parse_time.c9
-rw-r--r--crypto/kerberosIV/lib/roken/parse_time.h9
-rw-r--r--crypto/kerberosIV/lib/roken/parse_units.c13
-rw-r--r--crypto/kerberosIV/lib/roken/parse_units.h9
-rw-r--r--crypto/kerberosIV/lib/roken/print_version.c9
-rw-r--r--crypto/kerberosIV/lib/roken/putenv.c9
-rw-r--r--crypto/kerberosIV/lib/roken/rcmd.c9
-rw-r--r--crypto/kerberosIV/lib/roken/readv.c9
-rw-r--r--crypto/kerberosIV/lib/roken/recvmsg.c9
-rw-r--r--crypto/kerberosIV/lib/roken/resolve.c9
-rw-r--r--crypto/kerberosIV/lib/roken/resolve.h9
-rw-r--r--crypto/kerberosIV/lib/roken/roken-common.h122
-rw-r--r--crypto/kerberosIV/lib/roken/roken.awk2
-rw-r--r--crypto/kerberosIV/lib/roken/roken.h.in94
-rw-r--r--crypto/kerberosIV/lib/roken/roken_gethostby.c9
-rw-r--r--crypto/kerberosIV/lib/roken/sendmsg.c9
-rw-r--r--crypto/kerberosIV/lib/roken/setegid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/setenv.c9
-rw-r--r--crypto/kerberosIV/lib/roken/seteuid.c9
-rw-r--r--crypto/kerberosIV/lib/roken/signal.c9
-rw-r--r--crypto/kerberosIV/lib/roken/simple_exec.c107
-rw-r--r--crypto/kerberosIV/lib/roken/snprintf.c29
-rw-r--r--crypto/kerberosIV/lib/roken/socket.c282
-rw-r--r--crypto/kerberosIV/lib/roken/strcasecmp.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strdup.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strerror.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strftime.c627
-rw-r--r--crypto/kerberosIV/lib/roken/strlcat.c50
-rw-r--r--crypto/kerberosIV/lib/roken/strlcpy.c60
-rw-r--r--crypto/kerberosIV/lib/roken/strlwr.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strncasecmp.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strndup.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strnlen.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strpftime-test.c287
-rw-r--r--crypto/kerberosIV/lib/roken/strptime.c444
-rw-r--r--crypto/kerberosIV/lib/roken/strsep.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strtok_r.c9
-rw-r--r--crypto/kerberosIV/lib/roken/strupr.c9
-rw-r--r--crypto/kerberosIV/lib/roken/swab.c9
-rw-r--r--crypto/kerberosIV/lib/roken/tm2time.c9
-rw-r--r--crypto/kerberosIV/lib/roken/unsetenv.c9
-rw-r--r--crypto/kerberosIV/lib/roken/verify.c9
-rw-r--r--crypto/kerberosIV/lib/roken/verr.c9
-rw-r--r--crypto/kerberosIV/lib/roken/verrx.c9
-rw-r--r--crypto/kerberosIV/lib/roken/vsyslog.c9
-rw-r--r--crypto/kerberosIV/lib/roken/vwarn.c9
-rw-r--r--crypto/kerberosIV/lib/roken/vwarnx.c9
-rw-r--r--crypto/kerberosIV/lib/roken/warn.c9
-rw-r--r--crypto/kerberosIV/lib/roken/warnerr.c9
-rw-r--r--crypto/kerberosIV/lib/roken/warnx.c9
-rw-r--r--crypto/kerberosIV/lib/roken/writev.c9
-rw-r--r--crypto/kerberosIV/lib/roken/xdbm.h9
-rw-r--r--crypto/kerberosIV/lib/sl/lex.l9
-rw-r--r--crypto/kerberosIV/lib/sl/make_cmds.c9
-rw-r--r--crypto/kerberosIV/lib/sl/make_cmds.h9
-rw-r--r--crypto/kerberosIV/lib/sl/parse.y9
-rw-r--r--crypto/kerberosIV/lib/sl/roken_rename.h9
-rw-r--r--crypto/kerberosIV/lib/sl/sl.c9
-rw-r--r--crypto/kerberosIV/lib/sl/sl.h9
-rw-r--r--crypto/kerberosIV/lib/sl/sl_locl.h9
-rw-r--r--crypto/kerberosIV/lib/sl/ss.c9
-rw-r--r--crypto/kerberosIV/lib/sl/ss.h9
-rw-r--r--crypto/kerberosIV/man/kadmind.88
-rw-r--r--crypto/kerberosIV/man/krb.conf.58
-rw-r--r--crypto/kerberosIV/man/krb.extra.511
-rw-r--r--crypto/kerberosIV/server/kerberos.c30
-rw-r--r--crypto/kerberosIV/slave/kprop.c6
-rw-r--r--crypto/kerberosIV/slave/kpropd.c11
-rw-r--r--crypto/kerberosIV/slave/slav_locl.h9
363 files changed, 14746 insertions, 4394 deletions
diff --git a/crypto/kerberosIV/COPYRIGHT b/crypto/kerberosIV/COPYRIGHT
index 9a327a8d7019..42224596aa7f 100644
--- a/crypto/kerberosIV/COPYRIGHT
+++ b/crypto/kerberosIV/COPYRIGHT
@@ -13,12 +13,7 @@ are met:
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the Kungliga Tekniska
- Högskolan and its contributors.
-
-4. Neither the name of the Institute nor the names of its contributors
+3. Neither the name of the Institute nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
diff --git a/crypto/kerberosIV/ChangeLog b/crypto/kerberosIV/ChangeLog
index 64ca7ace9b59..cd393239aaef 100644
--- a/crypto/kerberosIV/ChangeLog
+++ b/crypto/kerberosIV/ChangeLog
@@ -1,43 +1,168 @@
-1999-08-22
+1999-11-29
- * release 0.10
+ * lib/krb/krb-protos.h (tf_get_cred_addr): add prototype
+ * lib/krb/tf_util.c (tf_get_cred_addr): new function for fetching
+ the NAT addresses stored in the ticket file. From
+ <thn@stacken.kth.se>
- * configure.in (VERSION): bump to 0.10
+ * kuser/klist.c (display_tktfile): dump the IP address being used
+ when in NAT-mode. From <thn@stacken.kth.se>
-1999-08-19
+1999-11-25
- * release 0.10pre5
+ * appl/bsd/rlogind.c (main): getopt returns -1 and not EOF. From
+ <art@stacken.kth.se>
- * configure.in (VERSION): bump to 0.10pre5
+ * lib/krb/krb_ip_realm.c (krb_add_our_ip_for_realm): new function
+ for obtaining the IP address that the KDC sees us as coming from.
+ From <thn@stacken.kth.se>
+
+ * lib/krb/tf_util.c (tf_get_addr, tf_store_addr): new functions
+ for storing the NAT-ed address per realm
+ (tf_get_cred): make sure to ignore all magic credentials
+
+ * lib/krb/get_in_tkt.c (krb_get_pw_in_tkt2): if using NAT, store
+ the address the the KDC saw. (krb_add_our_ip_for_realm)
+
+ * lib/krb/send_to_kdc.c: rewrite some. Make sure that we do not
+ do any hostname lookups when using http through a proxy (the proxy
+ is supposed to do that in the `real' name-space).
+
+1999-11-19
+
+ * appl/bsd/rcmd_util.c (conv): add EXTA and EXTB
+
+Tue Nov 16 1999
+
+ * lib/krb/defaults.c (krb_get_default_keyfile): Get value of
+ KEYFILE from /etc/krb.extra.
+
+1999-11-13
+
+ * **/*.c (main): getopt returns -1 not EOF. From
+ <art@stacken.kth.se>
+
+ * configure.in: check for fields in `struct tm' and variable
+ `timezone', used by strftime
+ * configure.in (AC_BROKEN): strptime is a new function in roken
+ opt*: more header files for the tests
+
+Tue Nov 2 1999
+
+ * lib/krb/krb.h (TKT_ROOT): Change the definition of TKT_ROOT to a
+ function call. The returned value is settable in /etc/krb.extra
+ with the construct krb_default_tkt_root = /tmp/tkt_.
+
+1999-10-06
+
+ * lib/krb/verify_user.c: remove ERICSSON_COMPAT, it's apparently
+ no longer needed
+
+Mon Oct 4 1999
+
+ * appl/bsd/klogin.c (multiple_get_tkt): Must use appropiate realm
+ name when calling krb_get_pw_in_tkt or else you will receive an
+ inter-realm TGT.
+
+1999-10-03
+
+ * doc/problems.texi: add blurb about irix abi:s
+
+1999-09-27
+
+ * lib/krb/tf_util.c (tf_init): cygwin work-around
+
+1999-09-16
+
+ * configure.in: test for strlcpy, strlcat
+
+ * admin/kdb_util.c (main): support `-' as an alias for stdout.
+ originally from Fredrik Ljungberg <flag@astrogator.se>
+
+1999-09-15
+
+ * include/Makefile.in: remove duplicate parse_time.h
+
+ * kadmin/ksrvutil_get.c (get_srvtab_ent): better error messages
+
+1999-09-12
+
+ * configure.in: revert back awk test, now worked around in
+ roken.awk
+
+1999-09-06
+
+ * doc/problems.texi: document a really working fix for the xlc
+ -qnolm bug
+
+1999-09-04
+
+ * doc/problems.texi: comment about xlc -E brokenness
+
+1999-09-01
+
+ * lib/krb/get_krbrlm.c (krb_get_lrealm_f): treat n = 0 the same as
+ if it were 1 (this should make it backwards compatible with apps
+ that pass 0 for n)
+
+1999-08-25
+
+ * appl/bsd/login.c: surround SGI capability stuff with
+ `defined(HAVE_CAP_SET_PROC)'
+
+1999-08-24
+
+ * kadmin/kadmin.c (add_new_key): add missing space when printing
+ generated passwords. bug reported by Per Eriksson DMC
+ <perixon@dsv.su.se>
+
+ * lib/krb/verify_user.c (krb_verify_user_srvtab): return last
+ error instead of KFAILURE when everything fails.
+
+ * appl/bsd/klogin.c (multiple_get_tkt): return last error instead
+ of KFAILURE when everything fails.
1999-08-18
- * release 0.10pre4
+ * doc/problems.texi: some y2k stuff
- * configure.in (VERSION): bump to 0.10pre4
+ * doc/kth-krb.texi: update copyright, and menu
-1999-08-16
+ * doc/intro.texi: remove unix-system section, since it's
+ impossible to keep up to date
- * release 0.10pre3
+1999-08-13
- * configure.in (VERSION): bump to 0.10pre3
+ * configure.in: test for inet_pton include <sys/types.h> in all
+ utmp tests
-1999-07-22
+1999-07-27
+
+ * configure.in: test for struct sockaddr_storage and sa_family
+ brokenize inet_ntop
- * release 0.10pre2
+1999-07-24
- * configure.in (VERSION): bump to 0.10pre2
+ * kadmin/ksrvutil_get.c (get_srvtab_ent): try to print better
+ error messages
+ * configure.in (AC_PROG_AWK): disable. mawk seems to mishandle \#
+ in lib/roken/roken.awk
+
+1999-07-22
* acconfig.h (SunOS): remove definition
* configure.in: define SunOS to xy for SunOS x.y
-1999-07-08
+1999-07-19
+
+ * configure.in (AC_BROKEN): check for copyhostent, freehostent,
+ getipnodebyname, getipnodebyaddr
- * Release 0.10pre1.
+1999-07-13
- * configure.in (VERSION): bump to 0.10pre1
+ * configure.in: use AC_FUNC_GETLOGIN
1999-07-07
@@ -116,6 +241,12 @@
* lib/krb/send_to_kdc.c (http_recv): handle both HTTP/1.0 and
HTTP/1.1 in reply
+1999-06-06
+
+ * configure.in: use KRB_CHECK_X
+
+ * kuser/kdestroy.c: use print_version
+
Wed Jun 2 1999
* kadmin/kadmin.c: use print_version; (mod_entry): add command
diff --git a/crypto/kerberosIV/NEWS b/crypto/kerberosIV/NEWS
index 6c6f84f52434..f839116630b9 100644
--- a/crypto/kerberosIV/NEWS
+++ b/crypto/kerberosIV/NEWS
@@ -1,11 +1,15 @@
-Changes in release 0.10.1:
+Changes in release 1.0:
-* Bug fixes:
- - krb_get_lrealm now works with zero `n'
- - kadmin cosmetic fix
- - login now compiles on IRIX < 6.5
- - kxd fix for solaris waitpid breakage, fix for unicos setjob
- breakage, better handling of fork failures
+* A new configuration option `nat_in_use' in krb.extra to ease use
+ through Network Address Translators.
+
+* Support configuration value of KEYFILE and TKT_ROOT in krb.extra
+
+* Easier building on some platforms
+
+* built-in ls in ftpd.
+
+* Bug fixes.
Changes in release 0.10:
diff --git a/crypto/kerberosIV/PROBLEMS b/crypto/kerberosIV/PROBLEMS
index 732766ef41d9..b72c521fda98 100644
--- a/crypto/kerberosIV/PROBLEMS
+++ b/crypto/kerberosIV/PROBLEMS
@@ -46,6 +46,14 @@ There has been reports of non-working `libdb' on some Linux
distributions. If that happens, use the `--without-berkeley-db' when
configuring.
+SunOS 5 (aka Solaris 2) problems
+--------------------------------
+
+When building shared libraries and using some combinations of GNU gcc/ld
+you better set the environment variable RUN_PATH to /usr/athena/lib
+(your target libdir). If you don't, then you will have to set
+LD_LIBRARY_PATH during runtime and the PAM module will not work.
+
HP-UX problems
--------------
@@ -61,6 +69,39 @@ Cray problems
`rlogind' won't work on Crays until `forkpty()' has been ported, in the
mean time use `telnetd'.
+IRIX problems
+-------------
+
+IRIX has three different ABI:s (Application Binary Interface), there's
+an old 32 bit interface (known as O32, or just 32), a new 32 bit
+interface (N32), and a 64 bit interface (64). O32 and N32 are both 32
+bits, but they have different calling conventions, and alignment
+constraints, and similar. The N32 format is the default format from IRIX
+6.4.
+
+You select ABI at compile time, and you can do this with the
+`--with-mips-abi' configure option. The valid arguments are `o32',
+`n32', and `64', N32 is the default. Libraries for the three different
+ABI:s are normally installed installed in different directories (`lib',
+`lib32', and `lib64'). If you want more than one set of libraries you
+have to reconfigure and recompile for each ABI, but you should probably
+install only N32 binaries.
+
+GCC had had some known problems with the different ABI:s. Old GCC could
+only handle O32, newer GCC can handle N32, and 64, but not O32, but in
+some versions of GCC the structure alignment was broken in N32.
+
+This confusion with different ABI:s can cause some trouble. For
+instance, the `afskauthlib.so' library has to use the same ABI as
+`xdm', and `login'. The easiest way to check what ABI to use is to run
+`file' on `/usr/bin/X11/xdm'.
+
+Another problem that you might encounter if you run AFS is that Transarc
+apparently doesn't support the 64-bit ABI, and because of this you can't
+get tokens with a 64 bit application. If you really need to do this,
+there is a kernel module that provides this functionality at
+<ftp://ftp.pdc.kth.se/home/joda/irix-afs64.tar.gz>.
+
AIX problems
------------
diff --git a/crypto/kerberosIV/acconfig.h b/crypto/kerberosIV/acconfig.h
index cd9867d43b77..771207b02fc4 100644
--- a/crypto/kerberosIV/acconfig.h
+++ b/crypto/kerberosIV/acconfig.h
@@ -1,4 +1,4 @@
-/* $Id: acconfig.h,v 1.103.2.1 1999/07/22 03:12:42 assar Exp $ */
+/* $Id: acconfig.h,v 1.105 1999/12/02 13:09:41 joda Exp $ */
@BOTTOM@
@@ -18,6 +18,8 @@
#define HAVE_KRB_DISABLE_DEBUG 1
+#define HAVE_KRB_GET_OUR_IP_FOR_REALM 1
+
#define RCSID(msg) \
static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
diff --git a/crypto/kerberosIV/aclocal.m4 b/crypto/kerberosIV/aclocal.m4
index ca2982bb1c0d..d2e1e944d505 100644
--- a/crypto/kerberosIV/aclocal.m4
+++ b/crypto/kerberosIV/aclocal.m4
@@ -251,7 +251,7 @@ esac
])
dnl
-dnl $Id: shared-libs.m4,v 1.3 1999/04/09 15:34:25 assar Exp $
+dnl $Id: shared-libs.m4,v 1.4 1999/07/13 17:47:09 assar Exp $
dnl
dnl Shared library stuff has to be different everywhere
dnl
@@ -316,9 +316,10 @@ case "${host}" in
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
;;
-*-*-freebsd3*)
+changequote(,)dnl
+*-*-freebsd[34]*)
+changequote([,])dnl
REAL_SHLIBEXT=so.$SHLIB_VERSION
- LDSHARED='ld -Bshareable'
REAL_LD_FLAGS='-Wl,-R$(libdir)'
build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
@@ -507,23 +508,23 @@ AC_EGREP_CPP(yes,
AC_MSG_RESULT($krb_cv_sys_aix)
])
-dnl $Id: find-func-no-libs.m4,v 1.3 1998/06/04 02:06:50 assar Exp $
+dnl $Id: find-func-no-libs.m4,v 1.5 1999/10/30 21:08:18 assar Exp $
dnl
dnl
dnl Look for function in any of the specified libraries
dnl
-dnl AC_FIND_FUNC_NO_LIBS(func, libraries, includes, arguments)
+dnl AC_FIND_FUNC_NO_LIBS(func, libraries, includes, arguments, extra libs, extra args)
AC_DEFUN(AC_FIND_FUNC_NO_LIBS, [
-AC_FIND_FUNC_NO_LIBS2([$1], ["" $2], [$3], [$4])])
+AC_FIND_FUNC_NO_LIBS2([$1], ["" $2], [$3], [$4], [$5], [$6])])
-dnl $Id: find-func-no-libs2.m4,v 1.1 1998/06/04 02:07:12 assar Exp $
+dnl $Id: find-func-no-libs2.m4,v 1.3 1999/10/30 21:09:53 assar Exp $
dnl
dnl
dnl Look for function in any of the specified libraries
dnl
-dnl AC_FIND_FUNC_NO_LIBS2(func, libraries, includes, arguments)
+dnl AC_FIND_FUNC_NO_LIBS2(func, libraries, includes, arguments, extra libs, extra args)
AC_DEFUN(AC_FIND_FUNC_NO_LIBS2, [
AC_MSG_CHECKING([for $1])
@@ -537,7 +538,7 @@ if eval "test \"\$ac_cv_func_$1\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS="$6 $ac_lib $5 $ac_save_LIBS"
AC_TRY_LINK([$3],[$1($4)],eval "if test -n \"$ac_lib\";then ac_cv_funclib_$1=$ac_lib; else ac_cv_funclib_$1=yes; fi";break)
done
eval "ac_cv_funclib_$1=\${ac_cv_funclib_$1-no}"
@@ -620,11 +621,14 @@ END
])
-dnl $Id: grok-type.m4,v 1.3 1999/03/21 18:59:56 joda Exp $
+dnl $Id: grok-type.m4,v 1.4 1999/11/29 11:16:48 joda Exp $
dnl
AC_DEFUN(AC_GROK_TYPE, [
AC_CACHE_VAL(ac_cv_type_$1,
AC_TRY_COMPILE([
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -669,7 +673,7 @@ fi
dnl
dnl See if there is any X11 present
dnl
-dnl $Id: check-x.m4,v 1.1 1999/06/03 00:22:10 joda Exp $
+dnl $Id: check-x.m4,v 1.2 1999/11/05 04:25:23 assar Exp $
AC_DEFUN(KRB_CHECK_X,[
AC_PATH_XTRA
@@ -699,7 +703,7 @@ if test "$no_x" != yes; then
esac
done
fi
- LIBS="$ac_save_libs $foo -lX11"
+ LIBS="$ac_save_libs $foo $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
AC_TRY_RUN([
#include <X11/Xlib.h>
foo()
@@ -998,6 +1002,21 @@ AC_NEED_PROTO([#include <stdio.h>
fi
])
+dnl
+dnl $Id: capabilities.m4,v 1.2 1999/09/01 11:02:26 joda Exp $
+dnl
+
+dnl
+dnl Test SGI capabilities
+dnl
+
+AC_DEFUN(KRB_CAPABILITIES,[
+
+AC_CHECK_HEADERS(capability.h sys/capability.h)
+
+AC_CHECK_FUNCS(sgi_getcapabilitybyname cap_set_proc)
+])
+
dnl $Id: check-getpwnam_r-posix.m4,v 1.2 1999/03/23 16:47:31 joda Exp $
dnl
dnl check for getpwnam_r, and if it's posix or not
@@ -1022,6 +1041,29 @@ if test "$ac_cv_func_getpwnam_r_posix" = yes; then
fi
fi
])
+dnl
+dnl $Id: krb-func-getlogin.m4,v 1.1 1999/07/13 17:45:30 assar Exp $
+dnl
+dnl test for POSIX (broken) getlogin
+dnl
+
+
+AC_DEFUN(AC_FUNC_GETLOGIN, [
+AC_CHECK_FUNCS(getlogin setlogin)
+if test "$ac_cv_func_getlogin" = yes; then
+AC_CACHE_CHECK(if getlogin is posix, ac_cv_func_getlogin_posix, [
+if test "$ac_cv_func_getlogin" = yes -a "$ac_cv_func_setlogin" = yes; then
+ ac_cv_func_getlogin_posix=no
+else
+ ac_cv_func_getlogin_posix=yes
+fi
+])
+if test "$ac_cv_func_getlogin_posix" = yes; then
+ AC_DEFINE(POSIX_GETLOGIN, 1, [Define if getlogin has POSIX flavour (and not BSD).])
+fi
+fi
+])
+
dnl $Id: find-if-not-broken.m4,v 1.2 1998/03/16 22:16:27 joda Exp $
dnl
dnl
@@ -1168,7 +1210,7 @@ fi
undefine([foo])
])
-dnl $Id: have-struct-field.m4,v 1.5 1999/03/01 13:10:35 joda Exp $
+dnl $Id: have-struct-field.m4,v 1.6 1999/07/29 01:44:32 assar Exp $
dnl
dnl check for fields in a structure
dnl
@@ -1183,18 +1225,50 @@ cache_val=no)])
if test "$cache_val" = yes; then
define(foo, translit(HAVE_$1_$2, [a-z ], [A-Z_]))
AC_DEFINE(foo, 1, [Define if $1 has field $2.])
- undefine(foo)
+ undefine([foo])
+fi
+undefine([cache_val])
+])
+
+dnl $Id: have-type.m4,v 1.4 1999/07/24 19:23:01 assar Exp $
+dnl
+dnl check for existance of a type
+
+dnl AC_HAVE_TYPE(TYPE,INCLUDES)
+AC_DEFUN(AC_HAVE_TYPE, [
+cv=`echo "$1" | sed 'y%./+- %__p__%'`
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL([ac_cv_type_$cv],
+AC_TRY_COMPILE(
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+$2],
+[$1 foo;],
+eval "ac_cv_type_$cv=yes",
+eval "ac_cv_type_$cv=no"))dnl
+AC_MSG_RESULT(`eval echo \\$ac_cv_type_$cv`)
+if test `eval echo \\$ac_cv_type_$cv` = yes; then
+ ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
+dnl autoheader tricks *sigh*
+define(foo,translit($1, [ ], [_]))
+: << END
+@@@funcs="$funcs foo"@@@
+END
+undefine([foo])
+ AC_DEFINE_UNQUOTED($ac_tr_hdr, 1)
fi
-undefine(cache_val)
])
-dnl $Id
+dnl $Id: krb-struct-spwd.m4,v 1.3 1999/07/13 21:04:11 assar Exp $
dnl
dnl Test for `struct spwd'
AC_DEFUN(AC_KRB_STRUCT_SPWD, [
AC_MSG_CHECKING(for struct spwd)
-AC_CACHE_VAL(ac_cv_type_struct_spwd, [
+AC_CACHE_VAL(ac_cv_struct_spwd, [
AC_TRY_COMPILE(
[#include <pwd.h>
#ifdef HAVE_SHADOW_H
diff --git a/crypto/kerberosIV/admin/adm_locl.h b/crypto/kerberosIV/admin/adm_locl.h
index 6cbd20dfde9a..9a41b4b61ed4 100644
--- a/crypto/kerberosIV/admin/adm_locl.h
+++ b/crypto/kerberosIV/admin/adm_locl.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: adm_locl.h,v 1.16 1997/04/20 05:46:14 assar Exp $ */
+/* $Id: adm_locl.h,v 1.17 1999/12/02 16:58:27 joda Exp $ */
#ifndef __adm_locl_h
#define __adm_locl_h
diff --git a/crypto/kerberosIV/admin/ext_srvtab.c b/crypto/kerberosIV/admin/ext_srvtab.c
index f1f1752080cd..5cab583131be 100644
--- a/crypto/kerberosIV/admin/ext_srvtab.c
+++ b/crypto/kerberosIV/admin/ext_srvtab.c
@@ -9,7 +9,7 @@
#include "adm_locl.h"
-RCSID("$Id: ext_srvtab.c,v 1.17 1998/06/09 19:24:13 joda Exp $");
+RCSID("$Id: ext_srvtab.c,v 1.18 1999/09/16 20:37:20 assar Exp $");
static des_cblock master_key;
static des_cblock session_key;
@@ -73,7 +73,7 @@ main(int argc, char **argv)
if (++i >= argc)
usage();
else {
- strcpy_truncate(realm, argv[i], REALM_SZ);
+ strlcpy(realm, argv[i], REALM_SZ);
/*
* This is to humor the broken way commandline
* argument parsing is done. Later, this
diff --git a/crypto/kerberosIV/admin/kdb_edit.c b/crypto/kerberosIV/admin/kdb_edit.c
index bd9df2dbdca4..1ba6aaf03424 100644
--- a/crypto/kerberosIV/admin/kdb_edit.c
+++ b/crypto/kerberosIV/admin/kdb_edit.c
@@ -15,7 +15,7 @@
#include "adm_locl.h"
-RCSID("$Id: kdb_edit.c,v 1.27 1998/11/22 09:26:31 assar Exp $");
+RCSID("$Id: kdb_edit.c,v 1.28 1999/09/16 20:37:21 assar Exp $");
#ifdef DEBUG
extern kerb_debug;
@@ -93,10 +93,10 @@ change_principal(void)
/* make a new principal, fill in defaults */
j = 1;
creating = 1;
- strcpy_truncate(principal_data[0].name,
+ strlcpy(principal_data[0].name,
input_name,
ANAME_SZ);
- strcpy_truncate(principal_data[0].instance,
+ strlcpy(principal_data[0].instance,
input_instance,
INST_SZ);
principal_data[0].old = NULL;
diff --git a/crypto/kerberosIV/admin/kdb_init.c b/crypto/kerberosIV/admin/kdb_init.c
index bf340a75942a..0116ea227cfe 100644
--- a/crypto/kerberosIV/admin/kdb_init.c
+++ b/crypto/kerberosIV/admin/kdb_init.c
@@ -10,7 +10,7 @@
#include "adm_locl.h"
-RCSID("$Id: kdb_init.c,v 1.24 1998/06/09 19:24:13 joda Exp $");
+RCSID("$Id: kdb_init.c,v 1.25 1999/09/16 20:37:21 assar Exp $");
enum ap_op {
NULL_KEY, /* setup null keys */
@@ -31,8 +31,8 @@ add_principal(char *name, char *instance, enum ap_op aap_op, int maxlife)
des_cblock new_key;
memset(&principal, 0, sizeof(principal));
- strcpy_truncate(principal.name, name, ANAME_SZ);
- strcpy_truncate(principal.instance, instance, INST_SZ);
+ strlcpy(principal.name, name, ANAME_SZ);
+ strlcpy(principal.instance, instance, INST_SZ);
switch (aap_op) {
case NULL_KEY:
principal.key_low = 0;
@@ -68,8 +68,8 @@ add_principal(char *name, char *instance, enum ap_op aap_op, int maxlife)
principal.kdc_key_ver = 1;
principal.key_version = 1;
- strcpy_truncate(principal.mod_name, "db_creation", ANAME_SZ);
- strcpy_truncate(principal.mod_instance, "", INST_SZ);
+ strlcpy(principal.mod_name, "db_creation", ANAME_SZ);
+ strlcpy(principal.mod_instance, "", INST_SZ);
principal.old = 0;
if (kerb_db_put_principal(&principal, 1) != 1)
@@ -108,10 +108,10 @@ main(int argc, char **argv)
kerb_db_set_name(database);
if (argc == 2)
- strcpy_truncate(realm, argv[1], REALM_SZ);
+ strlcpy(realm, argv[1], REALM_SZ);
else {
if (krb_get_lrealm(realm, 1) != KSUCCESS)
- strcpy_truncate(realm, KRB_REALM, REALM_SZ);
+ strlcpy(realm, KRB_REALM, REALM_SZ);
fprintf(stderr, "Realm name [default %s ]: ", realm);
if (fgets(realm, sizeof(realm), stdin) == NULL)
errx (1, "\nEOF reading realm");
@@ -119,7 +119,7 @@ main(int argc, char **argv)
*cp = '\0';
if (!*realm) /* no realm given */
if (krb_get_lrealm(realm, 1) != KSUCCESS)
- strcpy_truncate(realm, KRB_REALM, REALM_SZ);
+ strlcpy(realm, KRB_REALM, REALM_SZ);
}
if (!k_isrealm(realm))
errx (1, "Bad kerberos realm name \"%s\"", realm);
diff --git a/crypto/kerberosIV/admin/kdb_util.c b/crypto/kerberosIV/admin/kdb_util.c
index 4700df1d594a..cff031c36501 100644
--- a/crypto/kerberosIV/admin/kdb_util.c
+++ b/crypto/kerberosIV/admin/kdb_util.c
@@ -15,7 +15,7 @@
#include "adm_locl.h"
-RCSID("$Id: kdb_util.c,v 1.40 1999/07/05 21:43:52 assar Exp $");
+RCSID("$Id: kdb_util.c,v 1.42 1999/09/16 20:37:21 assar Exp $");
static des_cblock master_key, new_master_key;
static des_key_schedule master_key_schedule, new_master_key_schedule;
@@ -53,7 +53,7 @@ time_explode(char *cp)
memset(&tp, 0, sizeof(tp)); /* clear out the struct */
if (strlen(cp) > 10) { /* new format */
- strcpy_truncate(wbuf, cp, sizeof(wbuf));
+ strlcpy(wbuf, cp, sizeof(wbuf));
tp.tm_year = atoi(wbuf) - 1900;
cp += 4; /* step over the year */
local = 0; /* GMT */
@@ -432,6 +432,7 @@ main(int argc, char **argv)
fprintf(stderr, "Operation is one of: "
"load, merge, dump, slave_dump, new_master_key, "
"convert_old_db\n");
+ fprintf(stderr, "use file `-' for stdout\n");
exit(1);
}
if (argc == 3)
@@ -469,7 +470,20 @@ main(int argc, char **argv)
}
file_name = argv[2];
- file = fopen(file_name, (op == OP_LOAD || op == OP_MERGE) ? "r" : "w");
+ if (strcmp (file_name, "-") == 0
+ && op != OP_LOAD
+ && op != OP_MERGE)
+ file = stdout;
+ else {
+ char *mode;
+
+ if (op == OP_LOAD || op == OP_MERGE)
+ mode = "r";
+ else
+ mode = "w";
+
+ file = fopen (file_name, mode);
+ }
if (file == NULL)
err (1, "open %s", argv[2]);
diff --git a/crypto/kerberosIV/appl/afsutil/aklog.c b/crypto/kerberosIV/appl/afsutil/aklog.c
index f3bcb8bd45af..22dbfe7b2f85 100644
--- a/crypto/kerberosIV/appl/afsutil/aklog.c
+++ b/crypto/kerberosIV/appl/afsutil/aklog.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -71,7 +66,7 @@
#include <roken.h>
-RCSID("$Id: aklog.c,v 1.22.2.1 1999/07/22 03:13:22 assar Exp $");
+RCSID("$Id: aklog.c,v 1.24 1999/12/02 16:58:28 joda Exp $");
static int debug = 0;
diff --git a/crypto/kerberosIV/appl/afsutil/kstring2key.c b/crypto/kerberosIV/appl/afsutil/kstring2key.c
index 30482f0d692d..c0c76ae1130f 100644
--- a/crypto/kerberosIV/appl/afsutil/kstring2key.c
+++ b/crypto/kerberosIV/appl/afsutil/kstring2key.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "config.h"
-RCSID("$Id: kstring2key.c,v 1.14 1998/06/09 19:24:14 joda Exp $");
+RCSID("$Id: kstring2key.c,v 1.16 1999/12/02 16:58:28 joda Exp $");
#include <stdio.h>
#include <string.h>
@@ -109,7 +104,7 @@ main(int argc, char **argv)
errx (1, "Error reading password.");
break;
case 2:
- strcpy_truncate(buf, argv[1], sizeof(buf));
+ strlcpy(buf, argv[1], sizeof(buf));
break;
default:
usage();
diff --git a/crypto/kerberosIV/appl/afsutil/pagsh.c b/crypto/kerberosIV/appl/afsutil/pagsh.c
index 1f02ee8f0c37..c6704bed451d 100644
--- a/crypto/kerberosIV/appl/afsutil/pagsh.c
+++ b/crypto/kerberosIV/appl/afsutil/pagsh.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -40,7 +35,7 @@
#include <config.h>
#endif
-RCSID("$Id: pagsh.c,v 1.21 1999/03/11 13:56:55 joda Exp $");
+RCSID("$Id: pagsh.c,v 1.22 1999/12/02 16:58:28 joda Exp $");
#include <stdio.h>
#include <stdlib.h>
diff --git a/crypto/kerberosIV/appl/bsd/bsd_locl.h b/crypto/kerberosIV/appl/bsd/bsd_locl.h
index 2731f0387713..e39bc3686fc8 100644
--- a/crypto/kerberosIV/appl/bsd/bsd_locl.h
+++ b/crypto/kerberosIV/appl/bsd/bsd_locl.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: bsd_locl.h,v 1.109.2.1 1999/07/22 03:13:49 assar Exp $ */
+/* $Id: bsd_locl.h,v 1.111 1999/12/02 16:58:28 joda Exp $ */
#define LOGALL
#define KERBEROS
diff --git a/crypto/kerberosIV/appl/bsd/forkpty.c b/crypto/kerberosIV/appl/bsd/forkpty.c
index 0ab7ef24dcaf..891fb91fb2a2 100644
--- a/crypto/kerberosIV/appl/bsd/forkpty.c
+++ b/crypto/kerberosIV/appl/bsd/forkpty.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -40,7 +35,7 @@
#ifndef HAVE_FORKPTY
-RCSID("$Id: forkpty.c,v 1.53.2.2 1999/08/19 13:37:16 assar Exp $");
+RCSID("$Id: forkpty.c,v 1.57 1999/12/02 16:58:28 joda Exp $");
/* Only CRAY is known to have problems with forkpty(). */
#if defined(CRAY)
@@ -169,7 +164,7 @@ ptym_open_streams_flavor(char *pts_name,
char *ptr1;
if ((ptr1 = ptsname(fdm)) != NULL) /* Get slave's name */
/* Return name of slave */
- strcpy_truncate(pts_name, ptr1, pts_name_sz);
+ strlcpy(pts_name, ptr1, pts_name_sz);
else {
close(fdm);
return(-4);
@@ -268,7 +263,7 @@ ptym_open(char *pts_name, size_t pts_name_sz, int *streams_pty)
char *p = _getpty(&fdm, O_RDWR, 0600, 1);
if (p) {
*streams_pty = 1;
- strcpy_truncate (pts_name, p, pts_name_sz);
+ strlcpy (pts_name, p, pts_name_sz);
return fdm;
}
}
@@ -398,7 +393,7 @@ forkpty_truncate(int *ptrfdm,
if (slave_name != NULL)
/* Return name of slave */
- strcpy_truncate(slave_name, pts_name, slave_name_sz);
+ strlcpy(slave_name, pts_name, slave_name_sz);
pid = fork();
if (pid < 0)
diff --git a/crypto/kerberosIV/appl/bsd/klogin.c b/crypto/kerberosIV/appl/bsd/klogin.c
index 41002dca8f25..df21dbff550f 100644
--- a/crypto/kerberosIV/appl/bsd/klogin.c
+++ b/crypto/kerberosIV/appl/bsd/klogin.c
@@ -33,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: klogin.c,v 1.24 1999/03/15 13:34:12 bg Exp $");
+RCSID("$Id: klogin.c,v 1.27 1999/10/04 16:11:48 bg Exp $");
#ifdef KERBEROS
@@ -53,52 +53,25 @@ multiple_get_tkt(char *name,
int life,
char *password)
{
+ int ret;
int n;
char rlm[256];
-#define ERICSSON_COMPAT 1
-#ifdef ERICSSON_COMPAT
- FILE *f;
- f = fopen("/etc/krb.localrealms", "r");
- if (f != NULL) {
- while (fgets(rlm, sizeof(rlm), f) != NULL) {
- if (rlm[strlen(rlm) - 1] == '\n')
- rlm[strlen(rlm) - 1] = '\0';
-
- if (krb_get_pw_in_tkt(name,
- instance,
- rlm,
- service,
- realm,
- life,
- password) == KSUCCESS) {
- fclose(f);
- return KSUCCESS;
- }
- }
- return krb_get_pw_in_tkt(name,
- instance,
- realm,
- service,
- realm,
- life,
- password);
- }
-#endif
/* First try to verify against the supplied realm. */
- if (krb_get_pw_in_tkt(name, instance, realm, service, realm, life, password)
- == KSUCCESS)
+ ret = krb_get_pw_in_tkt(name, instance, realm, service, realm, life,
+ password);
+ if(ret == KSUCCESS)
return KSUCCESS;
/* Verify all local realms, except the supplied realm. */
for (n = 1; krb_get_lrealm(rlm, n) == KSUCCESS; n++)
- if (strcmp(rlm, realm) != 0)
- if (krb_get_pw_in_tkt(name, instance, rlm,service, realm, life, password)
- == KSUCCESS)
+ if (strcmp(rlm, realm) != 0) {
+ ret = krb_get_pw_in_tkt(name, instance, rlm,service, rlm,life, password);
+ if (ret == KSUCCESS)
return KSUCCESS;
+ }
- return KFAILURE;
-
+ return ret;
}
/*
@@ -194,7 +167,7 @@ klogin(struct passwd *pw, char *instance, char *localhost, char *password)
if (chown(TKT_FILE, pw->pw_uid, pw->pw_gid) < 0)
syslog(LOG_ERR, "chown tkfile (%s): %m", TKT_FILE);
- strcpy_truncate(savehost, krb_get_phost(localhost), sizeof(savehost));
+ strlcpy(savehost, krb_get_phost(localhost), sizeof(savehost));
#ifdef KLOGIN_PARANOID
/*
diff --git a/crypto/kerberosIV/appl/bsd/login.c b/crypto/kerberosIV/appl/bsd/login.c
index 702c5ff15776..0d29ebee1b06 100644
--- a/crypto/kerberosIV/appl/bsd/login.c
+++ b/crypto/kerberosIV/appl/bsd/login.c
@@ -45,7 +45,7 @@
#include <sys/capability.h>
#endif
-RCSID("$Id: login.c,v 1.120.2.2 1999/09/02 08:55:26 joda Exp $");
+RCSID("$Id: login.c,v 1.125 1999/11/30 19:24:01 bg Exp $");
#ifdef OTP
#include <otp.h>
@@ -225,7 +225,7 @@ main(int argc, char **argv)
fflag = hflag = pflag = rflag = 0;
uid = getuid();
- while ((ch = getopt(argc, argv, "a:d:fh:pr:")) != EOF)
+ while ((ch = getopt(argc, argv, "a:d:fh:pr:")) != -1)
switch (ch) {
case 'a':
if (strcmp (optarg, "none") == 0)
@@ -250,7 +250,7 @@ main(int argc, char **argv)
if (uid)
errx(1, "-h option: %s", strerror(EPERM));
hflag = 1;
- strcpy_truncate(full_hostname,
+ strlcpy(full_hostname,
optarg,
sizeof(full_hostname));
if (domain && (p = strchr(optarg, '.')) &&
@@ -275,7 +275,7 @@ main(int argc, char **argv)
exit(1);
}
rflag = 1;
- strcpy_truncate(full_hostname,
+ strlcpy(full_hostname,
optarg,
sizeof(full_hostname));
if (domain && (p = strchr(optarg, '.')) &&
@@ -383,7 +383,7 @@ main(int argc, char **argv)
badlogin(tbuf);
failures = 0;
}
- strcpy_truncate(tbuf, username, sizeof(tbuf));
+ strlcpy(tbuf, username, sizeof(tbuf));
pwd = paranoid_getpwnam (username);
@@ -654,7 +654,7 @@ main(int argc, char **argv)
* that LD_* and IFS are never preserved.
*/
if (term[0] == '\0')
- strcpy_truncate(term, stypeof(tty), sizeof(term));
+ strlcpy(term, stypeof(tty), sizeof(term));
/* set up a somewhat censored environment. */
sysv_newenv(argc, argv, pwd, term, pflag);
#ifdef KERBEROS
@@ -950,7 +950,7 @@ checknologin(void)
static void
dolastlog(int quiet)
{
-#if defined(HAVE_LASTLOG_H) || defined(HAVE_LOGIN_H) || defined(SYSV_SHADOW)
+#if defined(HAVE_LASTLOG_H) || defined(HAVE_LOGIN_H)
struct lastlog ll;
int fd;
diff --git a/crypto/kerberosIV/appl/bsd/login_fbtab.c b/crypto/kerberosIV/appl/bsd/login_fbtab.c
index f831909d6f07..3aa5e4cfd360 100644
--- a/crypto/kerberosIV/appl/bsd/login_fbtab.c
+++ b/crypto/kerberosIV/appl/bsd/login_fbtab.c
@@ -58,7 +58,7 @@
#include "bsd_locl.h"
-RCSID("$Id: login_fbtab.c,v 1.13 1999/01/14 00:37:59 assar Exp $");
+RCSID("$Id: login_fbtab.c,v 1.14 1999/09/16 20:37:24 assar Exp $");
void login_protect (char *, char *, int, uid_t, gid_t);
void login_fbtab (char *tty, uid_t uid, gid_t gid);
@@ -126,7 +126,7 @@ login_protect(char *table, char *path, int mask, uid_t uid, gid_t gid)
if (chown(path, uid, gid) && errno != ENOENT)
syslog(LOG_ERR, "%s: chown(%s): %m", table, path);
} else {
- strcpy_truncate (buf, path, sizeof(buf));
+ strlcpy (buf, path, sizeof(buf));
if (sizeof(buf) > pathlen)
buf[pathlen - 2] = '\0';
/* Solaris evidently operates on the directory as well */
@@ -142,7 +142,7 @@ login_protect(char *table, char *path, int mask, uid_t uid, gid_t gid)
while ((ent = readdir(dir)) != 0) {
if (strcmp(ent->d_name, ".") != 0
&& strcmp(ent->d_name, "..") != 0) {
- strcpy_truncate (buf + pathlen - 1,
+ strlcpy (buf + pathlen - 1,
ent->d_name,
sizeof(buf) - (pathlen + 1));
login_protect(table, buf, mask, uid, gid);
diff --git a/crypto/kerberosIV/appl/bsd/osfc2.c b/crypto/kerberosIV/appl/bsd/osfc2.c
index 78f2e6e258ca..fbfd742e9224 100644
--- a/crypto/kerberosIV/appl/bsd/osfc2.c
+++ b/crypto/kerberosIV/appl/bsd/osfc2.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -37,7 +32,7 @@
*/
#include "bsd_locl.h"
-RCSID("$Id: osfc2.c,v 1.1 1998/09/28 11:47:36 joda Exp $");
+RCSID("$Id: osfc2.c,v 1.2 1999/12/02 16:58:28 joda Exp $");
int
do_osfc2_magic(uid_t uid)
diff --git a/crypto/kerberosIV/appl/bsd/rcmd_util.c b/crypto/kerberosIV/appl/bsd/rcmd_util.c
index 188413325657..1dfb46dbb07a 100644
--- a/crypto/kerberosIV/appl/bsd/rcmd_util.c
+++ b/crypto/kerberosIV/appl/bsd/rcmd_util.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: rcmd_util.c,v 1.17 1997/09/24 21:14:23 assar Exp $");
+RCSID("$Id: rcmd_util.c,v 1.19 1999/12/02 16:58:28 joda Exp $");
int
get_login_port(int kerberos, int encryption)
@@ -130,9 +125,15 @@ static struct { int speed; int bps; } conv[] = {
#ifdef B19200
{B19200, 19200},
#endif
+#ifdef EXTA
+ {EXTA, 19200},
+#endif
#ifdef B38400
{B38400, 38400},
#endif
+#ifdef EXTB
+ {EXTB, 38400},
+#endif
#ifdef B57600
{B57600, 57600},
#endif
diff --git a/crypto/kerberosIV/appl/bsd/rcp.c b/crypto/kerberosIV/appl/bsd/rcp.c
index 39fd36e49d6b..be8709755495 100644
--- a/crypto/kerberosIV/appl/bsd/rcp.c
+++ b/crypto/kerberosIV/appl/bsd/rcp.c
@@ -33,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: rcp.c,v 1.49 1999/07/06 03:17:58 assar Exp $");
+RCSID("$Id: rcp.c,v 1.52 1999/11/16 16:54:16 bg Exp $");
/* Globals */
static char dst_realm_buf[REALM_SZ];
@@ -41,7 +41,9 @@ static char *dest_realm = NULL;
static int use_kerberos = 1;
static int doencrypt = 0;
-#define OPTIONS "dfKk:prtx"
+#define OPTIONS "dfKk:prtxl:"
+
+static char *user_name = NULL; /* Given as -l option. */
static int errs, rem;
static struct passwd *pwd;
@@ -146,11 +148,11 @@ run_err(const char *fmt, ...)
va_start(args, fmt);
++errs;
#define RCPERR "\001rcp: "
- strcpy_truncate (errbuf, RCPERR, sizeof(errbuf));
+ strlcpy (errbuf, RCPERR, sizeof(errbuf));
vsnprintf (errbuf + strlen(errbuf),
sizeof(errbuf) - strlen(errbuf),
fmt, args);
- strcat_truncate (errbuf, "\n", sizeof(errbuf));
+ strlcat (errbuf, "\n", sizeof(errbuf));
des_write (rem, errbuf, strlen(errbuf));
if (!iamremote)
vwarnx(fmt, args);
@@ -490,7 +492,7 @@ toremote(char *targ, int argc, char **argv)
exit(1);
} else {
thost = argv[argc - 1];
- tuser = NULL;
+ tuser = user_name;
}
for (i = 0; i < argc - 1; i++) {
@@ -854,6 +856,8 @@ tolocal(int argc, char **argv)
#else
host = argv[i];
suser = pwd->pw_name;
+ if (user_name)
+ suser = user_name;
#endif
} else {
*host++ = 0;
@@ -937,14 +941,14 @@ main(int argc, char **argv)
fflag = tflag = 0;
- while ((ch = getopt(argc, argv, OPTIONS)) != EOF)
+ while ((ch = getopt(argc, argv, OPTIONS)) != -1)
switch(ch) { /* User-visible flags. */
case 'K':
use_kerberos = 0;
break;
case 'k':
dest_realm = dst_realm_buf;
- strcpy_truncate(dst_realm_buf, optarg, REALM_SZ);
+ strlcpy(dst_realm_buf, optarg, REALM_SZ);
break;
case 'x':
doencrypt = 1;
@@ -968,6 +972,9 @@ main(int argc, char **argv)
iamremote = 1;
tflag = 1;
break;
+ case 'l':
+ user_name = optarg;
+ break;
case '?':
default:
usage();
diff --git a/crypto/kerberosIV/appl/bsd/rlogin.c b/crypto/kerberosIV/appl/bsd/rlogin.c
index 5bc6196f09ce..d057edea8276 100644
--- a/crypto/kerberosIV/appl/bsd/rlogin.c
+++ b/crypto/kerberosIV/appl/bsd/rlogin.c
@@ -36,7 +36,7 @@
*/
#include "bsd_locl.h"
-RCSID("$Id: rlogin.c,v 1.65 1999/03/13 21:13:54 assar Exp $");
+RCSID("$Id: rlogin.c,v 1.67 1999/11/13 06:13:02 assar Exp $");
CREDENTIALS cred;
Key_schedule schedule;
@@ -556,7 +556,7 @@ main(int argc, char **argv)
}
#define OPTIONS "8DEKLde:k:l:xp:"
- while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != EOF)
+ while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != -1)
switch(ch) {
case '8':
eight = 1;
@@ -579,7 +579,7 @@ main(int argc, char **argv)
break;
case 'k':
dest_realm = dst_realm_buf;
- strcpy_truncate(dest_realm, optarg, REALM_SZ);
+ strlcpy(dest_realm, optarg, REALM_SZ);
break;
case 'l':
user = optarg;
diff --git a/crypto/kerberosIV/appl/bsd/rlogind.c b/crypto/kerberosIV/appl/bsd/rlogind.c
index d36df928545a..927ffc541d56 100644
--- a/crypto/kerberosIV/appl/bsd/rlogind.c
+++ b/crypto/kerberosIV/appl/bsd/rlogind.c
@@ -42,7 +42,7 @@
#include "bsd_locl.h"
-RCSID("$Id: rlogind.c,v 1.107.2.1 1999/07/22 03:14:39 assar Exp $");
+RCSID("$Id: rlogind.c,v 1.109 1999/11/25 05:27:38 assar Exp $");
extern int __check_rhosts_file;
@@ -319,7 +319,7 @@ main(int argc, char **argv)
openlog("rlogind", LOG_PID | LOG_CONS, LOG_AUTH);
opterr = 0;
- while ((ch = getopt(argc, argv, ARGSTR)) != EOF)
+ while ((ch = getopt(argc, argv, ARGSTR)) != -1)
switch (ch) {
case 'D':
no_delay = 1;
diff --git a/crypto/kerberosIV/appl/bsd/rsh.c b/crypto/kerberosIV/appl/bsd/rsh.c
index be2dfea9bf19..87fe1fe53369 100644
--- a/crypto/kerberosIV/appl/bsd/rsh.c
+++ b/crypto/kerberosIV/appl/bsd/rsh.c
@@ -33,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: rsh.c,v 1.41 1999/06/17 18:49:18 assar Exp $");
+RCSID("$Id: rsh.c,v 1.43 1999/11/13 06:13:34 assar Exp $");
CREDENTIALS cred;
Key_schedule schedule;
@@ -205,7 +205,7 @@ main(int argc, char **argv)
}
#define OPTIONS "+8KLde:k:l:np:wx"
- while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != EOF)
+ while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != -1)
switch(ch) {
case 'K':
use_kerberos = 0;
@@ -223,7 +223,7 @@ main(int argc, char **argv)
break;
case 'k':
dest_realm = dst_realm_buf;
- strcpy_truncate(dest_realm, optarg, REALM_SZ);
+ strlcpy(dest_realm, optarg, REALM_SZ);
break;
case 'n':
nflag = nfork = 1;
diff --git a/crypto/kerberosIV/appl/bsd/rshd.c b/crypto/kerberosIV/appl/bsd/rshd.c
index 1a30793b6091..ed91febc0952 100644
--- a/crypto/kerberosIV/appl/bsd/rshd.c
+++ b/crypto/kerberosIV/appl/bsd/rshd.c
@@ -42,7 +42,7 @@
#include "bsd_locl.h"
-RCSID("$Id: rshd.c,v 1.58 1999/06/17 18:49:43 assar Exp $");
+RCSID("$Id: rshd.c,v 1.60 1999/11/13 06:13:53 assar Exp $");
extern char *__rcmd_errstr; /* syslog hook from libc/net/rcmd.c. */
extern int __check_rhosts_file;
@@ -82,7 +82,7 @@ main(int argc, char *argv[])
openlog("rshd", LOG_PID | LOG_ODELAY, LOG_DAEMON);
opterr = 0;
- while ((ch = getopt(argc, argv, OPTIONS)) != EOF)
+ while ((ch = getopt(argc, argv, OPTIONS)) != -1)
switch (ch) {
case 'a':
break;
@@ -565,13 +565,13 @@ doit(struct sockaddr_in *fromp)
setgid((gid_t)pwd->pw_gid);
initgroups(pwd->pw_name, pwd->pw_gid);
setuid((uid_t)pwd->pw_uid);
- strcat_truncate(homedir, pwd->pw_dir, sizeof(homedir));
+ strlcat(homedir, pwd->pw_dir, sizeof(homedir));
/* Need to prepend path with BINDIR (/usr/athena/bin) to find rcp */
snprintf(path, sizeof(path), "PATH=%s:%s", BINDIR, _PATH_DEFPATH);
- strcat_truncate(shell, pwd->pw_shell, sizeof(shell));
- strcat_truncate(username, pwd->pw_name, sizeof(username));
+ strlcat(shell, pwd->pw_shell, sizeof(shell));
+ strlcat(username, pwd->pw_name, sizeof(username));
cp = strrchr(pwd->pw_shell, '/');
if (cp)
cp++;
diff --git a/crypto/kerberosIV/appl/bsd/stty_default.c b/crypto/kerberosIV/appl/bsd/stty_default.c
index b7112c1b6943..013582345222 100644
--- a/crypto/kerberosIV/appl/bsd/stty_default.c
+++ b/crypto/kerberosIV/appl/bsd/stty_default.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: stty_default.c,v 1.6 1997/04/01 08:17:17 joda Exp $");
+RCSID("$Id: stty_default.c,v 1.7 1999/12/02 16:58:28 joda Exp $");
#include <termios.h>
diff --git a/crypto/kerberosIV/appl/bsd/su.c b/crypto/kerberosIV/appl/bsd/su.c
index d0da21d95a0d..cb24591c074e 100644
--- a/crypto/kerberosIV/appl/bsd/su.c
+++ b/crypto/kerberosIV/appl/bsd/su.c
@@ -33,7 +33,7 @@
#include "bsd_locl.h"
-RCSID ("$Id: su.c,v 1.66 1999/03/11 13:57:58 joda Exp $");
+RCSID ("$Id: su.c,v 1.70 1999/11/13 06:14:11 assar Exp $");
#ifdef SYSV_SHADOW
#include "sysv_shadow.h"
@@ -46,8 +46,9 @@ static int koktologin (char *name, char *realm, char *toname);
static int chshell (char *sh);
/* Handle '-' option after all the getopt options */
-#define ARGSTR "Kflmi:"
+#define ARGSTR "Kflmti:"
+int destroy_tickets = 0;
static int use_kerberos = 1;
static char *root_inst = "root";
@@ -66,7 +67,7 @@ main (int argc, char **argv)
set_progname (argv[0]);
asme = asthem = fastlogin = 0;
- while ((ch = getopt (argc, argv, ARGSTR)) != EOF)
+ while ((ch = getopt (argc, argv, ARGSTR)) != -1)
switch ((char) ch) {
case 'K':
use_kerberos = 0;
@@ -82,13 +83,16 @@ main (int argc, char **argv)
asme = 1;
asthem = 0;
break;
+ case 't':
+ destroy_tickets = 1;
+ break;
case 'i':
root_inst = optarg;
break;
case '?':
default:
fprintf (stderr,
- "usage: su [-Kflm] [-i root-instance] [-] [login]\n");
+ "usage: su [-Kflmt] [-i root-instance] [-] [login]\n");
exit (1);
}
/* Don't handle '-' option with getopt */
@@ -127,7 +131,7 @@ main (int argc, char **argv)
errx (1, "strdup: out of memory");
if (asme) {
if (pwd->pw_shell && *pwd->pw_shell) {
- strcpy_truncate (shellbuf, pwd->pw_shell, sizeof(shellbuf));
+ strlcpy (shellbuf, pwd->pw_shell, sizeof(shellbuf));
shell = shellbuf;
} else {
shell = _PATH_BSHELL;
@@ -282,6 +286,8 @@ main (int argc, char **argv)
if (code != KSUCCESS && code != KDC_PR_UNKNOWN)
warnx ("afsklog: %s", krb_get_err_text (code));
}
+ if (destroy_tickets)
+ dest_tkt ();
execv (shell, np);
warn ("execv(%s)", shell);
if (getuid () == 0) {
@@ -408,7 +414,7 @@ kerberos (char *username, char *user, int uid)
dest_tkt ();
return (1);
}
- strcpy_truncate (savehost, krb_get_phost (hostname), sizeof (savehost));
+ strlcpy (savehost, krb_get_phost (hostname), sizeof (savehost));
kerno = krb_mk_req (&ticket, "rcmd", savehost, lrealm, 33);
@@ -452,7 +458,8 @@ kerberos (char *username, char *user, int uid)
return (1);
}
}
- fprintf (stderr, "Don't forget to kdestroy before exiting the shell.\n");
+ if (!destroy_tickets)
+ fprintf (stderr, "Don't forget to kdestroy before exiting the shell.\n");
return (0);
}
diff --git a/crypto/kerberosIV/appl/bsd/tty.c b/crypto/kerberosIV/appl/bsd/tty.c
index 3192426a8a54..2a903db37050 100644
--- a/crypto/kerberosIV/appl/bsd/tty.c
+++ b/crypto/kerberosIV/appl/bsd/tty.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: tty.c,v 1.2 1997/05/25 01:14:22 assar Exp $");
+RCSID("$Id: tty.c,v 1.3 1999/12/02 16:58:28 joda Exp $");
/*
* Clean the tty name. Return a pointer to the cleaned version.
diff --git a/crypto/kerberosIV/appl/bsd/utmp_login.c b/crypto/kerberosIV/appl/bsd/utmp_login.c
index 8c1a2d379b9a..d2879fe3ec16 100644
--- a/crypto/kerberosIV/appl/bsd/utmp_login.c
+++ b/crypto/kerberosIV/appl/bsd/utmp_login.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "bsd_locl.h"
-RCSID("$Id: utmp_login.c,v 1.15 1999/03/29 17:57:16 joda Exp $");
+RCSID("$Id: utmp_login.c,v 1.16 1999/12/02 16:58:29 joda Exp $");
#ifdef HAVE_UTMP_H
void
diff --git a/crypto/kerberosIV/appl/ftp/ChangeLog b/crypto/kerberosIV/appl/ftp/ChangeLog
index 422f4a501d54..e2e1bb5f4dfa 100644
--- a/crypto/kerberosIV/appl/ftp/ChangeLog
+++ b/crypto/kerberosIV/appl/ftp/ChangeLog
@@ -1,8 +1,188 @@
+1999-11-30 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpd.c (getdatasock): make sure to keep the port-number of
+ the outgoing connections. It has to be `ftp-data' or some people
+ might get upset.
+
+ * ftpd/ftpd.c (args): set correct variable when `-l' so that
+ logging actually works
+
+1999-11-29 Assar Westerlund <assar@sics.se>
+
+ * ftp/security.c (sec_login): check return value from realloc
+ (sec_end): set app_data to NULL
+
+1999-11-25 Assar Westerlund <assar@sics.se>
+
+ * ftp/krb4.c (krb4_auth): obtain the `local' address when doing
+ NAT. also turn on passive mode. From <thn@stacken.kth.se>
+
+1999-11-20 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ls.c (make_fileinfo): cast to allow for non-const
+ prototypes of readlink
+
+1999-11-12 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpd.c (args): use arg_counter for `l'
+
+1999-11-04 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ls.c (S_ISSOCK, S_ISLNK): fallback definitions for systems
+ that don't have them (such as ultrix)
+
+1999-10-29 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ls.c (make_fileinfo): cast uid's and gid's to unsigned in
+ printf, we don't know what types they might be.
+ (lstat_file): conditionalize the kafs part on KRB4
+
+ * ftpd/ftpd_locl.h: <sys/ioccom.h> is needed for kafs.h
+
+1999-10-28 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ls.c (lstat_file): don't set st_mode, it should already be
+ correct
+
+ * ftpd/ls.c: don't use warnx to print errors
+
+ * ftpd/ls.c (builtin_ls): fix typo, 'd' shouldn't imply 'f'
+
+ * ftpd/ls.c (lstat_file): new function for avoiding stating AFS
+ mount points. From Love <lha@s3.kth.se>
+ (list_files): use `lstat_file'
+
+ * ftpd/ftpd.c: some const-poisoning
+
+ * ftpd/ftpd.c (args): add `-B' as an alias for `--builtin-ls' to
+ allow for stupid inetds that only support two arguments. From
+ Love <lha@s3.kth.se>
+
+1999-10-26 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpcmd.y (help): it's unnecessary to interpret help strings
+ as printf commands
+
+ * ftpd/ftpd.c (show_issue): don't interpret contents of
+ /etc/issue* as printf commands. From Brian A May
+ <bmay@dgs.monash.edu.au>
+
+1999-10-21 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/kauth.c (kauth): complain if protection level isn't
+ `private'
+
+ * ftp/krb4.c (krb4_decode): syslog failure reason
+
+ * ftp/kauth.c (kauth): set private level earlier
+
+ * ftp/security.c: get_command_prot; (sec_prot): partially match
+ `command' and `data'
+
+1999-10-18 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/ftpd.c: change `-l' flag to use arg_collect (this makes
+ `-ll' work again)
+
+ * ftpd/ftpd.c (list_file): pass filename to ls
+
+1999-10-04 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/ftpcmd.y: FEAT
+
+1999-10-03 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ls.c: fall-back definitions for constans and casts for
+ printfs
+
+1999-10-03 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/ftpd.c (main): make this use getarg; add `list_file'
+
+ * ftpd/ftpcmd.y (LIST): call list_file
+
+ * ftpd/ls.c: add simple built-in ls
+
+ * ftp/security.c: add `sec_vfprintf2' and `sec_fprintf2' that
+ prints to the data stream
+
+ * ftp/kauth.c (kauth): make sure we're using private protection
+ level
+
+ * ftp/security.c (set_command_prot): set command protection level
+
+ * ftp/security.c: make it possible to set the command protection
+ level with `prot'
+
+1999-09-30 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpd_locl.h: add prototype for fclose to make sunos happy
+
+1999-08-19 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/ftpd.c (do_login): show issue-file
+ (send_data): change handling of zero-byte files
+
1999-08-18 Assar Westerlund <assar@sics.se>
* ftp/cmds.c (getit): be more suspicious when parsing the result
of MDTM. Do the comparison of timestamps correctly.
+1999-08-13 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpd.c (send_data): avoid calling mmap with `len == 0'.
+ Some mmap:s rather dislike that (Solaris) and some munmap (Linux)
+ get grumpy later.
+
+ * ftp/ftp.c (copy_stream): avoid calling mmap with `len == 0'.
+ Some mmap:s rather dislike that (Solaris) and some munmap (Linux)
+ get grumpy later.
+
+1999-08-03 Assar Westerlund <assar@sics.se>
+
+ * ftp/ftp.c (active_mode): hide failure of EPRT by setting verbose
+
+ * ftp/gssapi.c (gss_auth): initialize application_data in bindings
+
+1999-08-02 Assar Westerlund <assar@sics.se>
+
+ * ftpd/ftpcmd.y: save file names when doing commands that might
+ get aborted (and longjmp:ed out of) to avoid overwriting them also
+ remove extra closing brace
+
+1999-08-01 Johan Danielsson <joda@pdc.kth.se>
+
+ * ftpd/ftpcmd.y: change `site find' to `site locate' (to match
+ what it does, and other implementations) keep find as an alias
+
+1999-07-28 Assar Westerlund <assar@sics.se>
+
+ * common/socket.c: moved to roken
+
+ * common/socket.c: new file with generic socket functions
+
+ * ftpd/ftpd.c: make it more AF-neutral and v6-capable
+
+ * ftpd/ftpcmd.y: add EPRT and EPSV
+
+ * ftpd/extern.h: update prototypes and variables
+
+ * ftp/krb4.c: update to new types of addresses
+
+ * ftp/gssapi.c: add support for both AF_INET and AF_INET6
+ addresses
+
+ * ftp/ftp.c: make it more AF-neutral and v6-capable
+
+ * ftp/extern.h (hookup): change prototype
+
+ * common/common.h: add prototypes for functions in socket.c
+
+ * common/Makefile.am (libcommon_a_SOURCES): add socket.c
+
+ * ftp/gssapi.c (gss_auth): check return value from
+ `gss_import_name' and print error messages if it fails
+
1999-06-15 Assar Westerlund <assar@sics.se>
* ftp/krb4.c (krb4_auth): type correctness
diff --git a/crypto/kerberosIV/appl/ftp/common/Makefile.am b/crypto/kerberosIV/appl/ftp/common/Makefile.am
index 2ab5801d0f35..4fab07b9a1ae 100644
--- a/crypto/kerberosIV/appl/ftp/common/Makefile.am
+++ b/crypto/kerberosIV/appl/ftp/common/Makefile.am
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.7 1999/03/20 13:58:14 joda Exp $
+# $Id: Makefile.am,v 1.9 1999/07/28 21:15:06 assar Exp $
include $(top_srcdir)/Makefile.am.common
diff --git a/crypto/kerberosIV/appl/ftp/common/buffer.c b/crypto/kerberosIV/appl/ftp/common/buffer.c
index 97e281533571..0385d494a120 100644
--- a/crypto/kerberosIV/appl/ftp/common/buffer.c
+++ b/crypto/kerberosIV/appl/ftp/common/buffer.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -41,7 +36,7 @@
#include <err.h>
#include "roken.h"
-RCSID("$Id: buffer.c,v 1.2 1997/12/14 23:51:45 assar Exp $");
+RCSID("$Id: buffer.c,v 1.3 1999/12/02 16:58:29 joda Exp $");
/*
* Allocate a buffer enough to handle st->st_blksize, if
diff --git a/crypto/kerberosIV/appl/ftp/common/common.h b/crypto/kerberosIV/appl/ftp/common/common.h
index 4ec3149998b0..5949b25d7bf9 100644
--- a/crypto/kerberosIV/appl/ftp/common/common.h
+++ b/crypto/kerberosIV/appl/ftp/common/common.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: common.h,v 1.9 1997/05/18 19:59:58 assar Exp $ */
+/* $Id: common.h,v 1.12 1999/12/02 16:58:29 joda Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -56,6 +51,9 @@ void set_buffer_size(int, int);
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
void *alloc_buffer (void *oldbuf, size_t *sz, struct stat *st);
diff --git a/crypto/kerberosIV/appl/ftp/common/sockbuf.c b/crypto/kerberosIV/appl/ftp/common/sockbuf.c
index ab8c293f6548..460cc6fbf554 100644
--- a/crypto/kerberosIV/appl/ftp/common/sockbuf.c
+++ b/crypto/kerberosIV/appl/ftp/common/sockbuf.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -44,7 +39,7 @@
#include <sys/socket.h>
#endif
-RCSID("$Id: sockbuf.c,v 1.2 1997/05/11 10:01:48 assar Exp $");
+RCSID("$Id: sockbuf.c,v 1.3 1999/12/02 16:58:29 joda Exp $");
void
set_buffer_size(int fd, int read)
diff --git a/crypto/kerberosIV/appl/ftp/ftp/cmds.c b/crypto/kerberosIV/appl/ftp/ftp/cmds.c
index 1571fc8e0841..7698313c252e 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/cmds.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/cmds.c
@@ -36,7 +36,7 @@
*/
#include "ftp_locl.h"
-RCSID("$Id: cmds.c,v 1.34.2.1 1999/08/18 18:19:44 assar Exp $");
+RCSID("$Id: cmds.c,v 1.36 1999/09/16 20:37:28 assar Exp $");
typedef void (*sighand)(int);
@@ -119,16 +119,16 @@ setpeer(int argc, char **argv)
/*
* Set up defaults for FTP.
*/
- strcpy_truncate(typename, "ascii", sizeof(typename));
+ strlcpy(typename, "ascii", sizeof(typename));
type = TYPE_A;
curtype = TYPE_A;
- strcpy_truncate(formname, "non-print", sizeof(formname));
+ strlcpy(formname, "non-print", sizeof(formname));
form = FORM_N;
- strcpy_truncate(modename, "stream", sizeof(modename));
+ strlcpy(modename, "stream", sizeof(modename));
mode = MODE_S;
- strcpy_truncate(structname, "file", sizeof(structname));
+ strlcpy(structname, "file", sizeof(structname));
stru = STRU_F;
- strcpy_truncate(bytename, "8", sizeof(bytename));
+ strlcpy(bytename, "8", sizeof(bytename));
bytesize = 8;
if (autologin)
login(argv[1]);
@@ -170,7 +170,7 @@ setpeer(int argc, char **argv)
* for text files unless changed by the user.
*/
type = 0;
- strcpy_truncate(typename, "binary", sizeof(typename));
+ strlcpy(typename, "binary", sizeof(typename));
if (overbose)
printf("Using %s mode to transfer files.\n",
typename);
@@ -243,7 +243,7 @@ settype(int argc, char **argv)
else
comret = command("TYPE %s", p->t_mode);
if (comret == COMPLETE) {
- strcpy_truncate(typename, p->t_name, sizeof(typename));
+ strlcpy(typename, p->t_name, sizeof(typename));
curtype = type = p->t_type;
}
}
@@ -784,7 +784,7 @@ remglob(char **argv, int doswitch)
}
if (ftemp == NULL) {
int fd;
- strcpy_truncate(temp, _PATH_TMP_XXX, sizeof(temp));
+ strlcpy(temp, _PATH_TMP_XXX, sizeof(temp));
fd = mkstemp(temp);
if(fd < 0){
warn("unable to create temporary file %s", temp);
@@ -1419,11 +1419,11 @@ quote1(char *initial, int argc, char **argv)
int i;
char buf[BUFSIZ]; /* must be >= sizeof(line) */
- strcpy_truncate(buf, initial, sizeof(buf));
+ strlcpy(buf, initial, sizeof(buf));
for(i = 1; i < argc; i++) {
if(i > 1)
- strcat_truncate(buf, " ", sizeof(buf));
- strcat_truncate(buf, argv[i], sizeof(buf));
+ strlcat(buf, " ", sizeof(buf));
+ strlcat(buf, argv[i], sizeof(buf));
}
if (command("%s", buf) == PRELIM) {
while (getreply(0) == PRELIM)
@@ -1575,11 +1575,11 @@ account(int argc, char **argv)
if (argc > 1) {
++argv;
--argc;
- strcpy_truncate (acct, *argv, sizeof(acct));
+ strlcpy (acct, *argv, sizeof(acct));
while (argc > 1) {
--argc;
++argv;
- strcat_truncate(acct, *argv, sizeof(acct));
+ strlcat(acct, *argv, sizeof(acct));
}
}
else {
@@ -1691,12 +1691,12 @@ setntrans(int argc, char **argv)
}
ntflag++;
code = ntflag;
- strcpy_truncate (ntin, argv[1], 17);
+ strlcpy (ntin, argv[1], 17);
if (argc == 2) {
ntout[0] = '\0';
return;
}
- strcpy_truncate (ntout, argv[2], 17);
+ strlcpy (ntout, argv[2], 17);
}
char *
@@ -1753,10 +1753,10 @@ setnmap(int argc, char **argv)
cp = strchr(altarg, ' ');
}
*cp = '\0';
- strcpy_truncate(mapin, altarg, MaxPathLen);
+ strlcpy(mapin, altarg, MaxPathLen);
while (*++cp == ' ')
continue;
- strcpy_truncate(mapout, cp, MaxPathLen);
+ strlcpy(mapout, cp, MaxPathLen);
}
char *
@@ -2008,7 +2008,7 @@ macdef(int argc, char **argv)
if (interactive) {
printf("Enter macro line by line, terminating it with a null line\n");
}
- strcpy_truncate(macros[macnum].mac_name,
+ strlcpy(macros[macnum].mac_name,
argv[1],
sizeof(macros[macnum].mac_name));
if (macnum == 0) {
diff --git a/crypto/kerberosIV/appl/ftp/ftp/domacro.c b/crypto/kerberosIV/appl/ftp/ftp/domacro.c
index 432e3e5758f6..d91660d0144d 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/domacro.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/domacro.c
@@ -32,7 +32,7 @@
*/
#include "ftp_locl.h"
-RCSID("$Id: domacro.c,v 1.6 1998/06/09 19:24:21 joda Exp $");
+RCSID("$Id: domacro.c,v 1.7 1999/09/16 20:37:29 assar Exp $");
void
domacro(int argc, char **argv)
@@ -56,7 +56,7 @@ domacro(int argc, char **argv)
code = -1;
return;
}
- strcpy_truncate(line2, line, sizeof(line2));
+ strlcpy(line2, line, sizeof(line2));
TOP:
cp1 = macros[i].mac_start;
while (cp1 != macros[i].mac_end) {
diff --git a/crypto/kerberosIV/appl/ftp/ftp/extern.h b/crypto/kerberosIV/appl/ftp/ftp/extern.h
index 5efe9187c015..d488ecd96f98 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/extern.h
+++ b/crypto/kerberosIV/appl/ftp/ftp/extern.h
@@ -33,7 +33,7 @@
* @(#)extern.h 8.3 (Berkeley) 10/9/94
*/
-/* $Id: extern.h,v 1.16 1999/05/21 09:21:51 assar Exp $ */
+/* $Id: extern.h,v 1.18 1999/10/28 20:49:10 assar Exp $ */
#include <setjmp.h>
#include <stdlib.h>
@@ -62,7 +62,7 @@ void cmdabort (int);
void cmdscanner (int);
int command (char *fmt, ...);
int confirm (char *, char *);
-FILE *dataconn (char *);
+FILE *dataconn (const char *);
void delete (int, char **);
void disconnect (int, char **);
void do_chmod (int, char **);
@@ -80,7 +80,7 @@ int getreply (int);
int globulize (char **);
char *gunique (char *);
void help (int, char **);
-char *hookup (char *, int);
+char *hookup (const char *, int);
void ftp_idle (int, char **);
int initconn (void);
void intr (int);
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ftp.c b/crypto/kerberosIV/appl/ftp/ftp/ftp.c
index 3021a191fba2..833fb085b2e9 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/ftp.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/ftp.c
@@ -32,16 +32,19 @@
*/
#include "ftp_locl.h"
-RCSID ("$Id: ftp.c,v 1.55 1999/06/02 20:12:22 joda Exp $");
-
-struct sockaddr_in hisctladdr;
-struct sockaddr_in data_addr;
+RCSID ("$Id: ftp.c,v 1.60 1999/10/28 19:32:17 assar Exp $");
+
+struct sockaddr_storage hisctladdr_ss;
+struct sockaddr *hisctladdr = (struct sockaddr *)&hisctladdr_ss;
+struct sockaddr_storage data_addr_ss;
+struct sockaddr *data_addr = (struct sockaddr *)&data_addr_ss;
+struct sockaddr_storage myctladdr_ss;
+struct sockaddr *myctladdr = (struct sockaddr *)&myctladdr_ss;
int data = -1;
int abrtflag = 0;
jmp_buf ptabort;
int ptabflg;
int ptflag = 0;
-struct sockaddr_in myctladdr;
off_t restart_point = 0;
@@ -50,77 +53,76 @@ FILE *cin, *cout;
typedef void (*sighand) (int);
char *
-hookup (char *host, int port)
+hookup (const char *host, int port)
{
- struct hostent *hp = 0;
+ struct hostent *hp = NULL;
int s, len;
static char hostnamebuf[MaxHostNameLen];
+ int error;
+ int af;
+ char **h;
+ int ret;
+
+#ifdef HAVE_IPV6
+ if (hp == NULL)
+ hp = getipnodebyname (host, AF_INET6, 0, &error);
+#endif
+ if (hp == NULL)
+ hp = getipnodebyname (host, AF_INET, 0, &error);
- memset (&hisctladdr, 0, sizeof (hisctladdr));
- if (inet_aton (host, &hisctladdr.sin_addr)) {
- hisctladdr.sin_family = AF_INET;
- strcpy_truncate (hostnamebuf, host, sizeof (hostnamebuf));
- } else {
- hp = gethostbyname (host);
- if (hp == NULL) {
- warnx("%s: %s", host, hstrerror(h_errno));
- code = -1;
- return NULL;
- }
- hisctladdr.sin_family = hp->h_addrtype;
- memmove(&hisctladdr.sin_addr,
- hp->h_addr_list[0],
- sizeof(hisctladdr.sin_addr));
- strcpy_truncate (hostnamebuf, hp->h_name, sizeof (hostnamebuf));
- }
- hostname = hostnamebuf;
- s = socket (hisctladdr.sin_family, SOCK_STREAM, 0);
- if (s < 0) {
- warn ("socket");
+ if (hp == NULL) {
+ warnx ("%s: %s", host, hstrerror(error));
code = -1;
- return (0);
+ return NULL;
}
- hisctladdr.sin_port = port;
- while (connect (s, (struct sockaddr *) & hisctladdr, sizeof (hisctladdr)) < 0) {
- if (hp && hp->h_addr_list[1]) {
- int oerrno = errno;
- char *ia;
-
- ia = inet_ntoa (hisctladdr.sin_addr);
- errno = oerrno;
- warn ("connect to address %s", ia);
- hp->h_addr_list++;
- memmove (&hisctladdr.sin_addr,
- hp->h_addr_list[0],
- sizeof (hisctladdr.sin_addr));
- fprintf (stdout, "Trying %s...\n",
- inet_ntoa (hisctladdr.sin_addr));
+ strlcpy (hostnamebuf, hp->h_name, sizeof(hostnamebuf));
+ hostname = hostnamebuf;
+ af = hisctladdr->sa_family = hp->h_addrtype;
+
+ for (h = hp->h_addr_list;
+ *h != NULL;
+ ++h) {
+
+ s = socket (af, SOCK_STREAM, 0);
+ if (s < 0) {
+ warn ("socket");
+ code = -1;
+ freehostent (hp);
+ return (0);
+ }
+
+ socket_set_address_and_port (hisctladdr, *h, port);
+
+ ret = connect (s, hisctladdr, socket_sockaddr_size(hisctladdr));
+ if (ret < 0) {
+ char addr[256];
+
+ if (inet_ntop (af, socket_get_address(hisctladdr),
+ addr, sizeof(addr)) == NULL)
+ strlcpy (addr, "unknown address",
+ sizeof(addr));
+ warn ("connect %s", addr);
close (s);
- s = socket (hisctladdr.sin_family, SOCK_STREAM, 0);
- if (s < 0) {
- warn ("socket");
- code = -1;
- return (0);
- }
continue;
}
- warn ("connect");
- code = -1;
- goto bad;
+ break;
}
- len = sizeof (myctladdr);
- if (getsockname (s, (struct sockaddr *) & myctladdr, &len) < 0) {
- warn ("getsockname");
+ freehostent (hp);
+ if (ret < 0) {
code = -1;
- goto bad;
+ close (s);
+ return NULL;
}
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- {
- int tos = IPTOS_LOWDELAY;
- if (setsockopt(s, IPPROTO_IP, IP_TOS, (char *)&tos, sizeof(int)) < 0)
- warn("setsockopt TOS (ignored)");
+ len = sizeof(myctladdr_ss);
+ if (getsockname (s, myctladdr, &len) < 0) {
+ warn ("getsockname");
+ code = -1;
+ close (s);
+ return NULL;
}
+#ifdef IPTOS_LOWDELAY
+ socket_set_tos (s, IPTOS_LOWDELAY);
#endif
cin = fdopen (s, "r");
cout = fdopen (s, "w");
@@ -198,7 +200,7 @@ login (char *host)
else
user = tmp;
}
- strcpy_truncate(username, user, sizeof(username));
+ strlcpy(username, user, sizeof(username));
n = command("USER %s", user);
if (n == CONTINUE) {
if(sec_complete)
@@ -238,7 +240,7 @@ login (char *host)
return (1);
for (n = 0; n < macnum; ++n) {
if (!strcmp("init", macros[n].mac_name)) {
- strcpy_truncate (line, "$init", sizeof (line));
+ strlcpy (line, "$init", sizeof (line));
makeargv();
domacro(margc, margv);
break;
@@ -375,7 +377,7 @@ getreply (int expecteof)
osa.sa_handler != SIG_IGN)
osa.sa_handler (SIGINT);
#endif
- if (code == 227) {
+ if (code == 227 || code == 229) {
char *p, *q;
pasv[0] = 0;
@@ -565,6 +567,11 @@ copy_stream (FILE * from, FILE * to)
#endif
if (fstat (fileno (from), &st) == 0 && S_ISREG (st.st_mode)) {
+ /*
+ * mmap zero bytes has potential of loosing, don't do it.
+ */
+ if (st.st_size == 0)
+ return 0;
chunk = mmap (0, st.st_size, PROT_READ, MAP_SHARED, fileno (from), 0);
if (chunk != (void *) MAP_FAILED) {
int res;
@@ -1120,154 +1127,249 @@ abort:
signal (SIGINT, oldintr);
}
-/*
- * Need to start a listen on the data channel before we send the command,
- * otherwise the server's connect may fail.
- */
-int
-initconn (void)
+static int
+parse_epsv (const char *str)
+{
+ char sep;
+ char *end;
+ int port;
+
+ if (*str == '\0')
+ return -1;
+ sep = *str++;
+ if (sep != *str++)
+ return -1;
+ if (sep != *str++)
+ return -1;
+ port = strtol (str, &end, 0);
+ if (str == end)
+ return -1;
+ if (end[0] != sep || end[1] != '\0')
+ return -1;
+ return htons(port);
+}
+
+static int
+parse_pasv (struct sockaddr_in *sin, const char *str)
{
- int result, len, tmpno = 0;
- int on = 1;
int a0, a1, a2, a3, p0, p1;
- if (passivemode) {
- data = socket (AF_INET, SOCK_STREAM, 0);
- if (data < 0) {
- perror ("ftp: socket");
- return (1);
- }
-#if defined(SO_DEBUG) && defined(HAVE_SETSOCKOPT)
- if ((options & SO_DEBUG) &&
- setsockopt (data, SOL_SOCKET, SO_DEBUG, (char *) &on,
- sizeof (on)) < 0)
- perror ("ftp: setsockopt (ignored)");
-#endif
+ /*
+ * What we've got at this point is a string of comma separated
+ * one-byte unsigned integer values. The first four are the an IP
+ * address. The fifth is the MSB of the port number, the sixth is the
+ * LSB. From that we'll prepare a sockaddr_in.
+ */
+
+ if (sscanf (str, "%d,%d,%d,%d,%d,%d",
+ &a0, &a1, &a2, &a3, &p0, &p1) != 6) {
+ printf ("Passive mode address scan failure. "
+ "Shouldn't happen!\n");
+ return -1;
+ }
+ if (a0 < 0 || a0 > 255 ||
+ a1 < 0 || a1 > 255 ||
+ a2 < 0 || a2 > 255 ||
+ a3 < 0 || a3 > 255 ||
+ p0 < 0 || p0 > 255 ||
+ p1 < 0 || p1 > 255) {
+ printf ("Can't parse passive mode string.\n");
+ return -1;
+ }
+ memset (sin, 0, sizeof(*sin));
+ sin->sin_family = AF_INET;
+ sin->sin_addr.s_addr = htonl ((a0 << 24) | (a1 << 16) |
+ (a2 << 8) | a3);
+ sin->sin_port = htons ((p0 << 8) | p1);
+ return 0;
+}
+
+static int
+passive_mode (void)
+{
+ int port;
+
+ data = socket (myctladdr->sa_family, SOCK_STREAM, 0);
+ if (data < 0) {
+ warn ("socket");
+ return (1);
+ }
+ if (options & SO_DEBUG)
+ socket_set_debug (data);
+ if (command ("EPSV") != COMPLETE) {
if (command ("PASV") != COMPLETE) {
printf ("Passive mode refused.\n");
goto bad;
}
+ }
- /*
- * What we've got at this point is a string of comma separated
- * one-byte unsigned integer values. The first four are the an IP
- * address. The fifth is the MSB of the port number, the sixth is the
- * LSB. From that we'll prepare a sockaddr_in.
- */
+ /*
+ * Parse the reply to EPSV or PASV
+ */
- if (sscanf (pasv, "%d,%d,%d,%d,%d,%d",
- &a0, &a1, &a2, &a3, &p0, &p1) != 6) {
- printf ("Passive mode address scan failure. "
- "Shouldn't happen!\n");
- goto bad;
- }
- if (a0 < 0 || a0 > 255 ||
- a1 < 0 || a1 > 255 ||
- a2 < 0 || a2 > 255 ||
- a3 < 0 || a3 > 255 ||
- p0 < 0 || p0 > 255 ||
- p1 < 0 || p1 > 255) {
- printf ("Can't parse passive mode string.\n");
- goto bad;
- }
- memset(&data_addr, 0, sizeof(data_addr));
- data_addr.sin_family = AF_INET;
- data_addr.sin_addr.s_addr = htonl ((a0 << 24) | (a1 << 16) |
- (a2 << 8) | a3);
- data_addr.sin_port = htons ((p0 << 8) | p1);
-
- if (connect (data, (struct sockaddr *) & data_addr,
- sizeof (data_addr)) < 0) {
- perror ("ftp: connect");
+ port = parse_epsv (pasv);
+ if (port > 0) {
+ data_addr->sa_family = myctladdr->sa_family;
+ socket_set_address_and_port (data_addr,
+ socket_get_address (hisctladdr),
+ port);
+ } else {
+ if (parse_pasv ((struct sockaddr_in *)data_addr, pasv) < 0)
goto bad;
- }
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- on = IPTOS_THROUGHPUT;
- if (setsockopt (data, IPPROTO_IP, IP_TOS, (char *) &on,
- sizeof (int)) < 0)
- perror ("ftp: setsockopt TOS (ignored)");
-#endif
- return (0);
}
+
+ if (connect (data, data_addr, socket_sockaddr_size (data_addr)) < 0) {
+ warn ("connect");
+ goto bad;
+ }
+#ifdef IPTOS_THROUGHPUT
+ socket_set_tos (data, IPTOS_THROUGHPUT);
+#endif
+ return (0);
+bad:
+ close (data);
+ data = -1;
+ sendport = 1;
+ return (1);
+}
+
+
+static int
+active_mode (void)
+{
+ int tmpno = 0;
+ int len;
+ int result;
+
noport:
- data_addr = myctladdr;
- if (sendport)
- data_addr.sin_port = 0; /* let system pick one */
+ data_addr->sa_family = myctladdr->sa_family;
+ socket_set_address_and_port (data_addr, socket_get_address (myctladdr),
+ sendport ? 0 : socket_get_port (myctladdr));
+
if (data != -1)
close (data);
- data = socket (AF_INET, SOCK_STREAM, 0);
+ data = socket (data_addr->sa_family, SOCK_STREAM, 0);
if (data < 0) {
warn ("socket");
if (tmpno)
sendport = 1;
return (1);
}
-#if defined(SO_REUSEADDR) && defined(HAVE_SETSOCKOPT)
if (!sendport)
- if (setsockopt (data, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof (on)) < 0) {
- warn ("setsockopt (reuse address)");
- goto bad;
- }
-#endif
- if (bind (data, (struct sockaddr *) & data_addr, sizeof (data_addr)) < 0) {
+ socket_set_reuseaddr (data, 1);
+ if (bind (data, data_addr, socket_sockaddr_size (data_addr)) < 0) {
warn ("bind");
goto bad;
}
-#if defined(SO_DEBUG) && defined(HAVE_SETSOCKOPT)
- if (options & SO_DEBUG &&
- setsockopt (data, SOL_SOCKET, SO_DEBUG, (char *) &on, sizeof (on)) < 0)
- warn ("setsockopt (ignored)");
-#endif
- len = sizeof (data_addr);
- if (getsockname (data, (struct sockaddr *) & data_addr, &len) < 0) {
+ if (options & SO_DEBUG)
+ socket_set_debug (data);
+ len = sizeof (data_addr_ss);
+ if (getsockname (data, data_addr, &len) < 0) {
warn ("getsockname");
goto bad;
}
if (listen (data, 1) < 0)
warn ("listen");
if (sendport) {
- unsigned int a = ntohl(data_addr.sin_addr.s_addr);
- unsigned int p = ntohs(data_addr.sin_port);
-
- result = command("PORT %d,%d,%d,%d,%d,%d",
- (a >> 24) & 0xff,
- (a >> 16) & 0xff,
- (a >> 8) & 0xff,
- a & 0xff,
- (p >> 8) & 0xff,
- p & 0xff);
- if (result == ERROR && sendport == -1) {
- sendport = 0;
- tmpno = 1;
- goto noport;
+ char *cmd;
+ char addr_str[256];
+ int inet_af;
+ int overbose;
+
+ if (inet_ntop (data_addr->sa_family, socket_get_address (data_addr),
+ addr_str, sizeof(addr_str)) == NULL)
+ errx (1, "inet_ntop failed");
+ switch (data_addr->sa_family) {
+ case AF_INET :
+ inet_af = 1;
+ break;
+#ifdef HAVE_IPV6
+ case AF_INET6 :
+ inet_af = 2;
+ break;
+#endif
+ default :
+ errx (1, "bad address family %d", data_addr->sa_family);
+ }
+
+ asprintf (&cmd, "EPRT |%d|%s|%d|",
+ inet_af, addr_str, ntohs(socket_get_port (data_addr)));
+
+ overbose = verbose;
+ if (debug == 0)
+ verbose = -1;
+
+ result = command (cmd);
+
+ verbose = overbose;
+
+ if (result == ERROR) {
+ struct sockaddr_in *sin = (struct sockaddr_in *)data_addr;
+
+ unsigned int a = ntohl(sin->sin_addr.s_addr);
+ unsigned int p = ntohs(sin->sin_port);
+
+ if (data_addr->sa_family != AF_INET) {
+ warnx ("remote server doesn't support EPRT");
+ goto bad;
+ }
+
+ result = command("PORT %d,%d,%d,%d,%d,%d",
+ (a >> 24) & 0xff,
+ (a >> 16) & 0xff,
+ (a >> 8) & 0xff,
+ a & 0xff,
+ (p >> 8) & 0xff,
+ p & 0xff);
+ if (result == ERROR && sendport == -1) {
+ sendport = 0;
+ tmpno = 1;
+ goto noport;
+ }
+ return (result != COMPLETE);
}
- return (result != COMPLETE);
+ return result != COMPLETE;
}
if (tmpno)
sendport = 1;
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- on = IPTOS_THROUGHPUT;
- if (setsockopt (data, IPPROTO_IP, IP_TOS, (char *) &on, sizeof (int)) < 0)
- warn ("setsockopt TOS (ignored)");
+
+
+#ifdef IPTOS_THROUGHPUT
+ socket_set_tos (data, IPTOS_THROUGHPUT);
#endif
return (0);
bad:
- close (data), data = -1;
+ close (data);
+ data = -1;
if (tmpno)
sendport = 1;
return (1);
}
+/*
+ * Need to start a listen on the data channel before we send the command,
+ * otherwise the server's connect may fail.
+ */
+int
+initconn (void)
+{
+ if (passivemode)
+ return passive_mode ();
+ else
+ return active_mode ();
+}
+
FILE *
-dataconn (char *lmode)
+dataconn (const char *lmode)
{
- struct sockaddr_in from;
- int s, fromlen = sizeof (from), tos;
+ struct sockaddr_storage from_ss;
+ struct sockaddr *from = (struct sockaddr *)&from_ss;
+ int s, fromlen = sizeof (from_ss);
if (passivemode)
return (fdopen (data, lmode));
- s = accept (data, (struct sockaddr *) & from, &fromlen);
+ s = accept (data, from, &fromlen);
if (s < 0) {
warn ("accept");
close (data), data = -1;
@@ -1275,10 +1377,8 @@ dataconn (char *lmode)
}
close (data);
data = s;
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_THROUGHPUT;
- if (setsockopt (s, IPPROTO_IP, IP_TOS, (char *) &tos, sizeof (int)) < 0)
- warn ("setsockopt TOS (ignored)");
+#ifdef IPTOS_THROUGHPUT
+ socket_set_tos (s, IPTOS_THROUGHPUT);
#endif
return (fdopen (data, lmode));
}
@@ -1334,8 +1434,8 @@ pswitch (int flag)
static struct comvars {
int connect;
char name[MaxHostNameLen];
- struct sockaddr_in mctl;
- struct sockaddr_in hctl;
+ struct sockaddr_storage mctl;
+ struct sockaddr_storage hctl;
FILE *in;
FILE *out;
int tpe;
@@ -1371,14 +1471,14 @@ pswitch (int flag)
ip->connect = connected;
connected = op->connect;
if (hostname) {
- strcpy_truncate (ip->name, hostname, sizeof (ip->name));
+ strlcpy (ip->name, hostname, sizeof (ip->name));
} else
ip->name[0] = 0;
hostname = op->name;
- ip->hctl = hisctladdr;
- hisctladdr = op->hctl;
- ip->mctl = myctladdr;
- myctladdr = op->mctl;
+ ip->hctl = hisctladdr_ss;
+ hisctladdr_ss = op->hctl;
+ ip->mctl = myctladdr_ss;
+ myctladdr_ss = op->mctl;
ip->in = cin;
cin = op->in;
ip->out = cout;
@@ -1397,16 +1497,16 @@ pswitch (int flag)
mcase = op->mcse;
ip->ntflg = ntflag;
ntflag = op->ntflg;
- strcpy_truncate (ip->nti, ntin, sizeof (ip->nti));
- strcpy_truncate (ntin, op->nti, 17);
- strcpy_truncate (ip->nto, ntout, sizeof (ip->nto));
- strcpy_truncate (ntout, op->nto, 17);
+ strlcpy (ip->nti, ntin, sizeof (ip->nti));
+ strlcpy (ntin, op->nti, 17);
+ strlcpy (ip->nto, ntout, sizeof (ip->nto));
+ strlcpy (ntout, op->nto, 17);
ip->mapflg = mapflag;
mapflag = op->mapflg;
- strcpy_truncate (ip->mi, mapin, MaxPathLen);
- strcpy_truncate (mapin, op->mi, MaxPathLen);
- strcpy_truncate (ip->mo, mapout, MaxPathLen);
- strcpy_truncate (mapout, op->mo, MaxPathLen);
+ strlcpy (ip->mi, mapin, MaxPathLen);
+ strlcpy (mapin, op->mi, MaxPathLen);
+ strlcpy (ip->mo, mapout, MaxPathLen);
+ strlcpy (mapout, op->mo, MaxPathLen);
signal(SIGINT, oldintr);
if (abrtflag) {
abrtflag = 0;
@@ -1580,7 +1680,7 @@ gunique (char *local)
warn ("local: %s", local);
return NULL;
}
- strcpy_truncate (new, local, sizeof(new));
+ strlcpy (new, local, sizeof(new));
cp = new + strlen(new);
*cp++ = '.';
while (!d) {
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h b/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h
index 5ae44b121fa8..49c2b2f45bcb 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h
+++ b/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: ftp_locl.h,v 1.33 1998/06/13 00:06:40 assar Exp $ */
+/* $Id: ftp_locl.h,v 1.34 1999/12/02 16:58:29 joda Exp $ */
#ifndef __FTP_LOCL_H__
#define __FTP_LOCL_H__
diff --git a/crypto/kerberosIV/appl/ftp/ftp/gssapi.c b/crypto/kerberosIV/appl/ftp/ftp/gssapi.c
index bc001a495036..d06b5d62d29d 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/gssapi.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/gssapi.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -43,7 +38,7 @@
#endif
#include <gssapi.h>
-RCSID("$Id: gssapi.c,v 1.7 1999/04/10 15:08:39 assar Exp $");
+RCSID("$Id: gssapi.c,v 1.13 1999/12/02 16:58:29 joda Exp $");
struct gss_data {
gss_ctx_id_t context_hdl;
@@ -117,6 +112,36 @@ gss_encode(void *app_data, void *from, int length, int level, void **to)
return output.length;
}
+static void
+sockaddr_to_gss_address (const struct sockaddr *sa,
+ OM_uint32 *addr_type,
+ gss_buffer_desc *gss_addr)
+{
+ switch (sa->sa_family) {
+#ifdef HAVE_IPV6
+ case AF_INET6 : {
+ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
+
+ gss_addr->length = 16;
+ gss_addr->value = &sin6->sin6_addr;
+ *addr_type = GSS_C_AF_INET6;
+ break;
+ }
+#endif
+ case AF_INET : {
+ struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+
+ gss_addr->length = 4;
+ gss_addr->value = &sin->sin_addr;
+ *addr_type = GSS_C_AF_INET;
+ break;
+ }
+ default :
+ errx (1, "unknown address family %d", sa->sa_family);
+
+ }
+}
+
/* end common stuff */
#ifdef FTP_SERVER
@@ -131,12 +156,13 @@ gss_adat(void *app_data, void *buf, size_t len)
struct gss_data *d = app_data;
gss_channel_bindings_t bindings = malloc(sizeof(*bindings));
- bindings->initiator_addrtype = GSS_C_AF_INET;
- bindings->initiator_address.length = 4;
- bindings->initiator_address.value = &his_addr.sin_addr;
- bindings->acceptor_addrtype = GSS_C_AF_INET;
- bindings->acceptor_address.length = 4;
- bindings->acceptor_address.value = &ctrl_addr.sin_addr;
+ sockaddr_to_gss_address (his_addr,
+ &bindings->initiator_addrtype,
+ &bindings->initiator_address);
+ sockaddr_to_gss_address (ctrl_addr,
+ &bindings->acceptor_addrtype,
+ &bindings->acceptor_address);
+
bindings->application_data.length = 0;
bindings->application_data.value = NULL;
@@ -216,7 +242,7 @@ struct sec_server_mech gss_server_mech = {
#else /* FTP_SERVER */
-extern struct sockaddr_in hisctladdr, myctladdr;
+extern struct sockaddr *hisctladdr, *myctladdr;
static int
gss_auth(void *app_data, char *host)
@@ -237,6 +263,23 @@ gss_auth(void *app_data, char *host)
&name,
GSS_C_NT_HOSTBASED_SERVICE,
&target_name);
+ if (GSS_ERROR(maj_stat)) {
+ OM_uint32 new_stat;
+ OM_uint32 msg_ctx = 0;
+ gss_buffer_desc status_string;
+
+ gss_display_status(&new_stat,
+ min_stat,
+ GSS_C_MECH_CODE,
+ GSS_C_NO_OID,
+ &msg_ctx,
+ &status_string);
+ printf("Error importing name %s: %s\n",
+ (char *)name.value,
+ (char *)status_string.value);
+ gss_release_buffer(&new_stat, &status_string);
+ return AUTH_ERROR;
+ }
free(name.value);
@@ -244,12 +287,14 @@ gss_auth(void *app_data, char *host)
input.value = NULL;
bindings = malloc(sizeof(*bindings));
- bindings->initiator_addrtype = GSS_C_AF_INET;
- bindings->initiator_address.length = 4;
- bindings->initiator_address.value = &myctladdr.sin_addr;
- bindings->acceptor_addrtype = GSS_C_AF_INET;
- bindings->acceptor_address.length = 4;
- bindings->acceptor_address.value = &hisctladdr.sin_addr;
+
+ sockaddr_to_gss_address (myctladdr,
+ &bindings->initiator_addrtype,
+ &bindings->initiator_address);
+ sockaddr_to_gss_address (hisctladdr,
+ &bindings->acceptor_addrtype,
+ &bindings->acceptor_address);
+
bindings->application_data.length = 0;
bindings->application_data.value = NULL;
@@ -268,8 +313,8 @@ gss_auth(void *app_data, char *host)
NULL,
NULL);
if (GSS_ERROR(maj_stat)) {
- int new_stat;
- int msg_ctx = 0;
+ OM_uint32 new_stat;
+ OM_uint32 msg_ctx = 0;
gss_buffer_desc status_string;
gss_display_status(&new_stat,
diff --git a/crypto/kerberosIV/appl/ftp/ftp/kauth.c b/crypto/kerberosIV/appl/ftp/ftp/kauth.c
index 434dfb83cf7f..613593a71290 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/kauth.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/kauth.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995-1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "ftp_locl.h"
#include <krb.h>
-RCSID("$Id: kauth.c,v 1.17 1998/03/26 02:55:38 joda Exp $");
+RCSID("$Id: kauth.c,v 1.20 1999/12/02 16:58:29 joda Exp $");
void
kauth(int argc, char **argv)
@@ -54,6 +49,8 @@ kauth(int argc, char **argv)
char passwd[100];
int tmp;
+ int save;
+
if(argc > 2){
printf("usage: %s [principal]\n", argv[0]);
code = -1;
@@ -67,9 +64,11 @@ kauth(int argc, char **argv)
overbose = verbose;
verbose = 0;
+ save = set_command_prot(prot_private);
ret = command("SITE KAUTH %s", name);
if(ret != CONTINUE){
verbose = overbose;
+ set_command_prot(save);
code = -1;
return;
}
@@ -77,6 +76,7 @@ kauth(int argc, char **argv)
p = strstr(reply_string, "T=");
if(!p){
printf("Bad reply from server.\n");
+ set_command_prot(save);
code = -1;
return;
}
@@ -84,6 +84,7 @@ kauth(int argc, char **argv)
tmp = base64_decode(p, &tkt.dat);
if(tmp < 0){
printf("Failed to decode base64 in reply.\n");
+ set_command_prot(save);
code = -1;
return;
}
@@ -94,6 +95,7 @@ kauth(int argc, char **argv)
if(!p){
printf("Bad reply from server.\n");
verbose = overbose;
+ set_command_prot(save);
code = -1;
return;
}
@@ -124,12 +126,14 @@ kauth(int argc, char **argv)
memset(passwd, 0, sizeof(passwd));
if(base64_encode(tktcopy.dat, tktcopy.length, &p) < 0) {
printf("Out of memory base64-encoding.\n");
+ set_command_prot(save);
code = -1;
return;
}
memset (tktcopy.dat, 0, tktcopy.length);
ret = command("SITE KAUTH %s %s", name, p);
free(p);
+ set_command_prot(save);
if(ret != COMPLETE){
code = -1;
return;
diff --git a/crypto/kerberosIV/appl/ftp/ftp/krb4.c b/crypto/kerberosIV/appl/ftp/ftp/krb4.c
index 5b9b9b8d88c2..aa30c1bc3888 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/krb4.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/krb4.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -43,7 +38,7 @@
#endif
#include <krb.h>
-RCSID("$Id: krb4.c,v 1.30 1999/06/15 03:50:28 assar Exp $");
+RCSID("$Id: krb4.c,v 1.36.2.1 1999/12/06 17:29:45 assar Exp $");
#ifdef FTP_SERVER
#define LOCAL_ADDR ctrl_addr
@@ -52,7 +47,8 @@ RCSID("$Id: krb4.c,v 1.30 1999/06/15 03:50:28 assar Exp $");
#define LOCAL_ADDR myctladdr
#define REMOTE_ADDR hisctladdr
#endif
-extern struct sockaddr_in LOCAL_ADDR, REMOTE_ADDR;
+
+extern struct sockaddr *LOCAL_ADDR, *REMOTE_ADDR;
struct krb4_data {
des_cblock key;
@@ -78,11 +74,15 @@ krb4_decode(void *app_data, void *buf, int len, int level)
struct krb4_data *d = app_data;
if(level == prot_safe)
- e = krb_rd_safe(buf, len, &d->key, &REMOTE_ADDR, &LOCAL_ADDR, &m);
+ e = krb_rd_safe(buf, len, &d->key,
+ (struct sockaddr_in *)REMOTE_ADDR,
+ (struct sockaddr_in *)LOCAL_ADDR, &m);
else
e = krb_rd_priv(buf, len, d->schedule, &d->key,
- &REMOTE_ADDR, &LOCAL_ADDR, &m);
+ (struct sockaddr_in *)REMOTE_ADDR,
+ (struct sockaddr_in *)LOCAL_ADDR, &m);
if(e){
+ syslog(LOG_ERR, "krb4_decode: %s", krb_get_err_text(e));
return -1;
}
memmove(buf, m.app_data, m.app_length);
@@ -102,10 +102,12 @@ krb4_encode(void *app_data, void *from, int length, int level, void **to)
*to = malloc(length + 31);
if(level == prot_safe)
return krb_mk_safe(from, *to, length, &d->key,
- &LOCAL_ADDR, &REMOTE_ADDR);
+ (struct sockaddr_in *)LOCAL_ADDR,
+ (struct sockaddr_in *)REMOTE_ADDR);
else if(level == prot_private)
return krb_mk_priv(from, *to, length, d->schedule, &d->key,
- &LOCAL_ADDR, &REMOTE_ADDR);
+ (struct sockaddr_in *)LOCAL_ADDR,
+ (struct sockaddr_in *)REMOTE_ADDR);
else
return -1;
}
@@ -124,17 +126,18 @@ krb4_adat(void *app_data, void *buf, size_t len)
int tmp_len;
struct krb4_data *d = app_data;
char inst[INST_SZ];
+ struct sockaddr_in *his_addr_sin = (struct sockaddr_in *)his_addr;
memcpy(tkt.dat, buf, len);
tkt.length = len;
k_getsockinst(0, inst, sizeof(inst));
kerror = krb_rd_req(&tkt, "ftp", inst,
- his_addr.sin_addr.s_addr, &auth_dat, "");
+ his_addr_sin->sin_addr.s_addr, &auth_dat, "");
if(kerror == RD_AP_UNDEC){
k_getsockinst(0, inst, sizeof(inst));
kerror = krb_rd_req(&tkt, "rcmd", inst,
- his_addr.sin_addr.s_addr, &auth_dat, "");
+ his_addr_sin->sin_addr.s_addr, &auth_dat, "");
}
if(kerror){
@@ -145,15 +148,17 @@ krb4_adat(void *app_data, void *buf, size_t len)
memcpy(d->key, auth_dat.session, sizeof(d->key));
des_set_key(&d->key, d->schedule);
- strcpy_truncate(d->name, auth_dat.pname, sizeof(d->name));
- strcpy_truncate(d->instance, auth_dat.pinst, sizeof(d->instance));
- strcpy_truncate(d->realm, auth_dat.prealm, sizeof(d->instance));
+ strlcpy(d->name, auth_dat.pname, sizeof(d->name));
+ strlcpy(d->instance, auth_dat.pinst, sizeof(d->instance));
+ strlcpy(d->realm, auth_dat.prealm, sizeof(d->instance));
cs = auth_dat.checksum + 1;
{
unsigned char tmp[4];
KRB_PUT_INT(cs, tmp, 4, sizeof(tmp));
- tmp_len = krb_mk_safe(tmp, msg, 4, &d->key, &LOCAL_ADDR, &REMOTE_ADDR);
+ tmp_len = krb_mk_safe(tmp, msg, 4, &d->key,
+ (struct sockaddr_in *)LOCAL_ADDR,
+ (struct sockaddr_in *)REMOTE_ADDR);
}
if(tmp_len < 0){
reply(535, "Error creating reply: %s.", strerror(errno));
@@ -204,15 +209,15 @@ mk_auth(struct krb4_data *d, KTEXT adat,
CREDENTIALS cred;
char sname[SNAME_SZ], inst[INST_SZ], realm[REALM_SZ];
- strcpy_truncate(sname, service, sizeof(sname));
- strcpy_truncate(inst, krb_get_phost(host), sizeof(inst));
- strcpy_truncate(realm, krb_realmofhost(host), sizeof(realm));
+ strlcpy(sname, service, sizeof(sname));
+ strlcpy(inst, krb_get_phost(host), sizeof(inst));
+ strlcpy(realm, krb_realmofhost(host), sizeof(realm));
ret = krb_mk_req(adat, sname, inst, realm, checksum);
if(ret)
return ret;
- strcpy_truncate(sname, service, sizeof(sname));
- strcpy_truncate(inst, krb_get_phost(host), sizeof(inst));
- strcpy_truncate(realm, krb_realmofhost(host), sizeof(realm));
+ strlcpy(sname, service, sizeof(sname));
+ strlcpy(inst, krb_get_phost(host), sizeof(inst));
+ strlcpy(realm, krb_realmofhost(host), sizeof(realm));
ret = krb_get_cred(sname, inst, realm, &cred);
memmove(&d->key, &cred.session, sizeof(des_cblock));
des_key_sched(&d->key, d->schedule);
@@ -231,6 +236,8 @@ krb4_auth(void *app_data, char *host)
int checksum;
u_int32_t cs;
struct krb4_data *d = app_data;
+ struct sockaddr_in *localaddr = (struct sockaddr_in *)LOCAL_ADDR;
+ struct sockaddr_in *remoteaddr = (struct sockaddr_in *)REMOTE_ADDR;
checksum = getpid();
ret = mk_auth(d, &adat, "ftp", host, checksum);
@@ -241,7 +248,38 @@ krb4_auth(void *app_data, char *host)
return AUTH_CONTINUE;
}
- if(base64_encode(adat.dat, adat.length, &p) < 0) {
+#ifdef HAVE_KRB_GET_OUR_IP_FOR_REALM
+ if (krb_get_config_bool("nat_in_use")) {
+ struct in_addr natAddr;
+
+ if (krb_get_our_ip_for_realm(krb_realmofhost(host),
+ &natAddr) != KSUCCESS
+ && krb_get_our_ip_for_realm(NULL, &natAddr) != KSUCCESS)
+ printf("Can't get address for realm %s\n",
+ krb_realmofhost(host));
+ else {
+ if (natAddr.s_addr != localaddr->sin_addr.s_addr) {
+ printf("Using NAT IP address (%s) for kerberos 4\n",
+ inet_ntoa(natAddr));
+ localaddr->sin_addr = natAddr;
+
+ /*
+ * This not the best place to do this, but it
+ * is here we know that (probably) NAT is in
+ * use!
+ */
+
+ passivemode = 1;
+ printf("Setting: Passive mode on.\n");
+ }
+ }
+ }
+#endif
+
+ printf("Local address is %s\n", inet_ntoa(localaddr->sin_addr));
+ printf("Remote address is %s\n", inet_ntoa(remoteaddr->sin_addr));
+
+ if(base64_encode(adat.dat, adat.length, &p) < 0) {
printf("Out of memory base64-encoding.\n");
return AUTH_CONTINUE;
}
@@ -266,7 +304,8 @@ krb4_auth(void *app_data, char *host)
}
adat.length = len;
ret = krb_rd_safe(adat.dat, adat.length, &d->key,
- &hisctladdr, &myctladdr, &msg_data);
+ (struct sockaddr_in *)hisctladdr,
+ (struct sockaddr_in *)myctladdr, &msg_data);
if(ret){
printf("Error reading reply from server: %s.\n",
krb_get_err_text(ret));
diff --git a/crypto/kerberosIV/appl/ftp/ftp/main.c b/crypto/kerberosIV/appl/ftp/ftp/main.c
index 5b0fe36ef3b9..dfe9e882bc1f 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/main.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/main.c
@@ -36,7 +36,7 @@
*/
#include "ftp_locl.h"
-RCSID("$Id: main.c,v 1.25 1999/05/08 02:22:09 assar Exp $");
+RCSID("$Id: main.c,v 1.27 1999/11/13 06:18:02 assar Exp $");
int
main(int argc, char **argv)
@@ -56,7 +56,7 @@ main(int argc, char **argv)
autologin = 1;
passivemode = 0; /* passive mode not active */
- while ((ch = getopt(argc, argv, "dginptv")) != EOF) {
+ while ((ch = getopt(argc, argv, "dginptv")) != -1) {
switch (ch) {
case 'd':
options |= SO_DEBUG;
@@ -107,7 +107,7 @@ main(int argc, char **argv)
*/
pw = k_getpwuid(getuid());
if (pw != NULL) {
- strcpy_truncate(homedir, pw->pw_dir, sizeof(homedir));
+ strlcpy(homedir, pw->pw_dir, sizeof(homedir));
home = homedir;
}
if (argc > 0) {
@@ -246,7 +246,7 @@ cmdscanner(int top)
p = readline("ftp> ");
if(p == NULL)
quit(0, 0);
- strcpy_truncate(line, p, sizeof(line));
+ strlcpy(line, p, sizeof(line));
add_history(p);
free(p);
} else{
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c b/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c
index 043e6fb34132..c687a5991858 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c
@@ -32,7 +32,7 @@
*/
#include "ftp_locl.h"
-RCSID("$Id: ruserpass.c,v 1.15 1999/03/11 13:54:58 joda Exp $");
+RCSID("$Id: ruserpass.c,v 1.16 1999/09/16 20:37:31 assar Exp $");
static int token (void);
static FILE *cfile;
@@ -77,7 +77,7 @@ guess_domain (char *hostname, size_t sz)
char **aliases;
if (gethostname (hostname, sz) < 0) {
- strcpy_truncate (hostname, "", sz);
+ strlcpy (hostname, "", sz);
return "";
}
dot = strchr (hostname, '.');
@@ -90,13 +90,13 @@ guess_domain (char *hostname, size_t sz)
dot = strchr (he->h_name, '.');
if (dot != NULL) {
- strcpy_truncate (hostname, he->h_name, sz);
+ strlcpy (hostname, he->h_name, sz);
return dot + 1;
}
for (aliases = he->h_aliases; (a = *aliases) != NULL; ++aliases) {
dot = strchr (a, '.');
if (dot != NULL) {
- strcpy_truncate (hostname, a, sz);
+ strlcpy (hostname, a, sz);
return dot + 1;
}
}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/security.c b/crypto/kerberosIV/appl/ftp/ftp/security.c
index 96d598f855c3..ca7eb0036a53 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/security.c
+++ b/crypto/kerberosIV/appl/ftp/ftp/security.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -42,7 +37,7 @@
#include "ftp_locl.h"
#endif
-RCSID("$Id: security.c,v 1.8 1999/04/07 14:16:48 joda Exp $");
+RCSID("$Id: security.c,v 1.15 1999/12/02 16:58:30 joda Exp $");
static enum protection_level command_prot;
static enum protection_level data_prot;
@@ -127,7 +122,7 @@ sec_getc(FILE *F)
{
if(sec_complete && data_prot) {
char c;
- if(sec_read(fileno(F), &c, 1) == 0)
+ if(sec_read(fileno(F), &c, 1) <= 0)
return EOF;
return c;
} else
@@ -141,7 +136,9 @@ block_read(int fd, void *buf, size_t len)
int b;
while(len) {
b = read(fd, p, len);
- if(b <= 0)
+ if (b == 0)
+ return 0;
+ else if (b < 0)
return -1;
len -= b;
p += b;
@@ -168,12 +165,19 @@ static int
sec_get_data(int fd, struct buffer *buf, int level)
{
int len;
-
- if(block_read(fd, &len, sizeof(len)) < 0)
+ int b;
+
+ b = block_read(fd, &len, sizeof(len));
+ if (b == 0)
+ return 0;
+ else if (b < 0)
return -1;
len = ntohl(len);
buf->data = realloc(buf->data, len);
- if(block_read(fd, buf->data, len) < 0)
+ b = block_read(fd, buf->data, len);
+ if (b == 0)
+ return 0;
+ else if (b < 0)
return -1;
buf->size = (*mech->decode)(app_data, buf->data, len, data_prot);
buf->index = 0;
@@ -292,6 +296,32 @@ sec_write(int fd, char *data, int length)
}
int
+sec_vfprintf2(FILE *f, const char *fmt, va_list ap)
+{
+ char *buf;
+ int ret;
+ if(data_prot == prot_clear)
+ return vfprintf(f, fmt, ap);
+ else {
+ vasprintf(&buf, fmt, ap);
+ ret = buffer_write(&out_buffer, buf, strlen(buf));
+ free(buf);
+ return ret;
+ }
+}
+
+int
+sec_fprintf2(FILE *f, const char *fmt, ...)
+{
+ int ret;
+ va_list ap;
+ va_start(ap, fmt);
+ ret = sec_vfprintf2(f, fmt, ap);
+ va_end(ap);
+ return ret;
+}
+
+int
sec_putc(int c, FILE *F)
{
char ch = c;
@@ -547,6 +577,12 @@ secure_command(void)
return ftp_command != NULL;
}
+enum protection_level
+get_command_prot(void)
+{
+ return command_prot;
+}
+
#else /* FTP_SERVER */
void
@@ -603,30 +639,30 @@ sec_prot_internal(int level)
return 0;
}
+enum protection_level
+set_command_prot(enum protection_level level)
+{
+ enum protection_level old = command_prot;
+ command_prot = level;
+ return old;
+}
+
void
sec_prot(int argc, char **argv)
{
int level = -1;
- if(argc != 2){
- printf("usage: %s (clear | safe | confidential | private)\n",
- argv[0]);
- code = -1;
- return;
- }
- if(!sec_complete){
+ if(argc < 2 || argc > 3)
+ goto usage;
+ if(!sec_complete) {
printf("No security data exchange has taken place.\n");
code = -1;
return;
}
- level = name_to_level(argv[1]);
+ level = name_to_level(argv[argc - 1]);
- if(level == -1){
- printf("usage: %s (clear | safe | confidential | private)\n",
- argv[0]);
- code = -1;
- return;
- }
+ if(level == -1)
+ goto usage;
if((*mech->check_prot)(app_data, level)) {
printf("%s does not implement %s protection.\n",
@@ -635,11 +671,21 @@ sec_prot(int argc, char **argv)
return;
}
- if(sec_prot_internal(level) < 0){
- code = -1;
- return;
- }
+ if(argc == 2 || strncasecmp(argv[1], "data", strlen(argv[1])) == 0) {
+ if(sec_prot_internal(level) < 0){
+ code = -1;
+ return;
+ }
+ } else if(strncasecmp(argv[1], "command", strlen(argv[1])) == 0)
+ set_command_prot(level);
+ else
+ goto usage;
code = 0;
+ return;
+ usage:
+ printf("usage: %s [command|data] [clear|safe|confidential|private]\n",
+ argv[0]);
+ code = -1;
}
static enum protection_level request_data_prot;
@@ -673,7 +719,15 @@ sec_login(char *host)
are usually not very user friendly) */
for(m = mechs; *m && (*m)->name; m++) {
- app_data = realloc(app_data, (*m)->size);
+ void *tmp;
+
+ tmp = realloc(app_data, (*m)->size);
+ if (tmp == NULL) {
+ warnx ("realloc %u failed", (*m)->size);
+ return -1;
+ }
+ app_data = tmp;
+
if((*m)->init && (*(*m)->init)(app_data) != 0) {
printf("Skipping %s...\n", (*m)->name);
continue;
@@ -721,6 +775,7 @@ sec_end(void)
(*mech->end)(app_data);
memset(app_data, 0, mech->size);
free(app_data);
+ app_data = NULL;
}
sec_complete = 0;
data_prot = (enum protection_level)0;
diff --git a/crypto/kerberosIV/appl/ftp/ftp/security.h b/crypto/kerberosIV/appl/ftp/ftp/security.h
index adac6890e93c..6fe06946c570 100644
--- a/crypto/kerberosIV/appl/ftp/ftp/security.h
+++ b/crypto/kerberosIV/appl/ftp/ftp/security.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: security.h,v 1.3 1999/04/07 14:15:20 joda Exp $ */
+/* $Id: security.h,v 1.7 1999/12/02 16:58:30 joda Exp $ */
#ifndef __security_h__
#define __security_h__
@@ -105,6 +100,8 @@ int sec_putc (int, FILE *);
int sec_read (int, void *, int);
int sec_read_msg (char *, int);
int sec_vfprintf (FILE *, const char *, va_list);
+int sec_fprintf2(FILE *f, const char *fmt, ...);
+int sec_vfprintf2(FILE *, const char *, va_list);
int sec_write (int, char *, int);
#ifdef FTP_SERVER
@@ -118,6 +115,7 @@ void delete_ftp_command (void);
void new_ftp_command (char *);
int sec_userok (char *);
int secure_command (void);
+enum protection_level get_command_prot(void);
#else
void sec_end (void);
int sec_login (char *);
@@ -125,6 +123,9 @@ void sec_prot (int, char **);
int sec_request_prot (char *);
void sec_set_protection_level (void);
void sec_status (void);
+
+enum protection_level set_command_prot(enum protection_level);
+
#endif
#endif /* __security_h__ */
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.am b/crypto/kerberosIV/appl/ftp/ftpd/Makefile.am
index 187fca308f38..282cb3a43c42 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.am
+++ b/crypto/kerberosIV/appl/ftp/ftpd/Makefile.am
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.19 1999/04/25 13:24:55 assar Exp $
+# $Id: Makefile.am,v 1.20 1999/10/03 16:38:53 joda Exp $
include $(top_srcdir)/Makefile.am.common
@@ -21,6 +21,7 @@ ftpd_SOURCES = \
ftpd.c \
ftpd_locl.h \
logwtmp.c \
+ ls.c \
pathnames.h \
popen.c \
security.c \
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in b/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in
index 3b555a60229e..bc5c12e366b6 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in
+++ b/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in
@@ -1,5 +1,5 @@
#
-# $Id: Makefile.in,v 1.40 1999/03/10 19:01:11 joda Exp $
+# $Id: Makefile.in,v 1.41 1999/10/03 16:39:27 joda Exp $
#
srcdir = @srcdir@
@@ -47,8 +47,8 @@ LIBROKEN= -L$(LIBTOP)/roken -lroken
PROGS = ftpd$(EXECSUFFIX)
-ftpd_SOURCES = ftpd.c ftpcmd.c logwtmp.c popen.c security.c krb4.c kauth.c
-ftpd_OBJS = ftpd.o ftpcmd.o logwtmp.o popen.o security.o krb4.o kauth.o
+ftpd_SOURCES = ftpd.c ftpcmd.c logwtmp.c ls.c popen.c security.c krb4.c kauth.c
+ftpd_OBJS = ftpd.o ftpcmd.o logwtmp.o ls.o popen.o security.o krb4.o kauth.o
SOURCES = $(ftpd_SOURCES)
OBJECTS = $(ftpd_OBJS)
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/extern.h b/crypto/kerberosIV/appl/ftp/ftpd/extern.h
index e96809e0daff..2e1e0d08c432 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/extern.h
+++ b/crypto/kerberosIV/appl/ftp/ftpd/extern.h
@@ -67,6 +67,8 @@ char **copyblk(char **);
void cwd(char *);
void do_delete(char *);
void dologout(int);
+void eprt(char *);
+void epsv(char *);
void fatal(char *);
int filename_check(char *);
int ftpd_pclose(FILE *);
@@ -86,8 +88,8 @@ __attribute__ ((format (printf, 1, 2)))
#endif
;
void pass(char *);
-void passive(void);
-void perror_reply(int, char *);
+void pasv(void);
+void perror_reply(int, const char *);
void pwd(void);
void removedir(char *);
void renamecmd(char *, char *);
@@ -97,7 +99,7 @@ void reply(int, const char *, ...)
__attribute__ ((format (printf, 2, 3)))
#endif
;
-void retrieve(char *, char *);
+void retrieve(const char *, char *);
void send_file_list(char *);
void setproctitle(const char *, ...)
#ifdef __GNUC__
@@ -111,6 +113,8 @@ void upper(char *);
void user(char *);
void yyerror(char *);
+void list_file(char*);
+
void kauth(char *, char*);
void klist(void);
void cond_kdestroy(void);
@@ -121,15 +125,17 @@ void afsunlog(void);
int find(char *);
+void builtin_ls(FILE*, const char*);
+
int do_login(int code, char *passwd);
int klogin(char *name, char *password);
const char *ftp_rooted(const char *path);
-extern struct sockaddr_in ctrl_addr, his_addr;
+extern struct sockaddr *ctrl_addr, *his_addr;
extern char hostname[];
-extern struct sockaddr_in data_dest;
+extern struct sockaddr *data_dest;
extern int logged_in;
extern struct passwd *pw;
extern int guest;
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y b/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y
index be36ea2bfe07..07ff9a5b2d8d 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y
+++ b/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y
@@ -43,7 +43,7 @@
%{
#include "ftpd_locl.h"
-RCSID("$Id: ftpcmd.y,v 1.48 1999/05/08 02:22:43 assar Exp $");
+RCSID("$Id: ftpcmd.y,v 1.56 1999/10/26 11:56:23 assar Exp $");
off_t restart_point;
@@ -98,6 +98,7 @@ static int yylex (void);
ABOR DELE CWD LIST NLST SITE
sTAT HELP NOOP MKD RMD PWD
CDUP STOU SMNT SYST SIZE MDTM
+ EPRT EPSV
UMASK IDLE CHMOD
@@ -105,7 +106,9 @@ static int yylex (void);
CONF ENC
KAUTH KLIST KDESTROY KRBTKFILE AFSLOG
- FIND URL
+ LOCATE URL
+
+ FEAT OPTS
LEXERR
@@ -151,9 +154,23 @@ cmd
}
reply(200, "PORT command successful.");
}
+ | EPRT SP STRING CRLF
+ {
+ eprt ($3);
+ free ($3);
+ }
| PASV CRLF
{
- passive();
+ pasv ();
+ }
+ | EPSV CRLF
+ {
+ epsv (NULL);
+ }
+ | EPSV SP STRING CRLF
+ {
+ epsv ($3);
+ free ($3);
}
| TYPE SP type_code CRLF
{
@@ -224,24 +241,30 @@ cmd
}
| RETR SP pathname CRLF check_login
{
- if ($5 && $3 != NULL)
- retrieve(0, $3);
- if ($3 != NULL)
- free($3);
+ char *name = $3;
+
+ if ($5 && name != NULL)
+ retrieve(0, name);
+ if (name != NULL)
+ free(name);
}
| STOR SP pathname CRLF check_login
{
- if ($5 && $3 != NULL)
- do_store($3, "w", 0);
- if ($3 != NULL)
- free($3);
+ char *name = $3;
+
+ if ($5 && name != NULL)
+ do_store(name, "w", 0);
+ if (name != NULL)
+ free(name);
}
| APPE SP pathname CRLF check_login
{
- if ($5 && $3 != NULL)
- do_store($3, "a", 0);
- if ($3 != NULL)
- free($3);
+ char *name = $3;
+
+ if ($5 && name != NULL)
+ do_store(name, "a", 0);
+ if (name != NULL)
+ free(name);
}
| NLST CRLF check_login
{
@@ -250,33 +273,23 @@ cmd
}
| NLST SP STRING CRLF check_login
{
- if ($5 && $3 != NULL)
- send_file_list($3);
- if ($3 != NULL)
- free($3);
+ char *name = $3;
+
+ if ($5 && name != NULL)
+ send_file_list(name);
+ if (name != NULL)
+ free(name);
}
| LIST CRLF check_login
{
-#ifdef HAVE_LS_A
- char *cmd = "/bin/ls -lA";
-#else
- char *cmd = "/bin/ls -la";
-#endif
- if ($3)
- retrieve(cmd, "");
-
+ if($3)
+ list_file(".");
}
| LIST SP pathname CRLF check_login
{
-#ifdef HAVE_LS_A
- char *cmd = "/bin/ls -lA %s";
-#else
- char *cmd = "/bin/ls -la %s";
-#endif
- if ($5 && $3 != NULL)
- retrieve(cmd, $3);
- if ($3 != NULL)
- free($3);
+ if($5)
+ list_file($3);
+ free($3);
}
| sTAT SP pathname CRLF check_login
{
@@ -388,6 +401,20 @@ cmd
if ($3)
cwd("..");
}
+ | FEAT CRLF
+ {
+ lreply(211, "Supported features:");
+ lreply(0, " MDTM");
+ lreply(0, " REST STREAM");
+ lreply(0, " SIZE");
+ reply(211, "End");
+ }
+ | OPTS SP STRING CRLF
+ {
+ free ($3);
+ reply(501, "Bad options");
+ }
+
| SITE SP HELP CRLF
{
help(sitetab, (char *) 0);
@@ -522,16 +549,15 @@ cmd
#ifdef KRB4
if(guest)
reply(500, "Can't be done as guest.");
- else if($7){
+ else if($7)
afslog($5);
- }
if($5)
free($5);
#else
reply(500, "Command not implemented.");
#endif
}
- | SITE SP FIND SP STRING CRLF check_login
+ | SITE SP LOCATE SP STRING CRLF check_login
{
if($7 && $5 != NULL)
find($5);
@@ -696,9 +722,11 @@ host_port
: NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA
NUMBER COMMA NUMBER
{
- data_dest.sin_family = AF_INET;
- data_dest.sin_port = htons($9 * 256 + $11);
- data_dest.sin_addr.s_addr =
+ struct sockaddr_in *sin = (struct sockaddr_in *)data_dest;
+
+ sin->sin_family = AF_INET;
+ sin->sin_port = htons($9 * 256 + $11);
+ sin->sin_addr.s_addr =
htonl(($1 << 24) | ($3 << 16) | ($5 << 8) | $7);
}
;
@@ -901,7 +929,9 @@ struct tab cmdtab[] = { /* In order defined in RFC 765 */
{ "REIN", REIN, ARGS, 0, "(reinitialize server state)" },
{ "QUIT", QUIT, ARGS, 1, "(terminate service)", },
{ "PORT", PORT, ARGS, 1, "<sp> b0, b1, b2, b3, b4" },
+ { "EPRT", EPRT, STR1, 1, "<sp> string" },
{ "PASV", PASV, ARGS, 1, "(set server in passive mode)" },
+ { "EPSV", EPSV, OSTR, 1, "[<sp> foo]" },
{ "TYPE", TYPE, ARGS, 1, "<sp> [ A | E | I | L ]" },
{ "STRU", STRU, ARGS, 1, "(specify file structure)" },
{ "MODE", MODE, ARGS, 1, "(specify transfer mode)" },
@@ -952,6 +982,10 @@ struct tab cmdtab[] = { /* In order defined in RFC 765 */
{ "CONF", CONF, STR1, 1, "<sp> confidentiality command" },
{ "ENC", ENC, STR1, 1, "<sp> privacy command" },
+ /* RFC2389 */
+ { "FEAT", FEAT, ARGS, 1, "" },
+ { "OPTS", OPTS, ARGS, 1, "<sp> command [<sp> options]" },
+
{ NULL, 0, 0, 0, 0 }
};
@@ -967,7 +1001,8 @@ struct tab sitetab[] = {
{ "KRBTKFILE", KRBTKFILE, STR1, 1, "<sp> ticket-file" },
{ "AFSLOG", AFSLOG, OSTR, 1, "[<sp> cell]" },
- { "FIND", FIND, STR1, 1, "<sp> globexpr" },
+ { "LOCATE", LOCATE, STR1, 1, "<sp> globexpr" },
+ { "FIND", LOCATE, STR1, 1, "<sp> globexpr" },
{ "URL", URL, ARGS, 1, "?" },
@@ -996,7 +1031,7 @@ ftpd_getline(char *s, int n)
cs = s;
/* tmpline may contain saved command from urgent mode interruption */
if(ftp_command){
- strcpy_truncate(s, ftp_command, n);
+ strlcpy(s, ftp_command, n);
if (debug)
syslog(LOG_DEBUG, "command: %s", s);
#ifdef XXX
@@ -1162,7 +1197,10 @@ yylex(void)
dostr1:
if (cbuf[cpos] == ' ') {
cpos++;
- state = state == OSTR ? STR2 : ++state;
+ if(state == OSTR)
+ state = STR2;
+ else
+ state++;
return (SP);
}
break;
@@ -1335,7 +1373,7 @@ help(struct tab *ctab, char *s)
columns = 1;
lines = (NCMDS + columns - 1) / columns;
for (i = 0; i < lines; i++) {
- strcpy_truncate (buf, " ", sizeof(buf));
+ strlcpy (buf, " ", sizeof(buf));
for (j = 0; j < columns; j++) {
c = ctab + j * lines + i;
snprintf (buf + strlen(buf),
@@ -1347,13 +1385,13 @@ help(struct tab *ctab, char *s)
break;
w = strlen(c->name) + 1;
while (w < width) {
- strcat_truncate (buf,
+ strlcat (buf,
" ",
sizeof(buf));
w++;
}
}
- lreply(214, buf);
+ lreply(214, "%s", buf);
}
reply(214, "Direct comments to kth-krb-bugs@pdc.kth.se");
return;
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c b/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c
index fa87fc252602..d3c9a6ac4598 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c
+++ b/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c
@@ -36,19 +36,29 @@
#ifdef KRB5
#include <krb5.h>
#endif
+#include "getarg.h"
-RCSID("$Id: ftpd.c,v 1.115 1999/06/15 03:51:47 assar Exp $");
+RCSID("$Id: ftpd.c,v 1.131 1999/11/30 19:18:38 assar Exp $");
static char version[] = "Version 6.00";
extern off_t restart_point;
extern char cbuf[];
-struct sockaddr_in ctrl_addr;
-struct sockaddr_in data_source;
-struct sockaddr_in data_dest;
-struct sockaddr_in his_addr;
-struct sockaddr_in pasv_addr;
+struct sockaddr_storage ctrl_addr_ss;
+struct sockaddr *ctrl_addr = (struct sockaddr *)&ctrl_addr_ss;
+
+struct sockaddr_storage data_source_ss;
+struct sockaddr *data_source = (struct sockaddr *)&data_source_ss;
+
+struct sockaddr_storage data_dest_ss;
+struct sockaddr *data_dest = (struct sockaddr *)&data_dest_ss;
+
+struct sockaddr_storage his_addr_ss;
+struct sockaddr *his_addr = (struct sockaddr *)&his_addr_ss;
+
+struct sockaddr_storage pasv_addr_ss;
+struct sockaddr *pasv_addr = (struct sockaddr *)&pasv_addr_ss;
int data;
jmp_buf errcatch, urgcatch;
@@ -125,16 +135,15 @@ static void ack (char *);
static void myoob (int);
static int checkuser (char *, char *);
static int checkaccess (char *);
-static FILE *dataconn (char *, off_t, char *);
-static void dolog (struct sockaddr_in *);
+static FILE *dataconn (const char *, off_t, const char *);
+static void dolog (struct sockaddr *);
static void end_login (void);
-static FILE *getdatasock (char *);
+static FILE *getdatasock (const char *);
static char *gunique (char *);
static RETSIGTYPE lostconn (int);
static int receive_data (FILE *, FILE *);
static void send_data (FILE *, FILE *);
static struct passwd * sgetpwnam (char *);
-static void usage(void);
static char *
curdir(void)
@@ -144,7 +153,7 @@ curdir(void)
if (getcwd(path, sizeof(path)-1) == NULL)
return ("");
if (path[1] != '\0') /* special case for root dir. */
- strcat_truncate(path, "/", sizeof(path));
+ strlcat(path, "/", sizeof(path));
/* For guest account, skip / since it's chrooted */
return (guest ? path+1 : path);
}
@@ -186,218 +195,231 @@ parse_auth_level(char *str)
* Print usage and die.
*/
+static int debug_flag;
+static int interactive_flag;
+static char *guest_umask_string;
+static char *port_string;
+static char *umask_string;
+static char *auth_string;
+
+int use_builtin_ls;
+
+static int help_flag;
+static int version_flag;
+
+struct getargs args[] = {
+ { NULL, 'a', arg_string, &auth_string, "required authentication" },
+ { NULL, 'i', arg_flag, &interactive_flag, "don't assume stdin is a socket" },
+ { NULL, 'p', arg_string, &port_string, "what port to listen to" },
+ { NULL, 'g', arg_string, &guest_umask_string, "umask for guest logins" },
+ { NULL, 'l', arg_counter, &logging, "log more stuff", "" },
+ { NULL, 't', arg_integer, &ftpd_timeout, "initial timeout" },
+ { NULL, 'T', arg_integer, &maxtimeout, "max timeout" },
+ { NULL, 'u', arg_string, &umask_string, "umask for user logins" },
+ { NULL, 'd', arg_flag, &debug_flag, "enable debugging" },
+ { NULL, 'v', arg_flag, &debug_flag, "enable debugging" },
+ { "builtin-ls", 'B', arg_flag, &use_builtin_ls, "use built-in ls to list files" },
+ { "version", 0, arg_flag, &version_flag },
+ { "help", 'h', arg_flag, &help_flag }
+};
+
+static int num_args = sizeof(args) / sizeof(args[0]);
+
static void
-usage (void)
+usage (int code)
{
- fprintf (stderr,
- "Usage: %s [-d] [-i] [-g guest_umask] [-l] [-p port]"
- " [-t timeout] [-T max_timeout] [-u umask] [-v]"
- " [-a auth_level] \n",
- __progname);
- exit (1);
+ arg_printusage(args, num_args, NULL, "");
+ exit (code);
}
int
main(int argc, char **argv)
{
- int addrlen, ch, on = 1, tos;
- char *cp, line[LINE_MAX];
- FILE *fd;
- int not_inetd = 0;
- int port;
- struct servent *sp;
+ int addrlen, on = 1, tos;
+ char *cp, line[LINE_MAX];
+ FILE *fd;
+ int port;
+ struct servent *sp;
+
+ int optind = 0;
- set_progname (argv[0]);
+ set_progname (argv[0]);
#ifdef KRB4
- /* detach from any tickets and tokens */
- {
- char tkfile[1024];
- snprintf(tkfile, sizeof(tkfile),
- "/tmp/ftp_%u", (unsigned)getpid());
- krb_set_tkt_string(tkfile);
- if(k_hasafs())
- k_setpag();
- }
+ /* detach from any tickets and tokens */
+ {
+ char tkfile[1024];
+ snprintf(tkfile, sizeof(tkfile),
+ "/tmp/ftp_%u", (unsigned)getpid());
+ krb_set_tkt_string(tkfile);
+ if(k_hasafs())
+ k_setpag();
+ }
#endif
+ if(getarg(args, num_args, argc, argv, &optind))
+ usage(1);
+
+ if(help_flag)
+ usage(0);
+
+ if(version_flag) {
+ print_version(NULL);
+ exit(0);
+ }
+
+ if(auth_string)
+ auth_level = parse_auth_level(auth_string);
+ {
+ char *p;
+ long val = 0;
+
+ if(guest_umask_string) {
+ val = strtol(guest_umask_string, &p, 8);
+ if (*p != '\0' || val < 0)
+ warnx("bad value for -g");
+ else
+ guest_umask = val;
+ }
+ if(umask_string) {
+ val = strtol(umask_string, &p, 8);
+ if (*p != '\0' || val < 0)
+ warnx("bad value for -u");
+ else
+ defumask = val;
+ }
+ }
+ if(port_string) {
+ sp = getservbyname(port_string, "tcp");
+ if(sp)
+ port = sp->s_port;
+ else
+ if(isdigit(port_string[0]))
+ port = htons(atoi(port_string));
+ else
+ warnx("bad value for -p");
+ } else {
sp = getservbyname("ftp", "tcp");
if(sp)
port = sp->s_port;
else
port = htons(21);
-
- while ((ch = getopt(argc, argv, "a:dg:ilp:t:T:u:v")) != EOF) {
- switch (ch) {
- case 'a':
- auth_level = parse_auth_level(optarg);
- break;
- case 'd':
- debug = 1;
- break;
-
- case 'i':
- not_inetd = 1;
- break;
- case 'g':
- {
- long val = 0;
-
- val = strtol(optarg, &optarg, 8);
- if (*optarg != '\0' || val < 0)
- warnx("bad value for -g");
- else
- guest_umask = val;
- break;
- }
- case 'l':
- logging++; /* > 1 == extra logging */
- break;
-
- case 'p':
- sp = getservbyname(optarg, "tcp");
- if(sp)
- port = sp->s_port;
- else
- if(isdigit(optarg[0]))
- port = htons(atoi(optarg));
- else
- warnx("bad value for -p");
- break;
+ }
- case 't':
- ftpd_timeout = atoi(optarg);
- if (maxtimeout < ftpd_timeout)
- maxtimeout = ftpd_timeout;
- break;
-
- case 'T':
- maxtimeout = atoi(optarg);
- if (ftpd_timeout > maxtimeout)
- ftpd_timeout = maxtimeout;
- break;
-
- case 'u':
- {
- long val = 0;
-
- val = strtol(optarg, &optarg, 8);
- if (*optarg != '\0' || val < 0)
- warnx("bad value for -u");
- else
- defumask = val;
- break;
- }
+ if (maxtimeout < ftpd_timeout)
+ maxtimeout = ftpd_timeout;
- case 'v':
- debug = 1;
- break;
+#if 0
+ if (ftpd_timeout > maxtimeout)
+ ftpd_timeout = maxtimeout;
+#endif
- default:
- usage ();
- }
- }
- if(not_inetd)
- mini_inetd (port);
+ if(interactive_flag)
+ mini_inetd (port);
- /*
- * LOG_NDELAY sets up the logging connection immediately,
- * necessary for anonymous ftp's that chroot and can't do it later.
- */
- openlog("ftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
- addrlen = sizeof(his_addr);
- if (getpeername(0, (struct sockaddr *)&his_addr, &addrlen) < 0) {
- syslog(LOG_ERR, "getpeername (%s): %m",argv[0]);
- exit(1);
- }
- addrlen = sizeof(ctrl_addr);
- if (getsockname(0, (struct sockaddr *)&ctrl_addr, &addrlen) < 0) {
- syslog(LOG_ERR, "getsockname (%s): %m",argv[0]);
- exit(1);
- }
+ /*
+ * LOG_NDELAY sets up the logging connection immediately,
+ * necessary for anonymous ftp's that chroot and can't do it later.
+ */
+ openlog("ftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
+ addrlen = sizeof(his_addr_ss);
+ if (getpeername(STDIN_FILENO, his_addr, &addrlen) < 0) {
+ syslog(LOG_ERR, "getpeername (%s): %m",argv[0]);
+ exit(1);
+ }
+ addrlen = sizeof(ctrl_addr_ss);
+ if (getsockname(STDIN_FILENO, ctrl_addr, &addrlen) < 0) {
+ syslog(LOG_ERR, "getsockname (%s): %m",argv[0]);
+ exit(1);
+ }
#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_LOWDELAY;
- if (setsockopt(0, IPPROTO_IP, IP_TOS, (void *)&tos, sizeof(int)) < 0)
- syslog(LOG_WARNING, "setsockopt (IP_TOS): %m");
+ tos = IPTOS_LOWDELAY;
+ if (setsockopt(STDIN_FILENO, IPPROTO_IP, IP_TOS,
+ (void *)&tos, sizeof(int)) < 0)
+ syslog(LOG_WARNING, "setsockopt (IP_TOS): %m");
#endif
- data_source.sin_port = htons(ntohs(ctrl_addr.sin_port) - 1);
+ data_source->sa_family = ctrl_addr->sa_family;
+ socket_set_port (data_source,
+ htons(ntohs(socket_get_port(ctrl_addr)) - 1));
- /* set this here so it can be put in wtmp */
- snprintf(ttyline, sizeof(ttyline), "ftp%u", (unsigned)getpid());
+ /* set this here so it can be put in wtmp */
+ snprintf(ttyline, sizeof(ttyline), "ftp%u", (unsigned)getpid());
- /* freopen(_PATH_DEVNULL, "w", stderr); */
- signal(SIGPIPE, lostconn);
- signal(SIGCHLD, SIG_IGN);
+ /* freopen(_PATH_DEVNULL, "w", stderr); */
+ signal(SIGPIPE, lostconn);
+ signal(SIGCHLD, SIG_IGN);
#ifdef SIGURG
- if (signal(SIGURG, myoob) == SIG_ERR)
- syslog(LOG_ERR, "signal: %m");
+ if (signal(SIGURG, myoob) == SIG_ERR)
+ syslog(LOG_ERR, "signal: %m");
#endif
- /* Try to handle urgent data inline */
+ /* Try to handle urgent data inline */
#if defined(SO_OOBINLINE) && defined(HAVE_SETSOCKOPT)
- if (setsockopt(0, SOL_SOCKET, SO_OOBINLINE, (void *)&on,
- sizeof(on)) < 0)
- syslog(LOG_ERR, "setsockopt: %m");
+ if (setsockopt(0, SOL_SOCKET, SO_OOBINLINE, (void *)&on,
+ sizeof(on)) < 0)
+ syslog(LOG_ERR, "setsockopt: %m");
#endif
#ifdef F_SETOWN
- if (fcntl(fileno(stdin), F_SETOWN, getpid()) == -1)
- syslog(LOG_ERR, "fcntl F_SETOWN: %m");
+ if (fcntl(fileno(stdin), F_SETOWN, getpid()) == -1)
+ syslog(LOG_ERR, "fcntl F_SETOWN: %m");
#endif
- dolog(&his_addr);
- /*
- * Set up default state
- */
- data = -1;
- type = TYPE_A;
- form = FORM_N;
- stru = STRU_F;
- mode = MODE_S;
- tmpline[0] = '\0';
-
- /* If logins are disabled, print out the message. */
- if ((fd = fopen(_PATH_NOLOGIN,"r")) != NULL) {
- while (fgets(line, sizeof(line), fd) != NULL) {
- if ((cp = strchr(line, '\n')) != NULL)
- *cp = '\0';
- lreply(530, "%s", line);
- }
- fflush(stdout);
- fclose(fd);
- reply(530, "System not available.");
- exit(0);
- }
- if ((fd = fopen(_PATH_FTPWELCOME, "r")) != NULL) {
- while (fgets(line, sizeof(line), fd) != NULL) {
- if ((cp = strchr(line, '\n')) != NULL)
- *cp = '\0';
- lreply(220, "%s", line);
- }
- fflush(stdout);
- fclose(fd);
- /* reply(220,) must follow */
+ dolog(his_addr);
+ /*
+ * Set up default state
+ */
+ data = -1;
+ type = TYPE_A;
+ form = FORM_N;
+ stru = STRU_F;
+ mode = MODE_S;
+ tmpline[0] = '\0';
+
+ /* If logins are disabled, print out the message. */
+ if ((fd = fopen(_PATH_NOLOGIN,"r")) != NULL) {
+ while (fgets(line, sizeof(line), fd) != NULL) {
+ if ((cp = strchr(line, '\n')) != NULL)
+ *cp = '\0';
+ lreply(530, "%s", line);
+ }
+ fflush(stdout);
+ fclose(fd);
+ reply(530, "System not available.");
+ exit(0);
+ }
+ if ((fd = fopen(_PATH_FTPWELCOME, "r")) != NULL) {
+ while (fgets(line, sizeof(line), fd) != NULL) {
+ if ((cp = strchr(line, '\n')) != NULL)
+ *cp = '\0';
+ lreply(220, "%s", line);
}
- gethostname(hostname, sizeof(hostname));
- reply(220, "%s FTP server (%s"
+ fflush(stdout);
+ fclose(fd);
+ /* reply(220,) must follow */
+ }
+ gethostname(hostname, sizeof(hostname));
+
+ reply(220, "%s FTP server (%s"
#ifdef KRB5
- "+%s"
+ "+%s"
#endif
#ifdef KRB4
- "+%s"
+ "+%s"
#endif
- ") ready.", hostname, version
+ ") ready.", hostname, version
#ifdef KRB5
- ,heimdal_version
+ ,heimdal_version
#endif
#ifdef KRB4
- ,krb4_version
+ ,krb4_version
#endif
- );
- setjmp(errcatch);
- for (;;)
- yyparse();
- /* NOTREACHED */
+ );
+
+ setjmp(errcatch);
+ for (;;)
+ yyparse();
+ /* NOTREACHED */
}
static RETSIGTYPE
@@ -506,10 +528,19 @@ user(char *name)
reply(331, "Guest login ok, type your name as password.");
} else
reply(530, "User %s unknown.", name);
- if (!askpasswd && logging)
+ if (!askpasswd && logging) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
syslog(LOG_NOTICE,
"ANONYMOUS FTP LOGIN REFUSED FROM %s(%s)",
- remotehost, inet_ntoa(his_addr.sin_addr));
+ remotehost, data_addr);
+ }
return;
}
if((auth_level & AUTH_PLAIN) == 0 && !sec_complete){
@@ -526,18 +557,29 @@ user(char *name)
if (cp == NULL || checkaccess(name)) {
reply(530, "User %s access denied.", name);
- if (logging)
+ if (logging) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr,
+ sizeof(data_addr)) == NULL)
+ strlcpy (data_addr,
+ "unknown address",
+ sizeof(data_addr));
+
syslog(LOG_NOTICE,
"FTP LOGIN REFUSED FROM %s(%s), %s",
remotehost,
- inet_ntoa(his_addr.sin_addr),
+ data_addr,
name);
+ }
pw = (struct passwd *) NULL;
return;
}
}
if (logging)
- strcpy_truncate(curname, name, sizeof(curname));
+ strlcpy(curname, name, sizeof(curname));
if(sec_complete) {
if(sec_userok(name) == 0)
do_login(232, name);
@@ -662,88 +704,128 @@ checkaccess(char *name)
#undef ALLOWED
#undef NOT_ALLOWED
-int do_login(int code, char *passwd)
+/* output contents of /etc/issue.net, or /etc/issue */
+static void
+show_issue(int code)
{
- FILE *fd;
- login_attempts = 0; /* this time successful */
- if (setegid((gid_t)pw->pw_gid) < 0) {
- reply(550, "Can't set gid.");
- return -1;
+ FILE *f;
+ char buf[128];
+
+ f = fopen("/etc/issue.net", "r");
+ if(f == NULL)
+ f = fopen("/etc/issue", "r");
+ if(f){
+ while(fgets(buf, sizeof(buf), f)){
+ buf[strcspn(buf, "\r\n")] = '\0';
+ lreply(code, "%s", buf);
}
- initgroups(pw->pw_name, pw->pw_gid);
+ fclose(f);
+ }
+}
- /* open wtmp before chroot */
- ftpd_logwtmp(ttyline, pw->pw_name, remotehost);
- logged_in = 1;
+int do_login(int code, char *passwd)
+{
+ FILE *fd;
+ login_attempts = 0; /* this time successful */
+ if (setegid((gid_t)pw->pw_gid) < 0) {
+ reply(550, "Can't set gid.");
+ return -1;
+ }
+ initgroups(pw->pw_name, pw->pw_gid);
- dochroot = checkuser(_PATH_FTPCHROOT, pw->pw_name);
- if (guest) {
- /*
- * We MUST do a chdir() after the chroot. Otherwise
- * the old current directory will be accessible as "."
- * outside the new root!
- */
- if (chroot(pw->pw_dir) < 0 || chdir("/") < 0) {
- reply(550, "Can't set guest privileges.");
- return -1;
- }
- } else if (dochroot) {
- if (chroot(pw->pw_dir) < 0 || chdir("/") < 0) {
- reply(550, "Can't change root.");
- return -1;
- }
- } else if (chdir(pw->pw_dir) < 0) {
- if (chdir("/") < 0) {
- reply(530, "User %s: can't change directory to %s.",
- pw->pw_name, pw->pw_dir);
- return -1;
- } else
- lreply(code, "No directory! Logging in with home=/");
- }
- if (seteuid((uid_t)pw->pw_uid) < 0) {
- reply(550, "Can't set uid.");
- return -1;
- }
+ /* open wtmp before chroot */
+ ftpd_logwtmp(ttyline, pw->pw_name, remotehost);
+ logged_in = 1;
+
+ dochroot = checkuser(_PATH_FTPCHROOT, pw->pw_name);
+ if (guest) {
/*
- * Display a login message, if it exists.
- * N.B. reply(code,) must follow the message.
+ * We MUST do a chdir() after the chroot. Otherwise
+ * the old current directory will be accessible as "."
+ * outside the new root!
*/
- if ((fd = fopen(_PATH_FTPLOGINMESG, "r")) != NULL) {
- char *cp, line[LINE_MAX];
+ if (chroot(pw->pw_dir) < 0 || chdir("/") < 0) {
+ reply(550, "Can't set guest privileges.");
+ return -1;
+ }
+ } else if (dochroot) {
+ if (chroot(pw->pw_dir) < 0 || chdir("/") < 0) {
+ reply(550, "Can't change root.");
+ return -1;
+ }
+ } else if (chdir(pw->pw_dir) < 0) {
+ if (chdir("/") < 0) {
+ reply(530, "User %s: can't change directory to %s.",
+ pw->pw_name, pw->pw_dir);
+ return -1;
+ } else
+ lreply(code, "No directory! Logging in with home=/");
+ }
+ if (seteuid((uid_t)pw->pw_uid) < 0) {
+ reply(550, "Can't set uid.");
+ return -1;
+ }
+ /*
+ * Display a login message, if it exists.
+ * N.B. reply(code,) must follow the message.
+ */
+ if ((fd = fopen(_PATH_FTPLOGINMESG, "r")) != NULL) {
+ char *cp, line[LINE_MAX];
- while (fgets(line, sizeof(line), fd) != NULL) {
- if ((cp = strchr(line, '\n')) != NULL)
- *cp = '\0';
- lreply(code, "%s", line);
- }
+ while (fgets(line, sizeof(line), fd) != NULL) {
+ if ((cp = strchr(line, '\n')) != NULL)
+ *cp = '\0';
+ lreply(code, "%s", line);
}
- if (guest) {
- reply(code, "Guest login ok, access restrictions apply.");
+ }
+ if (guest) {
+ show_issue(code);
+ reply(code, "Guest login ok, access restrictions apply.");
#ifdef HAVE_SETPROCTITLE
- snprintf (proctitle, sizeof(proctitle),
- "%s: anonymous/%s",
- remotehost,
- passwd);
+ snprintf (proctitle, sizeof(proctitle),
+ "%s: anonymous/%s",
+ remotehost,
+ passwd);
+ setproctitle(proctitle);
#endif /* HAVE_SETPROCTITLE */
- if (logging)
- syslog(LOG_INFO, "ANONYMOUS FTP LOGIN FROM %s(%s), %s",
- remotehost,
- inet_ntoa(his_addr.sin_addr),
- passwd);
- } else {
- reply(code, "User %s logged in.", pw->pw_name);
+ if (logging) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
+ syslog(LOG_INFO, "ANONYMOUS FTP LOGIN FROM %s(%s), %s",
+ remotehost,
+ data_addr,
+ passwd);
+ }
+ } else {
+ show_issue(code);
+ reply(code, "User %s logged in.", pw->pw_name);
#ifdef HAVE_SETPROCTITLE
- snprintf(proctitle, sizeof(proctitle), "%s: %s", remotehost, pw->pw_name);
- setproctitle(proctitle);
+ snprintf(proctitle, sizeof(proctitle), "%s: %s", remotehost, pw->pw_name);
+ setproctitle(proctitle);
#endif /* HAVE_SETPROCTITLE */
- if (logging)
- syslog(LOG_INFO, "FTP LOGIN FROM %s(%s) as %s",
- remotehost,
- inet_ntoa(his_addr.sin_addr),
- pw->pw_name);
- }
- umask(defumask);
- return 0;
+ if (logging) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
+ syslog(LOG_INFO, "FTP LOGIN FROM %s(%s) as %s",
+ remotehost,
+ data_addr,
+ pw->pw_name);
+ }
+ }
+ umask(defumask);
+ return 0;
}
/*
@@ -819,19 +901,27 @@ pass(char *passwd)
* local authentication succeeded.
*/
if (rval) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
reply(530, "Login incorrect.");
if (logging)
syslog(LOG_NOTICE,
"FTP LOGIN FAILED FROM %s(%s), %s",
remotehost,
- inet_ntoa(his_addr.sin_addr),
+ data_addr,
curname);
pw = NULL;
if (login_attempts++ >= 5) {
syslog(LOG_NOTICE,
"repeated login failures from %s(%s)",
remotehost,
- inet_ntoa(his_addr.sin_addr));
+ data_addr);
exit(0);
}
return;
@@ -845,7 +935,7 @@ pass(char *passwd)
}
void
-retrieve(char *cmd, char *name)
+retrieve(const char *cmd, char *name)
{
FILE *fin = NULL, *dout;
struct stat st;
@@ -858,6 +948,7 @@ retrieve(char *cmd, char *name)
closefunc = fclose;
st.st_size = 0;
if(fin == NULL){
+ int save_errno = errno;
struct cmds {
const char *ext;
const char *cmd;
@@ -904,7 +995,8 @@ retrieve(char *cmd, char *name)
closefunc = ftpd_pclose;
st.st_size = -1;
cmd = line;
- }
+ } else
+ errno = save_errno;
}
} else {
snprintf(line, sizeof(line), cmd, name);
@@ -1066,37 +1158,33 @@ done:
}
static FILE *
-getdatasock(char *mode)
+getdatasock(const char *mode)
{
- int on = 1, s, t, tries;
+ int s, t, tries;
if (data >= 0)
return (fdopen(data, mode));
- seteuid((uid_t)0);
- s = socket(AF_INET, SOCK_STREAM, 0);
+ seteuid(0);
+ s = socket(ctrl_addr->sa_family, SOCK_STREAM, 0);
if (s < 0)
goto bad;
-#if defined(SO_REUSEADDR) && defined(HAVE_SETSOCKOPT)
- if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
- (void *) &on, sizeof(on)) < 0)
- goto bad;
-#endif
+ socket_set_reuseaddr (s, 1);
/* anchor socket to avoid multi-homing problems */
- data_source.sin_family = AF_INET;
- data_source.sin_addr = ctrl_addr.sin_addr;
+ socket_set_address_and_port (data_source,
+ socket_get_address (ctrl_addr),
+ socket_get_port (data_source));
+
for (tries = 1; ; tries++) {
- if (bind(s, (struct sockaddr *)&data_source,
- sizeof(data_source)) >= 0)
+ if (bind(s, data_source,
+ socket_sockaddr_size (data_source)) >= 0)
break;
if (errno != EADDRINUSE || tries > 10)
goto bad;
sleep(tries);
}
- seteuid((uid_t)pw->pw_uid);
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- on = IPTOS_THROUGHPUT;
- if (setsockopt(s, IPPROTO_IP, IP_TOS, (void *)&on, sizeof(int)) < 0)
- syslog(LOG_WARNING, "setsockopt (IP_TOS): %m");
+ seteuid(pw->pw_uid);
+#ifdef IPTOS_THROUGHPUT
+ socket_set_tos (s, IPTOS_THROUGHPUT);
#endif
return (fdopen(s, mode));
bad:
@@ -1109,7 +1197,7 @@ bad:
}
static FILE *
-dataconn(char *name, off_t size, char *mode)
+dataconn(const char *name, off_t size, const char *mode)
{
char sizebuf[32];
FILE *file;
@@ -1122,10 +1210,12 @@ dataconn(char *name, off_t size, char *mode)
else
*sizebuf = '\0';
if (pdata >= 0) {
- struct sockaddr_in from;
- int s, fromlen = sizeof(from);
+ struct sockaddr_storage from_ss;
+ struct sockaddr *from = (struct sockaddr *)&from;
+ int s;
+ int fromlen = sizeof(from_ss);
- s = accept(pdata, (struct sockaddr *)&from, &fromlen);
+ s = accept(pdata, from, &fromlen);
if (s < 0) {
reply(425, "Can't open data connection.");
close(pdata);
@@ -1157,16 +1247,25 @@ dataconn(char *name, off_t size, char *mode)
usedefault = 1;
file = getdatasock(mode);
if (file == NULL) {
+ char data_addr[256];
+
+ if (inet_ntop (data_source->sa_family,
+ socket_get_address(data_source),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
reply(425, "Can't create data socket (%s,%d): %s.",
- inet_ntoa(data_source.sin_addr),
- ntohs(data_source.sin_port), strerror(errno));
+ data_addr,
+ socket_get_port (data_source),
+ strerror(errno));
return (NULL);
}
data = fileno(file);
- while (connect(data, (struct sockaddr *)&data_dest,
- sizeof(data_dest)) < 0) {
+ while (connect(data, data_dest,
+ socket_sockaddr_size(data_dest)) < 0) {
if (errno == EADDRINUSE && retry < swaitmax) {
- sleep((unsigned) swaitint);
+ sleep(swaitint);
retry += swaitint;
continue;
}
@@ -1226,23 +1325,26 @@ send_data(FILE *instr, FILE *outstr)
struct stat st;
char *chunk;
int in = fileno(instr);
- if(fstat(in, &st) == 0 && S_ISREG(st.st_mode)) {
- chunk = mmap(0, st.st_size, PROT_READ, MAP_SHARED, in, 0);
+ if(fstat(in, &st) == 0 && S_ISREG(st.st_mode)
+ && st.st_size > 0) {
+ /*
+ * mmap zero bytes has potential of loosing, don't do it.
+ */
+ chunk = mmap(0, st.st_size, PROT_READ,
+ MAP_SHARED, in, 0);
if((void *)chunk != (void *)MAP_FAILED) {
cnt = st.st_size - restart_point;
- sec_write(fileno(outstr),
- chunk + restart_point,
- cnt);
- munmap(chunk, st.st_size);
+ sec_write(fileno(outstr), chunk + restart_point, cnt);
+ if (munmap(chunk, st.st_size) < 0)
+ warn ("munmap");
sec_fflush(outstr);
byte_count = cnt;
transflag = 0;
}
}
}
-
#endif
- if(transflag){
+ if(transflag) {
struct stat st;
netfd = fileno(outstr);
@@ -1430,7 +1532,7 @@ statcmd(void)
struct sockaddr_in *sin;
u_char *a, *p;
- lreply(211, "%s FTP server status:", hostname, version);
+ lreply(211, "%s FTP server (%s) status:", hostname, version);
printf(" %s\r\n", version);
printf(" Connected to %s", remotehost);
if (!isdigit(remotehost[0]))
@@ -1673,18 +1775,30 @@ renamecmd(char *from, char *to)
}
static void
-dolog(struct sockaddr_in *sin)
+dolog(struct sockaddr *sa)
{
+ struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+
inaddr2str (sin->sin_addr, remotehost, sizeof(remotehost));
#ifdef HAVE_SETPROCTITLE
snprintf(proctitle, sizeof(proctitle), "%s: connected", remotehost);
setproctitle(proctitle);
#endif /* HAVE_SETPROCTITLE */
- if (logging)
+ if (logging) {
+ char data_addr[256];
+
+ if (inet_ntop (his_addr->sa_family,
+ socket_get_address(his_addr),
+ data_addr, sizeof(data_addr)) == NULL)
+ strlcpy (data_addr, "unknown address",
+ sizeof(data_addr));
+
+
syslog(LOG_INFO, "connection from %s(%s)",
remotehost,
- inet_ntoa(his_addr.sin_addr));
+ data_addr);
+ }
}
/*
@@ -1766,31 +1880,41 @@ myoob(int signo)
* with Rick Adams on 25 Jan 89.
*/
void
-passive(void)
+pasv(void)
{
int len;
char *p, *a;
+ struct sockaddr_in *sin;
- pdata = socket(AF_INET, SOCK_STREAM, 0);
+ if (ctrl_addr->sa_family != AF_INET) {
+ reply(425,
+ "You cannot do PASV with something that's not IPv4");
+ return;
+ }
+
+ pdata = socket(ctrl_addr->sa_family, SOCK_STREAM, 0);
if (pdata < 0) {
perror_reply(425, "Can't open passive connection");
return;
}
- pasv_addr = ctrl_addr;
- pasv_addr.sin_port = 0;
- seteuid((uid_t)0);
- if (bind(pdata, (struct sockaddr *)&pasv_addr, sizeof(pasv_addr)) < 0) {
- seteuid((uid_t)pw->pw_uid);
+ pasv_addr->sa_family = ctrl_addr->sa_family;
+ socket_set_address_and_port (pasv_addr,
+ socket_get_address (ctrl_addr),
+ 0);
+ seteuid(0);
+ if (bind(pdata, pasv_addr, socket_sockaddr_size (pasv_addr)) < 0) {
+ seteuid(pw->pw_uid);
goto pasv_error;
}
- seteuid((uid_t)pw->pw_uid);
- len = sizeof(pasv_addr);
- if (getsockname(pdata, (struct sockaddr *) &pasv_addr, &len) < 0)
+ seteuid(pw->pw_uid);
+ len = sizeof(pasv_addr_ss);
+ if (getsockname(pdata, pasv_addr, &len) < 0)
goto pasv_error;
if (listen(pdata, 1) < 0)
goto pasv_error;
- a = (char *) &pasv_addr.sin_addr;
- p = (char *) &pasv_addr.sin_port;
+ sin = (struct sockaddr_in *)pasv_addr;
+ a = (char *) &sin->sin_addr;
+ p = (char *) &sin->sin_port;
#define UC(b) (((int) b) & 0xff)
@@ -1805,6 +1929,109 @@ pasv_error:
return;
}
+void
+epsv(char *proto)
+{
+ int len;
+
+ pdata = socket(ctrl_addr->sa_family, SOCK_STREAM, 0);
+ if (pdata < 0) {
+ perror_reply(425, "Can't open passive connection");
+ return;
+ }
+ pasv_addr->sa_family = ctrl_addr->sa_family;
+ socket_set_address_and_port (pasv_addr,
+ socket_get_address (ctrl_addr),
+ 0);
+ seteuid(0);
+ if (bind(pdata, pasv_addr, socket_sockaddr_size (pasv_addr)) < 0) {
+ seteuid(pw->pw_uid);
+ goto pasv_error;
+ }
+ seteuid(pw->pw_uid);
+ len = sizeof(pasv_addr_ss);
+ if (getsockname(pdata, pasv_addr, &len) < 0)
+ goto pasv_error;
+ if (listen(pdata, 1) < 0)
+ goto pasv_error;
+
+ reply(229, "Entering Extended Passive Mode (|||%d|)",
+ ntohs(socket_get_port (pasv_addr)));
+ return;
+
+pasv_error:
+ close(pdata);
+ pdata = -1;
+ perror_reply(425, "Can't open passive connection");
+ return;
+}
+
+void
+eprt(char *str)
+{
+ char *end;
+ char sep;
+ int af;
+ int ret;
+ int port;
+
+ usedefault = 0;
+ if (pdata >= 0) {
+ close(pdata);
+ pdata = -1;
+ }
+
+ sep = *str++;
+ if (sep == '\0') {
+ reply(500, "Bad syntax in EPRT");
+ return;
+ }
+ af = strtol (str, &end, 0);
+ if (af == 0 || *end != sep) {
+ reply(500, "Bad syntax in EPRT");
+ return;
+ }
+ str = end + 1;
+ switch (af) {
+#ifdef HAVE_IPV6
+ case 2 :
+ data_dest->sa_family = AF_INET6;
+ break;
+#endif
+ case 1 :
+ data_dest->sa_family = AF_INET;
+ break;
+ default :
+ reply(522, "Network protocol %d not supported, use (1"
+#ifdef HAVE_IPV6
+ ",2"
+#endif
+ ")", af);
+ return;
+ }
+ end = strchr (str, sep);
+ if (end == NULL) {
+ reply(500, "Bad syntax in EPRT");
+ return;
+ }
+ *end = '\0';
+ ret = inet_pton (data_dest->sa_family, str,
+ socket_get_address (data_dest));
+
+ if (ret != 1) {
+ reply(500, "Bad address syntax in EPRT");
+ return;
+ }
+ str = end + 1;
+ port = strtol (str, &end, 0);
+ if (port == 0 || *end != sep) {
+ reply(500, "Bad port syntax in EPRT");
+ return;
+ }
+ socket_set_port (data_dest, htons(port));
+ reply(200, "EPRT command successful.");
+}
+
/*
* Generate unique name for file with basename "local".
* The file named "local" is already known to exist.
@@ -1840,7 +2067,7 @@ gunique(char *local)
* Format and send reply containing system error number.
*/
void
-perror_reply(int code, char *string)
+perror_reply(int code, const char *string)
{
reply(code, "%s: %s.", string, strerror(errno));
}
@@ -1851,6 +2078,30 @@ static char *onefile[] = {
};
void
+list_file(char *file)
+{
+ if(use_builtin_ls) {
+ FILE *dout;
+ dout = dataconn(file, -1, "w");
+ if (dout == NULL)
+ return;
+ set_buffer_size(fileno(dout), 0);
+ builtin_ls(dout, file);
+ reply(226, "Transfer complete.");
+ fclose(dout);
+ data = -1;
+ pdata = -1;
+ } else {
+#ifdef HAVE_LS_A
+ const char *cmd = "/bin/ls -lA %s";
+#else
+ const char *cmd = "/bin/ls -la %s";
+#endif
+ retrieve(cmd, file);
+ }
+}
+
+void
send_file_list(char *whichf)
{
struct stat st;
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ftpd_locl.h b/crypto/kerberosIV/appl/ftp/ftpd/ftpd_locl.h
index 4bb3ad3b1ad9..5cb49046b52a 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/ftpd_locl.h
+++ b/crypto/kerberosIV/appl/ftp/ftpd/ftpd_locl.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: ftpd_locl.h,v 1.5.2.1 1999/07/22 03:24:42 assar Exp $ */
+/* $Id: ftpd_locl.h,v 1.9 1999/12/02 16:58:30 joda Exp $ */
#ifndef __ftpd_locl_h__
#define __ftpd_locl_h__
@@ -63,6 +58,9 @@
#if defined(HAVE_SYS_IOCTL_H) && SunOS != 40
#include <sys/ioctl.h>
#endif
+#ifdef HAVE_SYS_IOCCOM_H
+#include <sys/ioccom.h>
+#endif
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
@@ -159,6 +157,10 @@
extern int LIBPREFIX(fclose) (FILE *);
#endif
+/* SunOS doesn't have any declaration of fclose */
+
+int fclose(FILE *stream);
+
int yyparse();
#ifndef LOG_FTP
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/gss_userok.c b/crypto/kerberosIV/appl/ftp/ftpd/gss_userok.c
index 8a1a8e36ec68..28e35960cc9d 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/gss_userok.c
+++ b/crypto/kerberosIV/appl/ftp/ftpd/gss_userok.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -40,7 +35,7 @@
#include <gssapi.h>
#include <krb5.h>
-RCSID("$Id: gss_userok.c,v 1.1 1998/05/12 12:15:22 joda Exp $");
+RCSID("$Id: gss_userok.c,v 1.2 1999/12/02 16:58:31 joda Exp $");
/* XXX a bit too much of krb5 dependency here...
What is the correct way to do this?
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/kauth.c b/crypto/kerberosIV/appl/ftp/ftpd/kauth.c
index 33795b6eac0a..dad4de540152 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/kauth.c
+++ b/crypto/kerberosIV/appl/ftp/ftpd/kauth.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "ftpd_locl.h"
-RCSID("$Id: kauth.c,v 1.22 1999/06/29 21:19:33 bg Exp $");
+RCSID("$Id: kauth.c,v 1.25 1999/12/02 16:58:31 joda Exp $");
static KTEXT_ST cip;
static unsigned int lifetime;
@@ -85,7 +80,7 @@ store_ticket(KTEXT cip)
return(INTK_BADPW);
/* extract server's name */
- strcpy_truncate(sp.name, ptr, sizeof(sp.name));
+ strlcpy(sp.name, ptr, sizeof(sp.name));
ptr += len + 1;
left -= len + 1;
@@ -94,7 +89,7 @@ store_ticket(KTEXT cip)
return(INTK_BADPW);
/* extract server's instance */
- strcpy_truncate(sp.instance, ptr, sizeof(sp.instance));
+ strlcpy(sp.instance, ptr, sizeof(sp.instance));
ptr += len + 1;
left -= len + 1;
@@ -103,7 +98,7 @@ store_ticket(KTEXT cip)
return(INTK_BADPW);
/* extract server's realm */
- strcpy_truncate(sp.realm, ptr, sizeof(sp.realm));
+ strlcpy(sp.realm, ptr, sizeof(sp.realm));
ptr += len + 1;
left -= len + 1;
@@ -176,6 +171,10 @@ kauth(char *principal, char *ticket)
char *p;
int ret;
+ if(get_command_prot() != prot_private) {
+ reply(500, "Request denied (bad protection level)");
+ return;
+ }
ret = krb_parse_name(principal, &pr);
if(ret){
reply(500, "Bad principal: %s.", krb_get_err_text(ret));
@@ -304,12 +303,12 @@ klist(void)
" Issued", " Expires", " Principal (kvno)");
header = 0;
}
- strcpy_truncate(buf1, short_date(c.issue_date), sizeof(buf1));
+ strlcpy(buf1, short_date(c.issue_date), sizeof(buf1));
c.issue_date = krb_life_to_time(c.issue_date, c.lifetime);
if (time(0) < (unsigned long) c.issue_date)
- strcpy_truncate(buf2, short_date(c.issue_date), sizeof(buf2));
+ strlcpy(buf2, short_date(c.issue_date), sizeof(buf2));
else
- strcpy_truncate(buf2, ">>> Expired <<< ", sizeof(buf2));
+ strlcpy(buf2, ">>> Expired <<< ", sizeof(buf2));
lreply(200, "%s %s %s (%d)", buf1, buf2,
krb_unparse_name_long(c.service, c.instance, c.realm), c.kvno);
}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c b/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c
index d948a5a83eee..019cc2d17e02 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c
+++ b/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id: logwtmp.c,v 1.13 1999/03/01 09:49:37 joda Exp $");
+RCSID("$Id: logwtmp.c,v 1.14 1999/12/02 16:58:31 joda Exp $");
#endif
#include <stdio.h>
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ls.c b/crypto/kerberosIV/appl/ftp/ftpd/ls.c
new file mode 100644
index 000000000000..97eb77ed906d
--- /dev/null
+++ b/crypto/kerberosIV/appl/ftp/ftpd/ls.c
@@ -0,0 +1,572 @@
+/*
+ * Copyright (c) 1999 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of KTH nor the names of its contributors may be
+ * used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+#include "ftpd_locl.h"
+
+RCSID("$Id: ls.c,v 1.13 1999/11/20 20:49:41 assar Exp $");
+
+struct fileinfo {
+ struct stat st;
+ int inode;
+ int bsize;
+ char mode[11];
+ int n_link;
+ char *user;
+ char *group;
+ char *size;
+ char *major;
+ char *minor;
+ char *date;
+ char *filename;
+ char *link;
+};
+
+#define LS_DIRS 1
+#define LS_IGNORE_DOT 2
+#define LS_SORT_MODE 12
+#define SORT_MODE(f) ((f) & LS_SORT_MODE)
+#define LS_SORT_NAME 4
+#define LS_SORT_MTIME 8
+#define LS_SORT_SIZE 12
+#define LS_SORT_REVERSE 16
+
+#define LS_SIZE 32
+#define LS_INODE 64
+
+#ifndef S_ISTXT
+#define S_ISTXT S_ISVTX
+#endif
+
+#ifndef S_ISSOCK
+#define S_ISSOCK(mode) (((mode) & _S_IFMT) == S_IFSOCK)
+#endif
+
+#ifndef S_ISLNK
+#define S_ISLNK(mode) (((mode) & _S_IFMT) == S_IFLNK)
+#endif
+
+static void
+make_fileinfo(const char *filename, struct fileinfo *file, int flags)
+{
+ char buf[128];
+ struct stat *st = &file->st;
+
+ file->inode = st->st_ino;
+#ifdef S_BLKSIZE
+ file->bsize = st->st_blocks * S_BLKSIZE / 1024;
+#else
+ file->bsize = st->st_blocks * 512 / 1024;
+#endif
+
+ if(S_ISDIR(st->st_mode))
+ file->mode[0] = 'd';
+ else if(S_ISCHR(st->st_mode))
+ file->mode[0] = 'c';
+ else if(S_ISBLK(st->st_mode))
+ file->mode[0] = 'b';
+ else if(S_ISREG(st->st_mode))
+ file->mode[0] = '-';
+ else if(S_ISFIFO(st->st_mode))
+ file->mode[0] = 'p';
+ else if(S_ISLNK(st->st_mode))
+ file->mode[0] = 'l';
+ else if(S_ISSOCK(st->st_mode))
+ file->mode[0] = 's';
+#ifdef S_ISWHT
+ else if(S_ISWHT(st->st_mode))
+ file->mode[0] = 'w';
+#endif
+ else
+ file->mode[0] = '?';
+ {
+ char *x[] = { "---", "--x", "-w-", "-wx",
+ "r--", "r-x", "rw-", "rwx" };
+ strcpy(file->mode + 1, x[(st->st_mode & S_IRWXU) >> 6]);
+ strcpy(file->mode + 4, x[(st->st_mode & S_IRWXG) >> 3]);
+ strcpy(file->mode + 7, x[(st->st_mode & S_IRWXO) >> 0]);
+ if((st->st_mode & S_ISUID)) {
+ if((st->st_mode & S_IXUSR))
+ file->mode[3] = 's';
+ else
+ file->mode[3] = 'S';
+ }
+ if((st->st_mode & S_ISGID)) {
+ if((st->st_mode & S_IXGRP))
+ file->mode[6] = 's';
+ else
+ file->mode[6] = 'S';
+ }
+ if((st->st_mode & S_ISTXT)) {
+ if((st->st_mode & S_IXOTH))
+ file->mode[9] = 't';
+ else
+ file->mode[9] = 'T';
+ }
+ }
+ file->n_link = st->st_nlink;
+ {
+ struct passwd *pwd;
+ pwd = getpwuid(st->st_uid);
+ if(pwd == NULL)
+ asprintf(&file->user, "%u", (unsigned)st->st_uid);
+ else
+ file->user = strdup(pwd->pw_name);
+ }
+ {
+ struct group *grp;
+ grp = getgrgid(st->st_gid);
+ if(grp == NULL)
+ asprintf(&file->group, "%u", (unsigned)st->st_gid);
+ else
+ file->group = strdup(grp->gr_name);
+ }
+
+ if(S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode)) {
+#if defined(major) && defined(minor)
+ asprintf(&file->major, "%u", (unsigned)major(st->st_rdev));
+ asprintf(&file->minor, "%u", (unsigned)minor(st->st_rdev));
+#else
+ /* Don't want to use the DDI/DKI crap. */
+ asprintf(&file->major, "%u", (unsigned)st->st_rdev);
+ asprintf(&file->minor, "%u", 0);
+#endif
+ } else
+ asprintf(&file->size, "%lu", (unsigned long)st->st_size);
+
+ {
+ time_t t = time(NULL);
+ struct tm *tm = localtime(&st->st_mtime);
+ if((t - st->st_mtime > 6*30*24*60*60) ||
+ (st->st_mtime - t > 6*30*24*60*60))
+ strftime(buf, sizeof(buf), "%b %e %Y", tm);
+ else
+ strftime(buf, sizeof(buf), "%b %e %H:%M", tm);
+ file->date = strdup(buf);
+ }
+ {
+ const char *p = strrchr(filename, '/');
+ if(p)
+ p++;
+ else
+ p = filename;
+ file->filename = strdup(p);
+ }
+ if(S_ISLNK(st->st_mode)) {
+ int n;
+ n = readlink((char *)filename, buf, sizeof(buf));
+ if(n >= 0) {
+ buf[n] = '\0';
+ file->link = strdup(buf);
+ } else
+ warn("%s: readlink", filename);
+ }
+}
+
+static void
+print_file(FILE *out,
+ int flags,
+ struct fileinfo *f,
+ int max_inode,
+ int max_bsize,
+ int max_n_link,
+ int max_user,
+ int max_group,
+ int max_size,
+ int max_major,
+ int max_minor,
+ int max_date)
+{
+ if(f->filename == NULL)
+ return;
+
+ if(flags & LS_INODE) {
+ sec_fprintf2(out, "%*d", max_inode, f->inode);
+ sec_fprintf2(out, " ");
+ }
+ if(flags & LS_SIZE) {
+ sec_fprintf2(out, "%*d", max_bsize, f->bsize);
+ sec_fprintf2(out, " ");
+ }
+ sec_fprintf2(out, "%s", f->mode);
+ sec_fprintf2(out, " ");
+ sec_fprintf2(out, "%*d", max_n_link, f->n_link);
+ sec_fprintf2(out, " ");
+ sec_fprintf2(out, "%-*s", max_user, f->user);
+ sec_fprintf2(out, " ");
+ sec_fprintf2(out, "%-*s", max_group, f->group);
+ sec_fprintf2(out, " ");
+ if(f->major != NULL && f->minor != NULL)
+ sec_fprintf2(out, "%*s, %*s", max_major, f->major, max_minor, f->minor);
+ else
+ sec_fprintf2(out, "%*s", max_size, f->size);
+ sec_fprintf2(out, " ");
+ sec_fprintf2(out, "%*s", max_date, f->date);
+ sec_fprintf2(out, " ");
+ sec_fprintf2(out, "%s", f->filename);
+ if(f->link)
+ sec_fprintf2(out, " -> %s", f->link);
+ sec_fprintf2(out, "\r\n");
+}
+
+static int
+compare_filename(struct fileinfo *a, struct fileinfo *b)
+{
+ if(a->filename == NULL)
+ return 1;
+ if(b->filename == NULL)
+ return -1;
+ return strcmp(a->filename, b->filename);
+}
+
+static int
+compare_mtime(struct fileinfo *a, struct fileinfo *b)
+{
+ if(a->filename == NULL)
+ return 1;
+ if(b->filename == NULL)
+ return -1;
+ return a->st.st_mtime - b->st.st_mtime;
+}
+
+static int
+compare_size(struct fileinfo *a, struct fileinfo *b)
+{
+ if(a->filename == NULL)
+ return 1;
+ if(b->filename == NULL)
+ return -1;
+ return a->st.st_size - b->st.st_size;
+}
+
+static void
+list_dir(FILE *out, const char *directory, int flags);
+
+static int
+log10(int num)
+{
+ int i = 1;
+ while(num > 10) {
+ i++;
+ num /= 10;
+ }
+ return i;
+}
+
+/*
+ * Operate as lstat but fake up entries for AFS mount points so we don't
+ * have to fetch them.
+ */
+
+static int
+lstat_file (const char *file, struct stat *sb)
+{
+#ifdef KRB4
+ if (k_hasafs()
+ && strcmp(file, ".")
+ && strcmp(file, ".."))
+ {
+ struct ViceIoctl a_params;
+ char *last;
+ char *path_bkp;
+ static ino_t ino_counter = 0, ino_last = 0;
+ int ret;
+ const int maxsize = 2048;
+
+ path_bkp = strdup (file);
+ if (path_bkp == NULL)
+ return -1;
+
+ a_params.out = malloc (maxsize);
+ if (a_params.out == NULL) {
+ free (path_bkp);
+ return -1;
+ }
+
+ /* If path contains more than the filename alone - split it */
+
+ last = strrchr (path_bkp, '/');
+ if (last != NULL) {
+ *last = '\0';
+ a_params.in = last + 1;
+ } else
+ a_params.in = (char *)file;
+
+ a_params.in_size = strlen (a_params.in) + 1;
+ a_params.out_size = maxsize;
+
+ ret = k_pioctl (last ? path_bkp : "." ,
+ VIOC_AFS_STAT_MT_PT, &a_params, 0);
+ free (a_params.out);
+ if (ret < 0) {
+ free (path_bkp);
+
+ if (errno != EINVAL)
+ return ret;
+ else
+ /* if we get EINVAL this is probably not a mountpoint */
+ return lstat (file, sb);
+ }
+
+ /*
+ * wow this was a mountpoint, lets cook the struct stat
+ * use . as a prototype
+ */
+
+ ret = lstat (path_bkp, sb);
+ free (path_bkp);
+ if (ret < 0)
+ return ret;
+
+ if (ino_last == sb->st_ino)
+ ino_counter++;
+ else {
+ ino_last = sb->st_ino;
+ ino_counter = 0;
+ }
+ sb->st_ino += ino_counter;
+ sb->st_nlink = 3;
+
+ return 0;
+ }
+#endif /* KRB4 */
+ return lstat (file, sb);
+}
+
+static void
+list_files(FILE *out, char **files, int n_files, int flags)
+{
+ struct fileinfo *fi;
+ int i;
+
+ fi = calloc(n_files, sizeof(*fi));
+ if (fi == NULL) {
+ sec_fprintf2(out, "ouf of memory\r\n");
+ return;
+ }
+ for(i = 0; i < n_files; i++) {
+ if(lstat_file(files[i], &fi[i].st) < 0) {
+ sec_fprintf2(out, "%s: %s\r\n", files[i], strerror(errno));
+ fi[i].filename = NULL;
+ } else {
+ if((flags & LS_DIRS) == 0 && S_ISDIR(fi[i].st.st_mode)) {
+ if(n_files > 1)
+ sec_fprintf2(out, "%s:\r\n", files[i]);
+ list_dir(out, files[i], flags);
+ } else {
+ make_fileinfo(files[i], &fi[i], flags);
+ }
+ }
+ }
+ switch(SORT_MODE(flags)) {
+ case LS_SORT_NAME:
+ qsort(fi, n_files, sizeof(*fi),
+ (int (*)(const void*, const void*))compare_filename);
+ break;
+ case LS_SORT_MTIME:
+ qsort(fi, n_files, sizeof(*fi),
+ (int (*)(const void*, const void*))compare_mtime);
+ break;
+ case LS_SORT_SIZE:
+ qsort(fi, n_files, sizeof(*fi),
+ (int (*)(const void*, const void*))compare_size);
+ break;
+ }
+ {
+ int max_inode = 0;
+ int max_bsize = 0;
+ int max_n_link = 0;
+ int max_user = 0;
+ int max_group = 0;
+ int max_size = 0;
+ int max_major = 0;
+ int max_minor = 0;
+ int max_date = 0;
+ for(i = 0; i < n_files; i++) {
+ if(fi[i].filename == NULL)
+ continue;
+ if(fi[i].inode > max_inode)
+ max_inode = fi[i].inode;
+ if(fi[i].bsize > max_bsize)
+ max_bsize = fi[i].bsize;
+ if(fi[i].n_link > max_n_link)
+ max_n_link = fi[i].n_link;
+ if(strlen(fi[i].user) > max_user)
+ max_user = strlen(fi[i].user);
+ if(strlen(fi[i].group) > max_group)
+ max_group = strlen(fi[i].group);
+ if(fi[i].major != NULL && strlen(fi[i].major) > max_major)
+ max_major = strlen(fi[i].major);
+ if(fi[i].minor != NULL && strlen(fi[i].minor) > max_minor)
+ max_minor = strlen(fi[i].minor);
+ if(fi[i].size != NULL && strlen(fi[i].size) > max_size)
+ max_size = strlen(fi[i].size);
+ if(strlen(fi[i].date) > max_date)
+ max_date = strlen(fi[i].date);
+ }
+ if(max_size < max_major + max_minor + 2)
+ max_size = max_major + max_minor + 2;
+ else if(max_size - max_minor - 2 > max_major)
+ max_major = max_size - max_minor - 2;
+ max_inode = log10(max_inode);
+ max_bsize = log10(max_bsize);
+ max_n_link = log10(max_n_link);
+
+ if(flags & LS_SORT_REVERSE)
+ for(i = n_files - 1; i >= 0; i--)
+ print_file(out,
+ flags,
+ &fi[i],
+ max_inode,
+ max_bsize,
+ max_n_link,
+ max_user,
+ max_group,
+ max_size,
+ max_major,
+ max_minor,
+ max_date);
+ else
+ for(i = 0; i < n_files; i++)
+ print_file(out,
+ flags,
+ &fi[i],
+ max_inode,
+ max_bsize,
+ max_n_link,
+ max_user,
+ max_group,
+ max_size,
+ max_major,
+ max_minor,
+ max_date);
+ }
+}
+
+static void
+free_files (char **files, int n)
+{
+ int i;
+
+ for (i = 0; i < n; ++i)
+ free (files[i]);
+ free (files);
+}
+
+static void
+list_dir(FILE *out, const char *directory, int flags)
+{
+ DIR *d = opendir(directory);
+ struct dirent *ent;
+ char **files = NULL;
+ int n_files = 0;
+
+ if(d == NULL) {
+ sec_fprintf2(out, "%s: %s\r\n", directory, strerror(errno));
+ return;
+ }
+ while((ent = readdir(d)) != NULL) {
+ void *tmp;
+
+ if(ent->d_name[0] == '.') {
+ if (flags & LS_IGNORE_DOT)
+ continue;
+ if (ent->d_name[1] == 0) /* Ignore . */
+ continue;
+ if (ent->d_name[1] == '.' && ent->d_name[2] == 0) /* Ignore .. */
+ continue;
+ }
+ tmp = realloc(files, (n_files + 1) * sizeof(*files));
+ if (tmp == NULL) {
+ sec_fprintf2(out, "%s: out of memory\r\n", directory);
+ free_files (files, n_files);
+ closedir (d);
+ return;
+ }
+ files = tmp;
+ asprintf(&files[n_files], "%s/%s", directory, ent->d_name);
+ if (files[n_files] == NULL) {
+ sec_fprintf2(out, "%s: out of memory\r\n", directory);
+ free_files (files, n_files);
+ closedir (d);
+ return;
+ }
+ ++n_files;
+ }
+ closedir(d);
+ list_files(out, files, n_files, flags | LS_DIRS);
+}
+
+void
+builtin_ls(FILE *out, const char *file)
+{
+ int flags = LS_SORT_NAME;
+
+ if(*file == '-') {
+ const char *p;
+ for(p = file + 1; *p; p++) {
+ switch(*p) {
+ case 'a':
+ case 'A':
+ flags &= ~LS_IGNORE_DOT;
+ break;
+ case 'C':
+ break;
+ case 'd':
+ flags |= LS_DIRS;
+ break;
+ case 'f':
+ flags = (flags & ~LS_SORT_MODE);
+ break;
+ case 'i':
+ flags |= flags | LS_INODE;
+ break;
+ case 'l':
+ break;
+ case 't':
+ flags = (flags & ~LS_SORT_MODE) | LS_SORT_MTIME;
+ break;
+ case 's':
+ flags |= LS_SIZE;
+ break;
+ case 'S':
+ flags = (flags & ~LS_SORT_MODE) | LS_SORT_SIZE;
+ break;
+ case 'r':
+ flags |= LS_SORT_REVERSE;
+ break;
+ }
+ }
+ file = ".";
+ }
+ list_files(out, &file, 1, flags);
+ sec_fflush(out);
+}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/popen.c b/crypto/kerberosIV/appl/ftp/ftpd/popen.c
index 4bd5e04943f3..5f36813a195b 100644
--- a/crypto/kerberosIV/appl/ftp/ftpd/popen.c
+++ b/crypto/kerberosIV/appl/ftp/ftpd/popen.c
@@ -37,7 +37,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id: popen.c,v 1.18 1998/06/09 19:24:24 joda Exp $");
+RCSID("$Id: popen.c,v 1.19 1999/09/16 20:38:45 assar Exp $");
#endif
#include <sys/types.h>
@@ -89,10 +89,10 @@ ftp_rooted(const char *path)
if(!home[0])
if((pwd = k_getpwnam("ftp")))
- strcpy_truncate(home, pwd->pw_dir, sizeof(home));
+ strlcpy(home, pwd->pw_dir, sizeof(home));
snprintf(newpath, sizeof(newpath), "%s/%s", home, path);
if(access(newpath, X_OK))
- strcpy_truncate(newpath, path, sizeof(newpath));
+ strlcpy(newpath, path, sizeof(newpath));
return newpath;
}
diff --git a/crypto/kerberosIV/appl/kauth/ChangeLog b/crypto/kerberosIV/appl/kauth/ChangeLog
index ad849a298b31..a770682f713b 100644
--- a/crypto/kerberosIV/appl/kauth/ChangeLog
+++ b/crypto/kerberosIV/appl/kauth/ChangeLog
@@ -1,3 +1,9 @@
+1999-08-31 Johan Danielsson <joda@pdc.kth.se>
+
+ * kauth.c: cleanup usage string; handle `kauth -h' gracefully
+ (print usage); add `-a' flag to get the ticket address (useful for
+ firewall configurations)
+
Thu Apr 15 15:05:33 1999 Johan Danielsson <joda@hella.pdc.kth.se>
* kauth.c: add `-v'
diff --git a/crypto/kerberosIV/appl/kauth/encdata.c b/crypto/kerberosIV/appl/kauth/encdata.c
index 800326a4fc83..886f5490bad8 100644
--- a/crypto/kerberosIV/appl/kauth/encdata.c
+++ b/crypto/kerberosIV/appl/kauth/encdata.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kauth.h"
-RCSID("$Id: encdata.c,v 1.9 1997/04/01 08:17:30 joda Exp $");
+RCSID("$Id: encdata.c,v 1.10 1999/12/02 16:58:31 joda Exp $");
int
write_encrypted (int fd, void *buf, size_t len, des_key_schedule schedule,
diff --git a/crypto/kerberosIV/appl/kauth/kauth.c b/crypto/kerberosIV/appl/kauth/kauth.c
index ae5454efbed5..13448a040dda 100644
--- a/crypto/kerberosIV/appl/kauth/kauth.c
+++ b/crypto/kerberosIV/appl/kauth/kauth.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -46,7 +41,7 @@
#include "kauth.h"
-RCSID("$Id: kauth.c,v 1.92 1999/06/29 21:19:35 bg Exp $");
+RCSID("$Id: kauth.c,v 1.97 1999/12/02 16:58:31 joda Exp $");
krb_principal princ;
static char srvtab[MaxPathLen];
@@ -59,11 +54,16 @@ static void
usage(void)
{
fprintf(stderr,
- "Usage: %s -n <name> [-r remoteuser] [-t remote ticketfile] "
- "[-l lifetime (in minutes) ] [-f srvtab ] "
- "[-c AFS cell name ] [-h hosts... [--]] [command ... ]\n",
- __progname);
- fprintf(stderr, "\nA fully qualified name can be given user[.instance][@realm]\nRealm is converted to uppercase!\n");
+ "Usage:\n"
+ " %s [name]\n"
+ "or\n"
+ " %s [-ad] [-n name] [-r remoteuser] [-t remote ticketfile]\n"
+ " [-l lifetime (in minutes) ] [-f srvtab ] [-c AFS cell name ]\n"
+ " [-h hosts... [--]] [command ... ]\n\n",
+ __progname, __progname);
+ fprintf(stderr,
+ "A fully qualified name can be given: user[.instance][@realm]\n"
+ "Realm is converted to uppercase!\n");
exit(1);
}
@@ -139,6 +139,56 @@ key_to_key(const char *user,
return 0;
}
+static int
+get_ticket_address(krb_principal *princ, des_cblock *key)
+{
+ int code;
+ unsigned char flags;
+ krb_principal service;
+ u_int32_t addr;
+ struct in_addr addr2;
+ des_cblock session;
+ int life;
+ u_int32_t time_sec;
+ des_key_schedule schedule;
+ CREDENTIALS c;
+
+ code = get_ad_tkt(princ->name, princ->instance, princ->realm, 0);
+ if(code) {
+ warnx("get_ad_tkt: %s\n", krb_get_err_text(code));
+ return code;
+ }
+ code = krb_get_cred(princ->name, princ->instance, princ->realm, &c);
+ if(code) {
+ warnx("krb_get_cred: %s\n", krb_get_err_text(code));
+ return code;
+ }
+
+ des_set_key(key, schedule);
+ code = decomp_ticket(&c.ticket_st,
+ &flags,
+ princ->name,
+ princ->instance,
+ princ->realm,
+ &addr,
+ session,
+ &life,
+ &time_sec,
+ service.name,
+ service.instance,
+ key,
+ schedule);
+ if(code) {
+ warnx("decomp_ticket: %s\n", krb_get_err_text(code));
+ return code;
+ }
+ memset(&session, 0, sizeof(session));
+ memset(schedule, 0, sizeof(schedule));
+ addr2.s_addr = addr;
+ fprintf(stdout, "ticket address = %s\n", inet_ntoa(addr2));
+}
+
+
int
main(int argc, char **argv)
{
@@ -147,6 +197,7 @@ main(int argc, char **argv)
int c;
char *file;
int pflag = 0;
+ int aflag = 0;
int version_flag = 0;
char passwd[100];
des_cblock key;
@@ -174,20 +225,24 @@ main(int argc, char **argv)
strupr(princ.realm);
}
- while ((c = getopt(argc, argv, "r:t:f:hdl:n:c:v")) != EOF)
+ while ((c = getopt(argc, argv, "ar:t:f:hdl:n:c:v")) != -1)
switch (c) {
+ case 'a':
+ aflag++;
+ break;
case 'd':
krb_enable_debug();
_kafs_debug = 1;
+ aflag++;
break;
case 'f':
- strcpy_truncate(srvtab, optarg, sizeof(srvtab));
+ strlcpy(srvtab, optarg, sizeof(srvtab));
break;
case 't':
- strcpy_truncate(remote_tktfile, optarg, sizeof(remote_tktfile));
+ strlcpy(remote_tktfile, optarg, sizeof(remote_tktfile));
break;
case 'r':
- strcpy_truncate(remoteuser, optarg, sizeof(remoteuser));
+ strlcpy(remoteuser, optarg, sizeof(remoteuser));
break;
case 'l':
lifetime = atoi(optarg);
@@ -215,6 +270,8 @@ main(int argc, char **argv)
host = argv + optind;
for(nhost = 0; optind < argc && *argv[optind] != '-'; ++optind)
++nhost;
+ if(nhost == 0)
+ usage();
break;
case 'v':
version_flag++;
@@ -238,24 +295,22 @@ main(int argc, char **argv)
/* With root tickets assume remote user is root */
if (*remoteuser == '\0') {
if (strcmp(princ.instance, "root") == 0)
- strcpy_truncate(remoteuser, princ.instance, sizeof(remoteuser));
+ strlcpy(remoteuser, princ.instance, sizeof(remoteuser));
else
- strcpy_truncate(remoteuser, princ.name, sizeof(remoteuser));
+ strlcpy(remoteuser, princ.name, sizeof(remoteuser));
}
more_args = argc - optind;
if (princ.realm[0] == '\0')
if (krb_get_lrealm(princ.realm, 1) != KSUCCESS)
- strcpy_truncate(princ.realm, KRB_REALM, REALM_SZ);
+ strlcpy(princ.realm, KRB_REALM, REALM_SZ);
if (more_args) {
int f;
do{
- snprintf(tf, sizeof(tf),
- TKT_ROOT "%u_%u",
- (unsigned)getuid(),
+ snprintf(tf, sizeof(tf), "%s%u_%u", TKT_ROOT, (unsigned)getuid(),
(unsigned)(getpid()*time(0)));
f = open(tf, O_CREAT|O_EXCL|O_RDWR);
}while(f < 0);
@@ -297,6 +352,9 @@ main(int argc, char **argv)
errx (1, "%s", krb_get_err_text(code));
}
+ if(aflag)
+ get_ticket_address(&princ, &key);
+
if (k_hasafs()) {
if (more_args)
k_setpag();
diff --git a/crypto/kerberosIV/appl/kauth/kauth.h b/crypto/kerberosIV/appl/kauth/kauth.h
index c5a451711264..32243c7d4333 100644
--- a/crypto/kerberosIV/appl/kauth/kauth.h
+++ b/crypto/kerberosIV/appl/kauth/kauth.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: kauth.h,v 1.20 1998/06/13 00:06:45 assar Exp $ */
+/* $Id: kauth.h,v 1.21 1999/12/02 16:58:31 joda Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/crypto/kerberosIV/appl/kauth/kauthd.c b/crypto/kerberosIV/appl/kauth/kauthd.c
index 0018a13f9bdd..8dae4d0a45c5 100644
--- a/crypto/kerberosIV/appl/kauth/kauthd.c
+++ b/crypto/kerberosIV/appl/kauth/kauthd.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kauth.h"
-RCSID("$Id: kauthd.c,v 1.24 1999/06/29 21:19:35 bg Exp $");
+RCSID("$Id: kauthd.c,v 1.25 1999/12/02 16:58:31 joda Exp $");
krb_principal princ;
static char locuser[SNAME_SZ];
diff --git a/crypto/kerberosIV/appl/kauth/marshall.c b/crypto/kerberosIV/appl/kauth/marshall.c
index dc28ae540575..e37b8c969c81 100644
--- a/crypto/kerberosIV/appl/kauth/marshall.c
+++ b/crypto/kerberosIV/appl/kauth/marshall.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kauth.h"
-RCSID("$Id: marshall.c,v 1.8 1998/06/09 19:24:26 joda Exp $");
+RCSID("$Id: marshall.c,v 1.10 1999/12/02 16:58:31 joda Exp $");
int
pack_args (char *buf,
@@ -104,28 +99,28 @@ unpack_args (const char *buf, krb_principal *pr, int *lifetime,
len = strlen(buf);
if (len >= SNAME_SZ)
return -1;
- strcpy_truncate (pr->name, buf, ANAME_SZ);
+ strlcpy (pr->name, buf, ANAME_SZ);
buf += len + 1;
len = strlen (buf);
if (len >= INST_SZ)
return -1;
- strcpy_truncate (pr->instance, buf, INST_SZ);
+ strlcpy (pr->instance, buf, INST_SZ);
buf += len + 1;
len = strlen (buf);
if (len >= REALM_SZ)
return -1;
- strcpy_truncate (pr->realm, buf, REALM_SZ);
+ strlcpy (pr->realm, buf, REALM_SZ);
buf += len + 1;
*lifetime = (unsigned char)*buf++;
len = strlen(buf);
if (len >= SNAME_SZ)
return -1;
- strcpy_truncate (locuser, buf, SNAME_SZ);
+ strlcpy (locuser, buf, SNAME_SZ);
buf += len + 1;
len = strlen(buf);
if (len >= MaxPathLen)
return -1;
- strcpy_truncate (tktfile, buf, MaxPathLen);
+ strlcpy (tktfile, buf, MaxPathLen);
buf += len + 1;
return 0;
}
diff --git a/crypto/kerberosIV/appl/kauth/rkinit.c b/crypto/kerberosIV/appl/kauth/rkinit.c
index d736ddc79cf7..cac62c93444a 100644
--- a/crypto/kerberosIV/appl/kauth/rkinit.c
+++ b/crypto/kerberosIV/appl/kauth/rkinit.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kauth.h"
-RCSID("$Id: rkinit.c,v 1.21 1998/06/09 19:24:26 joda Exp $");
+RCSID("$Id: rkinit.c,v 1.22.2.1 1999/12/06 17:27:56 assar Exp $");
static struct in_addr *
getalladdrs (char *hostname, unsigned *count)
@@ -113,6 +108,15 @@ doit_host (krb_principal *princ, int lifetime, char *locuser,
return 1;
}
+ if (krb_get_config_bool("nat_in_use")) {
+ struct in_addr natAddr;
+
+ if (krb_get_our_ip_for_realm(krb_realmofhost(hostname),
+ &natAddr) == KSUCCESS
+ || krb_get_our_ip_for_realm (NULL, &natAddr) == KSUCCESS)
+ thisaddr.sin_addr = natAddr;
+ }
+
status = krb_sendauth (KOPT_DO_MUTUAL, s, &text, "rcmd",
hostname, krb_realmofhost (hostname),
getpid(), &msg, &cred, schedule,
diff --git a/crypto/kerberosIV/appl/kip/common.c b/crypto/kerberosIV/appl/kip/common.c
index b21d03dc866c..c97fe9fb2122 100644
--- a/crypto/kerberosIV/appl/kip/common.c
+++ b/crypto/kerberosIV/appl/kip/common.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kip.h"
-RCSID("$Id: common.c,v 1.12 1997/05/02 14:28:06 assar Exp $");
+RCSID("$Id: common.c,v 1.13 1999/12/02 16:58:31 joda Exp $");
/*
* Copy packets from `tundev' to `netdev' or vice versa.
diff --git a/crypto/kerberosIV/appl/kip/kip.c b/crypto/kerberosIV/appl/kip/kip.c
index 990583b49c43..667a8d856a5c 100644
--- a/crypto/kerberosIV/appl/kip/kip.c
+++ b/crypto/kerberosIV/appl/kip/kip.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kip.h"
-RCSID("$Id: kip.c,v 1.17 1998/05/01 05:20:11 assar Exp $");
+RCSID("$Id: kip.c,v 1.18 1999/12/02 16:58:31 joda Exp $");
static void
usage(void)
diff --git a/crypto/kerberosIV/appl/kip/kip.h b/crypto/kerberosIV/appl/kip/kip.h
index ed9874ac9488..dc748dffa79a 100644
--- a/crypto/kerberosIV/appl/kip/kip.h
+++ b/crypto/kerberosIV/appl/kip/kip.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: kip.h,v 1.17 1997/12/14 23:57:21 assar Exp $ */
+/* $Id: kip.h,v 1.18 1999/12/02 16:58:31 joda Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
diff --git a/crypto/kerberosIV/appl/kip/kipd.c b/crypto/kerberosIV/appl/kip/kipd.c
index 6990d058fb8a..429f815e6a1d 100644
--- a/crypto/kerberosIV/appl/kip/kipd.c
+++ b/crypto/kerberosIV/appl/kip/kipd.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#include "kip.h"
-RCSID("$Id: kipd.c,v 1.15 1999/03/10 18:33:24 joda Exp $");
+RCSID("$Id: kipd.c,v 1.16 1999/12/02 16:58:31 joda Exp $");
static int
fatal (int fd, char *s)
diff --git a/crypto/kerberosIV/appl/push/ChangeLog b/crypto/kerberosIV/appl/push/ChangeLog
new file mode 100644
index 000000000000..a55954d66a5a
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/ChangeLog
@@ -0,0 +1,135 @@
+1999-11-13 Assar Westerlund <assar@sics.se>
+
+ * push.c: make `-v' a arg_counter
+
+1999-11-02 Assar Westerlund <assar@sics.se>
+
+ * push.c (main): redo the v4/v5 selection for consistency. -4 ->
+ try only v4 -5 -> try only v5 none, -45 -> try v5, v4
+
+1999-08-19 Assar Westerlund <assar@sics.se>
+
+ * push.c (doit): remember to step over the error message when we
+ discover that XDELE is not supported
+
+1999-08-12 Johan Danielsson <joda@pdc.kth.se>
+
+ * push.c: use XDELE
+
+1999-08-05 Assar Westerlund <assar@sics.se>
+
+ * push.c (do_connect): v6-ify
+
+1999-06-15 Assar Westerlund <assar@sics.se>
+
+ * push.c: get_default_username and the resulting const propagation
+
+1999-05-21 Assar Westerlund <assar@sics.se>
+
+ * push.c (parse_pobox): try $USERNAME
+
+1999-05-11 Assar Westerlund <assar@sics.se>
+
+ * push.c (do_v5): remove unused and non-working code
+
+1999-05-10 Assar Westerlund <assar@sics.se>
+
+ * push.c (do_v5): call krb5_sendauth with ccache == NULL
+
+Wed Apr 7 23:40:00 1999 Assar Westerlund <assar@sics.se>
+
+ * Makefile.in: fix names of hesiod variables
+
+Wed Mar 24 04:37:04 1999 Assar Westerlund <assar@sics.se>
+
+ * Makefile.am (pfrom): fix typo
+
+ * push.c (get_pobox): try to handle old and new hesiod APIs
+
+Mon Mar 22 22:19:40 1999 Assar Westerlund <assar@sics.se>
+
+ * Makefile.am: hesoid -> hesiod
+
+Sun Mar 21 18:02:10 1999 Johan Danielsson <joda@hella.pdc.kth.se>
+
+ * Makefile.am: bindir -> libexecdir
+
+Sat Mar 20 00:12:26 1999 Assar Westerlund <assar@sics.se>
+
+ * Makefile.am: LDADD: add missing backslash
+
+Thu Mar 18 15:28:35 1999 Johan Danielsson <joda@hella.pdc.kth.se>
+
+ * Makefile.am: clean pfrom
+
+ * Makefile.am: include Makefile.am.common
+
+Mon Mar 15 18:26:16 1999 Johan Danielsson <joda@blubb.pdc.kth.se>
+
+ * push.c: strncasecmp headers
+
+Mon Feb 15 22:22:09 1999 Assar Westerlund <assar@sics.se>
+
+ * Makefile.in (pfrom): use libexecdir
+
+ * Makefile.am: build and install pfrom
+
+ * push.c (do_connect): init `s'
+ (pop_state): spell-check enums
+
+Tue Nov 24 23:20:54 1998 Assar Westerlund <assar@sics.se>
+
+ * Makefile.in: build and install pfrom
+
+ * pfrom.in: bindir -> libexecdir
+
+Sun Nov 22 15:33:52 1998 Johan Danielsson <joda@hella.pdc.kth.se>
+
+ * push.c: eliminate some warnings
+
+Sun Nov 22 10:34:54 1998 Assar Westerlund <assar@sics.se>
+
+ * Makefile.in (WFLAGS): set
+
+Thu Nov 19 01:17:33 1998 Assar Westerlund <assar@sics.se>
+
+ * push_locl.h: add <hesiod.h>
+
+ * Makefile.am, Makefile.in: link and include hesiod
+
+ * push.c (get_pobox): new function. add hesiod support.
+
+1998-11-07 Assar Westerlund <assar@sics.se>
+
+ * push.8: updated
+
+ * push.c: --from implementation from <lha@stacken.kth.se>
+
+Fri Jul 10 01:14:45 1998 Assar Westerlund <assar@sics.se>
+
+ * push.c (net_{read,write}): remove
+
+Wed Jun 24 14:41:41 1998 Johan Danielsson <joda@blubb.pdc.kth.se>
+
+ * push.c: allow `po:user@host' mailbox syntax
+
+Tue Jun 2 17:35:06 1998 Johan Danielsson <joda@emma.pdc.kth.se>
+
+ * push.c: quote '^From ' properly
+
+Mon May 25 05:22:47 1998 Assar Westerlund <assar@sics.se>
+
+ * Makefile.in (clean): PROGS -> PROGRAMS
+
+Sun Apr 26 11:42:13 1998 Assar Westerlund <assar@sics.se>
+
+ * push.c (main): better default for v4 and v5
+
+ * push.c (main): init context correctly
+
+ * push.c: should work with krb4
+
+ * push_locl.h: krb4 compat
+
+ * Makefile.in: new file
+
diff --git a/crypto/kerberosIV/appl/push/Makefile.am b/crypto/kerberosIV/appl/push/Makefile.am
new file mode 100644
index 000000000000..07ecd0ad9802
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/Makefile.am
@@ -0,0 +1,27 @@
+# $Id: Makefile.am,v 1.15 1999/04/09 18:29:48 assar Exp $
+
+include $(top_srcdir)/Makefile.am.common
+
+INCLUDES += $(INCLUDE_krb4) $(INCLUDE_hesiod)
+
+bin_SCRIPTS = pfrom
+
+libexec_PROGRAMS = push
+
+push_SOURCES = push.c push_locl.h
+
+pfrom: pfrom.in
+ sed -e "s!%libexecdir%!$(libexecdir)!" $(srcdir)/pfrom.in > $@
+ chmod +x $@
+
+man_MANS = push.8
+
+CLEANFILES = pfrom
+
+EXTRA_DIST = pfrom.in $(man_MANS)
+
+LDADD = $(LIB_krb5) \
+ $(LIB_krb4) \
+ $(top_builddir)/lib/des/libdes.la \
+ $(LIB_roken) \
+ $(LIB_hesiod)
diff --git a/crypto/kerberosIV/appl/push/Makefile.in b/crypto/kerberosIV/appl/push/Makefile.in
new file mode 100644
index 000000000000..87da6cfab337
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/Makefile.in
@@ -0,0 +1,95 @@
+# $Id: Makefile.in,v 1.10 1999/04/07 18:39:56 assar Exp $
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+CC = @CC@
+LINK = @LINK@
+RANLIB = @RANLIB@
+DEFS = @DEFS@ @INCLUDE_hesiod@
+CFLAGS = @CFLAGS@ $(WFLAGS)
+WFLAGS = @WFLAGS@
+LD_FLAGS = @LD_FLAGS@
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+LIBS = @LIB_hesiod@ @LIBS@
+LIB_DBM = @LIB_DBM@
+MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+libdir = @libdir@
+libexecdir = @libexecdir@
+bindir = @bindir@
+transform=@program_transform_name@
+EXECSUFFIX=@EXECSUFFIX@
+
+bin_PROGRAMS = pfrom
+
+libexec_PROGRAMS = push$(EXECSUFFIX)
+
+PROGRAMS = $(libexec_PROGRAMS) $(bin_PROGRAMS)
+
+push_SOURCES = push.c
+
+push_OBJECTS = push.o
+
+SOURCES = $(push_SOURCES)
+
+OBJECTS = $(push_OBJECTS)
+
+all: $(PROGRAMS)
+
+.c.o:
+ $(CC) -c $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(CPPFLAGS) $<
+
+install: all
+ $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+ for x in $(bin_PROGRAMS); do \
+ $(INSTALL_PROGRAM) $$x $(DESTDIR)$(bindir)/`echo $$x | sed '$(transform)'`; \
+ done
+ $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir)
+ for x in $(libexec_PROGRAMS); do \
+ $(INSTALL_PROGRAM) $$x $(DESTDIR)$(libexecdir)/`echo $$x | sed '$(transform)'`; \
+ done
+
+uninstall:
+ for x in $(bin_PROGRAMS); do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$x | sed '$(transform)'`; \
+ done
+ for x in $(libexec_PROGRAMS); do \
+ rm -f $(DESTDIR)$(libexecdir)/`echo $$x | sed '$(transform)'`; \
+ done
+
+TAGS: $(SOURCES)
+ etags $(SOURCES)
+
+check:
+
+clean:
+ rm -f *.a *.o $(PROGRAMS)
+
+mostlyclean: clean
+
+distclean: clean
+ rm -f Makefile *~
+
+realclean: distclean
+ rm -f TAGS
+
+KLIB=-L../../lib/krb -lkrb -L../../lib/des -ldes
+LIBROKEN=-L../../lib/roken -lroken
+
+push$(EXECSUFFIX): $(push_OBJECTS)
+ $(LINK) $(LD_FLAGS) $(LDFLAGS) -o $@ $(push_OBJECTS) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
+
+pfrom: pfrom.in
+ sed -e "s!%libexecdir%!$(libexecdir)!" $(srcdir)/pfrom.in > $@
+ chmod +x $@
+
+$(OBJECTS): ../../include/config.h
+
+.PHONY: all install uninstall check clean mostlyclean distclean realclean
diff --git a/crypto/kerberosIV/appl/push/pfrom.in b/crypto/kerberosIV/appl/push/pfrom.in
new file mode 100644
index 000000000000..6adf4f0f7971
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/pfrom.in
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id: pfrom.in,v 1.2 1998/11/24 13:25:47 assar Exp $
+libexecdir=%libexecdir%
+PATH=$libexecdir:$PATH
+export PATH
+push --from $*
diff --git a/crypto/kerberosIV/appl/push/push.8 b/crypto/kerberosIV/appl/push/push.8
new file mode 100644
index 000000000000..5066b375cfb7
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/push.8
@@ -0,0 +1,138 @@
+.\" $Id: push.8,v 1.3.16.1 1999/12/06 17:25:27 assar Exp $
+.\"
+.Dd May 31, 1998
+.Dt PUSH 8
+.Os HEIMDAL
+.Sh NAME
+.Nm push
+.Nd
+fetch mail via POP
+.Sh SYNOPSIS
+.Nm
+.Op Fl 4 | Fl -krb4
+.Op Fl 5 | Fl -krb5
+.Op Fl v | Fl -verbose
+.Op Fl f | Fl -fork
+.Op Fl l | -leave
+.Op Fl -from
+.Op Fl c | -count
+.Op Fl -header
+.Oo Fl p Ar port-spec \*(Ba Xo
+.Fl -port= Ns Ar port-spec Oc
+.Xc
+.Ar po-box
+.Pa filename
+.Sh DESCRIPTION
+.Nm
+retrieves mail from the post office box
+.Ar po-box ,
+and stores the mail in mbox format in
+.Pa filename .
+The
+.Ar po-box
+can have any of the following formats:
+.Bl -hang -compact -offset indent
+.It Ql hostname:username
+.It Ql po:hostname:username
+.It Ql username@hostname
+.It Ql po:username@hostname
+.It Ql hostname
+.It Ql po:username
+.El
+
+If no username is specified,
+.Nm
+assumes that it's the same as on the local machine;
+.Ar hostname
+defaults to the value of the
+.Ev MAILHOST
+environment variable.
+
+Supported options:
+.Bl -tag -width Ds
+.It Xo
+.Fl 4 Ns ,
+.Fl -krb4
+.Xc
+use Kerberos 4 (if compiled with support for Kerberos 4)
+.It Xo
+.Fl 5 Ns ,
+.Fl -krb5
+.Xc
+use Kerberos 5 (if compiled with support for Kerberos 5)
+.It Xo
+.Fl f Ns ,
+.Fl -fork
+.Xc
+fork before starting to delete messages
+.It Xo
+.Fl l Ns ,
+.Fl -leave
+.Xc
+don't delete fetched mail
+.It Xo
+.Fl -from
+.Xc
+behave like from.
+.It Xo
+.Fl c Ns ,
+.Fl -count
+.Xc
+first print how many messages and bytes there are.
+.It Xo
+.Fl -header
+.Xc
+which header from should print.
+.It Xo
+.Fl p Ar port-spec Ns ,
+.Fl -port= Ns Ar port-spec
+.Xc
+use this port instead of the default
+.Ql kpop
+or
+.Ql 1109 .
+.El
+
+The default is to first try Kerberos 5 authentication and then, if
+that fails, Kerberos 4.
+.Sh ENVIRONMENT
+
+.Bl -tag -width Ds
+.It Ev MAILHOST
+points to the post office, if no other hostname is specified.
+.El
+.\".Sh FILES
+.Sh EXAMPLES
+.Bd -literal -offset indent
+$ push cornfield:roosta ~/.gnus-crash-box
+.Ed
+
+tries to fetch mail for the user
+.Ar roosta
+from the post office at
+.Dq cornfield ,
+and stores the mail in
+.Pa ~/.gnus-crash-box
+(you are using Gnus, aren't you?)
+.Bd -literal -offset indent
+$ push --from -5 havregryn
+.Ed
+
+tries to fetch
+.Nm From:
+lines for current user at post office
+.Dq havregryn
+using Kerberos 5.
+.\".Sh DIAGNOSTICS
+.Sh SEE ALSO
+.Xr movemail 8 ,
+.Xr popper 8 ,
+.Xr from 1
+.\".Sh STANDARDS
+.Sh HISTORY
+.Nm
+was written while waiting for
+.Nm movemail
+to finish getting the mail.
+.\".Sh AUTHORS
+.\".Sh BUGS
diff --git a/crypto/kerberosIV/appl/push/push.c b/crypto/kerberosIV/appl/push/push.c
new file mode 100644
index 000000000000..bc7574fa634e
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/push.c
@@ -0,0 +1,795 @@
+/*
+ * Copyright (c) 1997-1999 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "push_locl.h"
+RCSID("$Id: push.c,v 1.34.2.1 1999/12/06 17:25:28 assar Exp $");
+
+#ifdef KRB4
+static int use_v4 = -1;
+#endif
+
+#ifdef KRB5
+static int use_v5 = -1;
+static krb5_context context;
+#endif
+
+static char *port_str;
+static int verbose_level;
+static int do_fork;
+static int do_leave;
+static int do_version;
+static int do_help;
+static int do_from;
+static int do_count;
+static char *header_str;
+
+struct getargs args[] = {
+#ifdef KRB4
+ { "krb4", '4', arg_flag, &use_v4, "Use Kerberos V4",
+ NULL },
+#endif
+#ifdef KRB5
+ { "krb5", '5', arg_flag, &use_v5, "Use Kerberos V5",
+ NULL },
+#endif
+ { "verbose",'v', arg_counter, &verbose_level, "Verbose",
+ NULL },
+ { "fork", 'f', arg_flag, &do_fork, "Fork deleting proc",
+ NULL },
+ { "leave", 'l', arg_flag, &do_leave, "Leave mail on server",
+ NULL },
+ { "port", 'p', arg_string, &port_str, "Use this port",
+ "number-or-service" },
+ { "from", 0, arg_flag, &do_from, "Behave like from",
+ NULL },
+ { "header", 0, arg_string, &header_str, "Header string to print", NULL },
+ { "count", 'c', arg_flag, &do_count, "Print number of messages", NULL},
+ { "version", 0, arg_flag, &do_version, "Print version",
+ NULL },
+ { "help", 0, arg_flag, &do_help, NULL,
+ NULL }
+
+};
+
+static void
+usage (int ret)
+{
+ arg_printusage (args,
+ sizeof(args) / sizeof(args[0]),
+ NULL,
+ "[[{po:username[@hostname] | hostname[:username]}] ...]"
+ "filename");
+ exit (ret);
+}
+
+static int
+do_connect (const char *hostname, int port, int nodelay)
+{
+ struct hostent *hostent = NULL;
+ char **h;
+ int error;
+ int af;
+ int s;
+
+#ifdef HAVE_IPV6
+ if (hostent == NULL)
+ hostent = getipnodebyname (hostname, AF_INET6, 0, &error);
+#endif
+ if (hostent == NULL)
+ hostent = getipnodebyname (hostname, AF_INET, 0, &error);
+
+ if (hostent == NULL)
+ errx(1, "gethostbyname '%s' failed: %s", hostname, hstrerror(error));
+
+ af = hostent->h_addrtype;
+
+ for (h = hostent->h_addr_list; *h != NULL; ++h) {
+ struct sockaddr_storage sa_ss;
+ struct sockaddr *sa = (struct sockaddr *)&sa_ss;
+
+ sa->sa_family = af;
+ socket_set_address_and_port (sa, *h, port);
+
+ s = socket (af, SOCK_STREAM, 0);
+ if (s < 0)
+ err (1, "socket");
+ if (connect(s, sa, socket_sockaddr_size(sa)) < 0) {
+ warn ("connect(%s)", hostname);
+ close (s);
+ continue;
+ } else {
+ break;
+ }
+ }
+ freehostent (hostent);
+ if (*h == NULL)
+ return -1;
+ if(setsockopt(s, IPPROTO_TCP, TCP_NODELAY,
+ (void *)&nodelay, sizeof(nodelay)) < 0)
+ err (1, "setsockopt TCP_NODELAY");
+ return s;
+}
+
+typedef enum { INIT = 0, GREET, USER, PASS, STAT, RETR, TOP,
+ DELE, XDELE, QUIT} pop_state;
+
+#define PUSH_BUFSIZ 65536
+
+#define STEP 16
+
+struct write_state {
+ struct iovec *iovecs;
+ size_t niovecs, maxiovecs, allociovecs;
+ int fd;
+};
+
+static void
+write_state_init (struct write_state *w, int fd)
+{
+#ifdef UIO_MAXIOV
+ w->maxiovecs = UIO_MAXIOV;
+#else
+ w->maxiovecs = 16;
+#endif
+ w->allociovecs = min(STEP, w->maxiovecs);
+ w->niovecs = 0;
+ w->iovecs = malloc(w->allociovecs * sizeof(*w->iovecs));
+ if (w->iovecs == NULL)
+ err (1, "malloc");
+ w->fd = fd;
+}
+
+static void
+write_state_add (struct write_state *w, void *v, size_t len)
+{
+ if(w->niovecs == w->allociovecs) {
+ if(w->niovecs == w->maxiovecs) {
+ if(writev (w->fd, w->iovecs, w->niovecs) < 0)
+ err(1, "writev");
+ w->niovecs = 0;
+ } else {
+ w->allociovecs = min(w->allociovecs + STEP, w->maxiovecs);
+ w->iovecs = realloc (w->iovecs,
+ w->allociovecs * sizeof(*w->iovecs));
+ if (w->iovecs == NULL)
+ errx (1, "realloc");
+ }
+ }
+ w->iovecs[w->niovecs].iov_base = v;
+ w->iovecs[w->niovecs].iov_len = len;
+ ++w->niovecs;
+}
+
+static void
+write_state_flush (struct write_state *w)
+{
+ if (w->niovecs) {
+ if (writev (w->fd, w->iovecs, w->niovecs) < 0)
+ err (1, "writev");
+ w->niovecs = 0;
+ }
+}
+
+static void
+write_state_destroy (struct write_state *w)
+{
+ free (w->iovecs);
+}
+
+static int
+doit(int s,
+ const char *host,
+ const char *user,
+ const char *outfilename,
+ const char *header_str,
+ int leavep,
+ int verbose,
+ int forkp)
+{
+ int ret;
+ char out_buf[PUSH_BUFSIZ];
+ size_t out_len = 0;
+ char in_buf[PUSH_BUFSIZ + 1]; /* sentinel */
+ size_t in_len = 0;
+ char *in_ptr = in_buf;
+ pop_state state = INIT;
+ unsigned count, bytes;
+ unsigned asked_for = 0, retrieved = 0, asked_deleted = 0, deleted = 0;
+ unsigned sent_xdele = 0;
+ int out_fd;
+ char from_line[128];
+ size_t from_line_length;
+ time_t now;
+ struct write_state write_state;
+
+ if (do_from) {
+ out_fd = -1;
+ if (verbose)
+ fprintf (stderr, "%s@%s\n", user, host);
+ } else {
+ out_fd = open(outfilename, O_WRONLY | O_APPEND | O_CREAT, 0666);
+ if (out_fd < 0)
+ err (1, "open %s", outfilename);
+ if (verbose)
+ fprintf (stderr, "%s@%s -> %s\n", user, host, outfilename);
+ }
+
+ now = time(NULL);
+ from_line_length = snprintf (from_line, sizeof(from_line),
+ "From %s %s", "push", ctime(&now));
+
+ out_len = snprintf (out_buf, sizeof(out_buf),
+ "USER %s\r\nPASS hej\r\nSTAT\r\n",
+ user);
+ if (net_write (s, out_buf, out_len) != out_len)
+ err (1, "write");
+ if (verbose > 1)
+ write (STDERR_FILENO, out_buf, out_len);
+
+ if (!do_from)
+ write_state_init (&write_state, out_fd);
+
+ while(state != QUIT) {
+ fd_set readset, writeset;
+
+ FD_ZERO(&readset);
+ FD_ZERO(&writeset);
+ FD_SET(s,&readset);
+ if (((state == STAT || state == RETR || state == TOP)
+ && asked_for < count)
+ || (state == XDELE && !sent_xdele)
+ || (state == DELE && asked_deleted < count))
+ FD_SET(s,&writeset);
+ ret = select (s + 1, &readset, &writeset, NULL, NULL);
+ if (ret < 0) {
+ if (errno == EAGAIN)
+ continue;
+ else
+ err (1, "select");
+ }
+
+ if (FD_ISSET(s, &readset)) {
+ char *beg, *p;
+ size_t rem;
+ int blank_line = 0;
+
+ ret = read (s, in_ptr, sizeof(in_buf) - in_len - 1);
+ if (ret < 0)
+ err (1, "read");
+ else if (ret == 0)
+ errx (1, "EOF during read");
+
+ in_len += ret;
+ in_ptr += ret;
+ *in_ptr = '\0';
+
+ beg = in_buf;
+ rem = in_len;
+ while(rem > 1
+ && (p = strstr(beg, "\r\n")) != NULL) {
+ if (state == TOP) {
+ char *copy = beg;
+
+ if (strncasecmp(copy,
+ header_str,
+ min(p - copy + 1, strlen(header_str))) == 0) {
+ fprintf (stdout, "%.*s\n", (int)(p - copy), copy);
+ }
+ if (beg[0] == '.' && beg[1] == '\r' && beg[2] == '\n') {
+ state = STAT;
+ if (++retrieved == count) {
+ state = QUIT;
+ net_write (s, "QUIT\r\n", 6);
+ if (verbose > 1)
+ net_write (STDERR_FILENO, "QUIT\r\n", 6);
+ }
+ }
+ rem -= p - beg + 2;
+ beg = p + 2;
+ } else if (state == RETR) {
+ char *copy = beg;
+ if (beg[0] == '.') {
+ if (beg[1] == '\r' && beg[2] == '\n') {
+ if(!blank_line)
+ write_state_add(&write_state, "\n", 1);
+ state = STAT;
+ rem -= p - beg + 2;
+ beg = p + 2;
+ if (++retrieved == count) {
+ write_state_flush (&write_state);
+ if (fsync (out_fd) < 0)
+ err (1, "fsync");
+ close(out_fd);
+ if (leavep) {
+ state = QUIT;
+ net_write (s, "QUIT\r\n", 6);
+ if (verbose > 1)
+ net_write (STDERR_FILENO, "QUIT\r\n", 6);
+ } else {
+ if (forkp) {
+ pid_t pid;
+
+ pid = fork();
+ if (pid < 0)
+ warn ("fork");
+ else if(pid != 0) {
+ if(verbose)
+ fprintf (stderr,
+ "(exiting)");
+ return 0;
+ }
+ }
+
+ state = XDELE;
+ if (verbose)
+ fprintf (stderr, "deleting... ");
+ }
+ }
+ continue;
+ } else
+ ++copy;
+ }
+ *p = '\n';
+ if(blank_line &&
+ strncmp(copy, "From ", min(p - copy + 1, 5)) == 0)
+ write_state_add(&write_state, ">", 1);
+ write_state_add(&write_state, copy, p - copy + 1);
+ blank_line = (*copy == '\n');
+ rem -= p - beg + 2;
+ beg = p + 2;
+ } else if (rem >= 3 && strncmp (beg, "+OK", 3) == 0) {
+ if (state == STAT) {
+ if (!do_from)
+ write_state_add(&write_state,
+ from_line, from_line_length);
+ blank_line = 0;
+ if (do_from)
+ state = TOP;
+ else
+ state = RETR;
+ } else if (state == XDELE) {
+ state = QUIT;
+ net_write (s, "QUIT\r\n", 6);
+ if (verbose > 1)
+ net_write (STDERR_FILENO, "QUIT\r\n", 6);
+ break;
+ } else if (state == DELE) {
+ if (++deleted == count) {
+ state = QUIT;
+ net_write (s, "QUIT\r\n", 6);
+ if (verbose > 1)
+ net_write (STDERR_FILENO, "QUIT\r\n", 6);
+ break;
+ }
+ } else if (++state == STAT) {
+ if(sscanf (beg + 4, "%u %u", &count, &bytes) != 2)
+ errx(1, "Bad STAT-line: %.*s", (int)(p - beg), beg);
+ if (verbose) {
+ fprintf (stderr, "%u message(s) (%u bytes). "
+ "fetching... ",
+ count, bytes);
+ if (do_from)
+ fprintf (stderr, "\n");
+ } else if (do_count) {
+ fprintf (stderr, "%u message(s) (%u bytes).\n",
+ count, bytes);
+ }
+ if (count == 0) {
+ state = QUIT;
+ net_write (s, "QUIT\r\n", 6);
+ if (verbose > 1)
+ net_write (STDERR_FILENO, "QUIT\r\n", 6);
+ break;
+ }
+ }
+
+ rem -= p - beg + 2;
+ beg = p + 2;
+ } else {
+ if(state == XDELE) {
+ state = DELE;
+ rem -= p - beg + 2;
+ beg = p + 2;
+ } else
+ errx (1, "Bad response: %.*s", (int)(p - beg), beg);
+ }
+ }
+ if (!do_from)
+ write_state_flush (&write_state);
+
+ memmove (in_buf, beg, rem);
+ in_len = rem;
+ in_ptr = in_buf + rem;
+ }
+ if (FD_ISSET(s, &writeset)) {
+ if ((state == STAT && !do_from) || state == RETR)
+ out_len = snprintf (out_buf, sizeof(out_buf),
+ "RETR %u\r\n", ++asked_for);
+ else if ((state == STAT && do_from) || state == TOP)
+ out_len = snprintf (out_buf, sizeof(out_buf),
+ "TOP %u 0\r\n", ++asked_for);
+ else if(state == XDELE) {
+ out_len = snprintf(out_buf, sizeof(out_buf),
+ "XDELE %u %u\r\n", 1, count);
+ sent_xdele++;
+ }
+ else if(state == DELE)
+ out_len = snprintf (out_buf, sizeof(out_buf),
+ "DELE %u\r\n", ++asked_deleted);
+ if (net_write (s, out_buf, out_len) != out_len)
+ err (1, "write");
+ if (verbose > 1)
+ write (STDERR_FILENO, out_buf, out_len);
+ }
+ }
+ if (verbose)
+ fprintf (stderr, "Done\n");
+ if (!do_from)
+ write_state_destroy (&write_state);
+ return 0;
+}
+
+#ifdef KRB5
+static int
+do_v5 (const char *host,
+ int port,
+ const char *user,
+ const char *filename,
+ const char *header_str,
+ int leavep,
+ int verbose,
+ int forkp)
+{
+ krb5_error_code ret;
+ krb5_auth_context auth_context = NULL;
+ krb5_principal server;
+ int s;
+
+ s = do_connect (host, port, 1);
+ if (s < 0)
+ return 1;
+
+ ret = krb5_sname_to_principal (context,
+ host,
+ "pop",
+ KRB5_NT_SRV_HST,
+ &server);
+ if (ret) {
+ warnx ("krb5_sname_to_principal: %s",
+ krb5_get_err_text (context, ret));
+ return 1;
+ }
+
+ ret = krb5_sendauth (context,
+ &auth_context,
+ &s,
+ "KPOPV1.0",
+ NULL,
+ server,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
+ krb5_free_principal (context, server);
+ if (ret) {
+ warnx ("krb5_sendauth: %s",
+ krb5_get_err_text (context, ret));
+ return 1;
+ }
+ return doit (s, host, user, filename, header_str, leavep, verbose, forkp);
+}
+#endif
+
+#ifdef KRB4
+static int
+do_v4 (const char *host,
+ int port,
+ const char *user,
+ const char *filename,
+ const char *header_str,
+ int leavep,
+ int verbose,
+ int forkp)
+{
+ KTEXT_ST ticket;
+ MSG_DAT msg_data;
+ CREDENTIALS cred;
+ des_key_schedule sched;
+ int s;
+ int ret;
+
+ s = do_connect (host, port, 1);
+ if (s < 0)
+ return 1;
+ ret = krb_sendauth(0,
+ s,
+ &ticket,
+ "pop",
+ (char *)host,
+ krb_realmofhost(host),
+ getpid(),
+ &msg_data,
+ &cred,
+ sched,
+ NULL,
+ NULL,
+ "KPOPV0.1");
+ if(ret) {
+ warnx("krb_sendauth: %s", krb_get_err_text(ret));
+ return 1;
+ }
+ return doit (s, host, user, filename, header_str, leavep, verbose, forkp);
+}
+#endif /* KRB4 */
+
+#ifdef HESIOD
+
+#ifdef HESIOD_INTERFACES
+
+static char *
+hesiod_get_pobox (const char **user)
+{
+ void *context;
+ struct hesiod_postoffice *hpo;
+ char *ret = NULL;
+
+ if(hesiod_init (&context) != 0)
+ err (1, "hesiod_init");
+
+ hpo = hesiod_getmailhost (context, *user);
+ if (hpo == NULL) {
+ warn ("hesiod_getmailhost %s", *user);
+ } else {
+ if (strcasecmp(hpo->hesiod_po_type, "pop") != 0)
+ errx (1, "Unsupported po type %s", hpo->hesiod_po_type);
+
+ ret = strdup(hpo->hesiod_po_host);
+ if(ret == NULL)
+ errx (1, "strdup: out of memory");
+ *user = strdup(hpo->hesiod_po_name);
+ if (*user == NULL)
+ errx (1, "strdup: out of memory");
+ hesiod_free_postoffice (context, hpo);
+ }
+ hesiod_end (context);
+ return ret;
+}
+
+#else /* !HESIOD_INTERFACES */
+
+static char *
+hesiod_get_pobox (const char **user)
+{
+ char *ret = NULL;
+ struct hes_postoffice *hpo;
+
+ hpo = hes_getmailhost (*user);
+ if (hpo == NULL) {
+ warn ("hes_getmailhost %s", *user);
+ } else {
+ if (strcasecmp(hpo->po_type, "pop") != 0)
+ errx (1, "Unsupported po type %s", hpo->po_type);
+
+ ret = strdup(hpo->po_host);
+ if(ret == NULL)
+ errx (1, "strdup: out of memory");
+ *user = strdup(hpo->po_name);
+ if (*user == NULL)
+ errx (1, "strdup: out of memory");
+ }
+ return ret;
+}
+
+#endif /* HESIOD_INTERFACES */
+
+#endif /* HESIOD */
+
+static char *
+get_pobox (const char **user)
+{
+ char *ret = NULL;
+
+#ifdef HESIOD
+ ret = hesiod_get_pobox (user);
+#endif
+
+ if (ret == NULL)
+ ret = getenv("MAILHOST");
+ if (ret == NULL)
+ errx (1, "MAILHOST not set");
+ return ret;
+}
+
+static void
+parse_pobox (char *a0, const char **host, const char **user)
+{
+ const char *h, *u;
+ char *p;
+ int po = 0;
+
+ if (a0 == NULL) {
+
+ *user = getenv ("USERNAME");
+ if (*user == NULL) {
+ struct passwd *pwd = getpwuid (getuid ());
+
+ if (pwd == NULL)
+ errx (1, "Who are you?");
+ *user = strdup (pwd->pw_name);
+ if (*user == NULL)
+ errx (1, "strdup: out of memory");
+ }
+ *host = get_pobox (user);
+ return;
+ }
+
+ /* if the specification starts with po:, remember this information */
+ if(strncmp(a0, "po:", 3) == 0) {
+ a0 += 3;
+ po++;
+ }
+ /* if there is an `@', the hostname is after it, otherwise at the
+ beginning of the string */
+ p = strchr(a0, '@');
+ if(p != NULL) {
+ *p++ = '\0';
+ h = p;
+ } else {
+ h = a0;
+ }
+ /* if there is a `:', the username comes before it, otherwise at
+ the beginning of the string */
+ p = strchr(a0, ':');
+ if(p != NULL) {
+ *p++ = '\0';
+ u = p;
+ } else {
+ u = a0;
+ }
+ if(h == u) {
+ /* some inconsistent compatibility with various mailers */
+ if(po) {
+ h = get_pobox (&u);
+ } else {
+ u = get_default_username ();
+ if (u == NULL)
+ errx (1, "Who are you?");
+ }
+ }
+ *host = h;
+ *user = u;
+}
+
+int
+main(int argc, char **argv)
+{
+ int port = 0;
+ int optind = 0;
+ int ret = 1;
+ const char *host, *user, *filename = NULL;
+ char *pobox = NULL;
+
+ set_progname (argv[0]);
+
+#ifdef KRB5
+ krb5_init_context (&context);
+#endif
+
+ if (getarg (args, sizeof(args) / sizeof(args[0]), argc, argv,
+ &optind))
+ usage (1);
+
+ argc -= optind;
+ argv += optind;
+
+#if defined(KRB4) && defined(KRB5)
+ if(use_v4 == -1 && use_v5 == 1)
+ use_v4 = 0;
+ if(use_v5 == -1 && use_v4 == 1)
+ use_v5 = 0;
+#endif
+
+ if (do_help)
+ usage (0);
+
+ if (do_version) {
+ print_version(NULL);
+ return 0;
+ }
+
+ if (do_from && header_str == NULL)
+ header_str = "From:";
+ else if (header_str != NULL)
+ do_from = 1;
+
+ if (do_from) {
+ if (argc == 0)
+ pobox = NULL;
+ else if (argc == 1)
+ pobox = argv[0];
+ else
+ usage (1);
+ } else {
+ if (argc == 1) {
+ filename = argv[0];
+ pobox = NULL;
+ } else if (argc == 2) {
+ filename = argv[1];
+ pobox = argv[0];
+ } else
+ usage (1);
+ }
+
+ if (port_str) {
+ struct servent *s = roken_getservbyname (port_str, "tcp");
+
+ if (s)
+ port = s->s_port;
+ else {
+ char *ptr;
+
+ port = strtol (port_str, &ptr, 10);
+ if (port == 0 && ptr == port_str)
+ errx (1, "Bad port `%s'", port_str);
+ port = htons(port);
+ }
+ }
+ if (port == 0)
+#ifdef KRB5
+ port = krb5_getportbyname (context, "kpop", "tcp", 1109);
+#elif defined(KRB4)
+ port = k_getportbyname ("kpop", "tcp", 1109);
+#else
+#error must define KRB4 or KRB5
+#endif
+
+ parse_pobox (pobox, &host, &user);
+
+#ifdef KRB5
+ if (ret && use_v5) {
+ ret = do_v5 (host, port, user, filename, header_str,
+ do_leave, verbose_level, do_fork);
+ }
+#endif
+
+#ifdef KRB4
+ if (ret && use_v4) {
+ ret = do_v4 (host, port, user, filename, header_str,
+ do_leave, verbose_level, do_fork);
+ }
+#endif /* KRB4 */
+ return ret;
+}
diff --git a/crypto/kerberosIV/appl/push/push.cat8 b/crypto/kerberosIV/appl/push/push.cat8
new file mode 100644
index 000000000000..bdd380491baf
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/push.cat8
@@ -0,0 +1,77 @@
+
+PUSH(8) UNIX System Manager's Manual PUSH(8)
+
+NNAAMMEE
+ ppuusshh - fetch mail via POP
+
+SSYYNNOOPPSSIISS
+ ppuusshh [--44 | ----kkrrbb44] [--55 | ----kkrrbb55] [--vv | ----vveerrbboossee] [--ff | ----ffoorrkk] [--ll |
+ ----lleeaavvee] [----ffrroomm] [--cc | ----ccoouunntt] [----hheeaaddeerr] [--pp _p_o_r_t_-_s_p_e_c | ----ppoorrtt==_p_o_r_t_-
+ _s_p_e_c] _p_o_-_b_o_x _f_i_l_e_n_a_m_e
+
+DDEESSCCRRIIPPTTIIOONN
+ ppuusshh retrieves mail from the post office box _p_o_-_b_o_x, and stores the mail
+ in mbox format in _f_i_l_e_n_a_m_e. The _p_o_-_b_o_x can have any of the following for-
+ mats:
+ `hostname:username'
+ `po:hostname:username'
+ `username@hostname'
+ `po:username@hostname'
+ `hostname'
+ `po:username'
+
+ If no username is specified, ppuusshh assumes that it's the same as on the
+ local machine; _h_o_s_t_n_a_m_e defaults to the value of the MAILHOST environment
+ variable.
+
+ Supported options:
+
+ --44, ----kkrrbb44
+ use Kerberos 4 (if compiled with support for Kerberos 4)
+
+ --55, ----kkrrbb55
+ use Kerberos 5 (if compiled with support for Kerberos 5)
+
+ --ff, ----ffoorrkk
+ fork before starting to delete messages
+
+ --ll, ----lleeaavvee
+ don't delete fetched mail
+
+ ----ffrroomm behave like from.
+
+ --cc, ----ccoouunntt
+ first print how many messages and bytes there are.
+
+ ----hheeaaddeerr
+ which header from should print.
+
+ --pp _p_o_r_t_-_s_p_e_c, ----ppoorrtt==_p_o_r_t_-_s_p_e_c
+ use this port instead of the default `kpop' or `1109'.
+
+ The default is to first try Kerberos 5 authentication and then, if that
+ fails, Kerberos 4.
+
+EENNVVIIRROONNMMEENNTT
+ MAILHOST
+ points to the post office, if no other hostname is specified.
+
+EEXXAAMMPPLLEESS
+ $ push cornfield:roosta ~/.gnus-crash-box
+
+ tries to fetch mail for the user _r_o_o_s_t_a from the post office at
+ ``cornfield'', and stores the mail in _~_/_._g_n_u_s_-_c_r_a_s_h_-_b_o_x (you are using
+ Gnus, aren't you?)
+
+ $ push --from -5 havregryn
+
+ tries to fetch FFrroomm:: lines for current user at post office ``havregryn''
+ using Kerberos 5.
+
+SSEEEE AALLSSOO
+ movemail(8), popper(8), from(1)
+
+HHIISSTTOORRYY
+ ppuusshh was written while waiting for mmoovveemmaaiill to finish getting the mail.
+
+ HEIMDAL May 31, 1998 2
diff --git a/crypto/kerberosIV/appl/push/push_locl.h b/crypto/kerberosIV/appl/push/push_locl.h
new file mode 100644
index 000000000000..1e5ca784c845
--- /dev/null
+++ b/crypto/kerberosIV/appl/push/push_locl.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Id: push_locl.h,v 1.6 1999/12/02 16:58:33 joda Exp $ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <ctype.h>
+#include <limits.h>
+#include <time.h>
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_NETINET6_IN6_H
+#include <netinet6/in6.h>
+#endif
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_PWD_H
+#include <pwd.h>
+#endif
+#ifdef HESIOD
+#include <hesiod.h>
+#endif
+
+#include <roken.h>
+#include <err.h>
+#include <getarg.h>
+#ifdef KRB5
+#include <krb5.h>
+#endif
+
+#ifdef KRB4
+#include <krb.h>
+#endif
diff --git a/crypto/kerberosIV/appl/sample/sample.h b/crypto/kerberosIV/appl/sample/sample.h
index a5880ab97afb..d79d57441a7c 100644
--- a/crypto/kerberosIV/appl/sample/sample.h
+++ b/crypto/kerberosIV/appl/sample/sample.h
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -36,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: sample.h,v 1.10 1998/06/13 00:06:49 assar Exp $ */
+/* $Id: sample.h,v 1.11 1999/12/02 16:58:33 joda Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/crypto/kerberosIV/appl/sample/sample_client.c b/crypto/kerberosIV/appl/sample/sample_client.c
index 8c45ae56952d..d0ec1c566749 100644
--- a/crypto/kerberosIV/appl/sample/sample_client.c
+++ b/crypto/kerberosIV/appl/sample/sample_client.c
@@ -23,7 +23,7 @@
#include "sample.h"
-RCSID("$Id: sample_client.c,v 1.19 1999/05/08 02:23:43 assar Exp $");
+RCSID("$Id: sample_client.c,v 1.21 1999/11/13 06:27:01 assar Exp $");
static void
usage (void)
@@ -56,13 +56,13 @@ main(int argc, char **argv)
char **h_addr_list;
set_progname (argv[0]);
- strcpy_truncate (service, SAMPLE_SERVICE, sizeof(service));
+ strlcpy (service, SAMPLE_SERVICE, sizeof(service));
port = 0;
- while ((c = getopt(argc, argv, "s:p:")) != EOF)
+ while ((c = getopt(argc, argv, "s:p:")) != -1)
switch(c) {
case 's' :
- strcpy_truncate (service, optarg, sizeof(service));
+ strlcpy (service, optarg, sizeof(service));
break;
case 'p' :
serv = getservbyname (optarg, "tcp");
diff --git a/crypto/kerberosIV/appl/sample/sample_server.c b/crypto/kerberosIV/appl/sample/sample_server.c
index a1a92d14eac9..5442562f3aa3 100644
--- a/crypto/kerberosIV/appl/sample/sample_server.c
+++ b/crypto/kerberosIV/appl/sample/sample_server.c
@@ -18,7 +18,7 @@
#include "sample.h"
-RCSID("$Id: sample_server.c,v 1.12 1999/03/10 18:33:53 joda Exp $");
+RCSID("$Id: sample_server.c,v 1.14 1999/11/13 06:28:49 assar Exp $");
static void
usage (void)
@@ -53,16 +53,16 @@ main(int argc, char **argv)
roken_openlog(__progname, LOG_ODELAY, LOG_DAEMON);
- strcpy_truncate (service, SAMPLE_SERVICE, sizeof(service));
+ strlcpy (service, SAMPLE_SERVICE, sizeof(service));
*srvtab = '\0';
- while ((c = getopt (argc, argv, "s:t:i")) != EOF)
+ while ((c = getopt (argc, argv, "s:t:i")) != -1)
switch (c) {
case 's' :
- strcpy_truncate (service, optarg, sizeof(service));
+ strlcpy (service, optarg, sizeof(service));
break;
case 't' :
- strcpy_truncate (srvtab, optarg, sizeof(srvtab));
+ strlcpy (srvtab, optarg, sizeof(srvtab));
break;
case 'i':
no_inetd = 1;
@@ -122,7 +122,7 @@ main(int argc, char **argv)
/* now that we have decoded the authenticator, translate
the kerberos principal.instance@realm into a local name */
if (krb_kntoln(&auth_data, lname) != KSUCCESS)
- strcpy_truncate(lname,
+ strlcpy(lname,
"*No local name returned by krb_kntoln*",
sizeof(lname));
/* compose the reply */
diff --git a/crypto/kerberosIV/appl/sample/simple_client.c b/crypto/kerberosIV/appl/sample/simple_client.c
index 87697252096f..434150d2189b 100644
--- a/crypto/kerberosIV/appl/sample/simple_client.c
+++ b/crypto/kerberosIV/appl/sample/simple_client.c
@@ -10,7 +10,7 @@
*/
#include "sample.h"
-RCSID("$Id: simple_client.c,v 1.13 1998/06/09 19:24:39 joda Exp $");
+RCSID("$Id: simple_client.c,v 1.15 1999/11/13 06:29:01 assar Exp $");
#define MSG "hi, Jennifer!" /* message text */
@@ -174,12 +174,12 @@ main(int argc, char **argv)
set_progname (argv[0]);
- strcpy_truncate (service, SAMPLE_SERVICE, sizeof(service));
+ strlcpy (service, SAMPLE_SERVICE, sizeof(service));
- while ((c = getopt(argc, argv, "s:p:")) != EOF)
+ while ((c = getopt(argc, argv, "s:p:")) != -1)
switch(c) {
case 's' :
- strcpy_truncate (service, optarg, sizeof(service));
+ strlcpy (service, optarg, sizeof(service));
break;
case 'p' :
serv = getservbyname (optarg, "tcp");
diff --git a/crypto/kerberosIV/appl/sample/simple_server.c b/crypto/kerberosIV/appl/sample/simple_server.c
index 2b950c7b2e89..05baa4ee1c4a 100644
--- a/crypto/kerberosIV/appl/sample/simple_server.c
+++ b/crypto/kerberosIV/appl/sample/simple_server.c
@@ -11,7 +11,7 @@
#include "sample.h"
-RCSID("$Id: simple_server.c,v 1.9 1998/06/09 19:24:39 joda Exp $");
+RCSID("$Id: simple_server.c,v 1.11 1999/11/13 06:29:24 assar Exp $");
static void
usage (void)
@@ -40,12 +40,12 @@ main(int argc, char **argv)
des_key_schedule sched;
set_progname (argv[0]);
- strcpy_truncate (service, SAMPLE_SERVICE, sizeof(service));
- strcpy_truncate (instance, "*", sizeof(instance));
+ strlcpy (service, SAMPLE_SERVICE, sizeof(service));
+ strlcpy (instance, "*", sizeof(instance));
*srvtab = '\0';
port = 0;
- while ((c = getopt (argc, argv, "p:s:t:")) != EOF)
+ while ((c = getopt (argc, argv, "p:s:t:")) != -1)
switch (c) {
case 'p' : {
struct servent *sp;
@@ -58,10 +58,10 @@ main(int argc, char **argv)
break;
}
case 's' :
- strcpy_truncate (service, optarg, sizeof(service));
+ strlcpy (service, optarg, sizeof(service));
break;
case 't' :
- strcpy_truncate (srvtab, optarg, sizeof(srvtab));
+ strlcpy (srvtab, optarg, sizeof(srvtab));
break;
case '?' :
default :
diff --git a/crypto/kerberosIV/cf/ChangeLog b/crypto/kerberosIV/cf/ChangeLog
index 8bc4d04fe3f6..13d9bfd93d2e 100644
--- a/crypto/kerberosIV/cf/ChangeLog
+++ b/crypto/kerberosIV/cf/ChangeLog
@@ -1,3 +1,61 @@
+1999-11-05 Assar Westerlund <assar@sics.se>
+
+ * check-x.m4: include X_PRE_LIBS and X_EXTRA_LIBS when testing
+
+1999-11-01 Assar Westerlund <assar@sics.se>
+
+ * Makefile.am.common (install-build-headers): use `cp' instead of
+ INSTALL_DATA for copying header files inside the build tree. The
+ user might have redefined INSTALL_DATA to specify owners and other
+ information.
+
+1999-10-30 Assar Westerlund <assar@sics.se>
+
+ * find-func-no-libs2.m4: add yet another argument to allow specify
+ linker flags that will be added _before_ the library when trying
+ to link
+
+ * find-func-no-libs.m4: add yet another argument to allow specify
+ linker flags that will be added _before_ the library when trying
+ to link
+
+1999-10-12 Assar Westerlund <assar@sics.se>
+
+ * find-func-no-libs2.m4 (AC_FIND_FUNC_NO_LIBS2): new argument
+ `extra libs'
+
+ * find-func-no-libs.m4 (AC_FIND_FUNC_NO_LIBS): new argument `extra
+ libs'
+
+1999-09-01 Johan Danielsson <joda@pdc.kth.se>
+
+ * capabilities.m4: sgi capabilities
+
+1999-07-29 Assar Westerlund <assar@sics.se>
+
+ * have-struct-field.m4: quote macros when undefining
+
+1999-07-28 Assar Westerlund <assar@sics.se>
+
+ * Makefile.am.common (install-build-headers): add dependencies
+
+1999-07-24 Assar Westerlund <assar@sics.se>
+
+ * have-type.m4: try to get autoheader to co-operate
+
+ * have-type.m4: stolen from Arla
+
+ * krb-struct-sockaddr-sa-len.m4: not used any longer. removed.
+
+1999-06-13 Assar Westerlund <assar@sics.se>
+
+ * krb-struct-spwd.m4: consequent name of cache variables
+
+ * krb-func-getlogin.m4: new file for testing for posix (broken)
+ getlogin
+
+ * shared-libs.m4 (freebsd[34]): don't use ld -Bshareable
+
1999-06-02 Johan Danielsson <joda@pdc.kth.se>
* check-x.m4: extended test for X
diff --git a/crypto/kerberosIV/cf/Makefile.am.common b/crypto/kerberosIV/cf/Makefile.am.common
index af9274606838..e7d747b269dc 100644
--- a/crypto/kerberosIV/cf/Makefile.am.common
+++ b/crypto/kerberosIV/cf/Makefile.am.common
@@ -1,4 +1,4 @@
-# $Id: Makefile.am.common,v 1.11 1999/05/26 08:42:55 assar Exp $
+# $Id: Makefile.am.common,v 1.13 1999/11/01 03:19:58 assar Exp $
AUTOMAKE_OPTIONS = foreign no-dependencies
@@ -60,7 +60,7 @@ install-suid-programs:
install-exec-hook: install-suid-programs
-install-build-headers::
+install-build-headers:: $(include_HEADERS) $(build_HEADERZ)
@foo='$(include_HEADERS) $(build_HEADERZ)'; \
for f in $$foo; do \
f=`basename $$f`; \
@@ -68,8 +68,8 @@ install-build-headers::
else file="$$f"; fi; \
if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
: ; else \
- echo " $(INSTALL_DATA) $$file $(buildinclude)/$$f"; \
- $(INSTALL_DATA) $$file $(buildinclude)/$$f; \
+ echo " cp $$file $(buildinclude)/$$f"; \
+ cp $$file $(buildinclude)/$$f; \
fi ; \
done
diff --git a/crypto/kerberosIV/cf/capabilities.m4 b/crypto/kerberosIV/cf/capabilities.m4
new file mode 100644
index 000000000000..6d2669bfe130
--- /dev/null
+++ b/crypto/kerberosIV/cf/capabilities.m4
@@ -0,0 +1,14 @@
+dnl
+dnl $Id: capabilities.m4,v 1.2 1999/09/01 11:02:26 joda Exp $
+dnl
+
+dnl
+dnl Test SGI capabilities
+dnl
+
+AC_DEFUN(KRB_CAPABILITIES,[
+
+AC_CHECK_HEADERS(capability.h sys/capability.h)
+
+AC_CHECK_FUNCS(sgi_getcapabilitybyname cap_set_proc)
+])
diff --git a/crypto/kerberosIV/cf/check-x.m4 b/crypto/kerberosIV/cf/check-x.m4
index 2635e7d6dd40..1791e5aaf95b 100644
--- a/crypto/kerberosIV/cf/check-x.m4
+++ b/crypto/kerberosIV/cf/check-x.m4
@@ -1,7 +1,7 @@
dnl
dnl See if there is any X11 present
dnl
-dnl $Id: check-x.m4,v 1.1 1999/06/03 00:22:10 joda Exp $
+dnl $Id: check-x.m4,v 1.2 1999/11/05 04:25:23 assar Exp $
AC_DEFUN(KRB_CHECK_X,[
AC_PATH_XTRA
@@ -31,7 +31,7 @@ if test "$no_x" != yes; then
esac
done
fi
- LIBS="$ac_save_libs $foo -lX11"
+ LIBS="$ac_save_libs $foo $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
AC_TRY_RUN([
#include <X11/Xlib.h>
foo()
diff --git a/crypto/kerberosIV/cf/find-func-no-libs.m4 b/crypto/kerberosIV/cf/find-func-no-libs.m4
index a239742e6513..3deab02b9d9d 100644
--- a/crypto/kerberosIV/cf/find-func-no-libs.m4
+++ b/crypto/kerberosIV/cf/find-func-no-libs.m4
@@ -1,9 +1,9 @@
-dnl $Id: find-func-no-libs.m4,v 1.3 1998/06/04 02:06:50 assar Exp $
+dnl $Id: find-func-no-libs.m4,v 1.5 1999/10/30 21:08:18 assar Exp $
dnl
dnl
dnl Look for function in any of the specified libraries
dnl
-dnl AC_FIND_FUNC_NO_LIBS(func, libraries, includes, arguments)
+dnl AC_FIND_FUNC_NO_LIBS(func, libraries, includes, arguments, extra libs, extra args)
AC_DEFUN(AC_FIND_FUNC_NO_LIBS, [
-AC_FIND_FUNC_NO_LIBS2([$1], ["" $2], [$3], [$4])])
+AC_FIND_FUNC_NO_LIBS2([$1], ["" $2], [$3], [$4], [$5], [$6])])
diff --git a/crypto/kerberosIV/cf/find-func-no-libs2.m4 b/crypto/kerberosIV/cf/find-func-no-libs2.m4
index d5896cf11efe..c404a7c1b476 100644
--- a/crypto/kerberosIV/cf/find-func-no-libs2.m4
+++ b/crypto/kerberosIV/cf/find-func-no-libs2.m4
@@ -1,10 +1,10 @@
-dnl $Id: find-func-no-libs2.m4,v 1.1 1998/06/04 02:07:12 assar Exp $
+dnl $Id: find-func-no-libs2.m4,v 1.3 1999/10/30 21:09:53 assar Exp $
dnl
dnl
dnl Look for function in any of the specified libraries
dnl
-dnl AC_FIND_FUNC_NO_LIBS2(func, libraries, includes, arguments)
+dnl AC_FIND_FUNC_NO_LIBS2(func, libraries, includes, arguments, extra libs, extra args)
AC_DEFUN(AC_FIND_FUNC_NO_LIBS2, [
AC_MSG_CHECKING([for $1])
@@ -18,7 +18,7 @@ if eval "test \"\$ac_cv_func_$1\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS="$6 $ac_lib $5 $ac_save_LIBS"
AC_TRY_LINK([$3],[$1($4)],eval "if test -n \"$ac_lib\";then ac_cv_funclib_$1=$ac_lib; else ac_cv_funclib_$1=yes; fi";break)
done
eval "ac_cv_funclib_$1=\${ac_cv_funclib_$1-no}"
diff --git a/crypto/kerberosIV/cf/grok-type.m4 b/crypto/kerberosIV/cf/grok-type.m4
index e74c6cf015a3..5bc6a66241fb 100644
--- a/crypto/kerberosIV/cf/grok-type.m4
+++ b/crypto/kerberosIV/cf/grok-type.m4
@@ -1,8 +1,11 @@
-dnl $Id: grok-type.m4,v 1.3 1999/03/21 18:59:56 joda Exp $
+dnl $Id: grok-type.m4,v 1.4 1999/11/29 11:16:48 joda Exp $
dnl
AC_DEFUN(AC_GROK_TYPE, [
AC_CACHE_VAL(ac_cv_type_$1,
AC_TRY_COMPILE([
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
diff --git a/crypto/kerberosIV/cf/have-struct-field.m4 b/crypto/kerberosIV/cf/have-struct-field.m4
index f44b036e9d4c..88ad5c3b29ab 100644
--- a/crypto/kerberosIV/cf/have-struct-field.m4
+++ b/crypto/kerberosIV/cf/have-struct-field.m4
@@ -1,4 +1,4 @@
-dnl $Id: have-struct-field.m4,v 1.5 1999/03/01 13:10:35 joda Exp $
+dnl $Id: have-struct-field.m4,v 1.6 1999/07/29 01:44:32 assar Exp $
dnl
dnl check for fields in a structure
dnl
@@ -13,7 +13,7 @@ cache_val=no)])
if test "$cache_val" = yes; then
define(foo, translit(HAVE_$1_$2, [a-z ], [A-Z_]))
AC_DEFINE(foo, 1, [Define if $1 has field $2.])
- undefine(foo)
+ undefine([foo])
fi
-undefine(cache_val)
+undefine([cache_val])
])
diff --git a/crypto/kerberosIV/cf/have-type.m4 b/crypto/kerberosIV/cf/have-type.m4
new file mode 100644
index 000000000000..79633551c6e5
--- /dev/null
+++ b/crypto/kerberosIV/cf/have-type.m4
@@ -0,0 +1,31 @@
+dnl $Id: have-type.m4,v 1.4 1999/07/24 19:23:01 assar Exp $
+dnl
+dnl check for existance of a type
+
+dnl AC_HAVE_TYPE(TYPE,INCLUDES)
+AC_DEFUN(AC_HAVE_TYPE, [
+cv=`echo "$1" | sed 'y%./+- %__p__%'`
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL([ac_cv_type_$cv],
+AC_TRY_COMPILE(
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+$2],
+[$1 foo;],
+eval "ac_cv_type_$cv=yes",
+eval "ac_cv_type_$cv=no"))dnl
+AC_MSG_RESULT(`eval echo \\$ac_cv_type_$cv`)
+if test `eval echo \\$ac_cv_type_$cv` = yes; then
+ ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
+dnl autoheader tricks *sigh*
+define(foo,translit($1, [ ], [_]))
+: << END
+@@@funcs="$funcs foo"@@@
+END
+undefine([foo])
+ AC_DEFINE_UNQUOTED($ac_tr_hdr, 1)
+fi
+])
diff --git a/crypto/kerberosIV/cf/have-types.m4 b/crypto/kerberosIV/cf/have-types.m4
new file mode 100644
index 000000000000..7c85c5ddddba
--- /dev/null
+++ b/crypto/kerberosIV/cf/have-types.m4
@@ -0,0 +1,14 @@
+dnl
+dnl $Id: have-types.m4,v 1.1 1999/07/24 18:38:58 assar Exp $
+dnl
+
+AC_DEFUN(AC_HAVE_TYPES, [
+for i in $1; do
+ AC_HAVE_TYPE($i)
+done
+: << END
+changequote(`,')dnl
+@@@funcs="$funcs $1"@@@
+changequote([,])dnl
+END
+])
diff --git a/crypto/kerberosIV/cf/krb-func-getlogin.m4 b/crypto/kerberosIV/cf/krb-func-getlogin.m4
new file mode 100644
index 000000000000..921c5ab8dff0
--- /dev/null
+++ b/crypto/kerberosIV/cf/krb-func-getlogin.m4
@@ -0,0 +1,22 @@
+dnl
+dnl $Id: krb-func-getlogin.m4,v 1.1 1999/07/13 17:45:30 assar Exp $
+dnl
+dnl test for POSIX (broken) getlogin
+dnl
+
+
+AC_DEFUN(AC_FUNC_GETLOGIN, [
+AC_CHECK_FUNCS(getlogin setlogin)
+if test "$ac_cv_func_getlogin" = yes; then
+AC_CACHE_CHECK(if getlogin is posix, ac_cv_func_getlogin_posix, [
+if test "$ac_cv_func_getlogin" = yes -a "$ac_cv_func_setlogin" = yes; then
+ ac_cv_func_getlogin_posix=no
+else
+ ac_cv_func_getlogin_posix=yes
+fi
+])
+if test "$ac_cv_func_getlogin_posix" = yes; then
+ AC_DEFINE(POSIX_GETLOGIN, 1, [Define if getlogin has POSIX flavour (and not BSD).])
+fi
+fi
+])
diff --git a/crypto/kerberosIV/cf/krb-struct-spwd.m4 b/crypto/kerberosIV/cf/krb-struct-spwd.m4
index c088129ebfcb..4ab81fd34f52 100644
--- a/crypto/kerberosIV/cf/krb-struct-spwd.m4
+++ b/crypto/kerberosIV/cf/krb-struct-spwd.m4
@@ -1,10 +1,10 @@
-dnl $Id
+dnl $Id: krb-struct-spwd.m4,v 1.3 1999/07/13 21:04:11 assar Exp $
dnl
dnl Test for `struct spwd'
AC_DEFUN(AC_KRB_STRUCT_SPWD, [
AC_MSG_CHECKING(for struct spwd)
-AC_CACHE_VAL(ac_cv_type_struct_spwd, [
+AC_CACHE_VAL(ac_cv_struct_spwd, [
AC_TRY_COMPILE(
[#include <pwd.h>
#ifdef HAVE_SHADOW_H
diff --git a/crypto/kerberosIV/cf/shared-libs.m4 b/crypto/kerberosIV/cf/shared-libs.m4
index ffc3603c4aec..9fe576ff8b39 100644
--- a/crypto/kerberosIV/cf/shared-libs.m4
+++ b/crypto/kerberosIV/cf/shared-libs.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: shared-libs.m4,v 1.3 1999/04/09 15:34:25 assar Exp $
+dnl $Id: shared-libs.m4,v 1.4 1999/07/13 17:47:09 assar Exp $
dnl
dnl Shared library stuff has to be different everywhere
dnl
@@ -64,9 +64,10 @@ case "${host}" in
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
;;
-*-*-freebsd3*)
+changequote(,)dnl
+*-*-freebsd[34]*)
+changequote([,])dnl
REAL_SHLIBEXT=so.$SHLIB_VERSION
- LDSHARED='ld -Bshareable'
REAL_LD_FLAGS='-Wl,-R$(libdir)'
build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
diff --git a/crypto/kerberosIV/configure b/crypto/kerberosIV/configure
index 87137d701d74..796213e86bbb 100644
--- a/crypto/kerberosIV/configure
+++ b/crypto/kerberosIV/configure
@@ -1,6 +1,6 @@
#! /bin/sh
-# From configure.in Revision: 1.415.2.9
+# From configure.in Revision: 1.432.2.2
@@ -107,6 +107,17 @@
+
+
+
+
+
+
+
+
+
+
+
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
@@ -698,7 +709,7 @@ fi
PACKAGE=krb4
-VERSION=0.10.1
+VERSION=1.0
cat >> confdefs.h <<EOF
#define PACKAGE "$PACKAGE"
EOF
@@ -735,7 +746,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:739: checking host system type" >&5
+echo "configure:750: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -779,7 +790,7 @@ EOF
fi
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:783: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:794: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -830,7 +841,7 @@ test -z "$LDFLAGS" && LDFLAGS=-g
echo $ac_n "checking for ln -s or something else""... $ac_c" 1>&6
-echo "configure:834: checking for ln -s or something else" >&5
+echo "configure:845: checking for ln -s or something else" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -855,7 +866,7 @@ echo "$ac_t""$ac_cv_prog_LN_S" 1>&6
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:859: checking for $ac_word" >&5
+echo "configure:870: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -885,7 +896,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:889: checking for $ac_word" >&5
+echo "configure:900: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -936,7 +947,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:940: checking for $ac_word" >&5
+echo "configure:951: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -968,7 +979,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:972: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:983: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -979,12 +990,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 983 "configure"
+#line 994 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -1010,12 +1021,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1014: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1025: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1019: checking whether we are using GNU C" >&5
+echo "configure:1030: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1024,7 +1035,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -1043,7 +1054,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1047: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1058: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1075,7 +1086,7 @@ else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1079: checking how to run the C preprocessor" >&5
+echo "configure:1090: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1090,13 +1101,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1094 "configure"
+#line 1105 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1100: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1107,13 +1118,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1111 "configure"
+#line 1122 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1124,13 +1135,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1128 "configure"
+#line 1139 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1134: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1155,7 +1166,7 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1159: checking for POSIXized ISC" >&5
+echo "configure:1170: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -1180,7 +1191,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1184: checking for $ac_word" >&5
+echo "configure:1195: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1212,7 +1223,7 @@ done
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1216: checking for $ac_word" >&5
+echo "configure:1227: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1246,7 +1257,7 @@ then
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:1250: checking for yywrap in -l$ac_lib" >&5
+echo "configure:1261: checking for yywrap in -l$ac_lib" >&5
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1254,7 +1265,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1258 "configure"
+#line 1269 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1265,7 +1276,7 @@ int main() {
yywrap()
; return 0; }
EOF
-if { (eval echo configure:1269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1290,7 +1301,7 @@ fi
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1294: checking for $ac_word" >&5
+echo "configure:1305: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1329,7 +1340,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1333: checking for a BSD compatible install" >&5
+echo "configure:1344: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1381,12 +1392,12 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-for ac_prog in gawk nawk awk
+for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1390: checking for $ac_word" >&5
+echo "configure:1401: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1418,7 +1429,7 @@ done
# Extract the first word of "makeinfo", so it can be a program name with args.
set dummy makeinfo; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1422: checking for $ac_word" >&5
+echo "configure:1433: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1480,7 +1491,7 @@ fi
echo $ac_n "checking for socks""... $ac_c" 1>&6
-echo "configure:1484: checking for socks" >&5
+echo "configure:1495: checking for socks" >&5
case "$with_socks" in
yes) ;;
@@ -1519,14 +1530,14 @@ ires= lres=
for i in $header_dirs; do
CFLAGS="-I$i $save_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1534 "configure"
#include "confdefs.h"
#include <socks.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:1530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ires=$i;break
else
@@ -1538,14 +1549,14 @@ done
for i in $lib_dirs; do
LIBS="-L$i -lsocks5 $save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1542 "configure"
+#line 1553 "configure"
#include "confdefs.h"
#include <socks.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:1549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lres=$i;break
else
@@ -1885,7 +1896,7 @@ fi
echo $ac_n "checking for readline""... $ac_c" 1>&6
-echo "configure:1889: checking for readline" >&5
+echo "configure:1900: checking for readline" >&5
case "$with_readline" in
yes) ;;
@@ -1924,7 +1935,7 @@ ires= lres=
for i in $header_dirs; do
CFLAGS="-I$i $save_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 1928 "configure"
+#line 1939 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1934,7 +1945,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ires=$i;break
else
@@ -1946,7 +1957,7 @@ done
for i in $lib_dirs; do
LIBS="-L$i -lreadline $save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1950 "configure"
+#line 1961 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1956,7 +1967,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lres=$i;break
else
@@ -2021,7 +2032,7 @@ esac
if test -n "$abi" ; then
ac_foo=krb_cv_gcc_`echo $abi | tr =- __`
echo $ac_n "checking if $CC supports the $abi option""... $ac_c" 1>&6
-echo "configure:2025: checking if $CC supports the $abi option" >&5
+echo "configure:2036: checking if $CC supports the $abi option" >&5
if eval "test \"`echo '$''{'$ac_foo'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2029,14 +2040,14 @@ else
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $abi"
cat > conftest.$ac_ext <<EOF
-#line 2033 "configure"
+#line 2044 "configure"
#include "confdefs.h"
int main() {
int x;
; return 0; }
EOF
-if { (eval echo configure:2040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval $ac_foo=yes
else
@@ -2059,14 +2070,14 @@ case $abi in
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -mabi=n32"
cat > conftest.$ac_ext <<EOF
-#line 2063 "configure"
+#line 2074 "configure"
#include "confdefs.h"
int main() {
int x;
; return 0; }
EOF
-if { (eval echo configure:2070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_res=yes
else
@@ -2140,7 +2151,7 @@ fi
echo $ac_n "checking for hesiod""... $ac_c" 1>&6
-echo "configure:2144: checking for hesiod" >&5
+echo "configure:2155: checking for hesiod" >&5
case "$with_hesiod" in
yes) ;;
@@ -2179,14 +2190,14 @@ ires= lres=
for i in $header_dirs; do
CFLAGS="-I$i $save_CFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 2183 "configure"
+#line 2194 "configure"
#include "confdefs.h"
#include <hesiod.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:2190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ires=$i;break
else
@@ -2198,14 +2209,14 @@ done
for i in $lib_dirs; do
LIBS="-L$i -lhesiod $save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2202 "configure"
+#line 2213 "configure"
#include "confdefs.h"
#include <hesiod.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lres=$i;break
else
@@ -2297,9 +2308,8 @@ case "${host}" in
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
;;
-*-*-freebsd3*)
+*-*-freebsd[34]*)
REAL_SHLIBEXT=so.$SHLIB_VERSION
- LDSHARED='ld -Bshareable'
REAL_LD_FLAGS='-Wl,-R$(libdir)'
build_symlink_command='$(LN_S) -f $@ $(LIBNAME).so'
install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
@@ -2370,7 +2380,7 @@ else
SHLIBEXT="$REAL_SHLIBEXT"
LIBEXT="$SHLIBEXT"
echo $ac_n "checking whether to use -rpath""... $ac_c" 1>&6
-echo "configure:2374: checking whether to use -rpath" >&5
+echo "configure:2384: checking whether to use -rpath" >&5
case "$libdir" in
/lib | /usr/lib | /usr/local/lib)
echo "$ac_t""no" 1>&6
@@ -2407,14 +2417,14 @@ fi
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2411: checking whether byte ordering is bigendian" >&5
+echo "configure:2421: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
-#line 2418 "configure"
+#line 2428 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -2425,11 +2435,11 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:2429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
-#line 2433 "configure"
+#line 2443 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -2440,7 +2450,7 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:2444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
@@ -2460,7 +2470,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 2464 "configure"
+#line 2474 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
@@ -2473,7 +2483,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:2477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian=no
else
@@ -2498,12 +2508,12 @@ fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2502: checking for working const" >&5
+echo "configure:2512: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2507 "configure"
+#line 2517 "configure"
#include "confdefs.h"
int main() {
@@ -2552,7 +2562,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:2556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -2574,21 +2584,21 @@ fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2578: checking for inline" >&5
+echo "configure:2588: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 2585 "configure"
+#line 2595 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:2592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -2616,13 +2626,13 @@ esac
echo $ac_n "checking for __attribute__""... $ac_c" 1>&6
-echo "configure:2620: checking for __attribute__" >&5
+echo "configure:2630: checking for __attribute__" >&5
if eval "test \"`echo '$''{'ac_cv___attribute__'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2626 "configure"
+#line 2636 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -2639,7 +2649,7 @@ foo(void)
; return 0; }
EOF
-if { (eval echo configure:2643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv___attribute__=yes
else
@@ -2663,12 +2673,12 @@ echo "$ac_t""$ac_cv___attribute__" 1>&6
echo $ac_n "checking for NEXTSTEP""... $ac_c" 1>&6
-echo "configure:2667: checking for NEXTSTEP" >&5
+echo "configure:2677: checking for NEXTSTEP" >&5
if eval "test \"`echo '$''{'krb_cv_sys_nextstep'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2672 "configure"
+#line 2682 "configure"
#include "confdefs.h"
#if defined(NeXT) && !defined(__APPLE__)
yes
@@ -2695,12 +2705,12 @@ echo "$ac_t""$krb_cv_sys_nextstep" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2699: checking for AIX" >&5
+echo "configure:2709: checking for AIX" >&5
if eval "test \"`echo '$''{'krb_cv_sys_aix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2704 "configure"
+#line 2714 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
@@ -2737,7 +2747,7 @@ if test "$krb_cv_sys_aix" = yes ;then
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:2741: checking for dlopen" >&5
+echo "configure:2751: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2750,16 +2760,16 @@ if eval "test \"\$ac_cv_func_dlopen\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2756 "configure"
+#line 2766 "configure"
#include "confdefs.h"
int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:2763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_dlopen=$ac_lib; else ac_cv_funclib_dlopen=yes; fi";break
else
@@ -2839,18 +2849,22 @@ esac
# AIX414
#
+case "${host}" in
+*-*-aix4.1*)
if test -f /lib/pse.exp ;then
LIBS="$LIBS -Wl,-bnolibpath -Wl,-bI:/lib/pse.exp"
fi
+;;
+esac
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2849: checking for ANSI C header files" >&5
+echo "configure:2863: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2854 "configure"
+#line 2868 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2858,7 +2872,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2876: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2875,7 +2889,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2879 "configure"
+#line 2893 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2893,7 +2907,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2897 "configure"
+#line 2911 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2914,7 +2928,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2918 "configure"
+#line 2932 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2925,7 +2939,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2994,7 +3008,6 @@ for ac_hdr in arpa/ftp.h \
signal.h \
stropts.h \
sys/bitypes.h \
- sys/capability.h \
sys/category.h \
sys/file.h \
sys/filio.h \
@@ -3048,17 +3061,17 @@ for ac_hdr in arpa/ftp.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3052: checking for $ac_hdr" >&5
+echo "configure:3065: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3057 "configure"
+#line 3070 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3086,12 +3099,12 @@ done
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3090: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3103: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3095 "configure"
+#line 3108 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -3100,7 +3113,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -3121,12 +3134,12 @@ EOF
fi
echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3125: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3138: checking for sys_siglist declaration in signal.h or unistd.h" >&5
if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3130 "configure"
+#line 3143 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -3138,7 +3151,7 @@ int main() {
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:3142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_siglist=yes
else
@@ -3164,17 +3177,17 @@ for ac_hdr in standards.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3168: checking for $ac_hdr" >&5
+echo "configure:3181: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3173 "configure"
+#line 3186 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3205,12 +3218,12 @@ for i in netinet/ip.h netinet/tcp.h; do
cv=`echo "$i" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $i""... $ac_c" 1>&6
-echo "configure:3209: checking for $i" >&5
+echo "configure:3222: checking for $i" >&5
if eval "test \"`echo '$''{'ac_cv_header_$cv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3214 "configure"
+#line 3227 "configure"
#include "confdefs.h"
\
#ifdef HAVE_STANDARDS_H
@@ -3220,7 +3233,7 @@ else
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3264,15 +3277,18 @@ fi
for i in int8_t int16_t int32_t int64_t; do
echo $ac_n "checking for $i""... $ac_c" 1>&6
-echo "configure:3268: checking for $i" >&5
+echo "configure:3281: checking for $i" >&5
if eval "test \"`echo '$''{'ac_cv_type_$i'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3274 "configure"
+#line 3287 "configure"
#include "confdefs.h"
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -3291,7 +3307,7 @@ $i x;
; return 0; }
EOF
-if { (eval echo configure:3295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval ac_cv_type_$i=yes
else
@@ -3317,15 +3333,18 @@ done
for i in u_int8_t u_int16_t u_int32_t u_int64_t; do
echo $ac_n "checking for $i""... $ac_c" 1>&6
-echo "configure:3321: checking for $i" >&5
+echo "configure:3337: checking for $i" >&5
if eval "test \"`echo '$''{'ac_cv_type_$i'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3327 "configure"
+#line 3343 "configure"
#include "confdefs.h"
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -3344,7 +3363,7 @@ $i x;
; return 0; }
EOF
-if { (eval echo configure:3348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval ac_cv_type_$i=yes
else
@@ -3369,13 +3388,13 @@ done
echo $ac_n "checking for strange sys/bitypes.h""... $ac_c" 1>&6
-echo "configure:3373: checking for strange sys/bitypes.h" >&5
+echo "configure:3392: checking for strange sys/bitypes.h" >&5
if eval "test \"`echo '$''{'krb_cv_int8_t_ifdef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3379 "configure"
+#line 3398 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
@@ -3393,7 +3412,7 @@ int8_t x;
; return 0; }
EOF
-if { (eval echo configure:3397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
krb_cv_int8_t_ifdef=no
else
@@ -3417,7 +3436,7 @@ fi
echo $ac_n "checking for crypt""... $ac_c" 1>&6
-echo "configure:3421: checking for crypt" >&5
+echo "configure:3440: checking for crypt" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_crypt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3430,16 +3449,16 @@ if eval "test \"\$ac_cv_func_crypt\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3436 "configure"
+#line 3455 "configure"
#include "confdefs.h"
int main() {
crypt()
; return 0; }
EOF
-if { (eval echo configure:3443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_crypt=$ac_lib; else ac_cv_funclib_crypt=yes; fi";break
else
@@ -3504,7 +3523,7 @@ esac
echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:3508: checking for socket" >&5
+echo "configure:3527: checking for socket" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_socket'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3517,9 +3536,9 @@ if eval "test \"\$ac_cv_func_socket\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3523 "configure"
+#line 3542 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -3531,7 +3550,7 @@ int main() {
socket(0,0,0)
; return 0; }
EOF
-if { (eval echo configure:3535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_socket=$ac_lib; else ac_cv_funclib_socket=yes; fi";break
else
@@ -3599,7 +3618,7 @@ fi
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:3603: checking for gethostbyname" >&5
+echo "configure:3622: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3612,9 +3631,9 @@ if eval "test \"\$ac_cv_func_gethostbyname\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3618 "configure"
+#line 3637 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -3626,7 +3645,7 @@ int main() {
gethostbyname("foo")
; return 0; }
EOF
-if { (eval echo configure:3630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_gethostbyname=$ac_lib; else ac_cv_funclib_gethostbyname=yes; fi";break
else
@@ -3696,7 +3715,7 @@ fi
echo $ac_n "checking for odm_initialize""... $ac_c" 1>&6
-echo "configure:3700: checking for odm_initialize" >&5
+echo "configure:3719: checking for odm_initialize" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_odm_initialize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3709,16 +3728,16 @@ if eval "test \"\$ac_cv_func_odm_initialize\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3715 "configure"
+#line 3734 "configure"
#include "confdefs.h"
int main() {
odm_initialize()
; return 0; }
EOF
-if { (eval echo configure:3722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_odm_initialize=$ac_lib; else ac_cv_funclib_odm_initialize=yes; fi";break
else
@@ -3786,7 +3805,7 @@ fi
echo $ac_n "checking for getattr""... $ac_c" 1>&6
-echo "configure:3790: checking for getattr" >&5
+echo "configure:3809: checking for getattr" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_getattr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3799,16 +3818,16 @@ if eval "test \"\$ac_cv_func_getattr\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3805 "configure"
+#line 3824 "configure"
#include "confdefs.h"
int main() {
getattr()
; return 0; }
EOF
-if { (eval echo configure:3812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_getattr=$ac_lib; else ac_cv_funclib_getattr=yes; fi";break
else
@@ -3876,7 +3895,7 @@ fi
echo $ac_n "checking for setpcred""... $ac_c" 1>&6
-echo "configure:3880: checking for setpcred" >&5
+echo "configure:3899: checking for setpcred" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_setpcred'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3889,16 +3908,16 @@ if eval "test \"\$ac_cv_func_setpcred\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3895 "configure"
+#line 3914 "configure"
#include "confdefs.h"
int main() {
setpcred()
; return 0; }
EOF
-if { (eval echo configure:3902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_setpcred=$ac_lib; else ac_cv_funclib_setpcred=yes; fi";break
else
@@ -3966,7 +3985,7 @@ fi
echo $ac_n "checking for logwtmp""... $ac_c" 1>&6
-echo "configure:3970: checking for logwtmp" >&5
+echo "configure:3989: checking for logwtmp" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_logwtmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3979,16 +3998,16 @@ if eval "test \"\$ac_cv_func_logwtmp\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3985 "configure"
+#line 4004 "configure"
#include "confdefs.h"
int main() {
logwtmp()
; return 0; }
EOF
-if { (eval echo configure:3992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_logwtmp=$ac_lib; else ac_cv_funclib_logwtmp=yes; fi";break
else
@@ -4057,7 +4076,7 @@ fi
echo $ac_n "checking for logout""... $ac_c" 1>&6
-echo "configure:4061: checking for logout" >&5
+echo "configure:4080: checking for logout" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_logout'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4070,16 +4089,16 @@ if eval "test \"\$ac_cv_func_logout\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4076 "configure"
+#line 4095 "configure"
#include "confdefs.h"
int main() {
logout()
; return 0; }
EOF
-if { (eval echo configure:4083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_logout=$ac_lib; else ac_cv_funclib_logout=yes; fi";break
else
@@ -4146,7 +4165,7 @@ fi
echo $ac_n "checking for tgetent""... $ac_c" 1>&6
-echo "configure:4150: checking for tgetent" >&5
+echo "configure:4169: checking for tgetent" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_tgetent'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4159,16 +4178,16 @@ if eval "test \"\$ac_cv_func_tgetent\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4165 "configure"
+#line 4184 "configure"
#include "confdefs.h"
int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:4172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_tgetent=$ac_lib; else ac_cv_funclib_tgetent=yes; fi";break
else
@@ -4233,7 +4252,7 @@ esac
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:4237: checking for X" >&5
+echo "configure:4256: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
@@ -4295,12 +4314,12 @@ if test "$ac_x_includes" = NO; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 4299 "configure"
+#line 4318 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4369,14 +4388,14 @@ if test "$ac_x_libraries" = NO; then
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4373 "configure"
+#line 4392 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:4380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
@@ -4483,17 +4502,17 @@ else
case "`(uname -sr) 2>/dev/null`" in
"SunOS 5"*)
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:4487: checking whether -R must be followed by a space" >&5
+echo "configure:4506: checking whether -R must be followed by a space" >&5
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 4490 "configure"
+#line 4509 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_nospace=yes
else
@@ -4509,14 +4528,14 @@ rm -f conftest*
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 4513 "configure"
+#line 4532 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_space=yes
else
@@ -4548,7 +4567,7 @@ rm -f conftest*
# libraries were built with DECnet support. And karl@cs.umb.edu says
# the Alpha needs dnet_stub (dnet does not exist).
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:4552: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:4571: checking for dnet_ntoa in -ldnet" >&5
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4556,7 +4575,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4560 "configure"
+#line 4579 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4567,7 +4586,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:4571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4589,7 +4608,7 @@ fi
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:4593: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:4612: checking for dnet_ntoa in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4597,7 +4616,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4601 "configure"
+#line 4620 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4608,7 +4627,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:4612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4637,12 +4656,12 @@ fi
# The nsl library prevents programs from opening the X display
# on Irix 5.2, according to dickey@clark.net.
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:4641: checking for gethostbyname" >&5
+echo "configure:4660: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4646 "configure"
+#line 4665 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
@@ -4665,7 +4684,7 @@ gethostbyname();
; return 0; }
EOF
-if { (eval echo configure:4669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes"
else
@@ -4686,7 +4705,7 @@ fi
if test $ac_cv_func_gethostbyname = no; then
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4690: checking for gethostbyname in -lnsl" >&5
+echo "configure:4709: checking for gethostbyname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4694,7 +4713,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4698 "configure"
+#line 4717 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4705,7 +4724,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:4709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4735,12 +4754,12 @@ fi
# -lsocket must be given before -lnsl if both are needed.
# We assume that if connect needs -lnsl, so does gethostbyname.
echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:4739: checking for connect" >&5
+echo "configure:4758: checking for connect" >&5
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4744 "configure"
+#line 4763 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
@@ -4763,7 +4782,7 @@ connect();
; return 0; }
EOF
-if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_connect=yes"
else
@@ -4784,7 +4803,7 @@ fi
if test $ac_cv_func_connect = no; then
echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:4788: checking for connect in -lsocket" >&5
+echo "configure:4807: checking for connect in -lsocket" >&5
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4792,7 +4811,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4796 "configure"
+#line 4815 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4803,7 +4822,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:4807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4827,12 +4846,12 @@ fi
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:4831: checking for remove" >&5
+echo "configure:4850: checking for remove" >&5
if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4836 "configure"
+#line 4855 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
@@ -4855,7 +4874,7 @@ remove();
; return 0; }
EOF
-if { (eval echo configure:4859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_remove=yes"
else
@@ -4876,7 +4895,7 @@ fi
if test $ac_cv_func_remove = no; then
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:4880: checking for remove in -lposix" >&5
+echo "configure:4899: checking for remove in -lposix" >&5
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4884,7 +4903,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4888 "configure"
+#line 4907 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4895,7 +4914,7 @@ int main() {
remove()
; return 0; }
EOF
-if { (eval echo configure:4899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4919,12 +4938,12 @@ fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:4923: checking for shmat" >&5
+echo "configure:4942: checking for shmat" >&5
if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4928 "configure"
+#line 4947 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
@@ -4947,7 +4966,7 @@ shmat();
; return 0; }
EOF
-if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shmat=yes"
else
@@ -4968,7 +4987,7 @@ fi
if test $ac_cv_func_shmat = no; then
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:4972: checking for shmat in -lipc" >&5
+echo "configure:4991: checking for shmat in -lipc" >&5
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4976,7 +4995,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lipc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4980 "configure"
+#line 4999 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4987,7 +5006,7 @@ int main() {
shmat()
; return 0; }
EOF
-if { (eval echo configure:4991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5020,7 +5039,7 @@ fi
# libraries we check for below, so use a different variable.
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5024: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:5043: checking for IceConnectionNumber in -lICE" >&5
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5028,7 +5047,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5032 "configure"
+#line 5051 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5039,7 +5058,7 @@ int main() {
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:5043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5068,7 +5087,7 @@ fi
# and yes, the autoconf X test is utterly broken
if test "$no_x" != yes; then
echo $ac_n "checking for special X linker flags""... $ac_c" 1>&6
-echo "configure:5072: checking for special X linker flags" >&5
+echo "configure:5091: checking for special X linker flags" >&5
if eval "test \"`echo '$''{'krb_cv_sys_x_libs_rpath'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5094,12 +5113,12 @@ else
esac
done
fi
- LIBS="$ac_save_libs $foo -lX11"
+ LIBS="$ac_save_libs $foo $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 5103 "configure"
+#line 5122 "configure"
#include "confdefs.h"
#include <X11/Xlib.h>
@@ -5113,7 +5132,7 @@ else
}
EOF
-if { (eval echo configure:5117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
krb_cv_sys_x_libs_rpath="$rflag"; krb_cv_sys_x_libs="$foo"; break
else
@@ -5156,7 +5175,7 @@ LDFLAGS="$LDFLAGS $X_LIBS"
echo $ac_n "checking for XauWriteAuth""... $ac_c" 1>&6
-echo "configure:5160: checking for XauWriteAuth" >&5
+echo "configure:5179: checking for XauWriteAuth" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_XauWriteAuth'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5169,16 +5188,16 @@ if eval "test \"\$ac_cv_func_XauWriteAuth\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5175 "configure"
+#line 5194 "configure"
#include "confdefs.h"
int main() {
XauWriteAuth()
; return 0; }
EOF
-if { (eval echo configure:5182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_XauWriteAuth=$ac_lib; else ac_cv_funclib_XauWriteAuth=yes; fi";break
else
@@ -5243,7 +5262,7 @@ LIBS="$LIB_XauWriteAuth $LIBS"
echo $ac_n "checking for XauReadAuth""... $ac_c" 1>&6
-echo "configure:5247: checking for XauReadAuth" >&5
+echo "configure:5266: checking for XauReadAuth" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_XauReadAuth'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5256,16 +5275,16 @@ if eval "test \"\$ac_cv_func_XauReadAuth\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5262 "configure"
+#line 5281 "configure"
#include "confdefs.h"
int main() {
XauReadAuth()
; return 0; }
EOF
-if { (eval echo configure:5269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_XauReadAuth=$ac_lib; else ac_cv_funclib_XauReadAuth=yes; fi";break
else
@@ -5329,7 +5348,7 @@ LIBS="$LIB_XauReadAauth $LIBS"
echo $ac_n "checking for XauFileName""... $ac_c" 1>&6
-echo "configure:5333: checking for XauFileName" >&5
+echo "configure:5352: checking for XauFileName" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_XauFileName'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5342,16 +5361,16 @@ if eval "test \"\$ac_cv_func_XauFileName\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5348 "configure"
+#line 5367 "configure"
#include "confdefs.h"
int main() {
XauFileName()
; return 0; }
EOF
-if { (eval echo configure:5355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_XauFileName=$ac_lib; else ac_cv_funclib_XauFileName=yes; fi";break
else
@@ -5474,7 +5493,7 @@ for i in "" $berkeley_db gdbm ndbm; do
fi
echo $ac_n "checking for dbm_open in $m""... $ac_c" 1>&6
-echo "configure:5478: checking for dbm_open in $m" >&5
+echo "configure:5497: checking for dbm_open in $m" >&5
if eval "test \"`echo '$''{'ac_cv_krb_dbm_open_$m'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5486,7 +5505,7 @@ else
ac_res=no
else
cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5509 "configure"
#include "confdefs.h"
#include <unistd.h>
@@ -5512,7 +5531,7 @@ int main()
return 0;
}
EOF
-if { (eval echo configure:5516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
if test -f conftest.db; then
@@ -5547,7 +5566,7 @@ fi
done
echo $ac_n "checking for NDBM library""... $ac_c" 1>&6
-echo "configure:5551: checking for NDBM library" >&5
+echo "configure:5570: checking for NDBM library" >&5
ac_ndbm=no
if test "$lib_db" != no; then
LIB_DBM="$lib_db"
@@ -5588,7 +5607,7 @@ echo "$ac_t""$ac_res" 1>&6
echo $ac_n "checking for syslog""... $ac_c" 1>&6
-echo "configure:5592: checking for syslog" >&5
+echo "configure:5611: checking for syslog" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_syslog'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5601,16 +5620,16 @@ if eval "test \"\$ac_cv_func_syslog\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5607 "configure"
+#line 5626 "configure"
#include "confdefs.h"
int main() {
syslog()
; return 0; }
EOF
-if { (eval echo configure:5614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_syslog=$ac_lib; else ac_cv_funclib_syslog=yes; fi";break
else
@@ -5676,7 +5695,7 @@ fi
echo $ac_n "checking for working snprintf""... $ac_c" 1>&6
-echo "configure:5680: checking for working snprintf" >&5
+echo "configure:5699: checking for working snprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_snprintf_working'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5685,7 +5704,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 5689 "configure"
+#line 5708 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -5697,7 +5716,7 @@ int main()
return strcmp(foo, "1");
}
EOF
-if { (eval echo configure:5701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -5723,12 +5742,12 @@ if test "$ac_cv_func_snprintf_working" = yes; then
if test "$ac_cv_func_snprintf+set" != set -o "$ac_cv_func_snprintf" = yes; then
echo $ac_n "checking if snprintf needs a prototype""... $ac_c" 1>&6
-echo "configure:5727: checking if snprintf needs a prototype" >&5
+echo "configure:5746: checking if snprintf needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_snprintf_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5732 "configure"
+#line 5751 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
@@ -5738,7 +5757,7 @@ snprintf(&xx);
; return 0; }
EOF
-if { (eval echo configure:5742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_snprintf_noproto=yes"
else
@@ -5765,13 +5784,13 @@ fi
echo $ac_n "checking for working glob""... $ac_c" 1>&6
-echo "configure:5769: checking for working glob" >&5
+echo "configure:5788: checking for working glob" >&5
if eval "test \"`echo '$''{'ac_cv_func_glob_working'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_func_glob_working=yes
cat > conftest.$ac_ext <<EOF
-#line 5775 "configure"
+#line 5794 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -5782,7 +5801,7 @@ glob(NULL, GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE, NULL, NULL);
; return 0; }
EOF
-if { (eval echo configure:5786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
:
else
@@ -5806,12 +5825,12 @@ if test "$ac_cv_func_glob_working" = yes; then
if test "$ac_cv_func_glob+set" != set -o "$ac_cv_func_glob" = yes; then
echo $ac_n "checking if glob needs a prototype""... $ac_c" 1>&6
-echo "configure:5810: checking if glob needs a prototype" >&5
+echo "configure:5829: checking if glob needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_glob_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5815 "configure"
+#line 5834 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <glob.h>
@@ -5822,7 +5841,7 @@ glob(&xx);
; return 0; }
EOF
-if { (eval echo configure:5826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_glob_noproto=yes"
else
@@ -5853,236 +5872,68 @@ if test "$ac_cv_func_glob_working" != yes; then
LIBOBJS="$LIBOBJS glob.o"
fi
-for ac_func in asnprintf asprintf vasprintf vasnprintf vsnprintf
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5860: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5865 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_func in atexit _getpty _scrsize _setsid _stricmp chroot fattach fchmod
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5916: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5921 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in fcntl forkpty frevoke getlogin getpriority
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5971: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5976 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in getrlimit getservbyname getspnam getspuid gettimeofday
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6026: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6031 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:6054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in gettosbyname getuid grantpt mktime parsetos ptsname
+for ac_func in \
+ _getpty \
+ _scrsize \
+ _setsid \
+ _stricmp \
+ asnprintf \
+ asprintf \
+ atexit \
+ cgetent \
+ chroot \
+ fattach \
+ fchmod \
+ fcntl \
+ forkpty \
+ frevoke \
+ getpriority \
+ getrlimit \
+ getservbyname \
+ getspnam \
+ gettimeofday \
+ gettosbyname \
+ getuid \
+ grantpt \
+ mktime \
+ on_exit \
+ parsetos \
+ ptsname \
+ rand \
+ random \
+ revoke \
+ setitimer \
+ setpgid \
+ setpriority \
+ setproctitle \
+ setregid \
+ setresgid \
+ setresuid \
+ setreuid \
+ setsid \
+ setutent \
+ sigaction \
+ sysconf \
+ sysctl \
+ ttyname \
+ ttyslot \
+ ulimit \
+ uname \
+ unlockpt \
+ vasnprintf \
+ vasprintf \
+ vhangup \
+ vsnprintf \
+ yp_get_default_domain \
+
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6081: checking for $ac_func" >&5
+echo "configure:5932: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6086 "configure"
+#line 5937 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6105,7 +5956,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6129,109 +5980,42 @@ else
fi
done
-for ac_func in rand random revoke setitimer setlogin setpgid setpriority
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6136: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6141 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:6164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-for ac_func in setproctitle setregid setresgid setresuid setreuid setsid
+for ac_hdr in capability.h sys/capability.h
do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6191: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:5991: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6196 "configure"
+#line 5996 "configure"
#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
+#include <$ac_hdr>
EOF
-if { (eval echo configure:6219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6001: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
+ eval "ac_cv_header_$ac_safe=yes"
else
+ echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
+ eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+#define $ac_tr_hdr 1
EOF
else
@@ -6239,70 +6023,16 @@ else
fi
done
-for ac_func in setutent sigaction sysconf sysctl ttyname ttyslot
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6246: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6251 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:6274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-for ac_func in ulimit uname unlockpt vhangup yp_get_default_domain
+for ac_func in sgi_getcapabilitybyname cap_set_proc
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6301: checking for $ac_func" >&5
+echo "configure:6031: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6306 "configure"
+#line 6036 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6325,7 +6055,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6349,60 +6079,6 @@ else
fi
done
-for ac_func in on_exit sgi_getcapabilitybyname cap_set_proc
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6356: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6361 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:6384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
@@ -6410,7 +6086,7 @@ done
echo $ac_n "checking for getpwnam_r""... $ac_c" 1>&6
-echo "configure:6414: checking for getpwnam_r" >&5
+echo "configure:6090: checking for getpwnam_r" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_getpwnam_r'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6423,16 +6099,16 @@ if eval "test \"\$ac_cv_func_getpwnam_r\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6429 "configure"
+#line 6105 "configure"
#include "confdefs.h"
int main() {
getpwnam_r()
; return 0; }
EOF
-if { (eval echo configure:6436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_getpwnam_r=$ac_lib; else ac_cv_funclib_getpwnam_r=yes; fi";break
else
@@ -6493,7 +6169,7 @@ esac
if test "$ac_cv_func_getpwnam_r" = yes; then
echo $ac_n "checking if getpwnam_r is posix""... $ac_c" 1>&6
-echo "configure:6497: checking if getpwnam_r is posix" >&5
+echo "configure:6173: checking if getpwnam_r is posix" >&5
if eval "test \"`echo '$''{'ac_cv_func_getpwnam_r_posix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6503,7 +6179,7 @@ else
:
else
cat > conftest.$ac_ext <<EOF
-#line 6507 "configure"
+#line 6183 "configure"
#include "confdefs.h"
#include <pwd.h>
@@ -6514,7 +6190,7 @@ int main()
}
EOF
-if { (eval echo configure:6518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_getpwnam_r_posix=yes
else
@@ -6543,7 +6219,7 @@ fi
echo $ac_n "checking for getsockopt""... $ac_c" 1>&6
-echo "configure:6547: checking for getsockopt" >&5
+echo "configure:6223: checking for getsockopt" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_getsockopt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6556,9 +6232,9 @@ if eval "test \"\$ac_cv_func_getsockopt\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6562 "configure"
+#line 6238 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -6570,7 +6246,7 @@ int main() {
getsockopt(0,0,0,0,0)
; return 0; }
EOF
-if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_getsockopt=$ac_lib; else ac_cv_funclib_getsockopt=yes; fi";break
else
@@ -6633,7 +6309,7 @@ esac
echo $ac_n "checking for setsockopt""... $ac_c" 1>&6
-echo "configure:6637: checking for setsockopt" >&5
+echo "configure:6313: checking for setsockopt" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_setsockopt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6646,9 +6322,9 @@ if eval "test \"\$ac_cv_func_setsockopt\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6652 "configure"
+#line 6328 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -6660,7 +6336,7 @@ int main() {
setsockopt(0,0,0,0,0)
; return 0; }
EOF
-if { (eval echo configure:6664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_setsockopt=$ac_lib; else ac_cv_funclib_setsockopt=yes; fi";break
else
@@ -6723,12 +6399,12 @@ esac
for ac_func in getudbnam setlim
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6727: checking for $ac_func" >&5
+echo "configure:6403: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6732 "configure"
+#line 6408 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6751,7 +6427,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6781,7 +6457,7 @@ done
echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:6785: checking for res_search" >&5
+echo "configure:6461: checking for res_search" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_res_search'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6794,9 +6470,9 @@ if eval "test \"\$ac_cv_func_res_search\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6800 "configure"
+#line 6476 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -6817,7 +6493,7 @@ int main() {
res_search(0,0,0,0,0)
; return 0; }
EOF
-if { (eval echo configure:6821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_search=$ac_lib; else ac_cv_funclib_res_search=yes; fi";break
else
@@ -6886,7 +6562,7 @@ fi
echo $ac_n "checking for dn_expand""... $ac_c" 1>&6
-echo "configure:6890: checking for dn_expand" >&5
+echo "configure:6566: checking for dn_expand" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_dn_expand'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6899,9 +6575,9 @@ if eval "test \"\$ac_cv_func_dn_expand\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6905 "configure"
+#line 6581 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -6922,7 +6598,7 @@ int main() {
dn_expand(0,0,0,0,0)
; return 0; }
EOF
-if { (eval echo configure:6926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_dn_expand=$ac_lib; else ac_cv_funclib_dn_expand=yes; fi";break
else
@@ -6991,17 +6667,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6995: checking for $ac_hdr" >&5
+echo "configure:6671: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7000 "configure"
+#line 6676 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7005: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -7030,12 +6706,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7034: checking for $ac_func" >&5
+echo "configure:6710: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7039 "configure"
+#line 6715 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7058,7 +6734,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7083,7 +6759,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:7087: checking for working mmap" >&5
+echo "configure:6763: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7091,7 +6767,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 7095 "configure"
+#line 6771 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -7231,7 +6907,7 @@ main()
}
EOF
-if { (eval echo configure:7235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -7256,19 +6932,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:7260: checking for working alloca.h" >&5
+echo "configure:6936: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7265 "configure"
+#line 6941 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:7272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -7289,12 +6965,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:7293: checking for alloca" >&5
+echo "configure:6969: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7298 "configure"
+#line 6974 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -7322,7 +6998,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:7326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -7354,12 +7030,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:7358: checking whether alloca needs Cray hooks" >&5
+echo "configure:7034: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7363 "configure"
+#line 7039 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -7384,12 +7060,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7388: checking for $ac_func" >&5
+echo "configure:7064: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7393 "configure"
+#line 7069 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7412,7 +7088,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7439,7 +7115,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:7443: checking stack direction for C alloca" >&5
+echo "configure:7119: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7447,7 +7123,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 7451 "configure"
+#line 7127 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -7466,7 +7142,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:7470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -7488,13 +7164,65 @@ EOF
fi
-#
-# Test for POSIX (broken) getlogin
-#
+
+for ac_func in getlogin setlogin
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7172: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7177 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
if test "$ac_cv_func_getlogin" = yes; then
echo $ac_n "checking if getlogin is posix""... $ac_c" 1>&6
-echo "configure:7498: checking if getlogin is posix" >&5
+echo "configure:7226: checking if getlogin is posix" >&5
if eval "test \"`echo '$''{'ac_cv_func_getlogin_posix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7520,8 +7248,9 @@ fi
+
echo $ac_n "checking for hstrerror""... $ac_c" 1>&6
-echo "configure:7525: checking for hstrerror" >&5
+echo "configure:7254: checking for hstrerror" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_hstrerror'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7534,9 +7263,9 @@ if eval "test \"\$ac_cv_func_hstrerror\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7540 "configure"
+#line 7269 "configure"
#include "confdefs.h"
#ifdef HAVE_NETDB_H
#include <netdb.h>
@@ -7545,7 +7274,7 @@ int main() {
hstrerror(17)
; return 0; }
EOF
-if { (eval echo configure:7549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_hstrerror=$ac_lib; else ac_cv_funclib_hstrerror=yes; fi";break
else
@@ -7616,12 +7345,12 @@ if test "$ac_cv_func_hstrerror" = yes; then
if test "$ac_cv_func_hstrerror+set" != set -o "$ac_cv_func_hstrerror" = yes; then
echo $ac_n "checking if hstrerror needs a prototype""... $ac_c" 1>&6
-echo "configure:7620: checking if hstrerror needs a prototype" >&5
+echo "configure:7349: checking if hstrerror needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_hstrerror_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7625 "configure"
+#line 7354 "configure"
#include "confdefs.h"
#ifdef HAVE_NETDB_H
@@ -7634,7 +7363,7 @@ hstrerror(&xx);
; return 0; }
EOF
-if { (eval echo configure:7638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_hstrerror_noproto=yes"
else
@@ -7659,15 +7388,259 @@ fi
fi
-for ac_func in chown daemon err errx fchown flock fnmatch
+for ac_func in chown copyhostent daemon err errx fchown flock fnmatch freehostent
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7395: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7400 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ac_tr_func=HAVE_`echo $ac_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.o"
+fi
+
+: << END
+@@@funcs="$funcs chown copyhostent daemon err errx fchown flock fnmatch freehostent"@@@
+END
+done
+
+for ac_func in getcwd getdtablesize gethostname getipnodebyaddr getipnodebyname
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7456: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7461 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ac_tr_func=HAVE_`echo $ac_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.o"
+fi
+
+: << END
+@@@funcs="$funcs getcwd getdtablesize gethostname getipnodebyaddr getipnodebyname"@@@
+END
+done
+
+for ac_func in geteuid getgid getegid
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7517: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7522 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ac_tr_func=HAVE_`echo $ac_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.o"
+fi
+
+: << END
+@@@funcs="$funcs geteuid getgid getegid"@@@
+END
+done
+
+for ac_func in getopt getusershell
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7578: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7583 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ac_tr_func=HAVE_`echo $ac_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.o"
+fi
+
+: << END
+@@@funcs="$funcs getopt getusershell"@@@
+END
+done
+
+for ac_func in inet_aton inet_ntop inet_pton initgroups innetgr iruserok lstat
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7666: checking for $ac_func" >&5
+echo "configure:7639: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7671 "configure"
+#line 7644 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7690,7 +7663,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7716,19 +7689,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs chown daemon err errx fchown flock fnmatch"@@@
+@@@funcs="$funcs inet_aton inet_ntop inet_pton initgroups innetgr iruserok lstat"@@@
END
done
-for ac_func in getcwd getdtablesize gethostname geteuid getgid getegid
+for ac_func in memmove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7727: checking for $ac_func" >&5
+echo "configure:7700: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7732 "configure"
+#line 7705 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7751,7 +7724,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7777,19 +7750,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs getcwd getdtablesize gethostname geteuid getgid getegid"@@@
+@@@funcs="$funcs memmove"@@@
END
done
-for ac_func in getopt getusershell inet_aton initgroups innetgr iruserok lstat
+for ac_func in mkstemp putenv rcmd readv recvmsg sendmsg setegid setenv seteuid
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7788: checking for $ac_func" >&5
+echo "configure:7761: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7793 "configure"
+#line 7766 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7812,7 +7785,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7838,19 +7811,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs getopt getusershell inet_aton initgroups innetgr iruserok lstat"@@@
+@@@funcs="$funcs mkstemp putenv rcmd readv recvmsg sendmsg setegid setenv seteuid"@@@
END
done
-for ac_func in memmove mkstemp putenv rcmd readv setegid setenv seteuid
+for ac_func in strcasecmp strncasecmp strdup strerror strftime
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7849: checking for $ac_func" >&5
+echo "configure:7822: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7854 "configure"
+#line 7827 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7873,7 +7846,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7899,19 +7872,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs memmove mkstemp putenv rcmd readv setegid setenv seteuid"@@@
+@@@funcs="$funcs strcasecmp strncasecmp strdup strerror strftime"@@@
END
done
-for ac_func in strcasecmp strncasecmp strdup strerror strftime strlwr
+for ac_func in strlcat strlcpy strlwr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7910: checking for $ac_func" >&5
+echo "configure:7883: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7915 "configure"
+#line 7888 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7934,7 +7907,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7960,19 +7933,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs strcasecmp strncasecmp strdup strerror strftime strlwr"@@@
+@@@funcs="$funcs strlcat strlcpy strlwr"@@@
END
done
-for ac_func in strndup strnlen strsep strtok_r strupr
+for ac_func in strndup strnlen strptime strsep strtok_r strupr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7971: checking for $ac_func" >&5
+echo "configure:7944: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7976 "configure"
+#line 7949 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7995,7 +7968,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8021,19 +7994,19 @@ LIBOBJS="$LIBOBJS ${ac_func}.o"
fi
: << END
-@@@funcs="$funcs strndup strnlen strsep strtok_r strupr"@@@
+@@@funcs="$funcs strndup strnlen strptime strsep strtok_r strupr"@@@
END
done
for ac_func in swab unsetenv verr verrx vsyslog
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8032: checking for $ac_func" >&5
+echo "configure:8005: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8037 "configure"
+#line 8010 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8056,7 +8029,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8089,12 +8062,12 @@ done
for ac_func in vwarn vwarnx warn warnx writev
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8093: checking for $ac_func" >&5
+echo "configure:8066: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8098 "configure"
+#line 8071 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8117,7 +8090,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8152,12 +8125,12 @@ if test "$ac_cv_func_gethostname" = "yes"; then
if test "$ac_cv_func_gethostname+set" != set -o "$ac_cv_func_gethostname" = yes; then
echo $ac_n "checking if gethostname needs a prototype""... $ac_c" 1>&6
-echo "configure:8156: checking if gethostname needs a prototype" >&5
+echo "configure:8129: checking if gethostname needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostname_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8161 "configure"
+#line 8134 "configure"
#include "confdefs.h"
#include <unistd.h>
@@ -8168,7 +8141,7 @@ gethostname(&xx);
; return 0; }
EOF
-if { (eval echo configure:8172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_gethostname_noproto=yes"
else
@@ -8197,12 +8170,12 @@ if test "$ac_cv_func_mkstemp" = "yes"; then
if test "$ac_cv_func_mkstemp+set" != set -o "$ac_cv_func_mkstemp" = yes; then
echo $ac_n "checking if mkstemp needs a prototype""... $ac_c" 1>&6
-echo "configure:8201: checking if mkstemp needs a prototype" >&5
+echo "configure:8174: checking if mkstemp needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_mkstemp_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8206 "configure"
+#line 8179 "configure"
#include "confdefs.h"
#include <unistd.h>
@@ -8213,7 +8186,7 @@ mkstemp(&xx);
; return 0; }
EOF
-if { (eval echo configure:8217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_mkstemp_noproto=yes"
else
@@ -8242,12 +8215,12 @@ if test "$ac_cv_func_inet_aton" = "yes"; then
if test "$ac_cv_func_inet_aton+set" != set -o "$ac_cv_func_inet_aton" = yes; then
echo $ac_n "checking if inet_aton needs a prototype""... $ac_c" 1>&6
-echo "configure:8246: checking if inet_aton needs a prototype" >&5
+echo "configure:8219: checking if inet_aton needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_inet_aton_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8251 "configure"
+#line 8224 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
@@ -8269,7 +8242,7 @@ inet_aton(&xx);
; return 0; }
EOF
-if { (eval echo configure:8273: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_inet_aton_noproto=yes"
else
@@ -8295,7 +8268,7 @@ fi
fi
echo $ac_n "checking if realloc is broken""... $ac_c" 1>&6
-echo "configure:8299: checking if realloc is broken" >&5
+echo "configure:8272: checking if realloc is broken" >&5
if eval "test \"`echo '$''{'ac_cv_func_realloc_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -8305,7 +8278,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 8309 "configure"
+#line 8282 "configure"
#include "confdefs.h"
#include <stddef.h>
@@ -8317,7 +8290,7 @@ int main()
}
EOF
-if { (eval echo configure:8321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -8343,7 +8316,7 @@ fi
if test "$ac_cv_func_getcwd" = yes; then
echo $ac_n "checking if getcwd is broken""... $ac_c" 1>&6
-echo "configure:8347: checking if getcwd is broken" >&5
+echo "configure:8320: checking if getcwd is broken" >&5
if eval "test \"`echo '$''{'ac_cv_func_getcwd_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -8354,7 +8327,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 8358 "configure"
+#line 8331 "configure"
#include "confdefs.h"
#include <errno.h>
@@ -8376,7 +8349,7 @@ int main()
}
EOF
-if { (eval echo configure:8380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_getcwd_broken=yes
else
@@ -8405,7 +8378,7 @@ fi
echo $ac_n "checking which authentication modules should be built""... $ac_c" 1>&6
-echo "configure:8409: checking which authentication modules should be built" >&5
+echo "configure:8382: checking which authentication modules should be built" >&5
LIB_AUTH_SUBDIRS=
@@ -8426,7 +8399,7 @@ echo "$ac_t""$LIB_AUTH_SUBDIRS" 1>&6
echo $ac_n "checking for tunnel devices""... $ac_c" 1>&6
-echo "configure:8430: checking for tunnel devices" >&5
+echo "configure:8403: checking for tunnel devices" >&5
APPL_KIP_DIR=
@@ -8440,12 +8413,12 @@ echo "$ac_t""$ac_cv_header_net_if_tun_h" 1>&6
echo $ac_n "checking if gethostbyname is compatible with system prototype""... $ac_c" 1>&6
-echo "configure:8444: checking if gethostbyname is compatible with system prototype" >&5
+echo "configure:8417: checking if gethostbyname is compatible with system prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname_proto_compat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8449 "configure"
+#line 8422 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
@@ -8468,7 +8441,7 @@ int main() {
struct hostent *gethostbyname(const char *);
; return 0; }
EOF
-if { (eval echo configure:8472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname_proto_compat=yes"
else
@@ -8493,12 +8466,12 @@ fi
echo $ac_n "checking if gethostbyaddr is compatible with system prototype""... $ac_c" 1>&6
-echo "configure:8497: checking if gethostbyaddr is compatible with system prototype" >&5
+echo "configure:8470: checking if gethostbyaddr is compatible with system prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyaddr_proto_compat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8502 "configure"
+#line 8475 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
@@ -8521,7 +8494,7 @@ int main() {
struct hostent *gethostbyaddr(const void *, size_t, int);
; return 0; }
EOF
-if { (eval echo configure:8525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_gethostbyaddr_proto_compat=yes"
else
@@ -8546,12 +8519,12 @@ fi
echo $ac_n "checking if getservbyname is compatible with system prototype""... $ac_c" 1>&6
-echo "configure:8550: checking if getservbyname is compatible with system prototype" >&5
+echo "configure:8523: checking if getservbyname is compatible with system prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_getservbyname_proto_compat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8555 "configure"
+#line 8528 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
@@ -8574,7 +8547,7 @@ int main() {
struct servent *getservbyname(const char *, const char *);
; return 0; }
EOF
-if { (eval echo configure:8578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8551: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_getservbyname_proto_compat=yes"
else
@@ -8599,12 +8572,12 @@ fi
echo $ac_n "checking if openlog is compatible with system prototype""... $ac_c" 1>&6
-echo "configure:8603: checking if openlog is compatible with system prototype" >&5
+echo "configure:8576: checking if openlog is compatible with system prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_openlog_proto_compat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8608 "configure"
+#line 8581 "configure"
#include "confdefs.h"
#ifdef HAVE_SYSLOG_H
@@ -8615,7 +8588,7 @@ int main() {
void openlog(const char *, int, int);
; return 0; }
EOF
-if { (eval echo configure:8619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_openlog_proto_compat=yes"
else
@@ -8641,12 +8614,12 @@ fi
if test "$ac_cv_func_crypt+set" != set -o "$ac_cv_func_crypt" = yes; then
echo $ac_n "checking if crypt needs a prototype""... $ac_c" 1>&6
-echo "configure:8645: checking if crypt needs a prototype" >&5
+echo "configure:8618: checking if crypt needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_crypt_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8650 "configure"
+#line 8623 "configure"
#include "confdefs.h"
#ifdef HAVE_CRYPT_H
@@ -8663,7 +8636,7 @@ crypt(&xx);
; return 0; }
EOF
-if { (eval echo configure:8667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_crypt_noproto=yes"
else
@@ -8690,12 +8663,12 @@ fi
if test "$ac_cv_func_fclose+set" != set -o "$ac_cv_func_fclose" = yes; then
echo $ac_n "checking if fclose needs a prototype""... $ac_c" 1>&6
-echo "configure:8694: checking if fclose needs a prototype" >&5
+echo "configure:8667: checking if fclose needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_fclose_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8699 "configure"
+#line 8672 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -8707,7 +8680,7 @@ fclose(&xx);
; return 0; }
EOF
-if { (eval echo configure:8711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8684: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_fclose_noproto=yes"
else
@@ -8734,12 +8707,12 @@ fi
if test "$ac_cv_func_strtok_r+set" != set -o "$ac_cv_func_strtok_r" = yes; then
echo $ac_n "checking if strtok_r needs a prototype""... $ac_c" 1>&6
-echo "configure:8738: checking if strtok_r needs a prototype" >&5
+echo "configure:8711: checking if strtok_r needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_strtok_r_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8743 "configure"
+#line 8716 "configure"
#include "confdefs.h"
#include <string.h>
@@ -8751,7 +8724,7 @@ strtok_r(&xx);
; return 0; }
EOF
-if { (eval echo configure:8755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_strtok_r_noproto=yes"
else
@@ -8778,12 +8751,12 @@ fi
if test "$ac_cv_func_strsep+set" != set -o "$ac_cv_func_strsep" = yes; then
echo $ac_n "checking if strsep needs a prototype""... $ac_c" 1>&6
-echo "configure:8782: checking if strsep needs a prototype" >&5
+echo "configure:8755: checking if strsep needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_strsep_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8787 "configure"
+#line 8760 "configure"
#include "confdefs.h"
#include <string.h>
@@ -8795,7 +8768,7 @@ strsep(&xx);
; return 0; }
EOF
-if { (eval echo configure:8799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_strsep_noproto=yes"
else
@@ -8822,12 +8795,12 @@ fi
if test "$ac_cv_func_getusershell+set" != set -o "$ac_cv_func_getusershell" = yes; then
echo $ac_n "checking if getusershell needs a prototype""... $ac_c" 1>&6
-echo "configure:8826: checking if getusershell needs a prototype" >&5
+echo "configure:8799: checking if getusershell needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_getusershell_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8831 "configure"
+#line 8804 "configure"
#include "confdefs.h"
#include <unistd.h>
@@ -8839,7 +8812,7 @@ getusershell(&xx);
; return 0; }
EOF
-if { (eval echo configure:8843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_getusershell_noproto=yes"
else
@@ -8866,12 +8839,12 @@ fi
if test "$ac_cv_func_utime+set" != set -o "$ac_cv_func_utime" = yes; then
echo $ac_n "checking if utime needs a prototype""... $ac_c" 1>&6
-echo "configure:8870: checking if utime needs a prototype" >&5
+echo "configure:8843: checking if utime needs a prototype" >&5
if eval "test \"`echo '$''{'ac_cv_func_utime_noproto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8875 "configure"
+#line 8848 "configure"
#include "confdefs.h"
#ifdef HAVE_UTIME_H
@@ -8885,7 +8858,7 @@ utime(&xx);
; return 0; }
EOF
-if { (eval echo configure:8889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_func_utime_noproto=yes"
else
@@ -8911,13 +8884,13 @@ fi
echo $ac_n "checking for h_errno""... $ac_c" 1>&6
-echo "configure:8915: checking for h_errno" >&5
+echo "configure:8888: checking for h_errno" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_errno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8921 "configure"
+#line 8894 "configure"
#include "confdefs.h"
extern int h_errno;
int foo() { return h_errno; }
@@ -8925,7 +8898,7 @@ int main() {
foo()
; return 0; }
EOF
-if { (eval echo configure:8929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_h_errno=yes
else
@@ -8948,13 +8921,13 @@ EOF
echo $ac_n "checking if h_errno is properly declared""... $ac_c" 1>&6
-echo "configure:8952: checking if h_errno is properly declared" >&5
+echo "configure:8925: checking if h_errno is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_errno_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8958 "configure"
+#line 8931 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -8967,7 +8940,7 @@ int main() {
h_errno.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:8971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_h_errno_declaration=no"
else
@@ -8998,13 +8971,13 @@ fi
echo $ac_n "checking for h_errlist""... $ac_c" 1>&6
-echo "configure:9002: checking for h_errlist" >&5
+echo "configure:8975: checking for h_errlist" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_errlist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9008 "configure"
+#line 8981 "configure"
#include "confdefs.h"
extern int h_errlist;
int foo() { return h_errlist; }
@@ -9012,7 +8985,7 @@ int main() {
foo()
; return 0; }
EOF
-if { (eval echo configure:9016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_h_errlist=yes
else
@@ -9035,13 +9008,13 @@ EOF
echo $ac_n "checking if h_errlist is properly declared""... $ac_c" 1>&6
-echo "configure:9039: checking if h_errlist is properly declared" >&5
+echo "configure:9012: checking if h_errlist is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_errlist_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9045 "configure"
+#line 9018 "configure"
#include "confdefs.h"
#ifdef HAVE_NETDB_H
#include <netdb.h>
@@ -9051,7 +9024,7 @@ int main() {
h_errlist.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_h_errlist_declaration=no"
else
@@ -9082,13 +9055,13 @@ fi
echo $ac_n "checking for h_nerr""... $ac_c" 1>&6
-echo "configure:9086: checking for h_nerr" >&5
+echo "configure:9059: checking for h_nerr" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_nerr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9092 "configure"
+#line 9065 "configure"
#include "confdefs.h"
extern int h_nerr;
int foo() { return h_nerr; }
@@ -9096,7 +9069,7 @@ int main() {
foo()
; return 0; }
EOF
-if { (eval echo configure:9100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_h_nerr=yes
else
@@ -9119,13 +9092,13 @@ EOF
echo $ac_n "checking if h_nerr is properly declared""... $ac_c" 1>&6
-echo "configure:9123: checking if h_nerr is properly declared" >&5
+echo "configure:9096: checking if h_nerr is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_h_nerr_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9129 "configure"
+#line 9102 "configure"
#include "confdefs.h"
#ifdef HAVE_NETDB_H
#include <netdb.h>
@@ -9135,7 +9108,7 @@ int main() {
h_nerr.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_h_nerr_declaration=no"
else
@@ -9166,13 +9139,13 @@ fi
echo $ac_n "checking for __progname""... $ac_c" 1>&6
-echo "configure:9170: checking for __progname" >&5
+echo "configure:9143: checking for __progname" >&5
if eval "test \"`echo '$''{'ac_cv_var___progname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9176 "configure"
+#line 9149 "configure"
#include "confdefs.h"
extern int __progname;
int foo() { return __progname; }
@@ -9180,7 +9153,7 @@ int main() {
foo()
; return 0; }
EOF
-if { (eval echo configure:9184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var___progname=yes
else
@@ -9203,13 +9176,13 @@ EOF
echo $ac_n "checking if __progname is properly declared""... $ac_c" 1>&6
-echo "configure:9207: checking if __progname is properly declared" >&5
+echo "configure:9180: checking if __progname is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var___progname_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9213 "configure"
+#line 9186 "configure"
#include "confdefs.h"
#ifdef HAVE_ERR_H
#include <err.h>
@@ -9219,7 +9192,7 @@ int main() {
__progname.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var___progname_declaration=no"
else
@@ -9250,21 +9223,24 @@ fi
echo $ac_n "checking if optarg is properly declared""... $ac_c" 1>&6
-echo "configure:9254: checking if optarg is properly declared" >&5
+echo "configure:9227: checking if optarg is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_optarg_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9260 "configure"
+#line 9233 "configure"
#include "confdefs.h"
#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
extern struct { int foo; } optarg;
int main() {
optarg.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_optarg_declaration=no"
else
@@ -9291,21 +9267,24 @@ fi
echo $ac_n "checking if optind is properly declared""... $ac_c" 1>&6
-echo "configure:9295: checking if optind is properly declared" >&5
+echo "configure:9271: checking if optind is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_optind_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9301 "configure"
+#line 9277 "configure"
#include "confdefs.h"
#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
extern struct { int foo; } optind;
int main() {
optind.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_optind_declaration=no"
else
@@ -9332,21 +9311,24 @@ fi
echo $ac_n "checking if opterr is properly declared""... $ac_c" 1>&6
-echo "configure:9336: checking if opterr is properly declared" >&5
+echo "configure:9315: checking if opterr is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_opterr_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9342 "configure"
+#line 9321 "configure"
#include "confdefs.h"
#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
extern struct { int foo; } opterr;
int main() {
opterr.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9350: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_opterr_declaration=no"
else
@@ -9373,21 +9355,24 @@ fi
echo $ac_n "checking if optopt is properly declared""... $ac_c" 1>&6
-echo "configure:9377: checking if optopt is properly declared" >&5
+echo "configure:9359: checking if optopt is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_optopt_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9383 "configure"
+#line 9365 "configure"
#include "confdefs.h"
#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
extern struct { int foo; } optopt;
int main() {
optopt.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_optopt_declaration=no"
else
@@ -9415,13 +9400,13 @@ fi
echo $ac_n "checking if environ is properly declared""... $ac_c" 1>&6
-echo "configure:9419: checking if environ is properly declared" >&5
+echo "configure:9404: checking if environ is properly declared" >&5
if eval "test \"`echo '$''{'ac_cv_var_environ_declaration'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9425 "configure"
+#line 9410 "configure"
#include "confdefs.h"
#include <stdlib.h>
extern struct { int foo; } environ;
@@ -9429,7 +9414,7 @@ int main() {
environ.foo = 1;
; return 0; }
EOF
-if { (eval echo configure:9433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_var_environ_declaration=no"
else
@@ -9456,12 +9441,12 @@ fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:9460: checking return type of signal handlers" >&5
+echo "configure:9445: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9465 "configure"
+#line 9450 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -9478,7 +9463,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:9482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -9507,13 +9492,13 @@ fi
echo $ac_n "checking for ut_addr in struct utmp""... $ac_c" 1>&6
-echo "configure:9511: checking for ut_addr in struct utmp" >&5
+echo "configure:9496: checking for ut_addr in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_addr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9517 "configure"
+#line 9502 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9521,7 +9506,7 @@ int main() {
struct utmp x; x.ut_addr;
; return 0; }
EOF
-if { (eval echo configure:9525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_addr=yes
else
@@ -9547,13 +9532,13 @@ fi
echo $ac_n "checking for ut_host in struct utmp""... $ac_c" 1>&6
-echo "configure:9551: checking for ut_host in struct utmp" >&5
+echo "configure:9536: checking for ut_host in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_host'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9557 "configure"
+#line 9542 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9561,7 +9546,7 @@ int main() {
struct utmp x; x.ut_host;
; return 0; }
EOF
-if { (eval echo configure:9565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_host=yes
else
@@ -9587,13 +9572,13 @@ fi
echo $ac_n "checking for ut_id in struct utmp""... $ac_c" 1>&6
-echo "configure:9591: checking for ut_id in struct utmp" >&5
+echo "configure:9576: checking for ut_id in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_id'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9597 "configure"
+#line 9582 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9601,7 +9586,7 @@ int main() {
struct utmp x; x.ut_id;
; return 0; }
EOF
-if { (eval echo configure:9605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_id=yes
else
@@ -9627,13 +9612,13 @@ fi
echo $ac_n "checking for ut_pid in struct utmp""... $ac_c" 1>&6
-echo "configure:9631: checking for ut_pid in struct utmp" >&5
+echo "configure:9616: checking for ut_pid in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_pid'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9637 "configure"
+#line 9622 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9641,7 +9626,7 @@ int main() {
struct utmp x; x.ut_pid;
; return 0; }
EOF
-if { (eval echo configure:9645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9630: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_pid=yes
else
@@ -9667,13 +9652,13 @@ fi
echo $ac_n "checking for ut_type in struct utmp""... $ac_c" 1>&6
-echo "configure:9671: checking for ut_type in struct utmp" >&5
+echo "configure:9656: checking for ut_type in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_type'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9677 "configure"
+#line 9662 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9681,7 +9666,7 @@ int main() {
struct utmp x; x.ut_type;
; return 0; }
EOF
-if { (eval echo configure:9685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9670: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_type=yes
else
@@ -9707,13 +9692,13 @@ fi
echo $ac_n "checking for ut_user in struct utmp""... $ac_c" 1>&6
-echo "configure:9711: checking for ut_user in struct utmp" >&5
+echo "configure:9696: checking for ut_user in struct utmp" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmp_ut_user'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9717 "configure"
+#line 9702 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9721,7 +9706,7 @@ int main() {
struct utmp x; x.ut_user;
; return 0; }
EOF
-if { (eval echo configure:9725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmp_ut_user=yes
else
@@ -9747,13 +9732,13 @@ fi
echo $ac_n "checking for ut_exit in struct utmpx""... $ac_c" 1>&6
-echo "configure:9751: checking for ut_exit in struct utmpx" >&5
+echo "configure:9736: checking for ut_exit in struct utmpx" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmpx_ut_exit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9757 "configure"
+#line 9742 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9761,7 +9746,7 @@ int main() {
struct utmpx x; x.ut_exit;
; return 0; }
EOF
-if { (eval echo configure:9765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmpx_ut_exit=yes
else
@@ -9787,13 +9772,13 @@ fi
echo $ac_n "checking for ut_syslen in struct utmpx""... $ac_c" 1>&6
-echo "configure:9791: checking for ut_syslen in struct utmpx" >&5
+echo "configure:9776: checking for ut_syslen in struct utmpx" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_utmpx_ut_syslen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9797 "configure"
+#line 9782 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utmp.h>
@@ -9801,7 +9786,7 @@ int main() {
struct utmpx x; x.ut_syslen;
; return 0; }
EOF
-if { (eval echo configure:9805: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_utmpx_ut_syslen=yes
else
@@ -9826,14 +9811,269 @@ fi
+
+
+echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
+echo "configure:9818: checking for tm_gmtoff in struct tm" >&5
+if eval "test \"`echo '$''{'ac_cv_type_struct_tm_tm_gmtoff'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cat > conftest.$ac_ext <<EOF
+#line 9824 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+struct tm x; x.tm_gmtoff;
+; return 0; }
+EOF
+if { (eval echo configure:9831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_struct_tm_tm_gmtoff=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_type_struct_tm_tm_gmtoff=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_type_struct_tm_tm_gmtoff" 1>&6
+if test "$ac_cv_type_struct_tm_tm_gmtoff" = yes; then
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_STRUCT_TM_TM_GMTOFF 1
+EOF
+
+
+fi
+
+
+
+
+echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
+echo "configure:9857: checking for tm_zone in struct tm" >&5
+if eval "test \"`echo '$''{'ac_cv_type_struct_tm_tm_zone'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cat > conftest.$ac_ext <<EOF
+#line 9863 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+struct tm x; x.tm_zone;
+; return 0; }
+EOF
+if { (eval echo configure:9870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_struct_tm_tm_zone=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_type_struct_tm_tm_zone=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_type_struct_tm_tm_zone" 1>&6
+if test "$ac_cv_type_struct_tm_tm_zone" = yes; then
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_STRUCT_TM_TM_ZONE 1
+EOF
+
+
+fi
+
+
+
+
+
+echo $ac_n "checking for timezone""... $ac_c" 1>&6
+echo "configure:9897: checking for timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var_timezone'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cat > conftest.$ac_ext <<EOF
+#line 9903 "configure"
+#include "confdefs.h"
+extern int timezone;
+int foo() { return timezone; }
+int main() {
+foo()
+; return 0; }
+EOF
+if { (eval echo configure:9911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_var_timezone=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_var_timezone=no
+fi
+rm -f conftest*
+
+fi
+
+
+
+echo "$ac_t""`eval echo \\$ac_cv_var_timezone`" 1>&6
+if test `eval echo \\$ac_cv_var_timezone` = yes; then
+ cat >> confdefs.h <<EOF
+#define HAVE_TIMEZONE 1
+EOF
+
+
+echo $ac_n "checking if timezone is properly declared""... $ac_c" 1>&6
+echo "configure:9934: checking if timezone is properly declared" >&5
+if eval "test \"`echo '$''{'ac_cv_var_timezone_declaration'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cat > conftest.$ac_ext <<EOF
+#line 9940 "configure"
+#include "confdefs.h"
+#include <time.h>
+extern struct { int foo; } timezone;
+int main() {
+timezone.foo = 1;
+; return 0; }
+EOF
+if { (eval echo configure:9948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ eval "ac_cv_var_timezone_declaration=no"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_var_timezone_declaration=yes"
+fi
+rm -f conftest*
+
+fi
+
+
+
+
+echo "$ac_t""$ac_cv_var_timezone_declaration" 1>&6
+if eval "test \"\$ac_cv_var_timezone_declaration\" = yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TIMEZONE_DECLARATION 1
+EOF
+
+fi
+
+
+fi
+
+
+
+
+cv=`echo "sa_family_t" | sed 'y%./+- %__p__%'`
+echo $ac_n "checking for sa_family_t""... $ac_c" 1>&6
+echo "configure:9980: checking for sa_family_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_$cv'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9985 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#include <sys/socket.h>
+int main() {
+sa_family_t foo;
+; return 0; }
+EOF
+if { (eval echo configure:9997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ eval "ac_cv_type_$cv=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_type_$cv=no"
+fi
+rm -f conftest*
+fi
+echo "$ac_t""`eval echo \\$ac_cv_type_$cv`" 1>&6
+if test `eval echo \\$ac_cv_type_$cv` = yes; then
+ ac_tr_hdr=HAVE_`echo sa_family_t | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
+
+: << END
+@@@funcs="$funcs sa_family_t"@@@
+END
+
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+fi
+
+
+
+cv=`echo "struct sockaddr_storage" | sed 'y%./+- %__p__%'`
+echo $ac_n "checking for struct sockaddr_storage""... $ac_c" 1>&6
+echo "configure:10026: checking for struct sockaddr_storage" >&5
+if eval "test \"`echo '$''{'ac_cv_type_$cv'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10031 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#include <sys/socket.h>
+int main() {
+struct sockaddr_storage foo;
+; return 0; }
+EOF
+if { (eval echo configure:10043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ eval "ac_cv_type_$cv=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_type_$cv=no"
+fi
+rm -f conftest*
+fi
+echo "$ac_t""`eval echo \\$ac_cv_type_$cv`" 1>&6
+if test `eval echo \\$ac_cv_type_$cv` = yes; then
+ ac_tr_hdr=HAVE_`echo struct sockaddr_storage | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
+
+: << END
+@@@funcs="$funcs struct_sockaddr_storage"@@@
+END
+
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+fi
+
+
+
echo $ac_n "checking for struct spwd""... $ac_c" 1>&6
-echo "configure:9831: checking for struct spwd" >&5
-if eval "test \"`echo '$''{'ac_cv_type_struct_spwd'+set}'`\" = set"; then
+echo "configure:10071: checking for struct spwd" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_spwd'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9837 "configure"
+#line 10077 "configure"
#include "confdefs.h"
#include <pwd.h>
#ifdef HAVE_SHADOW_H
@@ -9843,7 +10083,7 @@ int main() {
struct spwd foo;
; return 0; }
EOF
-if { (eval echo configure:9847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_spwd=yes
else
@@ -9867,12 +10107,12 @@ fi
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:9871: checking for st_blksize in struct stat" >&5
+echo "configure:10111: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9876 "configure"
+#line 10116 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -9880,7 +10120,7 @@ int main() {
struct stat s; s.st_blksize;
; return 0; }
EOF
-if { (eval echo configure:9884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blksize=yes
else
@@ -9904,7 +10144,7 @@ fi
echo $ac_n "checking for struct winsize""... $ac_c" 1>&6
-echo "configure:9908: checking for struct winsize" >&5
+echo "configure:10148: checking for struct winsize" >&5
if eval "test \"`echo '$''{'ac_cv_struct_winsize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -9912,7 +10152,7 @@ else
ac_cv_struct_winsize=no
for i in sys/termios.h sys/ioctl.h; do
cat > conftest.$ac_ext <<EOF
-#line 9916 "configure"
+#line 10156 "configure"
#include "confdefs.h"
#include <$i>
EOF
@@ -9934,7 +10174,7 @@ EOF
fi
echo "$ac_t""$ac_cv_struct_winsize" 1>&6
cat > conftest.$ac_ext <<EOF
-#line 9938 "configure"
+#line 10178 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
@@ -9949,7 +10189,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 9953 "configure"
+#line 10193 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
@@ -9967,12 +10207,12 @@ rm -f conftest*
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:9971: checking for pid_t" >&5
+echo "configure:10211: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9976 "configure"
+#line 10216 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -10000,12 +10240,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:10004: checking for uid_t in sys/types.h" >&5
+echo "configure:10244: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10009 "configure"
+#line 10249 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -10034,12 +10274,12 @@ EOF
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:10038: checking for off_t" >&5
+echo "configure:10278: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10043 "configure"
+#line 10283 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -10067,12 +10307,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:10071: checking for size_t" >&5
+echo "configure:10311: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10076 "configure"
+#line 10316 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -10101,12 +10341,12 @@ fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:10105: checking for ssize_t" >&5
+echo "configure:10345: checking for ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10110 "configure"
+#line 10350 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -10140,13 +10380,13 @@ fi
echo $ac_n "checking for broken sys/socket.h""... $ac_c" 1>&6
-echo "configure:10144: checking for broken sys/socket.h" >&5
+echo "configure:10384: checking for broken sys/socket.h" >&5
if eval "test \"`echo '$''{'krb_cv_header_sys_socket_h_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10150 "configure"
+#line 10390 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -10155,7 +10395,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:10159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
krb_cv_header_sys_socket_h_broken=no
else
@@ -10171,16 +10411,51 @@ echo "$ac_t""$krb_cv_header_sys_socket_h_broken" 1>&6
+echo $ac_n "checking for broken netdb.h""... $ac_c" 1>&6
+echo "configure:10416: checking for broken netdb.h" >&5
+if eval "test \"`echo '$''{'krb_cv_header_netdb_h_broken'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cat > conftest.$ac_ext <<EOF
+#line 10422 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <netdb.h>
+#include <netdb.h>
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:10431: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ krb_cv_header_netdb_h_broken=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ krb_cv_header_netdb_h_broken=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$krb_cv_header_netdb_h_broken" 1>&6
+
+if test "$krb_cv_header_netdb_h_broken" = "yes"; then
+ EXTRA_HEADERS="$EXTRA_HEADERS netdb.h"
+fi
+
+
echo $ac_n "checking for sa_len in struct sockaddr""... $ac_c" 1>&6
-echo "configure:10178: checking for sa_len in struct sockaddr" >&5
+echo "configure:10453: checking for sa_len in struct sockaddr" >&5
if eval "test \"`echo '$''{'ac_cv_type_struct_sockaddr_sa_len'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10184 "configure"
+#line 10459 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -10188,7 +10463,7 @@ int main() {
struct sockaddr x; x.sa_len;
; return 0; }
EOF
-if { (eval echo configure:10192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_struct_sockaddr_sa_len=yes
else
@@ -10217,20 +10492,20 @@ if test "$ac_cv_header_siad_h" = yes; then
echo $ac_n "checking for ouid in SIAENTITY""... $ac_c" 1>&6
-echo "configure:10221: checking for ouid in SIAENTITY" >&5
+echo "configure:10496: checking for ouid in SIAENTITY" >&5
if eval "test \"`echo '$''{'ac_cv_type_siaentity_ouid'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10227 "configure"
+#line 10502 "configure"
#include "confdefs.h"
#include <siad.h>
int main() {
SIAENTITY x; x.ouid;
; return 0; }
EOF
-if { (eval echo configure:10234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_siaentity_ouid=yes
else
@@ -10259,12 +10534,12 @@ fi
for ac_func in getmsg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10263: checking for $ac_func" >&5
+echo "configure:10538: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10268 "configure"
+#line 10543 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -10287,7 +10562,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:10291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -10315,7 +10590,7 @@ done
if test "$ac_cf_func_getmsg" = "yes"; then
echo $ac_n "checking for working getmsg""... $ac_c" 1>&6
-echo "configure:10319: checking for working getmsg" >&5
+echo "configure:10594: checking for working getmsg" >&5
if eval "test \"`echo '$''{'ac_cv_func_getmsg'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -10323,7 +10598,7 @@ else
ac_cv_func_getmsg=no
else
cat > conftest.$ac_ext <<EOF
-#line 10327 "configure"
+#line 10602 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -10335,7 +10610,7 @@ int main()
}
EOF
-if { (eval echo configure:10339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_getmsg=yes
else
@@ -10364,7 +10639,7 @@ fi
echo $ac_n "checking for el_init""... $ac_c" 1>&6
-echo "configure:10368: checking for el_init" >&5
+echo "configure:10643: checking for el_init" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_el_init'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -10377,16 +10652,16 @@ if eval "test \"\$ac_cv_func_el_init\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $LIB_tgetent $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 10383 "configure"
+#line 10658 "configure"
#include "confdefs.h"
int main() {
el_init()
; return 0; }
EOF
-if { (eval echo configure:10390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_el_init=$ac_lib; else ac_cv_funclib_el_init=yes; fi";break
else
@@ -10447,13 +10722,13 @@ esac
if test "$ac_cv_func_el_init" = yes ; then
echo $ac_n "checking for four argument el_init""... $ac_c" 1>&6
-echo "configure:10451: checking for four argument el_init" >&5
+echo "configure:10726: checking for four argument el_init" >&5
if eval "test \"`echo '$''{'ac_cv_func_el_init_four'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 10457 "configure"
+#line 10732 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <histedit.h>
@@ -10461,7 +10736,7 @@ int main() {
el_init("", NULL, NULL, NULL);
; return 0; }
EOF
-if { (eval echo configure:10465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_func_el_init_four=yes
else
@@ -10489,7 +10764,7 @@ LIBS="$LIB_tgetent $LIBS"
echo $ac_n "checking for readline""... $ac_c" 1>&6
-echo "configure:10493: checking for readline" >&5
+echo "configure:10768: checking for readline" >&5
if eval "test \"`echo '$''{'ac_cv_funclib_readline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -10502,16 +10777,16 @@ if eval "test \"\$ac_cv_func_readline\" != yes" ; then
else
ac_lib=""
fi
- LIBS="$ac_lib $ac_save_LIBS"
+ LIBS=" $ac_lib $ac_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 10508 "configure"
+#line 10783 "configure"
#include "confdefs.h"
int main() {
readline()
; return 0; }
EOF
-if { (eval echo configure:10515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "if test -n \"$ac_lib\";then ac_cv_funclib_readline=$ac_lib; else ac_cv_funclib_readline=yes; fi";break
else
@@ -10618,7 +10893,7 @@ EOF
# And also something wierd has happend with dec-osf1, fallback to bsd-ptys
echo $ac_n "checking for streamspty""... $ac_c" 1>&6
-echo "configure:10622: checking for streamspty" >&5
+echo "configure:10897: checking for streamspty" >&5
case "`uname -sr`" in
SunOS\ 4*|OSF1*|IRIX\ 4*|HP-UX\ ?.10.*)
krb_cv_sys_streamspty=no
@@ -10644,7 +10919,7 @@ fi
echo "$ac_t""$krb_cv_sys_streamspty" 1>&6
echo $ac_n "checking if /bin/ls takes -A""... $ac_c" 1>&6
-echo "configure:10648: checking if /bin/ls takes -A" >&5
+echo "configure:10923: checking if /bin/ls takes -A" >&5
if /bin/ls -A > /dev/null 2>&1 ;then
cat >> confdefs.h <<\EOF
#define HAVE_LS_A 1
@@ -10657,7 +10932,7 @@ fi
echo "$ac_t""$krb_ls_a" 1>&6
echo $ac_n "checking for suffix of preformatted manual pages""... $ac_c" 1>&6
-echo "configure:10661: checking for suffix of preformatted manual pages" >&5
+echo "configure:10936: checking for suffix of preformatted manual pages" >&5
if eval "test \"`echo '$''{'krb_cv_sys_cat_suffix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -10687,7 +10962,7 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
for i in bin lib libexec sbin; do
i=${i}dir
- HAVE_SIAENTITY_OUID=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
+ foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
x="\$${i}"
eval y="$x"
while test "x$y" != "x$x"; do
@@ -10695,7 +10970,7 @@ for i in bin lib libexec sbin; do
eval y="$x"
done
cat >> confdefs.h <<EOF
-#define $HAVE_SIAENTITY_OUID "$x"
+#define $foo "$x"
EOF
done
@@ -10854,6 +11129,7 @@ appl/kx/Makefile \
appl/kip/Makefile \
appl/otp/Makefile \
doc/Makefile \
+etc/inetd.conf.changes \
include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -10981,6 +11257,7 @@ s%@LIBOBJS@%$LIBOBJS%g
s%@LIB_AUTH_SUBDIRS@%$LIB_AUTH_SUBDIRS%g
s%@APPL_KIP_DIR@%$APPL_KIP_DIR%g
s%@krb_cv_header_sys_socket_h_broken@%$krb_cv_header_sys_socket_h_broken%g
+s%@krb_cv_header_netdb_h_broken@%$krb_cv_header_netdb_h_broken%g
s%@LIB_el_init@%$LIB_el_init%g
s%@el_yes@%$el_yes%g
s%@CATSUFFIX@%$CATSUFFIX%g
@@ -11079,6 +11356,7 @@ appl/kx/Makefile \
appl/kip/Makefile \
appl/otp/Makefile \
doc/Makefile \
+etc/inetd.conf.changes \
"}
EOF
cat >> $CONFIG_STATUS <<\EOF
diff --git a/crypto/kerberosIV/configure.in b/crypto/kerberosIV/configure.in
index ec17759c0d4d..cd2a70e5c3cf 100644
--- a/crypto/kerberosIV/configure.in
+++ b/crypto/kerberosIV/configure.in
@@ -8,7 +8,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.
dnl
-AC_REVISION($Revision: 1.415.2.9 $)
+AC_REVISION($Revision: 1.432.2.2 $)
AC_INIT(lib/krb/getrealm.c)
AC_CONFIG_HEADER(include/config.h)
@@ -18,7 +18,7 @@ dnl
PACKAGE=krb4
AC_SUBST(PACKAGE)dnl
-VERSION=0.10.1
+VERSION=1.0
AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])dnl
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])dnl
@@ -67,9 +67,7 @@ AC_KRB_PROG_YACC
AC_PROG_LEX
AC_PROG_RANLIB
AC_PROG_INSTALL
-dnl AC_PROG_AWK
-dnl mawk seems to mishandle \# in lib/roken/roken.awk
-AC_CHECK_PROGS(AWK, gawk nawk awk, )
+AC_PROG_AWK
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, :)
dnl Use make Wall or make WFLAGS=".."
@@ -329,9 +327,13 @@ fi
# AIX414
#
+case "${host}" in
+*-*-aix4.1*)
if test -f /lib/pse.exp ;then
LIBS="$LIBS -Wl,-bnolibpath -Wl,-bI:/lib/pse.exp"
fi
+;;
+esac
dnl
dnl Various checks for headers and their contents
@@ -384,7 +386,6 @@ AC_CHECK_HEADERS([arpa/ftp.h \
signal.h \
stropts.h \
sys/bitypes.h \
- sys/capability.h \
sys/category.h \
sys/file.h \
sys/filio.h \
@@ -548,21 +549,66 @@ if test "$ac_cv_func_glob_working" != yes; then
LIBOBJS="$LIBOBJS glob.o"
fi
-AC_CHECK_FUNCS(asnprintf asprintf vasprintf vasnprintf vsnprintf)
-
-AC_CHECK_FUNCS(atexit _getpty _scrsize _setsid _stricmp chroot fattach fchmod)
-AC_CHECK_FUNCS(fcntl forkpty frevoke getlogin getpriority)
-AC_CHECK_FUNCS(getrlimit getservbyname getspnam getspuid gettimeofday)
-AC_CHECK_FUNCS(gettosbyname getuid grantpt mktime parsetos ptsname)
-AC_CHECK_FUNCS(rand random revoke setitimer setlogin setpgid setpriority)
-AC_CHECK_FUNCS(setproctitle setregid setresgid setresuid setreuid setsid)
-AC_CHECK_FUNCS(setutent sigaction sysconf sysctl ttyname ttyslot)
-AC_CHECK_FUNCS(ulimit uname unlockpt vhangup yp_get_default_domain)
-AC_CHECK_FUNCS(on_exit sgi_getcapabilitybyname cap_set_proc)
+AC_CHECK_FUNCS([ \
+ _getpty \
+ _scrsize \
+ _setsid \
+ _stricmp \
+ asnprintf \
+ asprintf \
+ atexit \
+ cgetent \
+ chroot \
+ fattach \
+ fchmod \
+ fcntl \
+ forkpty \
+ frevoke \
+ getpriority \
+ getrlimit \
+ getservbyname \
+ getspnam \
+ gettimeofday \
+ gettosbyname \
+ getuid \
+ grantpt \
+ mktime \
+ on_exit \
+ parsetos \
+ ptsname \
+ rand \
+ random \
+ revoke \
+ setitimer \
+ setpgid \
+ setpriority \
+ setproctitle \
+ setregid \
+ setresgid \
+ setresuid \
+ setreuid \
+ setsid \
+ setutent \
+ sigaction \
+ sysconf \
+ sysctl \
+ ttyname \
+ ttyslot \
+ ulimit \
+ uname \
+ unlockpt \
+ vasnprintf \
+ vasprintf \
+ vhangup \
+ vsnprintf \
+ yp_get_default_domain \
+ ])
+
+KRB_CAPABILITIES
AC_CHECK_GETPWNAM_R_POSIX
-AC_FIND_FUNC_NO_LIBS(getsockopt, ,
+AC_FIND_FUNC_NO_LIBS(getsockopt,,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -570,7 +616,7 @@ AC_FIND_FUNC_NO_LIBS(getsockopt, ,
#include <sys/socket.h>
#endif],
[0,0,0,0,0])
-AC_FIND_FUNC_NO_LIBS(setsockopt, ,
+AC_FIND_FUNC_NO_LIBS(setsockopt,,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -624,22 +670,7 @@ AC_SUBST(LIB_dn_expand)dnl
AC_FUNC_MMAP
AC_FUNC_ALLOCA
-#
-# Test for POSIX (broken) getlogin
-#
-
-if test "$ac_cv_func_getlogin" = yes; then
-AC_CACHE_CHECK(if getlogin is posix, ac_cv_func_getlogin_posix, [
-if test "$ac_cv_func_getlogin" = yes -a "$ac_cv_func_setlogin" = yes; then
- ac_cv_func_getlogin_posix=no
-else
- ac_cv_func_getlogin_posix=yes
-fi
-])
-if test "$ac_cv_func_getlogin_posix" = yes; then
- AC_DEFINE(POSIX_GETLOGIN, 1, [Define if getlogin has POSIX flavour (and not BSD).])
-fi
-fi
+AC_FUNC_GETLOGIN
AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
[#ifdef HAVE_NETDB_H
@@ -654,12 +685,16 @@ AC_NEED_PROTO([
hstrerror)
fi
-AC_BROKEN(chown daemon err errx fchown flock fnmatch)
-AC_BROKEN(getcwd getdtablesize gethostname geteuid getgid getegid)
-AC_BROKEN(getopt getusershell inet_aton initgroups innetgr iruserok lstat)
-AC_BROKEN(memmove mkstemp putenv rcmd readv setegid setenv seteuid)
-AC_BROKEN(strcasecmp strncasecmp strdup strerror strftime strlwr)
-AC_BROKEN(strndup strnlen strsep strtok_r strupr)
+AC_BROKEN(chown copyhostent daemon err errx fchown flock fnmatch freehostent)
+AC_BROKEN(getcwd getdtablesize gethostname getipnodebyaddr getipnodebyname)
+AC_BROKEN(geteuid getgid getegid)
+AC_BROKEN(getopt getusershell)
+AC_BROKEN(inet_aton inet_ntop inet_pton initgroups innetgr iruserok lstat)
+AC_BROKEN(memmove)
+AC_BROKEN(mkstemp putenv rcmd readv recvmsg sendmsg setegid setenv seteuid)
+AC_BROKEN(strcasecmp strncasecmp strdup strerror strftime)
+AC_BROKEN(strlcat strlcpy strlwr)
+AC_BROKEN(strndup strnlen strptime strsep strtok_r strupr)
AC_BROKEN(swab unsetenv verr verrx vsyslog)
AC_BROKEN(vwarn vwarnx warn warnx writev)
@@ -879,10 +914,22 @@ AC_CHECK_VAR([#ifdef HAVE_ERR_H
#include <err.h>
#endif],[__progname])
-AC_CHECK_DECLARATION([#include <stdlib.h>], optarg)
-AC_CHECK_DECLARATION([#include <stdlib.h>], optind)
-AC_CHECK_DECLARATION([#include <stdlib.h>], opterr)
-AC_CHECK_DECLARATION([#include <stdlib.h>], optopt)
+AC_CHECK_DECLARATION([#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], optarg)
+AC_CHECK_DECLARATION([#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], optind)
+AC_CHECK_DECLARATION([#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], opterr)
+AC_CHECK_DECLARATION([#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], optopt)
AC_CHECK_DECLARATION([#include <stdlib.h>], environ)
@@ -932,6 +979,25 @@ AC_HAVE_STRUCT_FIELD(struct utmpx, ut_syslen,
[#include <sys/types.h>
#include <utmp.h>])
+dnl
+dnl Check for fields in struct tm
+dnl
+
+AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include <time.h>])
+AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include <time.h>])
+
+dnl
+dnl or do we have a variable `timezone' ?
+dnl
+
+AC_CHECK_VAR(
+[#include <time.h>],
+timezone)
+
+AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
+
+AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
+
AC_KRB_STRUCT_SPWD
AC_STRUCT_ST_BLKSIZE
@@ -972,6 +1038,24 @@ AC_MSG_RESULT($krb_cv_header_sys_socket_h_broken)
AC_SUBST(krb_cv_header_sys_socket_h_broken)
dnl
+dnl Check for broken ultrix netdb.h
+dnl
+
+AC_MSG_CHECKING(for broken netdb.h)
+AC_CACHE_VAL(krb_cv_header_netdb_h_broken, [
+AC_TRY_COMPILE(
+[#include <sys/types.h>
+#include <netdb.h>
+#include <netdb.h>],[],
+krb_cv_header_netdb_h_broken=no,
+krb_cv_header_netdb_h_broken=yes)])
+AC_MSG_RESULT($krb_cv_header_netdb_h_broken)
+AC_SUBST(krb_cv_header_netdb_h_broken)
+if test "$krb_cv_header_netdb_h_broken" = "yes"; then
+ EXTRA_HEADERS="$EXTRA_HEADERS netdb.h"
+fi
+
+dnl
dnl Check for sa_len in sys/socket.h
dnl
@@ -1016,7 +1100,7 @@ dnl
dnl el_init
-AC_FIND_FUNC_NO_LIBS(el_init, edit)
+AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
if test "$ac_cv_func_el_init" = yes ; then
AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
AC_TRY_COMPILE([#include <stdio.h>
@@ -1195,6 +1279,7 @@ appl/kx/Makefile \
appl/kip/Makefile \
appl/otp/Makefile \
doc/Makefile \
+etc/inetd.conf.changes \
) dnl end of AC_OUTPUT
AC_KRB_VERSION
diff --git a/crypto/kerberosIV/doc/Makefile.in b/crypto/kerberosIV/doc/Makefile.in
index 8241c5d197b8..bbf870ece21b 100644
--- a/crypto/kerberosIV/doc/Makefile.in
+++ b/crypto/kerberosIV/doc/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.18 1998/04/19 08:37:12 assar Exp $
+# $Id: Makefile.in,v 1.19 1999/09/28 12:35:11 assar Exp $
SHELL = /bin/sh
@@ -15,6 +15,16 @@ TEXI2HTML = texi2html
prefix = @prefix@
infodir = @infodir@
+TEXI_SOURCES = ack.texi \
+ index.texi \
+ install.texi \
+ intro.texi \
+ kth-krb.texi \
+ otp.texi \
+ problems.texi \
+ setup.texi \
+ whatis.texi
+
all: info
install: all installdirs
@@ -40,17 +50,17 @@ installdirs:
info: kth-krb.info
-kth-krb.info: kth-krb.texi
+kth-krb.info: $(TEXI_SOURCES)
$(MAKEINFO) --no-split -I$(srcdir) -o $@ $(srcdir)/kth-krb.texi
dvi: kth-krb.dvi
-kth-krb.dvi: kth-krb.texi
+kth-krb.dvi: $(TEXI_SOURCES)
$(TEXI2DVI) $(srcdir)/kth-krb.texi
html: kth-krb.html
-kth-krb.html: kth-krb.texi
+kth-krb.html: $(TEXI_SOURCES)
$(TEXI2HTML) $(srcdir)/kth-krb.texi
clean:
diff --git a/crypto/kerberosIV/doc/ack.texi b/crypto/kerberosIV/doc/ack.texi
index e5830d040543..327220c991e0 100644
--- a/crypto/kerberosIV/doc/ack.texi
+++ b/crypto/kerberosIV/doc/ack.texi
@@ -85,6 +85,8 @@ Bugfixes and code has been contributed by:
@code{<toddr@@rpi.edu>}
@item Åke Sandgren
@code{<ake@@cs.umu.se>}
+@item Thomas Nyström
+@code{<thn@@stacken.kth.se>}
@item and we hope that those not mentioned here will forgive us.
@end table
diff --git a/crypto/kerberosIV/doc/install.texi b/crypto/kerberosIV/doc/install.texi
index b893ae1cefe9..26d2abf39412 100644
--- a/crypto/kerberosIV/doc/install.texi
+++ b/crypto/kerberosIV/doc/install.texi
@@ -15,6 +15,7 @@ from source.
* Installing from source::
* Installing a binary distribution::
* Finishing the installation::
+* .klogin::
* Authentication modules::
@end menu
@@ -59,7 +60,7 @@ Use cracklib for password quality control in
@code{kadmind}. This option requires
@cindex cracklib
cracklib with the patch from
-@code{ftp://ftp.pdc.kth.se/pub/krb/src/cracklib.patch}.
+@url{ftp://ftp.pdc.kth.se/pub/krb/src/cracklib.patch}.
@item @kbd{--with-dictpath=}@var{dictpath}
This is the dictionary that cracklib should use.
@@ -76,7 +77,7 @@ about socks see @url{http://www.socks.nec.com/}.
@cindex readline
To enable history/line editing in @code{ftp} and @code{kadmin}, any
present version of readline will be used. If you have readline
-installed but in a place where configure does not managed to find it,
+installed but in a place where configure does not manage to find it,
you can use this option. The code also looks for @code{libedit}. If
there is no library at all, the bundled version of @code{editline} will
be used.
@@ -92,12 +93,23 @@ spool directory is located. This directory is only accessed by
@pindex login
@code{login}.
+@item @kbd{--with-hesiod=}@var{dir}
+@cindex Hesiod
+Enable the Hesiod support in
+@pindex push
+@code{push}. With this option, it will try
+to use the hesiod library to locate the mail post-office for the user.
+
@c @item @kbd{--enable-random-mkey}
@c Do not use this option unless you think you know what you are doing.
@item @kbd{--with-mkey=}@var{file}
Put the master key here, the default is @file{/.k}.
+@item @kbd{--with-db-dir=}@var{dir}
+Where the kerberos database should be stored. The default is
+@file{/var/kerberos}.
+
@item @kbd{--without-berkeley-db}
If you have
@cindex Berkeley DB
@@ -108,20 +120,54 @@ since there currently isn't an easy way to convert a dbm database to a
db one (you have to dump the old database and then load it with the new
binaries).
-@item @kbd{--disable-shared-afs}
+@item @kbd{--without-afs-support}
+Do not include AFS support.
+
+@item @kbd{--with-afsws=}@var{dir}
+Where your AFS client installation resides. The default is
+@file{/usr/afsws}.
+
+@item @kbd{--enable-rxkad}
+Build the rxkad library. Normally automatically included if there is AFS.
+
+@item @kbd{--disable-dynamic-afs}
The AFS support in AIX consists of a shared library that is loaded at
runtime. This option disables this, and links with static system
calls. Doing this will make the built binaries crash on a machine that
doesn't have AFS in the kernel (for instance if the AFS module fails to
load at boot).
-@item @kbd{--with-mips-api=api}
+@item @kbd{--with-mips-api=}@var{api}
This option enables creation of different types of binaries on Irix.
The allowed values are @kbd{32}, @kbd{n32}, and @kbd{64}.
@item @kbd{--enable-legacy-kdestroy}
This compile-time option creates a @code{kdestroy} that does not destroy
any AFS tokens.
+
+@item @kbd{--disable-otp}
+Do not build the OTP (@pxref{One-Time Passwords}) library and programs,
+and do not include OTP support in the application programs.
+
+@item @kbd{--enable-match-subdomains}
+Normally, the host @samp{host.domain} will be considered to be part of
+the realm @samp{DOMAIN}. With this option will also enable hosts of the
+form @samp{host.sub.domain}, @samp{host.sub1.sub2.domain}, and so on to
+be considered part of the realm @samp{DOMAIN}.
+
+@item @kbd{--enable-osfc2}
+Enable the use of enhanced C2 security on OSF/1. @xref{Digital SIA}.
+
+@item @kbd{--disable-mmap}
+Do not use the mmap system call. Normally, configure detects if there
+is a working mmap and it is only used if there is one. Only try this
+option if it fails to work anyhow.
+
+@item @kbd{--disable-cat-manpages}
+Do not install preformatted man pages.
+
+@c --with-des-quad-checksum
+
@end table
@node Installing a binary distribution, Finishing the installation, Installing from source, Installing programs
@@ -133,7 +179,7 @@ The binary distribution is supposed to be installed in
recommended. A symlink from @file{/usr/athena} to the install directory
should be fine.
-@node Finishing the installation, Authentication modules, Installing a binary distribution, Installing programs
+@node Finishing the installation, .klogin, Installing a binary distribution, Installing programs
@section Finishing the installation
@pindex su
@@ -236,19 +282,64 @@ ttys. (From Wietse Venema)
@end table
@menu
+* .klogin::
* Authentication modules::
@end menu
-@node Authentication modules, , Finishing the installation, Installing programs
+@node .klogin, Authentication modules, Finishing the installation, Installing programs
+@comment node-name, next, previous, up
+
+Each user can have an authorization file @file{~@var{user}/.klogin}
+@pindex .klogin
+that
+determines what principals can login as that user. It is similar to the
+@file{~user/.rhosts} except that it does not use IP and privileged-port
+based authentication. If this file does not exist, the user herself
+@samp{user@@LOCALREALM} will be allowed to login. Supplementary local
+realms (@pxref{Install the configuration files}) also apply here. If the
+file exists, it should contain the additional principals that are to
+be allowed to login as the local user @var{user}.
+
+This file is consulted by most of the daemons (@code{rlogind},
+@code{rshd}, @code{ftpd}, @code{telnetd}, @code{popper}, @code{kauthd}, and
+@code{kxd})
+@pindex rlogind
+@pindex rshd
+@pindex ftpd
+@pindex telnetd
+@pindex popper
+@pindex kauthd
+@pindex kxd
+to determine if the
+principal requesting a service is allowed to receive it. It is also
+used by
+@pindex su
+@code{su}, which is a good way of keeping an access control list (ACL)
+on who is allowed to become root. Assuming that @file{~root/.klogin}
+contains:
+
+@example
+nisse.root@@FOO.SE
+lisa.root@@FOO.SE
+@end example
+
+both nisse and lisa will be able to su to root by entering the password
+of their root instance. If that fails or if the user is not listed in
+@file{~root/.klogin}, @code{su} falls back to the normal policy of who
+is permitted to su. Also note that that nisse and lisa can login
+with e.g. @code{telnet} as root provided that they have tickets for
+their root instance.
+
+@node Authentication modules, , .klogin, Installing programs
@comment node-name, next, previous, up
@section Authentication modules
The problem of having different authentication mechanisms has been
recognised by several vendors, and several solutions has appeared. In
most cases these solutions involve some kind of shared modules that are
loaded at run-time. Modules for some of these systems can be found in
-@file{lib/auth}. Presently there are modules for Digital's SIA, Linux'
-PAM (might also work on Solaris, when PAM gets supported), and IRIX'
-@code{login} and @code{xdm} (in @file{lib/auth/afskauthlib}).
+@file{lib/auth}. Presently there are modules for Digital's SIA,
+Solaris' and Linux' PAM, and IRIX' @code{login} and @code{xdm} (in
+@file{lib/auth/afskauthlib}).
@menu
* Digital SIA::
@@ -382,9 +473,8 @@ files.
@subsection PAM
The PAM module was written more out of curiosity that anything else. It
-has not been updated for quite a while, since none of us are using
-Linux, and Solaris does not support PAM yet. We've had positive reports
-from at least one person using the module, though.
+has not been updated for quite a while, but it seems to mostly work on
+both Linux and Solaris.
To use this module you should:
@@ -402,5 +492,5 @@ There is currently no support for changing kerberos passwords. Use
kpasswd instead.
See also Derrick J Brashear's @code{<shadow@@dementia.org>} Kerberos PAM
-module at @kbd{ftp://ftp.dementia.org/pub/pam}. It has a lot more
+module at @* @url{ftp://ftp.dementia.org/pub/pam}. It has a lot more
features, and it is also more in line with other PAM modules.
diff --git a/crypto/kerberosIV/doc/kth-krb.texi b/crypto/kerberosIV/doc/kth-krb.texi
index 248b62605289..82820e3a0a81 100644
--- a/crypto/kerberosIV/doc/kth-krb.texi
+++ b/crypto/kerberosIV/doc/kth-krb.texi
@@ -1,6 +1,6 @@
\input texinfo @c -*- texinfo -*-
@c %**start of header
-@c $Id: kth-krb.texi,v 1.77.2.1 1999/08/18 21:11:25 joda Exp $
+@c $Id: kth-krb.texi,v 1.80 1999/12/02 16:58:35 joda Exp $
@setfilename kth-krb.info
@settitle KTH-KRB
@iftex
@@ -29,7 +29,7 @@
@subtitle 1999
@author Johan Danielsson
@author Assar Westerlund
-@author last updated $Date: 1999/08/18 21:11:25 $
+@author last updated $Date: 1999/12/02 16:58:35 $
@def@copynext{@vskip 20pt plus 1fil@penalty-1000}
@def@copyrightstart{}
@@ -51,12 +51,7 @@ are met:
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the Kungliga Tekniska
- Högskolan and its contributors.
-
-4. Neither the name of the Institute nor the names of its contributors
+3. Neither the name of the Institute nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
diff --git a/crypto/kerberosIV/doc/problems.texi b/crypto/kerberosIV/doc/problems.texi
index 7713d4511c7c..d7a525fd4a5a 100644
--- a/crypto/kerberosIV/doc/problems.texi
+++ b/crypto/kerberosIV/doc/problems.texi
@@ -23,6 +23,7 @@ datan$ env CC="cc -Ae" ./configure
@end example
@end cartouche
+@cindex GCC
In general @kbd{gcc} works. The following combinations have also been
verified to successfully compile the distribution:
@@ -56,12 +57,23 @@ Some systems have lost @file{/usr/include/ndbm.h} which is necessary to
build krb4 correctly. There is a @file{ndbm.h.Linux} right next to
the source distribution.
+@cindex Linux
There has been reports of non-working @file{libdb} on some Linux
distributions. If that happens, use the @kbd{--without-berkeley-db}
when configuring.
+@subheading SunOS 5 (aka Solaris 2) problems
+
+@cindex SunOS 5
+
+When building shared libraries and using some combinations of GNU gcc/ld
+you better set the environment variable RUN_PATH to /usr/athena/lib
+(your target libdir). If you don't, then you will have to set
+LD_LIBRARY_PATH during runtime and the PAM module will not work.
+
@subheading HP-UX problems
+@cindex HP-UX
The shared library @file{/usr/lib/libndbm.sl} doesn't exist on all
systems. To make problems even worse, there is never an archive version
for static linking either. Therefore, when building ``truly portable''
@@ -73,8 +85,45 @@ are linking against that library.
@kbd{rlogind} won't work on Crays until @code{forkpty()} has been
ported, in the mean time use @kbd{telnetd}.
+@subheading IRIX problems
+
+@cindex IRIX
+
+IRIX has three different ABI:s (Application Binary Interface), there's
+an old 32 bit interface (known as O32, or just 32), a new 32 bit
+interface (N32), and a 64 bit interface (64). O32 and N32 are both 32
+bits, but they have different calling conventions, and alignment
+constraints, and similar. The N32 format is the default format from IRIX
+6.4.
+
+You select ABI at compile time, and you can do this with the
+@samp{--with-mips-abi} configure option. The valid arguments are
+@samp{o32}, @samp{n32}, and @samp{64}, N32 is the default. Libraries for
+the three different ABI:s are normally installed installed in different
+directories (@samp{lib}, @samp{lib32}, and @samp{lib64}). If you want
+more than one set of libraries you have to reconfigure and recompile for
+each ABI, but you should probably install only N32 binaries.
+
+@cindex GCC
+GCC had had some known problems with the different ABI:s. Old GCC could
+only handle O32, newer GCC can handle N32, and 64, but not O32, but in
+some versions of GCC the structure alignment was broken in N32.
+
+This confusion with different ABI:s can cause some trouble. For
+instance, the @file{afskauthlib.so} library has to use the same ABI as
+@file{xdm}, and @file{login}. The easiest way to check what ABI to use
+is to run @samp{file} on @file{/usr/bin/X11/xdm}.
+
+@cindex AFS
+Another problem that you might encounter if you run AFS is that Transarc
+apparently doesn't support the 64-bit ABI, and because of this you can't
+get tokens with a 64 bit application. If you really need to do this,
+there is a kernel module that provides this functionality at
+@url{ftp://ftp.pdc.kth.se/home/joda/irix-afs64.tar.gz}.
+
@subheading AIX problems
+@cindex GCC
@kbd{gcc} version 2.7.2.* has a bug which makes it miscompile
@file{appl/telnet/telnetd/sys_term.c} (and possibily
@file{appl/bsd/forkpty.c}), if used with too much optimization.
diff --git a/crypto/kerberosIV/doc/setup.texi b/crypto/kerberosIV/doc/setup.texi
index 4d2d0ffa2dd2..24a955d5310c 100644
--- a/crypto/kerberosIV/doc/setup.texi
+++ b/crypto/kerberosIV/doc/setup.texi
@@ -92,7 +92,9 @@ ANOTHER.REALM kerberos.another.realm
@end example
The first line defines the name of the local realm. The next few lines
-optionally defines supplementary local realms. The rest of the file
+optionally defines supplementary local realms.
+@cindex supplementary local realms
+The rest of the file
defines the names of the kerberos servers and the database
administration servers for all known realms. You can define any number
of kerberos slave servers similar to the one defined on line
@@ -111,7 +113,7 @@ support has been added for ports other than the default (750), and
protocols other than UDP.
The formal syntax for an entry is now
-@samp{@var{[proto}/@var{]host[}:@var{port]}}. @var{proto} is either
+@samp{[@var{proto}/]@var{host}[:@var{port}]}. @var{proto} is either
@samp{UDP}, @samp{TCP}, or @samp{HTTP}, and @var{port} is the port to
talk to. Default value for @var{proto} is @samp{UDP} and for @var{port}
whatever @samp{kerberos-iv} is defined to be in @file{/etc/services} or
@@ -145,6 +147,14 @@ server), and then @samp{kerberos-1.@var{REALM}},
@samp{kerberos-2.@var{REALM}}, and so on.
@end enumerate
+SRV records have been supported in BIND since 4.9.5T2A. An example
+would look like the following in the zone file:
+
+@example
+kerberos-iv.udp.foo.se. 1M IN SRV 1 0 750 kerberos-1.foo.se.
+kerberos-iv.udp.foo.se. 1M IN SRV 0 0 750 kerberos.foo.se.
+@end example
+
We strongly recommend that you add a CNAME @samp{kerberos.@var{REALM}}
pointing to your kerberos master server.
@@ -190,31 +200,43 @@ beginning with a hash (#) are ignored.
The currently defined variables are:
@table @samp
-@item krb4_proxy
-@cindex krb4_proxy
-When getting tickets via HTTP, this specifies the proxy to use. The
-default is to speak directly to the KDC.
-@item kdc_time_sync
-@cindex kdc_time_sync
+@item kdc_timeout
+@cindex kdc_timeout
+The time in seconds to wait for an answer from the KDC (the default is 4
+seconds).
+@item kdc_timesync
+@cindex kdc_timesync
This flag enables storing of the time differential to the KDC when
getting an initial ticket. This differential is used later on to compute
the correct time. This can help if your machine doesn't have a working
clock.
-@item kdc_timeout
-@cindex kdc_timeout
-This allows you to change the default (4 seconds) timeout when talking
-to the KDC.
+@item firewall_address
+@cindex firewall_address
+The IP address that hosts outside the firewall see when connecting from
+within the firewall. If this is specified, the code will try to compute
+the value for @samp{reverse_lsb_test}.
+@item krb4_proxy
+@cindex krb4_proxy
+When getting tickets via HTTP, this specifies the proxy to use. The
+default is to speak directly to the KDC.
+@item krb_default_tkt_root
+@cindex krb_default_tkt_root
+The default prefix for ticket files. The default is @file{/tmp/tkt}.
+Normally the uid or tty is appended to this prefix.
+@item krb_default_keyfile
+@cindex krb_default_keyfile
+The file where the server keys are stored, the default is @file{/etc/srvtab}.
+@item nat_in_use
+@cindex nat_in_use
+If the client is behind a Network Address Translator (NAT).
+@cindex Network Address Translator
+@cindex NAT
@item reverse_lsb_test
@cindex reverse_lsb_test
Reverses the test used by @code{krb_mk_safe}, @code{krb_rd_safe},
@code{krb_mk_priv}, and @code{krb_rd_priv} to compute the ordering of
the communicating hosts. This test can cause truble when using
firewalls.
-@item firewall_address
-@cindex firewall_address
-The IP address that hosts outside the firewall see when connecting from
-within the firewall. If this is specified, the code will try to compute
-the value for @samp{reverse_lsb_test}.
@end table
@node Install the /etc/services, Install the kerberos server, Install the configuration files, How to set up the kerberos server
@@ -242,12 +264,15 @@ for the realm @samp{FOO.SE} on a machine called @samp{hemlig.foo.se}.
@subsection Setup the server
Login as root on the console of the kerberos server. Add
-@file{/usr/athena/bin} and @file{/usr/athena/sbin} to your path. Run
+@file{/usr/athena/bin} and @file{/usr/athena/sbin} to your path. Create
+the directory @file{/var/kerberos} (@kbd{mkdir /var/kerberos}), which is
+where the database will be stored. Then, to create the database, run
@kbd{kdb_init}:
@pindex kdb_init
@example
@cartouche
+hemlig# mkdir /var/kerberos
hemlig# kdb_init
Realm name [default FOO.SE ]:
You will be prompted for the database Master Password.
@@ -366,6 +391,8 @@ Principal name: <>
@code{kdb_edit} will loop until you hit the @kbd{return} key at the
``Principal name'' prompt. Now you have added nisse as an administrator.
+@page
+
@node Start the server, Try to get tickets, Add a few important principals, How to set up the kerberos server
@subsection Start the server
@@ -470,7 +497,7 @@ Use the @code{kadmin} client to add users to the database:
@example
@cartouche
-hemlig# kadmin -u nisse.admin -m
+hemlig# kadmin -p nisse.admin -m
Welcome to the Kerberos Administration Program, version 2
Type "help" if you need it.
admin: <add nisse>
@@ -669,11 +696,34 @@ the kerberos server, every service needs to have a shared key with the
kerberos server. The service keys are stored in a file, usually called
@file{/etc/srvtab}. This file should not be readable to anyone but
root, in order to keep the key from being divulged. The name of this principal
-in the kerberos database is usually the service and the host. The key
-for the pop service is called @samp{pop.@var{hostname}}. The one for
-rsh/rlogin/telnet is named @samp{rcmd.@var{hostname}}. (rcmd comes from
-``remote command''). To create these keys you will use the the
-@code{ksrvutil} program. Perform the
+in the kerberos database is usually the service name and the hostname. Examples
+of such principals are @samp{pop.@var{hostname}} and
+@samp{rcmd.@var{hostname}}. (rcmd comes from ``remote command''.) Here
+is a list of the most commonly used srvtab types and what programs use them.
+
+@table @asis
+@item rcmd.@var{hostname}
+rsh, rcp, rlogin, telnet, kauth, su, kx
+@item rcmd.kerberos
+kprop
+@item pop.@var{hostname}
+popper, movemail, push
+@item sample.@var{hostname}
+sample_server, simple_server
+@item changepw.kerberos
+kadmin, kpasswd
+@item krbtgt.@var{realm}
+kerberos (not stored in any srvtab)
+@item ftp.@var{hostname}
+ftp (also tries with rcmd.@var{hostname})
+@item zephyr.zephyr
+Zephyr
+@item afs or afs.@var{cellname}
+Andrew File System
+@end table
+
+To create these keys you will use the the @code{ksrvutil} program.
+Perform the
@pindex ksrvutil
following:
@@ -733,9 +783,7 @@ master server fails. It is possible to have any number of such slave
servers but more than three usually doesn't buy much more redundancy.
First select a good server machine. (@pxref{Choose a kerberos
-server}). Since the master and slave servers will use copies of the same
-database, they need to use the same master key. Add the master key on
-the slave with @code{kstash}. (@pxref{Set up the server})
+server}).
On the master, add a @samp{rcmd.kerberos} (note, it should be literally
``kerberos'') principal (using @samp{ksrvutil get}). The
@@ -760,8 +808,13 @@ that contains the hostnames of your kerberos slave servers.
Start @code{kpropd} with @samp{kpropd -i} on your slave servers.
-On your master server, create a dump of the database with @samp{kdb_util
-slave_dump /var/kerberos/slave_dump}, and then run @code{kprop}.
+On your master server, create a dump of the database and then propagate
+it.
+
+@example
+foo# kdb_util slave_dump /var/kerberos/slave_dump
+foo# kprop
+@end example
You should now have copies of the database on your slave servers. You
can verify this by issuing @samp{kdb_util dump @var{file}} on your
@@ -771,6 +824,10 @@ server. Note that the entries will not be in the same order.
This procedure should be automated with a script run regularly by cron,
for instance once an hour.
+Since the master and slave servers will use copies of the same
+database, they need to use the same master key. Add the master key on
+the slave with @code{kstash}. (@pxref{Set up the server})
+
To start the kerberos server on slaves, you first have to copy the
master key from the master server. You can do this either by remembering
the master password and issuing @samp{kstash}, or you can just copy the
@@ -815,6 +872,8 @@ principals should be @samp{krbtgt.OTHER.REALM} in @samp{MY.REALM}, and
principals should have the same key (and key version number). Remember
to transfer this key in a safe manner. This is all that is required.
+@page
+
@example
@cartouche
blubb$ klist
diff --git a/crypto/kerberosIV/etc/inetd.conf.changes.in b/crypto/kerberosIV/etc/inetd.conf.changes.in
new file mode 100644
index 000000000000..2ccb8f5a7d3f
--- /dev/null
+++ b/crypto/kerberosIV/etc/inetd.conf.changes.in
@@ -0,0 +1,33 @@
+#
+# $Id: inetd.conf.changes.in,v 1.14 1999/11/10 14:21:07 joda Exp $
+#
+# Turn off vanilla rshd and rlogind with an informational message.
+# If you really want this security problem remove the '-v' option!
+shell stream tcp nowait root @prefix@/libexec/rshd rshd -l -L -v
+login stream tcp nowait root @prefix@/libexec/rlogind rlogind -l -v
+#
+# Kerberos rsh
+kshell stream tcp nowait root @prefix@/libexec/rshd rshd -L -k
+ekshell stream tcp nowait root @prefix@/libexec/rshd rshd -L -k -x
+ekshell2 stream tcp nowait root @prefix@/libexec/rshd rshd -L -k -x
+#
+# Kerberos rlogin
+klogin stream tcp nowait root @prefix@/libexec/rlogind rlogind -k
+eklogin stream tcp nowait root @prefix@/libexec/rlogind rlogind -k -x
+#
+# Kerberized telnet and ftp, consider adding '-a user' to
+# disallow cleartext passwords to both telnetd and ftpd.
+telnet stream tcp nowait root @prefix@/libexec/telnetd telnetd -a none
+ftp stream tcp nowait root @prefix@/libexec/ftpd ftpd -l -a none
+#
+# Kerberized POP. Server principal is pop.hostname, *not* rcmd.hostname!
+#kpop stream tcp nowait root @prefix@/libexec/popper popper -k
+#
+# Old POP3 with passwords in clear (not recommended, uses cleartext passwords)
+#pop3 stream tcp nowait root @prefix@/libexec/popper popper
+#
+# Kauthd, support for putting tickets on other machines in a secure fashion.
+kauth stream tcp nowait root @prefix@/libexec/kauthd kauthd
+#
+# Encrypted X connections
+kx stream tcp nowait root @prefix@/libexec/kxd kxd
diff --git a/crypto/kerberosIV/include/Makefile.in b/crypto/kerberosIV/include/Makefile.in
index b2b05478bdbb..f321f162b29b 100644
--- a/crypto/kerberosIV/include/Makefile.in
+++ b/crypto/kerberosIV/include/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.58 1999/03/10 19:01:13 joda Exp $
+# $Id: Makefile.in,v 1.59.2.1 1999/12/06 17:23:06 assar Exp $
srcdir = @srcdir@
VPATH = @srcdir@
@@ -31,7 +31,7 @@ libdir = @libdir@
HEADERS = \
acl.h com_err.h com_right.h des.h kadm.h kafs.h kdc.h \
klog.h krb.h krb-protos.h krb-archaeology.h krb_db.h \
- ktypes.h otp.h prot.h sl.h parse_time.h @EXTRA_HEADERS@
+ ktypes.h otp.h prot.h sl.h @EXTRA_HEADERS@
LOCL_HEADERS = \
base64.h roken-common.h protos.h resolve.h xdbm.h \
@@ -149,6 +149,9 @@ sl.h:
protos.h:
$(LN_S) $(srcdir)/protos.H protos.h
+netdb.h:
+ $(LN_S) $(srcdir)/netdb.x netdb.h
+
bits$(EXECSUFFIX): $(BITS_OBJECTS)
$(LINK) $(LD_FLAGS) $(LDFLAGS) -o $@ $(BITS_OBJECTS)
diff --git a/crypto/kerberosIV/include/bits.c b/crypto/kerberosIV/include/bits.c
index 81c005159e9d..a2c40bc3df6b 100644
--- a/crypto/kerberosIV/include/bits.c
+++ b/crypto/kerberosIV/include/bits.c
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -38,7 +33,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id: bits.c,v 1.5 1999/07/06 04:19:26 assar Exp $");
+RCSID("$Id: bits.c,v 1.6 1999/12/02 16:58:36 joda Exp $");
#endif
#include <stdio.h>
#include <string.h>
@@ -147,7 +142,7 @@ int main(int argc, char **argv)
}
fprintf(f, "/* %s -- this file was generated for %s by\n", fn, HOST);
fprintf(f, " %*s %s */\n\n", (int)strlen(fn), "",
- "$Id: bits.c,v 1.5 1999/07/06 04:19:26 assar Exp $");
+ "$Id: bits.c,v 1.6 1999/12/02 16:58:36 joda Exp $");
fprintf(f, "#ifndef %s\n", hb);
fprintf(f, "#define %s\n", hb);
fprintf(f, "\n");
diff --git a/crypto/kerberosIV/include/config.h.in b/crypto/kerberosIV/include/config.h.in
index 310807880cb2..3727ef140783 100644
--- a/crypto/kerberosIV/include/config.h.in
+++ b/crypto/kerberosIV/include/config.h.in
@@ -71,6 +71,15 @@
/* Define if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
+/* Define if you have the XauFileName function. */
+#undef HAVE_XAUFILENAME
+
+/* Define if you have the XauReadAuth function. */
+#undef HAVE_XAUREADAUTH
+
+/* Define if you have the XauWriteAuth function. */
+#undef HAVE_XAUWRITEAUTH
+
/* Define if you have the _getpty function. */
#undef HAVE__GETPTY
@@ -95,12 +104,18 @@
/* Define if you have the cap_set_proc function. */
#undef HAVE_CAP_SET_PROC
+/* Define if you have the cgetent function. */
+#undef HAVE_CGETENT
+
/* Define if you have the chown function. */
#undef HAVE_CHOWN
/* Define if you have the chroot function. */
#undef HAVE_CHROOT
+/* Define if you have the copyhostent function. */
+#undef HAVE_COPYHOSTENT
+
/* Define if you have the crypt function. */
#undef HAVE_CRYPT
@@ -143,6 +158,9 @@
/* Define if you have the forkpty function. */
#undef HAVE_FORKPTY
+/* Define if you have the freehostent function. */
+#undef HAVE_FREEHOSTENT
+
/* Define if you have the frevoke function. */
#undef HAVE_FREVOKE
@@ -170,6 +188,12 @@
/* Define if you have the gethostname function. */
#undef HAVE_GETHOSTNAME
+/* Define if you have the getipnodebyaddr function. */
+#undef HAVE_GETIPNODEBYADDR
+
+/* Define if you have the getipnodebyname function. */
+#undef HAVE_GETIPNODEBYNAME
+
/* Define if you have the getlogin function. */
#undef HAVE_GETLOGIN
@@ -200,9 +224,6 @@
/* Define if you have the getspnam function. */
#undef HAVE_GETSPNAM
-/* Define if you have the getspuid function. */
-#undef HAVE_GETSPUID
-
/* Define if you have the gettimeofday function. */
#undef HAVE_GETTIMEOFDAY
@@ -227,6 +248,12 @@
/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON
+/* Define if you have the inet_ntop function. */
+#undef HAVE_INET_NTOP
+
+/* Define if you have the inet_pton function. */
+#undef HAVE_INET_PTON
+
/* Define if you have the initgroups function. */
#undef HAVE_INITGROUPS
@@ -284,12 +311,21 @@
/* Define if you have the readv function. */
#undef HAVE_READV
+/* Define if you have the recvmsg function. */
+#undef HAVE_RECVMSG
+
/* Define if you have the res_search function. */
#undef HAVE_RES_SEARCH
/* Define if you have the revoke function. */
#undef HAVE_REVOKE
+/* Define if you have the sa_family_t function. */
+#undef HAVE_SA_FAMILY_T
+
+/* Define if you have the sendmsg function. */
+#undef HAVE_SENDMSG
+
/* Define if you have the setegid function. */
#undef HAVE_SETEGID
@@ -362,6 +398,12 @@
/* Define if you have the strftime function. */
#undef HAVE_STRFTIME
+/* Define if you have the strlcat function. */
+#undef HAVE_STRLCAT
+
+/* Define if you have the strlcpy function. */
+#undef HAVE_STRLCPY
+
/* Define if you have the strlwr function. */
#undef HAVE_STRLWR
@@ -374,12 +416,18 @@
/* Define if you have the strnlen function. */
#undef HAVE_STRNLEN
+/* Define if you have the strptime function. */
+#undef HAVE_STRPTIME
+
/* Define if you have the strsep function. */
#undef HAVE_STRSEP
/* Define if you have the strtok_r function. */
#undef HAVE_STRTOK_R
+/* Define if you have the struct_sockaddr_storage function. */
+#undef HAVE_STRUCT_SOCKADDR_STORAGE
+
/* Define if you have the strupr function. */
#undef HAVE_STRUPR
@@ -452,15 +500,6 @@
/* Define if you have the writev function. */
#undef HAVE_WRITEV
-/* Define if you have the XauFileName function. */
-#undef HAVE_XAUFILENAME
-
-/* Define if you have the XauReadAuth function. */
-#undef HAVE_XAUREADAUTH
-
-/* Define if you have the XauWriteAuth function. */
-#undef HAVE_XAUWRITEAUTH
-
/* Define if you have the yp_get_default_domain function. */
#undef HAVE_YP_GET_DEFAULT_DOMAIN
@@ -761,6 +800,12 @@
/* Define if you have the <wait.h> header file. */
#undef HAVE_WAIT_H
+/* Define if you have the X11 library (-lX11). */
+#undef HAVE_LIBX11
+
+/* Define if you have the Xau library (-lXau). */
+#undef HAVE_LIBXAU
+
/* Define if you have the c_r library (-lc_r). */
#undef HAVE_LIBC_R
@@ -809,12 +854,6 @@
/* Define if you have the util library (-lutil). */
#undef HAVE_LIBUTIL
-/* Define if you have the X11 library (-lX11). */
-#undef HAVE_LIBX11
-
-/* Define if you have the Xau library (-lXau). */
-#undef HAVE_LIBXAU
-
/* Name of package */
#undef PACKAGE
@@ -1016,6 +1055,18 @@
/* Define if struct utmpx has field ut_syslen. */
#undef HAVE_STRUCT_UTMPX_UT_SYSLEN
+/* Define if struct tm has field tm_gmtoff. */
+#undef HAVE_STRUCT_TM_TM_GMTOFF
+
+/* Define if struct tm has field tm_zone. */
+#undef HAVE_STRUCT_TM_TM_ZONE
+
+/* define if you have timezone */
+#undef HAVE_TIMEZONE
+
+/* define if your system declares timezone */
+#undef HAVE_TIMEZONE_DECLARATION
+
/* define if you have struct spwd */
#undef HAVE_STRUCT_SPWD
@@ -1069,6 +1120,8 @@
#define HAVE_KRB_DISABLE_DEBUG 1
+#define HAVE_KRB_GET_OUR_IP_FOR_REALM 1
+
#define RCSID(msg) \
static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
diff --git a/crypto/kerberosIV/include/netdb.x b/crypto/kerberosIV/include/netdb.x
new file mode 100644
index 000000000000..70559184749f
--- /dev/null
+++ b/crypto/kerberosIV/include/netdb.x
@@ -0,0 +1,7 @@
+/* fix for broken ultrix netdb.h. */
+#ifndef __NETDB_H__
+#define __NETDB_H__
+
+#include "/usr/include/netdb.h"
+
+#endif /* __NETDB_H__ */
diff --git a/crypto/kerberosIV/include/protos.H b/crypto/kerberosIV/include/protos.H
index c72575d194e1..faf911e96615 100644
--- a/crypto/kerberosIV/include/protos.H
+++ b/crypto/kerberosIV/include/protos.H
@@ -14,12 +14,7 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute nor the names of its contributors
+ * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -39,7 +34,7 @@
/*
* Add here functions that don't have a prototype on your system.
*
- * $Id: protos.H,v 1.45 1998/09/26 21:01:27 joda Exp $
+ * $Id: protos.H,v 1.46 1999/12/02 16:58:36 joda Exp $
*/
#ifdef NEED_CRYPT_PROTO
diff --git a/crypto/kerberosIV/include/win32/config.h b/crypto/kerberosIV/include/win32/config.h
new file mode 100644
index 000000000000..199961ec77bb
--- /dev/null
+++ b/crypto/kerberosIV/include/win32/config.h
@@ -0,0 +1,1185 @@
+/* include/config.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define if using alloca.c. */
+#undef C_ALLOCA
+
+/* Define to empty if the keyword does not work. */
+#undef const
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+#undef CRAY_STACKSEG_END
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define gid_t int
+
+/* Define if you have alloca, as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+#undef HAVE_ALLOCA_H
+
+/* Define if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define if your struct stat has st_blksize. */
+#undef HAVE_ST_BLKSIZE
+
+/* Define as __inline if that's what the C compiler calls it. */
+#undef inline
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+#undef off_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef pid_t
+
+/* Define if you need to in order for stat and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define as the return type of signal handlers (int or void). */
+#undef RETSIGTYPE
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+#undef size_t
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if `sys_siglist' is declared by <signal.h>. */
+#undef SYS_SIGLIST_DECLARED
+
+/* Define if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define uid_t int
+
+/* Define if your processor stores words with the most significant
+ byte first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
+
+/* Define if you have the _getpty function. */
+#undef HAVE__GETPTY
+
+/* Define if you have the _scrsize function. */
+#undef HAVE__SCRSIZE
+
+/* Define if you have the _setsid function. */
+#undef HAVE__SETSID
+
+/* Define if you have the _stricmp function. */
+#define HAVE__STRICMP 1
+
+/* Define if you have the asnprintf function. */
+#undef HAVE_ASNPRINTF
+
+/* Define if you have the asprintf function. */
+#undef HAVE_ASPRINTF
+
+/* Define if you have the atexit function. */
+#undef HAVE_ATEXIT
+
+/* Define if you have the chown function. */
+#undef HAVE_CHOWN
+
+/* Define if you have the chroot function. */
+#undef HAVE_CHROOT
+
+/* Define if you have the crypt function. */
+#undef HAVE_CRYPT
+
+/* Define if you have the daemon function. */
+#undef HAVE_DAEMON
+
+/* Define if you have the dlopen function. */
+#undef HAVE_DLOPEN
+
+/* Define if you have the dn_expand function. */
+#undef HAVE_DN_EXPAND
+
+/* Define if you have the el_init function. */
+#undef HAVE_EL_INIT
+
+/* Define if you have the err function. */
+#undef HAVE_ERR
+
+/* Define if you have the errx function. */
+#undef HAVE_ERRX
+
+/* Define if you have the fattach function. */
+#undef HAVE_FATTACH
+
+/* Define if you have the fchmod function. */
+#undef HAVE_FCHMOD
+
+/* Define if you have the fchown function. */
+#undef HAVE_FCHOWN
+
+/* Define if you have the fcntl function. */
+#undef HAVE_FCNTL
+
+/* Define if you have the flock function. */
+#undef HAVE_FLOCK
+
+/* Define if you have the fnmatch function. */
+#undef HAVE_FNMATCH
+
+/* Define if you have the forkpty function. */
+#undef HAVE_FORKPTY
+
+/* Define if you have the frevoke function. */
+#undef HAVE_FREVOKE
+
+/* Define if you have the getattr function. */
+#undef HAVE_GETATTR
+
+/* Define if you have the getcwd function. */
+#undef HAVE_GETCWD
+
+/* Define if you have the getdtablesize function. */
+#undef HAVE_GETDTABLESIZE
+
+/* Define if you have the getegid function. */
+#undef HAVE_GETEGID
+
+/* Define if you have the geteuid function. */
+#undef HAVE_GETEUID
+
+/* Define if you have the getgid function. */
+#undef HAVE_GETGID
+
+/* Define if you have the gethostbyname function. */
+#define HAVE_GETHOSTBYNAME 1
+
+/* Define if you have the gethostname function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define if you have the getlogin function. */
+#undef HAVE_GETLOGIN
+
+/* Define if you have the getopt function. */
+#undef HAVE_GETOPT
+
+/* Define if you have the getpagesize function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the getpriority function. */
+#undef HAVE_GETPRIORITY
+
+/* Define if you have the getpwnam_r function. */
+#undef HAVE_GETPWNAM_R
+
+/* Define if you have the getrlimit function. */
+#undef HAVE_GETRLIMIT
+
+/* Define if you have the getservbyname function. */
+#define HAVE_GETSERVBYNAME 1
+
+/* Define if you have the getsockopt function. */
+#define HAVE_GETSOCKOPT 1
+
+/* Define if you have the getspnam function. */
+#undef HAVE_GETSPNAM
+
+/* Define if you have the getspuid function. */
+#undef HAVE_GETSPUID
+
+/* Define if you have the gettimeofday function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the gettosbyname function. */
+#undef HAVE_GETTOSBYNAME
+
+/* Define if you have the getudbnam function. */
+#undef HAVE_GETUDBNAM
+
+/* Define if you have the getuid function. */
+#undef HAVE_GETUID
+
+/* Define if you have the getusershell function. */
+#undef HAVE_GETUSERSHELL
+
+/* Define if you have the grantpt function. */
+#undef HAVE_GRANTPT
+
+/* Define if you have the hstrerror function. */
+#undef HAVE_HSTRERROR
+
+/* Define if you have the inet_aton function. */
+#undef HAVE_INET_ATON
+
+/* Define if you have the initgroups function. */
+#undef HAVE_INITGROUPS
+
+/* Define if you have the innetgr function. */
+#undef HAVE_INNETGR
+
+/* Define if you have the iruserok function. */
+#undef HAVE_IRUSEROK
+
+/* Define if you have the logout function. */
+#undef HAVE_LOGOUT
+
+/* Define if you have the logwtmp function. */
+#undef HAVE_LOGWTMP
+
+/* Define if you have the lstat function. */
+#undef HAVE_LSTAT
+
+/* Define if you have the memmove function. */
+#define HAVE_MEMMOVE 1
+
+/* Define if you have the mkstemp function. */
+#undef HAVE_MKSTEMP
+
+/* Define if you have the mktime function. */
+#define HAVE_MKTIME 1
+
+/* Define if you have the odm_initialize function. */
+#undef HAVE_ODM_INITIALIZE
+
+/* Define if you have the on_exit function. */
+#undef HAVE_ON_EXIT
+
+/* Define if you have the parsetos function. */
+#undef HAVE_PARSETOS
+
+/* Define if you have the ptsname function. */
+#undef HAVE_PTSNAME
+
+/* Define if you have the putenv function. */
+#undef HAVE_PUTENV
+
+/* Define if you have the rand function. */
+#define HAVE_RAND 1
+
+/* Define if you have the random function. */
+#undef HAVE_RANDOM
+
+/* Define if you have the rcmd function. */
+#undef HAVE_RCMD
+
+/* Define if you have the readline function. */
+#undef HAVE_READLINE
+
+/* Define if you have the readv function. */
+#undef HAVE_READV
+
+/* Define if you have the res_search function. */
+#undef HAVE_RES_SEARCH
+
+/* Define if you have the revoke function. */
+#undef HAVE_REVOKE
+
+/* Define if you have the setegid function. */
+#undef HAVE_SETEGID
+
+/* Define if you have the setenv function. */
+#undef HAVE_SETENV
+
+/* Define if you have the seteuid function. */
+#undef HAVE_SETEUID
+
+/* Define if you have the setitimer function. */
+#undef HAVE_SETITIMER
+
+/* Define if you have the setlim function. */
+#undef HAVE_SETLIM
+
+/* Define if you have the setlogin function. */
+#undef HAVE_SETLOGIN
+
+/* Define if you have the setpcred function. */
+#undef HAVE_SETPCRED
+
+/* Define if you have the setpgid function. */
+#undef HAVE_SETPGID
+
+/* Define if you have the setpriority function. */
+#undef HAVE_SETPRIORITY
+
+/* Define if you have the setproctitle function. */
+#undef HAVE_SETPROCTITLE
+
+/* Define if you have the setregid function. */
+#undef HAVE_SETREGID
+
+/* Define if you have the setresgid function. */
+#undef HAVE_SETRESGID
+
+/* Define if you have the setresuid function. */
+#undef HAVE_SETRESUID
+
+/* Define if you have the setreuid function. */
+#undef HAVE_SETREUID
+
+/* Define if you have the setsid function. */
+#undef HAVE_SETSID
+
+/* Define if you have the setsockopt function. */
+#define HAVE_SETSOCKOPT 1
+
+/* Define if you have the setutent function. */
+#undef HAVE_SETUTENT
+
+/* Define if you have the sigaction function. */
+#undef HAVE_SIGACTION
+
+/* Define if you have the socket function. */
+#define HAVE_SOCKET 1
+
+/* Define if you have the strcasecmp function. */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the strerror function. */
+#undef HAVE_STRERROR
+
+/* Define if you have the strftime function. */
+#define HAVE_STRFTIME 1
+
+/* Define if you have the strlwr function. */
+#define HAVE_STRLWR 1
+
+/* Define if you have the strncasecmp function. */
+#undef HAVE_STRNCASECMP
+
+/* Define if you have the strnlen function. */
+#undef HAVE_STRNLEN
+
+/* Define if you have the strsep function. */
+#undef HAVE_STRSEP
+
+/* Define if you have the strtok_r function. */
+#undef HAVE_STRTOK_R
+
+/* Define if you have the strupr function. */
+#define HAVE_STRUPR 1
+
+/* Define if you have the swab function. */
+#define HAVE_SWAB 1
+
+/* Define if you have the sysconf function. */
+#undef HAVE_SYSCONF
+
+/* Define if you have the sysctl function. */
+#undef HAVE_SYSCTL
+
+/* Define if you have the syslog function. */
+#undef HAVE_SYSLOG
+
+/* Define if you have the tgetent function. */
+#undef HAVE_TGETENT
+
+/* Define if you have the ttyname function. */
+#undef HAVE_TTYNAME
+
+/* Define if you have the ttyslot function. */
+#undef HAVE_TTYSLOT
+
+/* Define if you have the ulimit function. */
+#undef HAVE_ULIMIT
+
+/* Define if you have the uname function. */
+#undef HAVE_UNAME
+
+/* Define if you have the unlockpt function. */
+#undef HAVE_UNLOCKPT
+
+/* Define if you have the unsetenv function. */
+#undef HAVE_UNSETENV
+
+/* Define if you have the vasnprintf function. */
+#undef HAVE_VASNPRINTF
+
+/* Define if you have the vasprintf function. */
+#undef HAVE_VASPRINTF
+
+/* Define if you have the verr function. */
+#undef HAVE_VERR
+
+/* Define if you have the verrx function. */
+#undef HAVE_VERRX
+
+/* Define if you have the vhangup function. */
+#undef HAVE_VHANGUP
+
+/* Define if you have the vsnprintf function. */
+#undef HAVE_VSNPRINTF
+
+/* Define if you have the vsyslog function. */
+#undef HAVE_VSYSLOG
+
+/* Define if you have the vwarn function. */
+#undef HAVE_VWARN
+
+/* Define if you have the vwarnx function. */
+#undef HAVE_VWARNX
+
+/* Define if you have the warn function. */
+#undef HAVE_WARN
+
+/* Define if you have the warnx function. */
+#undef HAVE_WARNX
+
+/* Define if you have the writev function. */
+#undef HAVE_WRITEV
+
+/* Define if you have the XauReadAuth function. */
+#undef HAVE_XAUREADAUTH
+
+/* Define if you have the XauWriteAuth function. */
+#undef HAVE_XAUWRITEAUTH
+
+/* Define if you have the yp_get_default_domain function. */
+#undef HAVE_YP_GET_DEFAULT_DOMAIN
+
+/* Define if you have the <arpa/ftp.h> header file. */
+#undef HAVE_ARPA_FTP_H
+
+/* Define if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
+/* Define if you have the <arpa/nameser.h> header file. */
+#undef HAVE_ARPA_NAMESER_H
+
+/* Define if you have the <arpa/telnet.h> header file. */
+#undef HAVE_ARPA_TELNET_H
+
+/* Define if you have the <bsd/bsd.h> header file. */
+#undef HAVE_BSD_BSD_H
+
+/* Define if you have the <bsdsetjmp.h> header file. */
+#undef HAVE_BSDSETJMP_H
+
+/* Define if you have the <crypt.h> header file. */
+#undef HAVE_CRYPT_H
+
+/* Define if you have the <curses.h> header file. */
+#undef HAVE_CURSES_H
+
+/* Define if you have the <dbm.h> header file. */
+#undef HAVE_DBM_H
+
+/* Define if you have the <dirent.h> header file. */
+#undef HAVE_DIRENT_H
+
+/* Define if you have the <err.h> header file. */
+#undef HAVE_ERR_H
+
+/* Define if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the <fnmatch.h> header file. */
+#undef HAVE_FNMATCH_H
+
+/* Define if you have the <grp.h> header file. */
+#undef HAVE_GRP_H
+
+/* Define if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if you have the <io.h> header file. */
+#define HAVE_IO_H 1
+
+/* Define if you have the <lastlog.h> header file. */
+#undef HAVE_LASTLOG_H
+
+/* Define if you have the <libutil.h> header file. */
+#undef HAVE_LIBUTIL_H
+
+/* Define if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <login.h> header file. */
+#undef HAVE_LOGIN_H
+
+/* Define if you have the <maillock.h> header file. */
+#undef HAVE_MAILLOCK_H
+
+/* Define if you have the <ndbm.h> header file. */
+#undef HAVE_NDBM_H
+
+/* Define if you have the <net/if.h> header file. */
+#undef HAVE_NET_IF_H
+
+/* Define if you have the <net/if_tun.h> header file. */
+#undef HAVE_NET_IF_TUN_H
+
+/* Define if you have the <net/if_var.h> header file. */
+#undef HAVE_NET_IF_VAR_H
+
+/* Define if you have the <netdb.h> header file. */
+#undef HAVE_NETDB_H
+
+/* Define if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
+/* Define if you have the <netinet/in6_machtypes.h> header file. */
+#undef HAVE_NETINET_IN6_MACHTYPES_H
+
+/* Define if you have the <netinet/in_systm.h> header file. */
+#undef HAVE_NETINET_IN_SYSTM_H
+
+/* Define if you have the <netinet/ip.h> header file. */
+#undef HAVE_NETINET_IP_H
+
+/* Define if you have the <netinet/tcp.h> header file. */
+#undef HAVE_NETINET_TCP_H
+
+/* Define if you have the <paths.h> header file. */
+#undef HAVE_PATHS_H
+
+/* Define if you have the <pty.h> header file. */
+#undef HAVE_PTY_H
+
+/* Define if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define if you have the <resolv.h> header file. */
+#undef HAVE_RESOLV_H
+
+/* Define if you have the <rpcsvc/dbm.h> header file. */
+#undef HAVE_RPCSVC_DBM_H
+
+/* Define if you have the <rpcsvc/ypclnt.h> header file. */
+#undef HAVE_RPCSVC_YPCLNT_H
+
+/* Define if you have the <sac.h> header file. */
+#undef HAVE_SAC_H
+
+/* Define if you have the <security/pam_modules.h> header file. */
+#undef HAVE_SECURITY_PAM_MODULES_H
+
+/* Define if you have the <shadow.h> header file. */
+#undef HAVE_SHADOW_H
+
+/* Define if you have the <siad.h> header file. */
+#undef HAVE_SIAD_H
+
+/* Define if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
+/* Define if you have the <sys/bitypes.h> header file. */
+#undef HAVE_SYS_BITYPES_H
+
+/* Define if you have the <sys/category.h> header file. */
+#undef HAVE_SYS_CATEGORY_H
+
+/* Define if you have the <sys/file.h> header file. */
+#undef HAVE_SYS_FILE_H
+
+/* Define if you have the <sys/filio.h> header file. */
+#undef HAVE_SYS_FILIO_H
+
+/* Define if you have the <sys/ioccom.h> header file. */
+#undef HAVE_SYS_IOCCOM_H
+
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
+/* Define if you have the <sys/locking.h> header file. */
+#define HAVE_SYS_LOCKING_H 1
+
+/* Define if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <sys/proc.h> header file. */
+#undef HAVE_SYS_PROC_H
+
+/* Define if you have the <sys/pty.h> header file. */
+#undef HAVE_SYS_PTY_H
+
+/* Define if you have the <sys/ptyio.h> header file. */
+#undef HAVE_SYS_PTYIO_H
+
+/* Define if you have the <sys/ptyvar.h> header file. */
+#undef HAVE_SYS_PTYVAR_H
+
+/* Define if you have the <sys/resource.h> header file. */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/socket.h> header file. */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define if you have the <sys/sockio.h> header file. */
+#undef HAVE_SYS_SOCKIO_H
+
+/* Define if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define if you have the <sys/str_tty.h> header file. */
+#undef HAVE_SYS_STR_TTY_H
+
+/* Define if you have the <sys/stream.h> header file. */
+#undef HAVE_SYS_STREAM_H
+
+/* Define if you have the <sys/stropts.h> header file. */
+#undef HAVE_SYS_STROPTS_H
+
+/* Define if you have the <sys/strtty.h> header file. */
+#undef HAVE_SYS_STRTTY_H
+
+/* Define if you have the <sys/syscall.h> header file. */
+#undef HAVE_SYS_SYSCALL_H
+
+/* Define if you have the <sys/sysctl.h> header file. */
+#undef HAVE_SYS_SYSCTL_H
+
+/* Define if you have the <sys/termio.h> header file. */
+#undef HAVE_SYS_TERMIO_H
+
+/* Define if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
+/* Define if you have the <sys/times.h> header file. */
+#undef HAVE_SYS_TIMES_H
+
+/* Define if you have the <sys/tty.h> header file. */
+#undef HAVE_SYS_TTY_H
+
+/* Define if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define if you have the <sys/uio.h> header file. */
+#undef HAVE_SYS_UIO_H
+
+/* Define if you have the <sys/un.h> header file. */
+#undef HAVE_SYS_UN_H
+
+/* Define if you have the <sys/utsname.h> header file. */
+#undef HAVE_SYS_UTSNAME_H
+
+/* Define if you have the <sys/wait.h> header file. */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if you have the <syslog.h> header file. */
+#undef HAVE_SYSLOG_H
+
+/* Define if you have the <term.h> header file. */
+#undef HAVE_TERM_H
+
+/* Define if you have the <termcap.h> header file. */
+#undef HAVE_TERMCAP_H
+
+/* Define if you have the <termio.h> header file. */
+#undef HAVE_TERMIO_H
+
+/* Define if you have the <termios.h> header file. */
+#undef HAVE_TERMIOS_H
+
+/* Define if you have the <tmpdir.h> header file. */
+#undef HAVE_TMPDIR_H
+
+/* Define if you have the <ttyent.h> header file. */
+#undef HAVE_TTYENT_H
+
+/* Define if you have the <udb.h> header file. */
+#undef HAVE_UDB_H
+
+/* Define if you have the <ulimit.h> header file. */
+#undef HAVE_ULIMIT_H
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <userpw.h> header file. */
+#undef HAVE_USERPW_H
+
+/* Define if you have the <usersec.h> header file. */
+#undef HAVE_USERSEC_H
+
+/* Define if you have the <util.h> header file. */
+#undef HAVE_UTIL_H
+
+/* Define if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* Define if you have the <utmp.h> header file. */
+#undef HAVE_UTMP_H
+
+/* Define if you have the <utmpx.h> header file. */
+#undef HAVE_UTMPX_H
+
+/* Define if you have the <wait.h> header file. */
+#undef HAVE_WAIT_H
+
+/* Define if you have the c_r library (-lc_r). */
+#undef HAVE_LIBC_R
+
+/* Define if you have the cfg library (-lcfg). */
+#undef HAVE_LIBCFG
+
+/* Define if you have the crypt library (-lcrypt). */
+#undef HAVE_LIBCRYPT
+
+/* Define if you have the curses library (-lcurses). */
+#undef HAVE_LIBCURSES
+
+/* Define if you have the dl library (-ldl). */
+#undef HAVE_LIBDL
+
+/* Define if you have the edit library (-ledit). */
+#undef HAVE_LIBEDIT
+
+/* Define if you have the ncurses library (-lncurses). */
+#undef HAVE_LIBNCURSES
+
+/* Define if you have the nsl library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define if you have the odm library (-lodm). */
+#undef HAVE_LIBODM
+
+/* Define if you have the readline library (-lreadline). */
+#undef HAVE_LIBREADLINE
+
+/* Define if you have the resolv library (-lresolv). */
+#undef HAVE_LIBRESOLV
+
+/* Define if you have the s library (-ls). */
+#undef HAVE_LIBS
+
+/* Define if you have the socket library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define if you have the syslog library (-lsyslog). */
+#undef HAVE_LIBSYSLOG
+
+/* Define if you have the termcap library (-ltermcap). */
+#undef HAVE_LIBTERMCAP
+
+/* Define if you have the util library (-lutil). */
+#undef HAVE_LIBUTIL
+
+/* Define if you have the X11 library (-lX11). */
+#undef HAVE_LIBX11
+
+/* Define if you have the Xau library (-lXau). */
+#undef HAVE_LIBXAU
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Define if you have the socks package */
+#undef SOCKS
+
+/* Define to enable old kdestroy behavior. */
+#undef LEGACY_KDESTROY
+
+/* Define if you want to match subdomains. */
+#undef MATCH_SUBDOMAINS
+
+/* Define this to be the directory where the
+ dictionary for cracklib resides. */
+#undef DICTPATH
+
+/* Define this to the path of the mail spool directory. */
+#undef KRB4_MAILDIR
+
+/* Define this to the kerberos database directory. */
+#undef DB_DIR
+
+/* Define to enable new master key code. */
+#undef RANDOM_MKEY
+
+/* Define this to the location of the master key. */
+#undef MKEYFILE
+
+/* Define to enable basic OSF C2 support. */
+#undef HAVE_OSFC2
+
+/* Define if you don't want to use mmap. */
+#undef NO_MMAP
+
+/* Define if you don't wan't support for AFS. */
+#undef NO_AFS
+
+/* Set this to the type of des-quad-cheksum to use. */
+#define DES_QUAD_DEFAULT DES_QUAD_GUESS
+
+/* Define if you have the readline package */
+#undef READLINE
+
+/* Define if you have the hesiod package */
+#undef HESIOD
+
+/* define if your compiler has __attribute__ */
+#undef HAVE___ATTRIBUTE__
+
+/* Huh? */
+#undef HAVE_STRANGE_INT8_T
+
+/* Define if NDBM really is DB (creates files ending in .db). */
+#undef HAVE_NEW_DB
+
+/* Define if you have NDBM (and not DBM) */
+#undef NDBM
+
+/* define if you have a working snprintf */
+#undef HAVE_SNPRINTF
+
+/* define if the system is missing a prototype for snprintf() */
+#undef NEED_SNPRINTF_PROTO
+
+/* define if you have a glob() that groks
+ GLOB_BRACE, GLOB_NOCHECK, GLOB_QUOTE, and GLOB_TILDE */
+#undef HAVE_GLOB
+
+/* define if the system is missing a prototype for glob() */
+#undef NEED_GLOB_PROTO
+
+/* Define if getpwnam_r has POSIX flavour. */
+#undef POSIX_GETPWNAM_R
+
+/* Define if getlogin has POSIX flavour (and not BSD). */
+#undef POSIX_GETLOGIN
+
+/* define if the system is missing a prototype for hstrerror() */
+#undef NEED_HSTRERROR_PROTO
+
+/* define if the system is missing a prototype for gethostname() */
+#undef NEED_GETHOSTNAME_PROTO
+
+/* define if the system is missing a prototype for mkstemp() */
+#undef NEED_MKSTEMP_PROTO
+
+/* define if the system is missing a prototype for inet_aton() */
+#undef NEED_INET_ATON_PROTO
+
+/* Define if realloc(NULL, X) doesn't work. */
+#undef BROKEN_REALLOC
+
+/* Define if getcwd is broken (like in SunOS 4). */
+#undef BROKEN_GETCWD
+
+/* define if prototype of gethostbyname is compatible with
+ struct hostent *gethostbyname(const char *) */
+#undef GETHOSTBYNAME_PROTO_COMPATIBLE
+
+/* define if prototype of gethostbyaddr is compatible with
+ struct hostent *gethostbyaddr(const void *, size_t, int) */
+#undef GETHOSTBYADDR_PROTO_COMPATIBLE
+
+/* define if prototype of getservbyname is compatible with
+ struct servent *getservbyname(const char *, const char *) */
+#undef GETSERVBYNAME_PROTO_COMPATIBLE
+
+/* define if prototype of openlog is compatible with
+ void openlog(const char *, int, int) */
+#undef OPENLOG_PROTO_COMPATIBLE
+
+/* define if the system is missing a