summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/global/FREEBSD-upgrade36
-rw-r--r--contrib/global/gctags/fortran.c168
-rw-r--r--contrib/global/gctags/lisp.c105
-rw-r--r--contrib/global/gctags/test/ctags.test67
-rw-r--r--contrib/global/gctags/yacc.c151
-rw-r--r--contrib/global/nvi-1.34.diff900
-rw-r--r--contrib/global/nvi-1.79.diff664
-rw-r--r--contrib/groff/eqn/neqn.man13
-rw-r--r--contrib/groff/nroff/psroff.man18
-rw-r--r--contrib/libg++/libg++/genclass/genclass.163
-rw-r--r--contrib/libgmp/mpn/sysv.h1
-rw-r--r--contrib/nvi/catalog/polish317
-rw-r--r--contrib/nvi/catalog/polish.base307
-rw-r--r--contrib/nvi/catalog/polish.check35
-rw-r--r--contrib/nvi/catalog/polish.owner1
-rw-r--r--contrib/pnpinfo/Makefile7
-rw-r--r--contrib/pnpinfo/pnpinfo.859
-rw-r--r--contrib/pnpinfo/pnpinfo.h74
-rw-r--r--crypto/README9
-rw-r--r--crypto/kerberosIV/COPYRIGHT166
-rw-r--r--crypto/kerberosIV/ChangeLog3761
-rw-r--r--crypto/kerberosIV/Makefile.in70
-rw-r--r--crypto/kerberosIV/NEWS563
-rw-r--r--crypto/kerberosIV/PROBLEMS74
-rw-r--r--crypto/kerberosIV/README44
-rw-r--r--crypto/kerberosIV/README-WIN3230
-rw-r--r--crypto/kerberosIV/TODO42
-rw-r--r--crypto/kerberosIV/acconfig.h282
-rw-r--r--crypto/kerberosIV/aclocal.m4543
-rw-r--r--crypto/kerberosIV/admin/Makefile.in104
-rw-r--r--crypto/kerberosIV/admin/adm_locl.h91
-rw-r--r--crypto/kerberosIV/admin/ext_srvtab.c143
-rw-r--r--crypto/kerberosIV/admin/kdb_destroy.c57
-rw-r--r--crypto/kerberosIV/admin/kdb_edit.c404
-rw-r--r--crypto/kerberosIV/admin/kdb_init.c174
-rw-r--r--crypto/kerberosIV/admin/kdb_util.c496
-rw-r--r--crypto/kerberosIV/admin/kstash.c56
-rw-r--r--crypto/kerberosIV/appl/Makefile.in43
-rw-r--r--crypto/kerberosIV/appl/bsd/Makefile.in135
-rw-r--r--crypto/kerberosIV/appl/bsd/README.login20
-rw-r--r--crypto/kerberosIV/appl/bsd/bsd_locl.h380
-rw-r--r--crypto/kerberosIV/appl/bsd/encrypt.c311
-rw-r--r--crypto/kerberosIV/appl/bsd/forkpty.c461
-rw-r--r--crypto/kerberosIV/appl/bsd/iruserok.c279
-rw-r--r--crypto/kerberosIV/appl/bsd/kcmd.c270
-rw-r--r--crypto/kerberosIV/appl/bsd/klogin.c184
-rw-r--r--crypto/kerberosIV/appl/bsd/krcmd.c117
-rw-r--r--crypto/kerberosIV/appl/bsd/login.c990
-rw-r--r--crypto/kerberosIV/appl/bsd/login_access.c221
-rw-r--r--crypto/kerberosIV/appl/bsd/login_fbtab.c144
-rw-r--r--crypto/kerberosIV/appl/bsd/pathnames.h191
-rw-r--r--crypto/kerberosIV/appl/bsd/rcmd_util.c246
-rw-r--r--crypto/kerberosIV/appl/bsd/rcp.c1019
-rw-r--r--crypto/kerberosIV/appl/bsd/rcp_util.c97
-rw-r--r--crypto/kerberosIV/appl/bsd/rlogin.c707
-rw-r--r--crypto/kerberosIV/appl/bsd/rlogind.c934
-rw-r--r--crypto/kerberosIV/appl/bsd/rsh.c353
-rw-r--r--crypto/kerberosIV/appl/bsd/rshd.c635
-rw-r--r--crypto/kerberosIV/appl/bsd/stty_default.c105
-rw-r--r--crypto/kerberosIV/appl/bsd/su.c452
-rw-r--r--crypto/kerberosIV/appl/bsd/sysv_default.c95
-rw-r--r--crypto/kerberosIV/appl/bsd/sysv_default.h18
-rw-r--r--crypto/kerberosIV/appl/bsd/sysv_environ.c192
-rw-r--r--crypto/kerberosIV/appl/bsd/sysv_shadow.c45
-rw-r--r--crypto/kerberosIV/appl/bsd/sysv_shadow.h5
-rw-r--r--crypto/kerberosIV/appl/bsd/tty.c75
-rw-r--r--crypto/kerberosIV/appl/bsd/utmp_login.c121
-rw-r--r--crypto/kerberosIV/appl/bsd/utmpx_login.c88
-rw-r--r--crypto/kerberosIV/appl/ftp/Makefile.in41
-rw-r--r--crypto/kerberosIV/appl/ftp/common/Makefile.in52
-rw-r--r--crypto/kerberosIV/appl/ftp/common/base64.c149
-rw-r--r--crypto/kerberosIV/appl/ftp/common/base64.h47
-rw-r--r--crypto/kerberosIV/appl/ftp/common/buffer.c73
-rw-r--r--crypto/kerberosIV/appl/ftp/common/common.h62
-rw-r--r--crypto/kerberosIV/appl/ftp/common/glob.c835
-rw-r--r--crypto/kerberosIV/appl/ftp/common/glob.h84
-rw-r--r--crypto/kerberosIV/appl/ftp/common/sockbuf.c61
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/Makefile.in76
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/cmds.c2073
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/cmdtab.c193
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/domacro.c138
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/extern.h167
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ftp.c1658
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h145
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ftp_var.h127
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/globals.c76
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/kauth.c145
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/krb4.c567
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/krb4.h81
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/main.c542
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/pathnames.h44
-rw-r--r--crypto/kerberosIV/appl/ftp/ftp/ruserpass.c274
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/Makefile.in84
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/auth.c249
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/auth.h109
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/extern.h141
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y1408
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/ftpd.c2089
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/kauth.c325
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/krb4.c372
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/krb4.h61
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c136
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/pathnames.h55
-rw-r--r--crypto/kerberosIV/appl/ftp/ftpd/popen.c224
-rw-r--r--crypto/kerberosIV/appl/kauth/Makefile.in112
-rw-r--r--crypto/kerberosIV/appl/kauth/encdata.c101
-rw-r--r--crypto/kerberosIV/appl/kauth/kauth.c312
-rw-r--r--crypto/kerberosIV/appl/kauth/kauth.h118
-rw-r--r--crypto/kerberosIV/appl/kauth/kauthd.c201
-rw-r--r--crypto/kerberosIV/appl/kauth/ksrvtgt.in14
-rw-r--r--crypto/kerberosIV/appl/kauth/marshall.c97
-rw-r--r--crypto/kerberosIV/appl/kauth/rkinit.c222
-rw-r--r--crypto/kerberosIV/appl/kauth/zrefresh12
-rw-r--r--crypto/kerberosIV/appl/kip/Makefile.in96
-rw-r--r--crypto/kerberosIV/appl/kip/common.c178
-rw-r--r--crypto/kerberosIV/appl/kip/kip.c179
-rw-r--r--crypto/kerberosIV/appl/kip/kip.h106
-rw-r--r--crypto/kerberosIV/appl/kip/kipd.c128
-rw-r--r--crypto/kerberosIV/config.guess696
-rw-r--r--crypto/kerberosIV/config.sub932
-rw-r--r--crypto/kerberosIV/configure9343
-rw-r--r--crypto/kerberosIV/configure.in970
-rw-r--r--crypto/kerberosIV/doc/Makefile.in65
-rw-r--r--crypto/kerberosIV/doc/ack.texi80
-rw-r--r--crypto/kerberosIV/doc/index.texi6
-rw-r--r--crypto/kerberosIV/doc/install.texi368
-rw-r--r--crypto/kerberosIV/doc/intro.texi69
-rw-r--r--crypto/kerberosIV/doc/kth-krb.texi300
-rw-r--r--crypto/kerberosIV/doc/latin1.tex95
-rw-r--r--crypto/kerberosIV/doc/otp.texi127
-rw-r--r--crypto/kerberosIV/doc/problems.texi156
-rw-r--r--crypto/kerberosIV/doc/setup.texi794
-rw-r--r--crypto/kerberosIV/doc/whatis.texi137
-rw-r--r--crypto/kerberosIV/eBones-p9.README26
-rw-r--r--crypto/kerberosIV/etc/README41
-rw-r--r--crypto/kerberosIV/etc/default.login47
-rw-r--r--crypto/kerberosIV/etc/fbtab15
-rw-r--r--crypto/kerberosIV/etc/hosts.equiv1
-rw-r--r--crypto/kerberosIV/etc/inetd.conf.changes33
-rw-r--r--crypto/kerberosIV/etc/krb.conf56
-rw-r--r--crypto/kerberosIV/etc/krb.equiv14
-rw-r--r--crypto/kerberosIV/etc/krb.realms51
-rw-r--r--crypto/kerberosIV/etc/login.access54
-rw-r--r--crypto/kerberosIV/etc/services.append22
-rw-r--r--crypto/kerberosIV/include/Makefile.in147
-rw-r--r--crypto/kerberosIV/include/config.h.in984
-rw-r--r--crypto/kerberosIV/include/ktypes.c64
-rw-r--r--crypto/kerberosIV/include/protos.h276
-rw-r--r--crypto/kerberosIV/include/sys/Makefile.in53
-rw-r--r--crypto/kerberosIV/include/sys/cdefs.H149
-rw-r--r--crypto/kerberosIV/install-sh250
-rw-r--r--crypto/kerberosIV/kadmin/Design.txt23
-rw-r--r--crypto/kerberosIV/kadmin/Makefile.in125
-rw-r--r--crypto/kerberosIV/kadmin/admin_server.c432
-rw-r--r--crypto/kerberosIV/kadmin/kadm_funcs.c411
-rw-r--r--crypto/kerberosIV/kadmin/kadm_locl.h148
-rw-r--r--crypto/kerberosIV/kadmin/kadm_ser_wrap.c213
-rw-r--r--crypto/kerberosIV/kadmin/kadm_server.c198
-rw-r--r--crypto/kerberosIV/kadmin/kadm_server.h66
-rw-r--r--crypto/kerberosIV/kadmin/kadmin.c845
-rw-r--r--crypto/kerberosIV/kadmin/kpasswd.c163
-rw-r--r--crypto/kerberosIV/kadmin/kpasswd_standalone.c228
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil.c601
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil.h54
-rw-r--r--crypto/kerberosIV/kadmin/ksrvutil_get.c400
-rw-r--r--crypto/kerberosIV/kadmin/new_pwd.c146
-rw-r--r--crypto/kerberosIV/kadmin/pw_check.c87
-rw-r--r--crypto/kerberosIV/kadmin/pw_check.h45
-rw-r--r--crypto/kerberosIV/kuser/Makefile.in92
-rw-r--r--crypto/kerberosIV/kuser/kdestroy.c72
-rw-r--r--crypto/kerberosIV/kuser/klist.c314
-rw-r--r--crypto/kerberosIV/kuser/kuser_locl.h86
-rw-r--r--crypto/kerberosIV/lib/Makefile.in46
-rw-r--r--crypto/kerberosIV/lib/acl/Makefile.in84
-rw-r--r--crypto/kerberosIV/lib/acl/acl.h53
-rw-r--r--crypto/kerberosIV/lib/acl/acl_files.c540
-rw-r--r--crypto/kerberosIV/lib/acl/acl_files.doc107
-rw-r--r--crypto/kerberosIV/lib/kadm/Makefile.in92
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm.h143
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_cli_wrap.c545
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_err.et59
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_locl.h90
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_stream.c299
-rw-r--r--crypto/kerberosIV/lib/kadm/kadm_supp.c111
-rw-r--r--crypto/kerberosIV/lib/kafs/Makefile.in90
-rw-r--r--crypto/kerberosIV/lib/kafs/afskrb.c373
-rw-r--r--crypto/kerberosIV/lib/kafs/afsl.exp6
-rw-r--r--crypto/kerberosIV/lib/kafs/afslib.c60
-rw-r--r--crypto/kerberosIV/lib/kafs/afslib.exp3
-rw-r--r--crypto/kerberosIV/lib/kafs/afssys.c293
-rw-r--r--crypto/kerberosIV/lib/kafs/afssysdefs.h87
-rw-r--r--crypto/kerberosIV/lib/kafs/dlfcn.c570
-rw-r--r--crypto/kerberosIV/lib/kafs/dlfcn.h46
-rw-r--r--crypto/kerberosIV/lib/kafs/kafs.h100
-rw-r--r--crypto/kerberosIV/lib/kafs/kafs_locl.h96
-rw-r--r--crypto/kerberosIV/lib/kdb/Makefile.in83
-rw-r--r--crypto/kerberosIV/lib/kdb/base64.c150
-rw-r--r--crypto/kerberosIV/lib/kdb/base64.h47
-rw-r--r--crypto/kerberosIV/lib/kdb/copykey.c55
-rw-r--r--crypto/kerberosIV/lib/kdb/kdb_locl.h98
-rw-r--r--crypto/kerberosIV/lib/kdb/kdc.h34
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_cache.c189
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_db.h137
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_dbm.c823
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_kdb_utils.c261
-rw-r--r--crypto/kerberosIV/lib/kdb/krb_lib.c259
-rw-r--r--crypto/kerberosIV/lib/kdb/print_princ.c48
-rw-r--r--crypto/kerberosIV/lib/krb/Makefile.in269
-rw-r--r--crypto/kerberosIV/lib/krb/check_time.c56
-rw-r--r--crypto/kerberosIV/lib/krb/cr_err_reply.c99
-rw-r--r--crypto/kerberosIV/lib/krb/create_auth_reply.c131
-rw-r--r--crypto/kerberosIV/lib/krb/create_ciph.c117
-rw-r--r--crypto/kerberosIV/lib/krb/create_death_packet.c85
-rw-r--r--crypto/kerberosIV/lib/krb/create_ticket.c134
-rw-r--r--crypto/kerberosIV/lib/krb/debug_decl.c29
-rw-r--r--crypto/kerberosIV/lib/krb/decomp_ticket.c119
-rw-r--r--crypto/kerberosIV/lib/krb/dest_tkt.c82
-rw-r--r--crypto/kerberosIV/lib/krb/dllmain.c128
-rw-r--r--crypto/kerberosIV/lib/krb/encrypt_ktext.c51
-rw-r--r--crypto/kerberosIV/lib/krb/et_list.c74
-rw-r--r--crypto/kerberosIV/lib/krb/get_ad_tkt.c190
-rw-r--r--crypto/kerberosIV/lib/krb/get_cred.c70
-rw-r--r--crypto/kerberosIV/lib/krb/get_default_principal.c94
-rw-r--r--crypto/kerberosIV/lib/krb/get_host.c292
-rw-r--r--crypto/kerberosIV/lib/krb/get_in_tkt.c99
-rw-r--r--crypto/kerberosIV/lib/krb/get_krbrlm.c116
-rw-r--r--crypto/kerberosIV/lib/krb/get_svc_in_tkt.c76
-rw-r--r--crypto/kerberosIV/lib/krb/get_tf_fullname.c70
-rw-r--r--crypto/kerberosIV/lib/krb/get_tf_realm.c41
-rw-r--r--crypto/kerberosIV/lib/krb/getaddrs.c130
-rw-r--r--crypto/kerberosIV/lib/krb/getrealm.c184
-rw-r--r--crypto/kerberosIV/lib/krb/getst.c45
-rw-r--r--crypto/kerberosIV/lib/krb/gettimeofday.c56
-rw-r--r--crypto/kerberosIV/lib/krb/k_concat.c116
-rw-r--r--crypto/kerberosIV/lib/krb/k_flock.c95
-rw-r--r--crypto/kerberosIV/lib/krb/k_gethostname.c58
-rw-r--r--crypto/kerberosIV/lib/krb/k_getport.c57
-rw-r--r--crypto/kerberosIV/lib/krb/k_getsockinst.c73
-rw-r--r--crypto/kerberosIV/lib/krb/k_localtime.c48
-rw-r--r--crypto/kerberosIV/lib/krb/kdc_reply.c131
-rw-r--r--crypto/kerberosIV/lib/krb/klog.h47
-rw-r--r--crypto/kerberosIV/lib/krb/kntoln.c180
-rw-r--r--crypto/kerberosIV/lib/krb/krb.def92
-rw-r--r--crypto/kerberosIV/lib/krb/krb.mak3065
-rw-r--r--crypto/kerberosIV/lib/krb/krb_check_auth.c76
-rw-r--r--crypto/kerberosIV/lib/krb/krb_equiv.c144
-rw-r--r--crypto/kerberosIV/lib/krb/krb_err.et257
-rw-r--r--crypto/kerberosIV/lib/krb/krb_err_txt.c299
-rw-r--r--crypto/kerberosIV/lib/krb/krb_get_in_tkt.c175
-rw-r--r--crypto/kerberosIV/lib/krb/krb_locl.h163
-rw-r--r--crypto/kerberosIV/lib/krb/kuserok.c156
-rw-r--r--crypto/kerberosIV/lib/krb/lifetime.c213
-rw-r--r--crypto/kerberosIV/lib/krb/logging.c240
-rw-r--r--crypto/kerberosIV/lib/krb/lsb_addr_comp.c105
-rw-r--r--crypto/kerberosIV/lib/krb/lsb_addr_comp.h26
-rw-r--r--crypto/kerberosIV/lib/krb/mk_auth.c96
-rw-r--r--crypto/kerberosIV/lib/krb/mk_err.c56
-rw-r--r--crypto/kerberosIV/lib/krb/mk_priv.c125
-rw-r--r--crypto/kerberosIV/lib/krb/mk_req.c215
-rw-r--r--crypto/kerberosIV/lib/krb/mk_safe.c131
-rw-r--r--crypto/kerberosIV/lib/krb/month_sname.c39
-rw-r--r--crypto/kerberosIV/lib/krb/name2name.c102
-rw-r--r--crypto/kerberosIV/lib/krb/netread.c55
-rw-r--r--crypto/kerberosIV/lib/krb/netwrite.c52
-rw-r--r--crypto/kerberosIV/lib/krb/one.c27
-rw-r--r--crypto/kerberosIV/lib/krb/parse_name.c199
-rw-r--r--crypto/kerberosIV/lib/krb/prot.h105
-rw-r--r--crypto/kerberosIV/lib/krb/rd_err.c82
-rw-r--r--crypto/kerberosIV/lib/krb/rd_priv.c129
-rw-r--r--crypto/kerberosIV/lib/krb/rd_req.c324
-rw-r--r--crypto/kerberosIV/lib/krb/rd_safe.c178
-rw-r--r--crypto/kerberosIV/lib/krb/read_service_key.c116
-rw-r--r--crypto/kerberosIV/lib/krb/realm_parse.c88
-rw-r--r--crypto/kerberosIV/lib/krb/recvauth.c190
-rw-r--r--crypto/kerberosIV/lib/krb/resolve.c288
-rw-r--r--crypto/kerberosIV/lib/krb/resolve.h110
-rw-r--r--crypto/kerberosIV/lib/krb/rw.c128
-rw-r--r--crypto/kerberosIV/lib/krb/save_credentials.c59
-rw-r--r--crypto/kerberosIV/lib/krb/send_to_kdc.c251
-rw-r--r--crypto/kerberosIV/lib/krb/sendauth.c163
-rw-r--r--crypto/kerberosIV/lib/krb/sizetest.c41
-rw-r--r--crypto/kerberosIV/lib/krb/stime.c35
-rw-r--r--crypto/kerberosIV/lib/krb/str2key.c103
-rw-r--r--crypto/kerberosIV/lib/krb/swab.c56
-rw-r--r--crypto/kerberosIV/lib/krb/tf_util.c645
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.c438
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.h69
-rw-r--r--crypto/kerberosIV/lib/krb/tkt_string.c85
-rw-r--r--crypto/kerberosIV/lib/krb/unparse_name.c105
-rw-r--r--crypto/kerberosIV/lib/krb/util.c64
-rw-r--r--crypto/kerberosIV/lib/krb/verify_user.c111
-rw-r--r--crypto/kerberosIV/lib/roken/Makefile.in94
-rw-r--r--crypto/kerberosIV/lib/roken/chown.c50
-rw-r--r--crypto/kerberosIV/lib/roken/daemon.c89
-rw-r--r--crypto/kerberosIV/lib/roken/err.c53
-rw-r--r--crypto/kerberosIV/lib/roken/err.h76
-rw-r--r--crypto/kerberosIV/lib/roken/errx.c53
-rw-r--r--crypto/kerberosIV/lib/roken/fchown.c50
-rw-r--r--crypto/kerberosIV/lib/roken/get_window_size.c96
-rw-r--r--crypto/kerberosIV/lib/roken/getcwd.c59
-rw-r--r--crypto/kerberosIV/lib/roken/getdtablesize.c102
-rw-r--r--crypto/kerberosIV/lib/roken/getopt.c128
-rw-r--r--crypto/kerberosIV/lib/roken/getusershell.c160
-rw-r--r--crypto/kerberosIV/lib/roken/hstrerror.c87
-rw-r--r--crypto/kerberosIV/lib/roken/inaddr2str.c88
-rw-r--r--crypto/kerberosIV/lib/roken/inet_aton.c68
-rw-r--r--crypto/kerberosIV/lib/roken/initgroups.c50
-rw-r--r--crypto/kerberosIV/lib/roken/k_getpwnam.c69
-rw-r--r--crypto/kerberosIV/lib/roken/k_getpwuid.c69
-rw-r--r--crypto/kerberosIV/lib/roken/lstat.c50
-rw-r--r--crypto/kerberosIV/lib/roken/memmove.c67
-rw-r--r--crypto/kerberosIV/lib/roken/mini_inetd.c99
-rw-r--r--crypto/kerberosIV/lib/roken/mkstemp.c89
-rw-r--r--crypto/kerberosIV/lib/roken/putenv.c81
-rw-r--r--crypto/kerberosIV/lib/roken/rcmd.c57
-rw-r--r--crypto/kerberosIV/lib/roken/roken.def4
-rw-r--r--crypto/kerberosIV/lib/roken/roken.h338
-rw-r--r--crypto/kerberosIV/lib/roken/roken.mak278
-rw-r--r--crypto/kerberosIV/lib/roken/setegid.c60
-rw-r--r--crypto/kerberosIV/lib/roken/setenv.c71
-rw-r--r--crypto/kerberosIV/lib/roken/seteuid.c60
-rw-r--r--crypto/kerberosIV/lib/roken/signal.c86
-rw-r--r--crypto/kerberosIV/lib/roken/snprintf.c520
-rw-r--r--crypto/kerberosIV/lib/roken/strcasecmp.c118
-rw-r--r--crypto/kerberosIV/lib/roken/strdup.c55
-rw-r--r--crypto/kerberosIV/lib/roken/strerror.c62
-rw-r--r--crypto/kerberosIV/lib/roken/strftime.c299
-rw-r--r--crypto/kerberosIV/lib/roken/strlwr.c58
-rw-r--r--crypto/kerberosIV/lib/roken/strnlen.c53
-rw-r--r--crypto/kerberosIV/lib/roken/strtok_r.c70
-rw-r--r--crypto/kerberosIV/lib/roken/strupr.c58
-rw-r--r--crypto/kerberosIV/lib/roken/tm2time.c66
-rw-r--r--crypto/kerberosIV/lib/roken/unsetenv.c75
-rw-r--r--crypto/kerberosIV/lib/roken/verify.c67
-rw-r--r--crypto/kerberosIV/lib/roken/verr.c50
-rw-r--r--crypto/kerberosIV/lib/roken/verrx.c50
-rw-r--r--crypto/kerberosIV/lib/roken/vwarn.c50
-rw-r--r--crypto/kerberosIV/lib/roken/vwarnx.c51
-rw-r--r--crypto/kerberosIV/lib/roken/warn.c53
-rw-r--r--crypto/kerberosIV/lib/roken/warnerr.c86
-rw-r--r--crypto/kerberosIV/lib/roken/warnx.c53
-rw-r--r--crypto/kerberosIV/lib/roken/xdbm.h75
-rw-r--r--crypto/kerberosIV/lib/sl/Makefile.in84
-rw-r--r--crypto/kerberosIV/lib/sl/sl.c190
-rw-r--r--crypto/kerberosIV/lib/sl/sl.h58
-rw-r--r--crypto/kerberosIV/lib/sl/sl_locl.h48
-rw-r--r--crypto/kerberosIV/man/Makefile.in95
-rw-r--r--crypto/kerberosIV/man/acl_check.3182
-rw-r--r--crypto/kerberosIV/man/ext_srvtab.862
-rw-r--r--crypto/kerberosIV/man/getusershell.399
-rw-r--r--crypto/kerberosIV/man/kadmin.8176
-rw-r--r--crypto/kerberosIV/man/kadmind.8125
-rw-r--r--crypto/kerberosIV/man/kafs.3122
-rw-r--r--crypto/kerberosIV/man/kauth.165
-rw-r--r--crypto/kerberosIV/man/kauthd.827
-rw-r--r--crypto/kerberosIV/man/kdb_destroy.832
-rw-r--r--crypto/kerberosIV/man/kdb_edit.854
-rw-r--r--crypto/kerberosIV/man/kdb_init.837
-rw-r--r--crypto/kerberosIV/man/kdb_util.868
-rw-r--r--crypto/kerberosIV/man/kdestroy.188
-rw-r--r--crypto/kerberosIV/man/kerberos.1258
-rw-r--r--crypto/kerberosIV/man/kerberos.3460
-rw-r--r--crypto/kerberosIV/man/kerberos.844
-rw-r--r--crypto/kerberosIV/man/klist.183
-rw-r--r--crypto/kerberosIV/man/kprop.858
-rw-r--r--crypto/kerberosIV/man/kpropd.863
-rw-r--r--crypto/kerberosIV/man/krb.conf.531
-rw-r--r--crypto/kerberosIV/man/krb.equiv.528
-rw-r--r--crypto/kerberosIV/man/krb.realms.538
-rw-r--r--crypto/kerberosIV/man/krb_realmofhost.3160
-rw-r--r--crypto/kerberosIV/man/krb_sendauth.3347
-rw-r--r--crypto/kerberosIV/man/krb_set_tkt_string.342
-rw-r--r--crypto/kerberosIV/man/ksrvtgt.150
-rw-r--r--crypto/kerberosIV/man/ksrvutil.8104
-rw-r--r--crypto/kerberosIV/man/kstash.840
-rw-r--r--crypto/kerberosIV/man/kuserok.366
-rw-r--r--crypto/kerberosIV/man/tf_util.3150
-rw-r--r--crypto/kerberosIV/mkinstalldirs40
-rw-r--r--crypto/kerberosIV/server/Makefile.in79
-rw-r--r--crypto/kerberosIV/server/kerberos.c846
-rw-r--r--crypto/kerberosIV/slave/Makefile.in82
-rw-r--r--crypto/kerberosIV/slave/kprop.c530
-rw-r--r--crypto/kerberosIV/slave/kprop.h19
-rw-r--r--crypto/kerberosIV/slave/kpropd.c301
-rw-r--r--crypto/kerberosIV/slave/slav_locl.h101
-rw-r--r--crypto/telnet/arpa/telnet.h340
-rw-r--r--crypto/telnet/libtelnet/auth-proto.h100
-rw-r--r--crypto/telnet/libtelnet/auth.c674
-rw-r--r--crypto/telnet/libtelnet/auth.h87
-rw-r--r--crypto/telnet/libtelnet/enc-proto.h126
-rw-r--r--crypto/telnet/libtelnet/enc_des.c720
-rw-r--r--crypto/telnet/libtelnet/encrypt.c1016
-rw-r--r--crypto/telnet/libtelnet/encrypt.h108
-rw-r--r--crypto/telnet/libtelnet/genget.c104
-rw-r--r--crypto/telnet/libtelnet/getent.c68
-rw-r--r--crypto/telnet/libtelnet/kerberos.c550
-rw-r--r--crypto/telnet/libtelnet/kerberos5.c764
-rw-r--r--crypto/telnet/libtelnet/key-proto.h71
-rw-r--r--crypto/telnet/libtelnet/krb4encpwd.c445
-rw-r--r--crypto/telnet/libtelnet/misc-proto.h79
-rw-r--r--crypto/telnet/libtelnet/misc.c98
-rw-r--r--crypto/telnet/libtelnet/misc.h42
-rw-r--r--crypto/telnet/libtelnet/read_password.c145
-rw-r--r--crypto/telnet/libtelnet/rsaencpwd.c492
-rw-r--r--crypto/telnet/libtelnet/spx.c587
-rw-r--r--crypto/telnet/telnet/authenc.c111
-rw-r--r--crypto/telnet/telnet/commands.c3002
-rw-r--r--crypto/telnet/telnet/defines.h61
-rw-r--r--crypto/telnet/telnet/externs.h491
-rw-r--r--crypto/telnet/telnet/fdset.h49
-rw-r--r--crypto/telnet/telnet/general.h45
-rw-r--r--crypto/telnet/telnet/main.c337
-rw-r--r--crypto/telnet/telnet/network.c178
-rw-r--r--crypto/telnet/telnet/ring.c364
-rw-r--r--crypto/telnet/telnet/ring.h105
-rw-r--r--crypto/telnet/telnet/sys_bsd.c1221
-rw-r--r--crypto/telnet/telnet/telnet.11366
-rw-r--r--crypto/telnet/telnet/telnet.c2662
-rw-r--r--crypto/telnet/telnet/terminal.c244
-rw-r--r--crypto/telnet/telnet/tn3270.c411
-rw-r--r--crypto/telnet/telnet/types.h52
-rw-r--r--crypto/telnet/telnet/utilities.c946
-rw-r--r--crypto/telnet/telnetd/defs.h296
-rw-r--r--crypto/telnet/telnetd/ext.h242
-rw-r--r--crypto/telnet/telnetd/pathnames.h55
-rw-r--r--crypto/telnet/telnetd/telnetd.h49
-rw-r--r--etc/protocols4
-rw-r--r--gnu/libexec/uucp/uuchk/uuchk.846
-rw-r--r--gnu/libexec/uucp/uuconv/uuconv.157
-rw-r--r--gnu/libexec/uucp/uulog/uulog.184
-rw-r--r--gnu/libexec/uucp/uuname/uuname.145
-rw-r--r--gnu/libexec/uucp/uupick/uupick.172
-rw-r--r--gnu/libexec/uucp/uusched/uusched.824
-rw-r--r--gnu/libexec/uucp/uuto/uuto.141
-rw-r--r--include/elf.h35
-rw-r--r--include/stringlist.h55
-rw-r--r--kerberosIV/Makefile.inc102
-rw-r--r--kerberosIV/README13
-rw-r--r--kerberosIV/include/Makefile18
-rw-r--r--kerberosIV/include/config.h985
-rw-r--r--kerberosIV/include/version.h2
-rw-r--r--kerberosIV/lib/Makefile5
-rw-r--r--kerberosIV/lib/Makefile.inc6
-rw-r--r--kerberosIV/lib/libacl/Makefile21
-rw-r--r--kerberosIV/lib/libkadm/Makefile21
-rw-r--r--kerberosIV/lib/libkafs/Makefile20
-rw-r--r--kerberosIV/lib/libkdb/Makefile17
-rw-r--r--kerberosIV/lib/libkrb/Makefile66
-rw-r--r--kerberosIV/lib/libroken/Makefile16
-rw-r--r--kerberosIV/lib/libsl/Makefile15
-rw-r--r--kerberosIV/lib/libtelnet/Makefile15
-rw-r--r--kerberosIV/libexec/Makefile5
-rw-r--r--kerberosIV/libexec/Makefile.inc5
-rw-r--r--kerberosIV/libexec/kauthd/Makefile16
-rw-r--r--kerberosIV/libexec/kipd/Makefile15
-rw-r--r--kerberosIV/libexec/kpropd/Makefile18
-rw-r--r--kerberosIV/libexec/telnetd/Makefile22
-rw-r--r--kerberosIV/share/info/Makefile15
-rw-r--r--kerberosIV/usr.bin/Makefile5
-rw-r--r--kerberosIV/usr.bin/Makefile.inc5
-rw-r--r--kerberosIV/usr.bin/kadmin/Makefile28
-rw-r--r--kerberosIV/usr.bin/kauth/Makefile17
-rw-r--r--kerberosIV/usr.bin/kdestroy/Makefile19
-rw-r--r--kerberosIV/usr.bin/klist/Makefile19
-rw-r--r--kerberosIV/usr.bin/ksrvtgt/Makefile13
-rw-r--r--kerberosIV/usr.bin/telnet/Makefile17
-rw-r--r--kerberosIV/usr.sbin/Makefile6
-rw-r--r--kerberosIV/usr.sbin/Makefile.inc5
-rw-r--r--kerberosIV/usr.sbin/ext_srvtab/Makefile20
-rw-r--r--kerberosIV/usr.sbin/kadmind/Makefile29
-rw-r--r--kerberosIV/usr.sbin/kdb_destroy/Makefile20
-rw-r--r--kerberosIV/usr.sbin/kdb_edit/Makefile20
-rw-r--r--kerberosIV/usr.sbin/kdb_init/Makefile20
-rw-r--r--kerberosIV/usr.sbin/kdb_util/Makefile20
-rw-r--r--kerberosIV/usr.sbin/kerberos/Makefile24
-rw-r--r--kerberosIV/usr.sbin/kip/Makefile17
-rw-r--r--kerberosIV/usr.sbin/kprop/Makefile18
-rw-r--r--kerberosIV/usr.sbin/ksrvutil/Makefile26
-rw-r--r--kerberosIV/usr.sbin/kstash/Makefile20
-rw-r--r--lib/libc/gen/arc4random.383
-rw-r--r--lib/libc/gen/arc4random.c172
-rw-r--r--lib/libc/gen/stringlist.3120
-rw-r--r--lib/libc/gen/stringlist.c120
-rw-r--r--lib/libc/i386/string/memcpy.S2
-rw-r--r--lib/libc/locale/mskanji.c107
-rw-r--r--lib/libedit/editrc.5292
-rw-r--r--lib/libutil/login_auth.371
-rw-r--r--release/floppies/bin/Makefile7
-rw-r--r--release/floppies/bin/doFS.sh71
-rw-r--r--release/floppies/bin/dumpnlist/Makefile8
-rw-r--r--release/floppies/bin/dumpnlist/dumpnlist.c44
-rw-r--r--release/floppies/bin/write_mfs_in_kernel/Makefile8
-rw-r--r--release/floppies/bin/write_mfs_in_kernel/write_mfs_in_kernel.c70
-rw-r--r--release/floppies/mk/crunch_fs.mk108
-rw-r--r--release/floppies/mk/makecrunch.mk25
-rw-r--r--share/man/man4/man4.i386/pnp.4179
-rw-r--r--share/man/man4/man4.i386/sb.473
-rw-r--r--share/man/man8/diskless.8331
-rw-r--r--share/skel/dot.login_conf7
-rw-r--r--share/skel/dot.mail_aliases13
-rw-r--r--share/skel/dot.shrc43
-rw-r--r--share/syscons/fonts/iso02-8x14.fnt83
-rw-r--r--share/syscons/fonts/iso02-8x16.fnt95
-rw-r--r--share/syscons/fonts/iso02-8x8.fnt49
-rw-r--r--sys/i386/include/asm.h201
-rw-r--r--sys/i386/include/elf.h112
-rw-r--r--sys/i386/isa/snd/ulaw.h93
-rw-r--r--sys/sys/elf32.h310
-rw-r--r--usr.bin/c89/Makefile7
-rw-r--r--usr.bin/c89/c89.1170
-rwxr-xr-xusr.bin/c89/c89.sh73
-rw-r--r--usr.bin/cksum/crc32.c115
-rw-r--r--usr.bin/mklocale/data/ja_JP.SJIS.src275
-rw-r--r--usr.bin/shar/shar.sh14
-rw-r--r--usr.bin/ypwhich/ypwhich.1100
-rw-r--r--usr.sbin/pnpinfo/Makefile11
-rw-r--r--usr.sbin/pppd/cbcp.c430
-rw-r--r--usr.sbin/pppd/cbcp.h26
-rw-r--r--usr.sbin/pppd/ipxcp.h71
-rw-r--r--usr.sbin/stallion/bootcode/stl.4324
-rw-r--r--usr.sbin/stallion/stlload/stlload.8124
-rw-r--r--usr.sbin/stallion/stlstats/stlstats.8135
-rw-r--r--usr.sbin/vidcontrol/decode.h1
523 files changed, 14 insertions, 111120 deletions
diff --git a/contrib/global/FREEBSD-upgrade b/contrib/global/FREEBSD-upgrade
deleted file mode 100755
index 86567138a4e9..000000000000
--- a/contrib/global/FREEBSD-upgrade
+++ /dev/null
@@ -1,36 +0,0 @@
-GLOBAL
-
-This directory contains virgin sources of the original distribution files on
-a "vendor" branch. Do not, under any circumstances, attempt to upgrade the
-files in this directory via patches and a cvs commit. New versions or
-official-patch versions must be imported.
-
-Before attempting an upgrade, please read the section entitled "Contributed
-Software" in the FreeBSD Handbook (from which this file is derived.) New
-releases of the source should be imported onto the vendor branch and merged
-with the FreeBSD-customized sources that live on the main branch.
-
-To upgrade to a newer version, when it is available:
- 1. Unpack the new version into an empty directory.
- [Do not make ANY changes to the files.]
-
- 2. Remove any files that don't apply to FreeBSD.
-
- 3. Use the command:
- cvs import -m 'Virgin import of GLOBAL v<version>' \
- src/contrib/global GLOBAL v<version>
-
- 4. Follow the instructions printed out in step 3 to resolve any
- conflicts between local FreeBSD changes and the newer version.
-
-Do not, under any circumstances, deviate from this procedure.
-
-To make local changes, simply patch and commit to the main branch (aka HEAD).
-Never make local changes on the GLOBAL vendor branch.
-
-Please submit changes to GLOBAL's author, Shigio Yamaguchi
-<shigio@wafu.netgate.net> for inclusion in his next release. The most recent
-release of GLOBAL is available at the author's web page:
-http://wafu.netgate.net/tama/unix/indexe.html
-
-cwt@freebsd.org - July 1997
diff --git a/contrib/global/gctags/fortran.c b/contrib/global/gctags/fortran.c
deleted file mode 100644
index 2a33aff1f2df..000000000000
--- a/contrib/global/gctags/fortran.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)fortran.c 8.3 (Berkeley) 4/2/94";
-#endif /* LIBC_SCCS and not lint */
-
-#include <ctype.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "ctags.h"
-
-static void takeprec __P((void));
-
-char *lbp; /* line buffer pointer */
-
-int
-PF_funcs()
-{
- bool pfcnt; /* pascal/fortran functions found */
- char *cp;
- char tok[MAXTOKEN];
-
- for (pfcnt = NO;;) {
- lineftell = ftell(inf);
- if (!fgets(lbuf, sizeof(lbuf), inf))
- return (pfcnt);
- ++lineno;
- lbp = lbuf;
- if (*lbp == '%') /* Ratfor escape to fortran */
- ++lbp;
- for (; isspace(*lbp); ++lbp)
- continue;
- if (!*lbp)
- continue;
- switch (*lbp | ' ') { /* convert to lower-case */
- case 'c':
- if (cicmp("complex") || cicmp("character"))
- takeprec();
- break;
- case 'd':
- if (cicmp("double")) {
- for (; isspace(*lbp); ++lbp)
- continue;
- if (!*lbp)
- continue;
- if (cicmp("precision"))
- break;
- continue;
- }
- break;
- case 'i':
- if (cicmp("integer"))
- takeprec();
- break;
- case 'l':
- if (cicmp("logical"))
- takeprec();
- break;
- case 'r':
- if (cicmp("real"))
- takeprec();
- break;
- }
- for (; isspace(*lbp); ++lbp)
- continue;
- if (!*lbp)
- continue;
- switch (*lbp | ' ') {
- case 'f':
- if (cicmp("function"))
- break;
- continue;
- case 'p':
- if (cicmp("program") || cicmp("procedure"))
- break;
- continue;
- case 's':
- if (cicmp("subroutine"))
- break;
- default:
- continue;
- }
- for (; isspace(*lbp); ++lbp)
- continue;
- if (!*lbp)
- continue;
- for (cp = lbp + 1; *cp && intoken(*cp); ++cp)
- continue;
- if (cp == lbp + 1)
- continue;
- *cp = EOS;
- (void)strcpy(tok, lbp);
- getline(); /* process line for ex(1) */
- pfnote(tok, lineno);
- pfcnt = YES;
- }
- /*NOTREACHED*/
-}
-
-/*
- * cicmp --
- * do case-independent strcmp
- */
-int
-cicmp(cp)
- char *cp;
-{
- int len;
- char *bp;
-
- for (len = 0, bp = lbp; *cp && (*cp &~ ' ') == (*bp++ &~ ' ');
- ++cp, ++len)
- continue;
- if (!*cp) {
- lbp += len;
- return (YES);
- }
- return (NO);
-}
-
-static void
-takeprec()
-{
- for (; isspace(*lbp); ++lbp)
- continue;
- if (*lbp == '*') {
- for (++lbp; isspace(*lbp); ++lbp)
- continue;
- if (!isdigit(*lbp))
- --lbp; /* force failure */
- else
- while (isdigit(*++lbp))
- continue;
- }
-}
diff --git a/contrib/global/gctags/lisp.c b/contrib/global/gctags/lisp.c
deleted file mode 100644
index ebf51841eb3b..000000000000
--- a/contrib/global/gctags/lisp.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)lisp.c 8.3 (Berkeley) 4/2/94";
-#endif /* LIBC_SCCS and not lint */
-
-#include <ctype.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "ctags.h"
-
-/*
- * lisp tag functions
- * just look for (def or (DEF
- */
-void
-l_entries()
-{
- int special;
- char *cp;
- char savedc;
- char tok[MAXTOKEN];
-
- for (;;) {
- lineftell = ftell(inf);
- if (!fgets(lbuf, sizeof(lbuf), inf))
- return;
- ++lineno;
- lbp = lbuf;
- if (!cicmp("(def"))
- continue;
- special = NO;
- switch(*lbp | ' ') {
- case 'm':
- if (cicmp("method"))
- special = YES;
- break;
- case 'w':
- if (cicmp("wrapper") || cicmp("whopper"))
- special = YES;
- }
- for (; !isspace(*lbp); ++lbp)
- continue;
- for (; isspace(*lbp); ++lbp)
- continue;
- for (cp = lbp; *cp && *cp != '\n'; ++cp)
- continue;
- *cp = EOS;
- if (special) {
- if (!(cp = strchr(lbp, ')')))
- continue;
- for (; cp >= lbp && *cp != ':'; --cp)
- continue;
- if (cp < lbp)
- continue;
- lbp = cp;
- for (; *cp && *cp != ')' && *cp != ' '; ++cp)
- continue;
- }
- else
- for (cp = lbp + 1;
- *cp && *cp != '(' && *cp != ' '; ++cp)
- continue;
- savedc = *cp;
- *cp = EOS;
- (void)strcpy(tok, lbp);
- *cp = savedc;
- getline();
- pfnote(tok, lineno);
- }
- /*NOTREACHED*/
-}
diff --git a/contrib/global/gctags/test/ctags.test b/contrib/global/gctags/test/ctags.test
deleted file mode 100644
index 1f334ac2b8b1..000000000000
--- a/contrib/global/gctags/test/ctags.test
+++ /dev/null
@@ -1,67 +0,0 @@
-int bar = (1 + 5);
-
-FOO("here is a #define test: ) {");
-char sysent[20];
-int nsysent = sizeof (sysent) / sizeof (sysent[0]);
-/*
- * now is the time for a comment.
- * four lines in length...
- */struct struct_xtra{int list;};r4(x,y){};typedef struct{int bar;}struct_xxe;
-#define FOO BAR
-struct struct_three {
- int list;
-};
-#define SINGLE
-int BAD();
-enum color {red, green, gold, brown};
-char qq[] = " quote(one,two) {int bar;} ";
-typedef struct {
- int bar;
- struct struct_two {
- int foo;
- union union_3 {
- struct struct_three entry;
- char size[25];
- };
- struct last {
- struct struct_three xentry;
- char list[34];
- };
- };
-} struct_one;
-#define TWOLINE ((MAXLIST + FUTURE + 15) \
- / (time_to_live ? 3 : 4))
-#if (defined(BAR))
-int bar;
-#endif
-#define MULTIPLE {\
- multiple(one,two); \
- lineno++; \
- callroute(one,two); \
-}
-#if defined(BAR)
-int bar;
-#endif
-union union_one {
- struct struct_three s3;
- char foo[25];
-};
-#define XYZ(A,B) (A + B / 2) * (3 - 26 + l_lineno)
-routine1(one,two) /* comments here are fun... */
- struct {
- int entry;
- char bar[34];
- } *one;
- char two[10];
-{
-typedef unsigned char u_char;
- register struct buf *bp;
- five(one,two);
-}
- routine2 (one,two) { puts("hello\n"); }
- routine3
-(one,
-two) { puts("world\n"); }
-routine4(int one, char (*two)(void)) /* test ANSI arguments */
-{
-}
diff --git a/contrib/global/gctags/yacc.c b/contrib/global/gctags/yacc.c
deleted file mode 100644
index 9dcdd5afc24a..000000000000
--- a/contrib/global/gctags/yacc.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)yacc.c 8.3 (Berkeley) 4/2/94";
-#endif /* LIBC_SCCS and not lint */
-
-#include <ctype.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "ctags.h"
-
-/*
- * y_entries:
- * find the yacc tags and put them in.
- */
-void
-y_entries()
-{
- int c;
- char *sp;
- bool in_rule;
- char tok[MAXTOKEN];
-
- in_rule = NO;
-
- while (GETC(!=, EOF))
- switch (c) {
- case '\n':
- SETLINE;
- /* FALLTHROUGH */
- case ' ':
- case '\f':
- case '\r':
- case '\t':
- break;
- case '{':
- if (skip_key('}'))
- in_rule = NO;
- break;
- case '\'':
- case '"':
- if (skip_key(c))
- in_rule = NO;
- break;
- case '%':
- if (GETC(==, '%'))
- return;
- (void)ungetc(c, inf);
- break;
- case '/':
- if (GETC(==, '*'))
- skip_comment();
- else
- (void)ungetc(c, inf);
- break;
- case '|':
- case ';':
- in_rule = NO;
- break;
- default:
- if (in_rule || (!isalpha(c) && c != '.' && c != '_'))
- break;
- sp = tok;
- *sp++ = c;
- while (GETC(!=, EOF) && (intoken(c) || c == '.'))
- *sp++ = c;
- *sp = EOS;
- getline(); /* may change before ':' */
- while (iswhite(c)) {
- if (c == '\n')
- SETLINE;
- if (GETC(==, EOF))
- return;
- }
- if (c == ':') {
- pfnote(tok, lineno);
- in_rule = YES;
- }
- else
- (void)ungetc(c, inf);
- }
-}
-
-/*
- * toss_yysec --
- * throw away lines up to the next "\n%%\n"
- */
-void
-toss_yysec()
-{
- int c; /* read character */
- int state;
-
- /*
- * state == 0 : waiting
- * state == 1 : received a newline
- * state == 2 : received first %
- * state == 3 : recieved second %
- */
- lineftell = ftell(inf);
- for (state = 0; GETC(!=, EOF);)
- switch (c) {
- case '\n':
- ++lineno;
- lineftell = ftell(inf);
- if (state == 3) /* done! */
- return;
- state = 1; /* start over */
- break;
- case '%':
- if (state) /* if 1 or 2 */
- ++state; /* goto 3 */
- break;
- default:
- state = 0; /* reset */
- break;
- }
-}
diff --git a/contrib/global/nvi-1.34.diff b/contrib/global/nvi-1.34.diff
deleted file mode 100644
index f289e9a8fa98..000000000000
--- a/contrib/global/nvi-1.34.diff
+++ /dev/null
@@ -1,900 +0,0 @@
-diff -c -r -N /usr/src/usr.bin/vi/USD.doc/vi.man/vi.1 ./USD.doc/vi.man/vi.1
-*** /usr/src/usr.bin/vi/USD.doc/vi.man/vi.1 Wed Aug 17 08:36:39 1994
---- ./USD.doc/vi.man/vi.1 Sat Dec 14 11:54:14 1996
-***************
-*** 39,59 ****
- .Nd text editors
- .Sh SYNOPSIS
- .Nm \&ex
-! .Op Fl eFRrsv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
- .\".Op Fl X Ar \&aw
- .Op Ar "file ..."
- .Nm \&vi
-! .Op Fl eFRrv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
- .\".Op Fl X Ar \&aw
- .Op Ar "file ..."
- .Nm view
-! .Op Fl eFRrv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
---- 39,59 ----
- .Nd text editors
- .Sh SYNOPSIS
- .Nm \&ex
-! .Op Fl eFGRrsv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
- .\".Op Fl X Ar \&aw
- .Op Ar "file ..."
- .Nm \&vi
-! .Op Fl eFGRrv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
- .\".Op Fl X Ar \&aw
- .Op Ar "file ..."
- .Nm view
-! .Op Fl eFGRrv
- .Op Fl c Ar cmd
- .Op Fl t Ar tag
- .Op Fl w Ar size
-***************
-*** 124,129 ****
---- 124,131 ----
- Don't copy the entire file when first starting to edit.
- (The default is to make a copy in case someone else modifies
- the file during your edit session.)
-+ .It Fl G
-+ Start editing in gtags mode, as if the gtagsmode option was set.
- .It Fl R
- Start editing in read-only mode, as if the command name was
- .Nm view ,
-***************
-*** 377,382 ****
---- 379,385 ----
- Move the cursor down
- .Li count
- lines to the first nonblank character of that line.
-+ In gtags select mode, <control-M> select current line as a tag.
- .It Sy "[count] <control-P>"
- .It Sy "[count] k"
- Move the cursor up
-***************
-*** 402,408 ****
- .Nm \&ex
- commands or cancel partial commands.
- .It Sy "<control-]>"
-! Push a tag reference onto the tag stack.
- .It Sy "<control-^>"
- Switch to the most recently edited file.
- .It Sy "[count] <space>"
---- 405,412 ----
- .Nm \&ex
- commands or cancel partial commands.
- .It Sy "<control-]>"
-! Push a tag reference onto the tag stack. In gtagsmode, if at the first column
-! of line, locate function references otherwise function definitions.
- .It Sy "<control-^>"
- Switch to the most recently edited file.
- .It Sy "[count] <space>"
-***************
-*** 780,785 ****
---- 784,793 ----
- Grow or shrink the current screen.
- .It Sy "rew[ind][!]"
- Rewind the argument list.
-+ .It Sy "rta[g][!] tagstring"
-+ Edit the file refering the specified tag. (Only in gtagsmode)
-+ .It Sy "se[lect]"
-+ Select a tag from gtags list.
- .It Sy "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]"
- Display or set editor options.
- .It Sy "sh[ell]"
-***************
-*** 901,906 ****
---- 909,916 ----
- style) expressions.
- .It Sy "flash [on]"
- Flash the screen instead of beeping the keyboard on error.
-+ .It Sy "gtagsmode, gt [off]"
-+ Use GTAGS and GRTAGS instead of tags.
- .It Sy "hardtabs, ht [8]"
- Set the spacing between hardware tab settings.
- .It Sy "ignorecase, ic [off]"
-diff -c -r -N /usr/src/usr.bin/vi/common/Makefile ./common/Makefile
-*** /usr/src/usr.bin/vi/common/Makefile Mon Sep 12 07:01:45 1994
---- ./common/Makefile Sat Dec 14 11:55:27 1996
-***************
-*** 9,15 ****
- LINKS+= ${BINDIR}/${VI} ${BINDIR}/view
- MAN1= ${.CURDIR}/../USD.doc/vi.man/vi.1
-
-! CFLAGS+=-I. -I${.CURDIR}
- DPADD+= ${LIBCURSES} ${LIBTERMCAP} ${LIBUTIL}
- LDADD+= -lcurses -ltermcap -lutil
-
---- 9,15 ----
- LINKS+= ${BINDIR}/${VI} ${BINDIR}/view
- MAN1= ${.CURDIR}/../USD.doc/vi.man/vi.1
-
-! CFLAGS+=-I. -I${.CURDIR} -DGTAGS
- DPADD+= ${LIBCURSES} ${LIBTERMCAP} ${LIBUTIL}
- LDADD+= -lcurses -ltermcap -lutil
-
-diff -c -r -N /usr/src/usr.bin/vi/common/exf.c ./common/exf.c
-*** /usr/src/usr.bin/vi/common/exf.c Tue May 30 15:35:44 1995
---- ./common/exf.c Sat Dec 14 11:54:15 1996
-***************
-*** 156,162 ****
---- 156,169 ----
- * Required FRP initialization; the only flag we keep is the
- * cursor information.
- */
-+ #ifdef GTAGS
-+ /*
-+ * we must keep gtagstmp information too.
-+ */
-+ F_CLR(frp, ~(FR_CURSORSET|FR_GTAGSTMP));
-+ #else
- F_CLR(frp, ~FR_CURSORSET);
-+ #endif
-
- /*
- * Required EXF initialization:
-***************
-*** 290,295 ****
---- 297,305 ----
- * an error.
- */
- if (rcv_name == NULL)
-+ #ifdef GTAGS
-+ if (!F_ISSET(frp, FR_GTAGSTMP))
-+ #endif
- switch (file_lock(oname,
- &ep->fcntl_fd, ep->db->fd(ep->db), 0)) {
- case LOCK_FAILED:
-diff -c -r -N /usr/src/usr.bin/vi/common/gs.h ./common/gs.h
-*** /usr/src/usr.bin/vi/common/gs.h Wed Aug 17 08:36:42 1994
---- ./common/gs.h Sat Dec 14 11:54:15 1996
-***************
-*** 48,53 ****
---- 48,56 ----
-
- sigset_t blockset; /* Signal mask. */
-
-+ #ifdef GTAGS
-+ char *gtagstmp; /* gtagstmp made by -t option */
-+ #endif
- #ifdef DEBUG
- FILE *tracefp; /* Trace file pointer. */
- #endif
-diff -c -r -N /usr/src/usr.bin/vi/common/main.c ./common/main.c
-*** /usr/src/usr.bin/vi/common/main.c Tue May 30 15:35:45 1995
---- ./common/main.c Sat Dec 14 11:54:15 1996
-***************
-*** 98,103 ****
---- 98,106 ----
- SCR *sp;
- u_int flags, saved_vi_mode;
- int ch, eval, flagchk, readonly, silent, snapshot;
-+ #ifdef GTAGS
-+ int gtags = 0;
-+ #endif
- char *excmdarg, *myname, *p, *tag_f, *trace_f, *wsizearg;
- char path[MAXPATHLEN];
-
-***************
-*** 134,140 ****
---- 137,147 ----
- excmdarg = tag_f = trace_f = wsizearg = NULL;
- silent = 0;
- snapshot = 1;
-+ #ifdef GTAGS
-+ while ((ch = getopt(argc, argv, "c:eFGRrsT:t:vw:X:")) != EOF)
-+ #else
- while ((ch = getopt(argc, argv, "c:eFRrsT:t:vw:X:")) != EOF)
-+ #endif
- switch (ch) {
- case 'c': /* Run the command. */
- excmdarg = optarg;
-***************
-*** 146,151 ****
---- 153,163 ----
- case 'F': /* No snapshot. */
- snapshot = 0;
- break;
-+ #ifdef GTAGS
-+ case 'G': /* gtags mode. */
-+ gtags = 1;
-+ break;
-+ #endif
- case 'R': /* Readonly. */
- readonly = 1;
- break;
-***************
-*** 245,250 ****
---- 257,266 ----
- goto err;
- if (readonly) /* Global read-only bit. */
- O_SET(sp, O_READONLY);
-+ #ifdef GTAGS
-+ if (gtags) /* Global gtags bit. */
-+ O_SET(sp, O_GTAGSMODE);
-+ #endif
- if (silent) { /* Ex batch mode. */
- O_CLR(sp, O_AUTOPRINT);
- O_CLR(sp, O_PROMPT);
-***************
-*** 515,520 ****
---- 531,539 ----
- LIST_INIT(&gp->cutq);
- LIST_INIT(&gp->seqq);
-
-+ #ifdef GTAGS
-+ gp->gtagstmp = NULL;
-+ #endif
- /* Set a flag if we're reading from the tty. */
- if (isatty(STDIN_FILENO))
- F_SET(gp, G_STDIN_TTY);
-***************
-*** 554,559 ****
---- 573,584 ----
- SCR *sp;
- char *tty;
-
-+ #ifdef GTAGS
-+ if (gp->gtagstmp) {
-+ if (!strncmp(gp->gtagstmp, _PATH_GTAGSTMP, strlen(_PATH_GTAGSTMP)))
-+ (void)unlink(gp->gtagstmp);
-+ }
-+ #endif
- /* Default buffer storage. */
- (void)text_lfree(&gp->dcb_store.textq);
-
-diff -c -r -N /usr/src/usr.bin/vi/common/msg.c ./common/msg.c
-*** /usr/src/usr.bin/vi/common/msg.c Thu Aug 18 10:10:54 1994
---- ./common/msg.c Sat Dec 14 11:54:15 1996
-***************
-*** 338,343 ****
---- 338,352 ----
- #else
- pid = "";
- #endif
-+ #ifdef GTAGS
-+ if (F_ISSET(sp->frp, FR_GTAGSTMP)) {
-+ if (file_lline(sp, ep, &last)) {
-+ return (1);
-+ }
-+ msgq(sp, M_INFO, "[GTAGS SELECT MODE] %d lines", last);
-+ return (0);
-+ }
-+ #endif
- /*
- * See nvi/exf.c:file_init() for a description of how and
- * when the read-only bit is set.
-diff -c -r -N /usr/src/usr.bin/vi/common/options.c ./common/options.c
-*** /usr/src/usr.bin/vi/common/options.c Tue May 30 15:35:46 1995
---- ./common/options.c Sat Dec 14 11:54:15 1996
-***************
-*** 103,108 ****
---- 103,112 ----
- {"extended", NULL, OPT_0BOOL, 0},
- /* O_FLASH HPUX */
- {"flash", NULL, OPT_1BOOL, 0},
-+ #ifdef GTAGS
-+ /* O_GTAGSMODE SPECIAL */
-+ {"gtagsmode", NULL, OPT_0BOOL, 0},
-+ #endif
- /* O_HARDTABS 4BSD */
- {"hardtabs", NULL, OPT_NUM, 0},
- /* O_IGNORECASE 4BSD */
-***************
-*** 228,233 ****
---- 232,240 ----
- {"eb", O_ERRORBELLS}, /* 4BSD */
- {"ed", O_EDCOMPATIBLE}, /* 4BSD */
- {"ex", O_EXRC}, /* System V (undocumented) */
-+ #ifdef GTAGS
-+ {"gt", O_GTAGSMODE}, /* Special */
-+ #endif
- {"ht", O_HARDTABS}, /* 4BSD */
- {"ic", O_IGNORECASE}, /* 4BSD */
- {"li", O_LINES}, /* 4.4BSD */
-diff -c -r -N /usr/src/usr.bin/vi/common/pathnames.h ./common/pathnames.h
-*** /usr/src/usr.bin/vi/common/pathnames.h Wed Aug 17 08:36:43 1994
---- ./common/pathnames.h Sat Dec 14 11:54:15 1996
-***************
-*** 43,45 ****
---- 43,48 ----
- #define _PATH_TAGS "tags"
- #define _PATH_TMP "/tmp"
- #define _PATH_TTY "/dev/tty"
-+ #ifdef GTAGS
-+ #define _PATH_GTAGSTMP "/var/tmp/gtags"
-+ #endif
-diff -c -r -N /usr/src/usr.bin/vi/common/screen.h ./common/screen.h
-*** /usr/src/usr.bin/vi/common/screen.h Wed Aug 17 08:36:43 1994
---- ./common/screen.h Sat Dec 14 11:54:15 1996
-***************
-*** 87,92 ****
---- 87,95 ----
- #define FR_TMPEXIT 0x100 /* Modified temporary file, no exit. */
- #define FR_TMPFILE 0x200 /* If file has no name. */
- #define FR_UNLOCKED 0x400 /* File couldn't be locked. */
-+ #ifdef GTAGS
-+ #define FR_GTAGSTMP 0x800 /* File is gtags temporary file. */
-+ #endif
- u_int16_t flags;
- };
-
-diff -c -r -N /usr/src/usr.bin/vi/ex/ex_tag.c ./ex/ex_tag.c
-*** /usr/src/usr.bin/vi/ex/ex_tag.c Thu Aug 18 10:13:20 1994
---- ./ex/ex_tag.c Sat Dec 14 11:54:15 1996
-***************
-*** 64,69 ****
---- 64,72 ----
- #include "vi.h"
- #include "excmd.h"
- #include "tag.h"
-+ #ifdef GTAGS
-+ #include "pathnames.h"
-+ #endif
-
- static char *binary_search __P((char *, char *, char *));
- static int compare __P((char *, char *, char *));
-***************
-*** 71,76 ****
---- 74,288 ----
- static int search __P((SCR *, char *, char *, char **));
- static int tag_get __P((SCR *, char *, char **, char **, char **));
-
-+ #ifdef DEBUG
-+ void
-+ trace(fp)
-+ FILE *fp;
-+ {
-+ SCR *sp;
-+ TAG *tp;
-+ FREF *frp;
-+ int scr, fref, tag;
-+
-+ fprintf(fp, "------------------------------------\n");
-+ scr = 0;
-+ for (sp = __global_list->dq.cqh_first; sp != (void *)&__global_list->dq; sp = sp->q.cqe_next) {
-+ fprintf(fp, "screen %d {\n", ++scr);
-+ fref = 0;
-+ for (frp = sp->frefq.cqh_first;
-+ frp != (FREF *)&sp->frefq; frp = frp->q.cqe_next) {
-+ fprintf(fp, " FREF %d ", ++fref);
-+ if (F_ISSET(frp, FR_GTAGSTMP))
-+ fprintf(fp, "<%s>\n", frp->name);
-+ else
-+ fprintf(fp, "%s\n", frp->name);
-+ }
-+ tag = 0;
-+ if (!EXP(sp))
-+ continue;
-+ fprintf(fp, " ................................\n");
-+ for (tp = EXP(sp)->tagq.tqh_first; tp != NULL; tp = tp->q.tqe_next) {
-+ fprintf(fp, " TAG %d ", ++tag);
-+ if (F_ISSET(tp->frp, FR_GTAGSTMP))
-+ fprintf(fp, "<%s>\n", tp->frp->name);
-+ else
-+ fprintf(fp, "%s\n", tp->frp->name);
-+ }
-+ fprintf(fp, "}\n");
-+ }
-+ fprintf(fp, "------------------------------------\n");
-+ }
-+ #endif
-+ #ifdef GTAGS
-+ /*
-+ * getentry --
-+ * get tag information from current line.
-+ *
-+ * gtags temporary file format.
-+ * <tag> <lineno> <file> <image>
-+ *
-+ * sample.
-+ * +------------------------------------------------
-+ * |main 30 main.c main(argc, argv)
-+ * |func 21 subr.c func(arg)
-+ */
-+ static int
-+ getentry(buf, tag, file, line)
-+ char *buf, *tag, *file, *line;
-+ {
-+ char *p;
-+
-+ p = tag;
-+ while (*buf && !isspace(*buf)) /* tag name */
-+ *p++ = *buf++;
-+ *p = 0;
-+ while (*buf && isspace(*buf)) /* skip blanks */
-+ buf++;
-+ p = line;
-+ while (*buf && !isspace(*buf)) /* line no */
-+ *p++ = *buf++;
-+ *p = 0;
-+ while (*buf && isspace(*buf)) /* skip blanks */
-+ buf++;
-+ p = file;
-+ while (*buf && !isspace(*buf)) /* file name */
-+ *p++ = *buf++;
-+ *p = 0;
-+
-+ /* value check */
-+ if (strlen(tag) && strlen(line) && strlen(file) && atoi(line) > 0)
-+ return 1; /* OK */
-+ return 0; /* ERROR */
-+ }
-+
-+ /*
-+ * gtag_get --
-+ * Get a gtag from the GTAGS files.
-+ */
-+ static int
-+ gtag_get(sp, ref, gtagselect, tag, tagp, filep, searchp)
-+ SCR *sp;
-+ int ref;
-+ int *gtagselect;
-+ char *tag, **tagp, **filep, **searchp;
-+ {
-+ static char name[80], file[200], line[10], gtagstmp[80];
-+ char command[200];
-+ char buf[BUFSIZ+1];
-+ FILE *fp;
-+
-+ sprintf(gtagstmp, "%s.XXXXXXXX", _PATH_GTAGSTMP);
-+ if (mktemp(gtagstmp) == 0) {
-+ msgq(sp, M_ERR, "cannot generate temporary file name");
-+ return (1);
-+ }
-+ sprintf(command, "global -%s '%s' > %s; chmod 600 %s",
-+ ref ? "rx" : "x", tag, gtagstmp, gtagstmp);
-+ if (system(command)) {
-+ msgq(sp, M_ERR, "cannot exec global");
-+ goto err;
-+ }
-+ if (!(fp = fopen(gtagstmp, "r"))) {
-+ msgq(sp, M_ERR, "tag file cannot open.");
-+ goto err;
-+ }
-+ if (!(fgets(buf, BUFSIZ, fp))) {
-+ msgq(sp, M_ERR, "%s: tag not found", tag);
-+ fclose(fp);
-+ goto err;
-+ }
-+
-+ if (getentry(buf, name, file, line) == 0) {
-+ msgq(sp, M_ERR, "%s: illegal tag entry", tag);
-+ fclose(fp);
-+ goto err;
-+ }
-+
-+ if (!(fgets(buf, BUFSIZ, fp))) { /* just one line */
-+ fclose(fp);
-+ (void)unlink(gtagstmp);
-+ *gtagselect = 0; /* go to user's file immediately */
-+ *tagp = strdup(name);
-+ *filep = file;
-+ *searchp = line;
-+ if (*tagp == NULL) {
-+ msgq(sp, M_SYSERR, NULL);
-+ return (1);
-+ }
-+ return (0);
-+ }
-+ fclose(fp);
-+ *gtagselect = 1; /* go to gtags select mode */
-+ *tagp = strdup(name);
-+ *filep = gtagstmp;
-+ *searchp = "1";
-+ if (*tagp == NULL) {
-+ msgq(sp, M_SYSERR, NULL);
-+ return (1);
-+ }
-+ return (0);
-+ err:
-+ (void)unlink(gtagstmp);
-+ return (1);
-+ }
-+
-+ /*
-+ * ex_gtagselect --
-+ * The tag code can be entered from gtag select mode.
-+ */
-+ int
-+ ex_gtagselect(sp, ep, cmdp)
-+ SCR *sp;
-+ EXF *ep;
-+ EXCMDARG *cmdp;
-+ {
-+ if (!F_ISSET(sp->frp, FR_GTAGSTMP)) {
-+ msgq(sp, M_ERR, "illegal tag entry");
-+ return (1);
-+ }
-+ cmdp->cmd = &cmds[C_TAG];
-+ cmdp->flags |= (E_GTAGSELECT|E_FORCE);
-+ return ex_tagpush(sp, ep, cmdp);
-+ }
-+
-+ /*
-+ * should_delete --
-+ * 1: should delete, 0: should not delete
-+ */
-+ int
-+ should_delete(gtagstmp)
-+ char *gtagstmp;
-+ {
-+ SCR *sp;
-+ TAG *tp;
-+ int tagcnt = 0;
-+
-+ /* make sure */
-+ if (strncmp(gtagstmp, _PATH_GTAGSTMP, strlen(_PATH_GTAGSTMP)))
-+ return 0;
-+ /* this gtag is generated by -t option. don't delete here */
-+ if (__global_list->gtagstmp && !strcmp(gtagstmp, __global_list->gtagstmp))
-+ return 0;
-+
-+ for (sp = __global_list->dq.cqh_first; sp != (void *)&__global_list->dq; sp = sp->q.cqe_next) {
-+ if (!EXP(sp))
-+ continue;
-+ for (tp = EXP(sp)->tagq.tqh_first; tp != NULL; tp = tp->q.tqe_next) {
-+ if (!tp->frp || !F_ISSET(tp->frp, FR_GTAGSTMP))
-+ continue;
-+ if (!strcmp(tp->frp->name, gtagstmp))
-+ ++tagcnt;
-+ }
-+ }
-+ if (tagcnt == 1)
-+ return 1;
-+ if (tagcnt > 1)
-+ return 0;
-+ /* IMPOSSIBLE */
-+ return 0;
-+ }
-+ #endif
-+
- /*
- * ex_tagfirst --
- * The tag code can be entered from main, i.e. "vi -t tag".
-***************
-*** 86,96 ****
---- 298,317 ----
- u_int flags;
- int sval;
- char *p, *tag, *name, *search;
-+ #ifdef GTAGS
-+ int gtagselect = 0;
-+ #endif
-
- /* Taglength may limit the number of characters. */
- if ((tl = O_VAL(sp, O_TAGLENGTH)) != 0 && strlen(tagarg) > tl)
- tagarg[tl] = '\0';
-
-+ #ifdef GTAGS
-+ if (O_ISSET(sp, O_GTAGSMODE)) {
-+ if (gtag_get(sp, 0, &gtagselect, tagarg, &tag, &name, &search))
-+ return (1);
-+ } else
-+ #endif
- /* Get the tag information. */
- if (tag_get(sp, tagarg, &tag, &name, &search))
- return (1);
-***************
-*** 106,111 ****
---- 327,336 ----
- * The historic tags file format (from a long, long time ago...)
- * used a line number, not a search string. I got complaints, so
- * people are still using the format.
-+ #ifdef GTAGS
-+ * Yes, gtags use the old format. Search string is very flexible
-+ * but is not suitable to treat duplicate entries.
-+ #endif
- */
- if (isdigit(search[0])) {
- m.lno = atoi(search);
-***************
-*** 132,137 ****
---- 357,371 ----
- frp->lno = m.lno;
- frp->cno = m.cno;
- F_SET(frp, FR_CURSORSET);
-+ #ifdef GTAGS
-+ if (gtagselect) {
-+ F_SET(frp, FR_GTAGSTMP);
-+ if (!(sp->gp->gtagstmp = strdup(name))) {
-+ msgq(sp, M_SYSERR, NULL);
-+ return (1);
-+ }
-+ }
-+ #endif
-
- /* Might as well make this the default tag. */
- if ((EXP(sp)->tlast = strdup(tagarg)) == NULL) {
-***************
-*** 142,153 ****
---- 376,399 ----
- }
-
- /* Free a tag or tagf structure from a queue. */
-+ #ifdef GTAGS
- #define FREETAG(tp) { \
-+ if (F_ISSET(tp->frp, FR_GTAGSTMP)) \
-+ if (should_delete(tp->frp->name)) \
-+ unlink(tp->frp->name); \
- TAILQ_REMOVE(&exp->tagq, (tp), q); \
- if ((tp)->search != NULL) \
- free((tp)->search); \
- FREE((tp), sizeof(TAGF)); \
- }
-+ #else
-+ #define FREETAG(tp) { \
-+ TAILQ_REMOVE(&exp->tagq, (tp), q); \
-+ if ((tp)->search != NULL) \
-+ free((tp)->search); \
-+ FREE((tp), sizeof(TAGF)); \
-+ }
-+ #endif
- #define FREETAGF(tfp) { \
- TAILQ_REMOVE(&exp->tagfq, (tfp), q); \
- free((tfp)->name); \
-***************
-*** 182,189 ****
---- 428,464 ----
- int sval;
- long tl;
- char *name, *p, *search, *tag;
-+ #ifdef GTAGS
-+ int gtagselect = 0;
-+ char *line;
-+ size_t len;
-+ char tagbuf[80], namebuf[200], linebuf[10];
-+ #endif
-
- exp = EXP(sp);
-+ #ifdef GTAGS
-+ /*
-+ * Enter from gtag select mode.
-+ * get tag information from current line.
-+ */
-+ if (F_ISSET(cmdp, E_GTAGSELECT)) {
-+ if ((line = file_gline(sp, ep, sp->lno, &len)) == NULL) {
-+ GETLINE_ERR(sp, sp->lno);
-+ return (1);
-+ }
-+ if (getentry(line, tagbuf, namebuf, linebuf) == 0) {
-+ msgq(sp, M_ERR, "illegal tag entry");
-+ return (1);
-+ }
-+ if (!(tag = strdup(tagbuf))) {
-+ msgq(sp, M_SYSERR, NULL);
-+ return (1);
-+ }
-+ name = namebuf;
-+ search = linebuf;
-+ goto getfref;
-+ }
-+ #endif
- switch (cmdp->argc) {
- case 1:
- if (exp->tlast != NULL)
-***************
-*** 207,216 ****
---- 482,504 ----
- if ((tl = O_VAL(sp, O_TAGLENGTH)) != 0 && strlen(exp->tlast) > tl)
- exp->tlast[tl] = '\0';
-
-+ #ifdef GTAGS
-+ if (O_ISSET(sp, O_GTAGSMODE)) {
-+ if (gtag_get(sp, F_ISSET(cmdp->cmd, E_REFERENCE), &gtagselect,
-+ exp->tlast, &tag, &name, &search))
-+ return (1);
-+ } else if (F_ISSET(cmdp->cmd, E_REFERENCE)) {
-+ msgq(sp, M_ERR, "Please set gtagsmode");
-+ return (1);
-+ } else
-+ #endif
- /* Get the tag information. */
- if (tag_get(sp, exp->tlast, &tag, &name, &search))
- return (1);
-
-+ #ifdef GTAGS
-+ getfref:
-+ #endif
- /* Get the (possibly new) FREF structure. */
- if ((frp = file_add(sp, name)) == NULL)
- goto err;
-***************
-*** 305,310 ****
---- 593,603 ----
- sp->cno = m.cno;
- break;
- }
-+ #ifdef GTAGS
-+ if (gtagselect) {
-+ F_SET(frp, FR_GTAGSTMP);
-+ }
-+ #endif
- return (0);
- }
-
-***************
-*** 490,495 ****
---- 783,793 ----
- for (cnt = 1, tp = exp->tagq.tqh_first; tp != NULL;
- ++cnt, tp = tp->q.tqe_next) {
- len = strlen(name = tp->frp->name); /* The original name. */
-+ #ifdef GTAGS
-+ if (F_ISSET(tp->frp, FR_GTAGSTMP)) {
-+ (void)ex_printf(EXCOOKIE, "%2d [GTAGS]\n", cnt);
-+ } else
-+ #endif
- if (len > maxlen || len + tp->slen > sp->cols)
- if (tp == NULL || tp->search == NULL)
- (void)ex_printf(EXCOOKIE,
-diff -c -r -N /usr/src/usr.bin/vi/ex/excmd.c ./ex/excmd.c
-*** /usr/src/usr.bin/vi/ex/excmd.c Thu Aug 18 10:13:29 1994
---- ./ex/excmd.c Sat Dec 14 11:54:15 1996
-***************
-*** 319,324 ****
---- 319,331 ----
- "!",
- "rew[ind][!]",
- "re-edit all the files in the file argument list"},
-+ #ifdef GTAGS
-+ /* C_RTAG */
-+ {"rtag", ex_tagpush, E_NOGLOBAL|E_REFERENCE,
-+ "!w1o",
-+ "rta[g][!] [string]",
-+ "edit the file containing the tag"},
-+ #endif
- /* C_SUBSTITUTE */
- {"substitute", ex_substitute, E_ADDR2|E_NORC,
- "s",
-***************
-*** 329,334 ****
---- 336,348 ----
- "!f1o",
- "sc[ript][!] [file]",
- "run a shell in a screen"},
-+ #ifdef GTAGS
-+ /* C_GTAGSELECT */
-+ {"select", ex_gtagselect, E_NOGLOBAL,
-+ "",
-+ "sel[ect]",
-+ "edit the file containing the tag"},
-+ #endif
- /* C_SET */
- {"set", ex_set, E_NOGLOBAL,
- "wN",
-diff -c -r -N /usr/src/usr.bin/vi/ex/excmd.h.stub ./ex/excmd.h.stub
-*** /usr/src/usr.bin/vi/ex/excmd.h.stub Wed Aug 17 08:36:28 1994
---- ./ex/excmd.h.stub Sat Dec 14 11:54:15 1996
-***************
-*** 69,74 ****
---- 69,79 ----
- #define E_NORC 0x0800000 /* Not from a .exrc or EXINIT. */
- #define E_ZERO 0x1000000 /* 0 is a legal addr1. */
- #define E_ZERODEF 0x2000000 /* 0 is default addr1 of empty files. */
-+
-+ #ifdef GTAGS
-+ #define E_REFERENCE 0x4000000 /* locate function references */
-+ #define E_GTAGSELECT 0x8000000 /* current line is gtags entry */
-+ #endif
- u_int32_t flags;
- char *syntax; /* Syntax script. */
- char *usage; /* Usage line. */
-***************
-*** 234,239 ****
---- 239,245 ----
- EXPROTO(ex_fg);
- EXPROTO(ex_file);
- EXPROTO(ex_global);
-+ EXPROTO(ex_gtagselect);
- EXPROTO(ex_help);
- EXPROTO(ex_insert);
- EXPROTO(ex_join);
-diff -c -r -N /usr/src/usr.bin/vi/svi/svi_refresh.c ./svi/svi_refresh.c
-*** /usr/src/usr.bin/vi/svi/svi_refresh.c Tue May 30 15:35:56 1995
---- ./svi/svi_refresh.c Sat Dec 14 11:54:16 1996
-***************
-*** 725,731 ****
---- 725,736 ----
- EXF *ep;
- {
- size_t cols, curlen, endpoint, len, midpoint;
-+ #ifdef GTAGS
-+ char *p, buf[30];
-+ recno_t last;
-+ #else
- char *p, buf[20];
-+ #endif
-
- /* Clear the mode line. */
- MOVE(sp, INFOLINE(sp), 0);
-***************
-*** 746,751 ****
---- 751,765 ----
-
- curlen = 0;
- if (sp->q.cqe_next != (void *)&sp->gp->dq) {
-+ #ifdef GTAGS
-+ if (F_ISSET(sp->frp, FR_GTAGSTMP)) {
-+ if (file_lline(sp, ep, &last)) {
-+ return (1);
-+ }
-+ sprintf(buf, "[GTAGS SELECT MODE] %d lines", last);
-+ p = buf;
-+ } else {
-+ #endif
- for (p = sp->frp->name; *p != '\0'; ++p);
- while (--p > sp->frp->name) {
- if (*p == '/') {
-***************
-*** 758,764 ****
- break;
- }
- }
-!
- MOVE(sp, INFOLINE(sp), 0);
- standout();
- for (; *p != '\0'; ++p)
---- 772,780 ----
- break;
- }
- }
-! #ifdef GTAGS
-! }
-! #endif
- MOVE(sp, INFOLINE(sp), 0);
- standout();
- for (; *p != '\0'; ++p)
-diff -c -r -N /usr/src/usr.bin/vi/vi/v_ex.c ./vi/v_ex.c
-*** /usr/src/usr.bin/vi/vi/v_ex.c Thu Aug 18 10:15:03 1994
---- ./vi/v_ex.c Sat Dec 14 11:54:16 1996
-***************
-*** 298,303 ****
---- 298,308 ----
- ARGS *ap[2], a;
- EXCMDARG cmd;
-
-+ #ifdef GTAGS
-+ if (O_ISSET(sp, O_GTAGSMODE) && vp->m_start.cno == 0)
-+ excmd(&cmd, C_RTAG, 0, OOBLNO, 0, 0, ap, &a, vp->keyword);
-+ else
-+ #endif
- excmd(&cmd, C_TAG, 0, OOBLNO, 0, 0, ap, &a, vp->keyword);
- return (sp->s_ex_cmd(sp, ep, &cmd, &vp->m_final));
- }
-diff -c -r -N /usr/src/usr.bin/vi/vi/v_scroll.c ./vi/v_scroll.c
-*** /usr/src/usr.bin/vi/vi/v_scroll.c Thu Aug 18 10:15:15 1994
---- ./vi/v_scroll.c Sat Dec 14 11:54:16 1996
-***************
-*** 255,260 ****
---- 255,269 ----
- EXF *ep;
- VICMDARG *vp;
- {
-+ #ifdef GTAGS
-+ EXCMDARG cmd;
-+
-+ if (F_ISSET(sp->frp, FR_GTAGSTMP)) {
-+ memset(&cmd, 0, sizeof(EXCMDARG));
-+ cmd.cmd = &cmds[C_GTAGSELECT];
-+ return (sp->s_ex_cmd(sp, ep, &cmd, &vp->m_final));
-+ }
-+ #endif
- /*
- * If it's a script window, exec the line,
- * otherwise it's the same as v_down().
diff --git a/contrib/global/nvi-1.79.diff b/contrib/global/nvi-1.79.diff
deleted file mode 100644
index a0c8d55c0772..000000000000
--- a/contrib/global/nvi-1.79.diff
+++ /dev/null
@@ -1,664 +0,0 @@
-diff -c -r -N /usr/local/src/nvi-1.79/build/Makefile.in ./build/Makefile.in
-*** /usr/local/src/nvi-1.79/build/Makefile.in Wed Oct 23 22:43:38 1996
---- ./build/Makefile.in Wed Apr 16 21:20:09 1997
-***************
-*** 3,9 ****
- srcdir= @srcdir@/..
- CC= @CC@
- OPTFLAG=@OPTFLAG@
-! CFLAGS= -c $(OPTFLAG) @CFLAGS@ -I. -I$(srcdir)/include @CPPFLAGS@
- LDFLAGS=@LDFLAGS@
- PERL= @vi_cv_path_perl@
- PERLLIB=@vi_cv_perllib@
---- 3,9 ----
- srcdir= @srcdir@/..
- CC= @CC@
- OPTFLAG=@OPTFLAG@
-! CFLAGS= -c $(OPTFLAG) @CFLAGS@ -I. -I$(srcdir)/include @CPPFLAGS@ -DGTAGS
- LDFLAGS=@LDFLAGS@
- PERL= @vi_cv_path_perl@
- PERLLIB=@vi_cv_perllib@
-diff -c -r -N /usr/local/src/nvi-1.79/common/main.c ./common/main.c
-*** /usr/local/src/nvi-1.79/common/main.c Sat Oct 12 07:28:28 1996
---- ./common/main.c Wed Apr 16 21:20:09 1997
-***************
-*** 64,69 ****
---- 64,72 ----
- size_t len;
- u_int flags;
- int ch, flagchk, lflag, secure, startup, readonly, rval, silent;
-+ #ifdef GTAGS
-+ int gtags = 0;
-+ #endif
- char *tag_f, *wsizearg, path[256];
-
- /* Initialize the busy routine, if not defined by the screen. */
-***************
-*** 113,123 ****
---- 116,134 ----
- /* Set the file snapshot flag. */
- F_SET(gp, G_SNAPSHOT);
-
-+ #ifdef GTAGS
-+ #ifdef DEBUG
-+ while ((ch = getopt(argc, argv, "c:D:eFGlRrSsT:t:vw:")) != EOF)
-+ #else
-+ while ((ch = getopt(argc, argv, "c:eFGlRrSst:vw:")) != EOF)
-+ #endif
-+ #else
- #ifdef DEBUG
- while ((ch = getopt(argc, argv, "c:D:eFlRrSsT:t:vw:")) != EOF)
- #else
- while ((ch = getopt(argc, argv, "c:eFlRrSst:vw:")) != EOF)
- #endif
-+ #endif
- switch (ch) {
- case 'c': /* Run the command. */
- /*
-***************
-*** 154,159 ****
---- 165,175 ----
- case 'F': /* No snapshot. */
- F_CLR(gp, G_SNAPSHOT);
- break;
-+ #ifdef GTAGS
-+ case 'G': /* gtags mode. */
-+ gtags = 1;
-+ break;
-+ #endif
- case 'l': /* Set lisp, showmatch options. */
- lflag = 1;
- break;
-***************
-*** 252,257 ****
---- 268,277 ----
- }
- if (readonly)
- *oargp++ = O_READONLY;
-+ #ifdef GTAGS
-+ if (gtags)
-+ *oargp++ = O_GTAGSMODE;
-+ #endif
- if (secure)
- *oargp++ = O_SECURE;
- *oargp = -1; /* Options initialization. */
-diff -c -r -N /usr/local/src/nvi-1.79/common/options.c ./common/options.c
-*** /usr/local/src/nvi-1.79/common/options.c Tue Oct 15 03:56:29 1996
---- ./common/options.c Wed Apr 16 21:20:09 1997
-***************
-*** 80,85 ****
---- 80,89 ----
- {"filec", NULL, OPT_STR, 0},
- /* O_FLASH HPUX */
- {"flash", NULL, OPT_1BOOL, 0},
-+ #ifdef GTAGS
-+ /* O_GTAGSMODE FreeBSD2.2 */
-+ {"gtagsmode", NULL, OPT_0BOOL, 0},
-+ #endif
- /* O_HARDTABS 4BSD */
- {"hardtabs", NULL, OPT_NUM, 0},
- /* O_ICLOWER 4.4BSD */
-***************
-*** 244,249 ****
---- 248,256 ----
- {"eb", O_ERRORBELLS}, /* 4BSD */
- {"ed", O_EDCOMPATIBLE}, /* 4BSD */
- {"ex", O_EXRC}, /* System V (undocumented) */
-+ #ifdef GTAGS
-+ {"gt", O_GTAGSMODE}, /* FreeBSD2.2 */
-+ #endif
- {"ht", O_HARDTABS}, /* 4BSD */
- {"ic", O_IGNORECASE}, /* 4BSD */
- {"li", O_LINES}, /* 4.4BSD */
-diff -c -r -N /usr/local/src/nvi-1.79/docs/USD.doc/vi.man/vi.1 ./docs/USD.doc/vi.man/vi.1
-*** /usr/local/src/nvi-1.79/docs/USD.doc/vi.man/vi.1 Fri Oct 11 10:34:05 1996
---- ./docs/USD.doc/vi.man/vi.1 Wed Apr 16 21:20:09 1997
-***************
-*** 17,23 ****
- .SH SYNOPSIS
- .B ex
- [\c
-! .B -eFRrSsv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
---- 17,23 ----
- .SH SYNOPSIS
- .B ex
- [\c
-! .B -eFGRrSsv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
-***************
-*** 28,34 ****
- .br
- .B vi
- [\c
-! .B -eFlRrSv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
---- 28,34 ----
- .br
- .B vi
- [\c
-! .B -eFGlRrSv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
-***************
-*** 39,45 ****
- .br
- .B view
- [\c
-! .B -eFRrSv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
---- 39,45 ----
- .br
- .B view
- [\c
-! .B -eFGRrSv\c
- ] [\c
- .BI -c " cmd"\c
- ] [\c
-***************
-*** 121,126 ****
---- 121,129 ----
- .B \-l
- Start editing with the lisp and showmatch options set.
- .TP
-+ .B \-G
-+ Start editing in gtags mode, as if the gtagsmode option was set.
-+ .TP
- .B \-R
- Start editing in read-only mode, as if the command name was
- .IR view ,
-***************
-*** 429,434 ****
---- 432,439 ----
- .TP
- .B "<control-]>"
- Push a tag reference onto the tag stack.
-+ In gtagsmode, if at the first column of line,
-+ locate function references otherwise function definitions.
- .TP
- .B "<control-^>"
- Switch to the most recently edited file.
-***************
-*** 940,945 ****
---- 945,953 ----
- .B "rew[ind][!]"
- Rewind the argument list.
- .TP
-+ .B "rta[g][!] tagstring"
-+ Edit the file refering the specified tag. (Only in gtagsmode)
-+ .TP
- .B "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]"
- Display or set editor options.
- .TP
-***************
-*** 1109,1114 ****
---- 1117,1125 ----
- .TP
- .B "flash [on]"
- Flash the screen instead of beeping the keyboard on error.
-+ .TP
-+ .B "gtagsmode, gt [off]"
-+ Use GTAGS and GRTAGS instead of tags.
- .TP
- .B "hardtabs, ht [8]"
- Set the spacing between hardware tab settings.
-diff -c -r -N /usr/local/src/nvi-1.79/ex/ex.h ./ex/ex.h
-*** /usr/local/src/nvi-1.79/ex/ex.h Tue Aug 13 09:24:00 1996
---- ./ex/ex.h Wed Apr 16 21:20:09 1997
-***************
-*** 152,157 ****
---- 152,160 ----
- #define E_SEARCH_WMSG 0x01000000 /* Display search-wrapped message. */
- #define E_USELASTCMD 0x02000000 /* Use the last command. */
- #define E_VISEARCH 0x04000000 /* It's really a vi search command. */
-+ #ifdef GTAGS
-+ #define E_REFERENCE 0x08000000 /* locate function references */
-+ #endif
- u_int32_t flags; /* Current flags. */
- };
-
-diff -c -r -N /usr/local/src/nvi-1.79/ex/ex_cmd.c ./ex/ex_cmd.c
-*** /usr/local/src/nvi-1.79/ex/ex_cmd.c Wed Oct 23 22:31:01 1996
---- ./ex/ex_cmd.c Wed Apr 16 21:20:09 1997
-***************
-*** 302,307 ****
---- 302,314 ----
- "!",
- "rew[ind][!]",
- "re-edit all the files in the file argument list"},
-+ #ifdef GTAGS
-+ /* C_RTAG */
-+ {"rtag", ex_rtag_push, E_NEWSCREEN,
-+ "!w1o",
-+ "[Rr]ta[g][!] [string]",
-+ "edit the file containing the tag"},
-+ #endif
- /*
- * !!!
- * Adding new commands starting with 's' may break the substitute command code
-diff -c -r -N /usr/local/src/nvi-1.79/ex/ex_tag.c ./ex/ex_tag.c
-*** /usr/local/src/nvi-1.79/ex/ex_tag.c Mon Sep 16 05:02:43 1996
---- ./ex/ex_tag.c Wed Apr 16 21:20:09 1997
-***************
-*** 46,51 ****
---- 46,55 ----
- static int compare __P((char *, char *, char *));
- static void ctag_file __P((SCR *, TAGF *, char *, char **, size_t *));
- static int ctag_search __P((SCR *, char *, size_t, char *));
-+ #ifdef GTAGS
-+ static int getentry __P((char *, char *, char *, char *));
-+ static TAGQ *gtag_slist __P((SCR *, char *, int));
-+ #endif
- static int ctag_sfile __P((SCR *, TAGF *, TAGQ *, char *));
- static TAGQ *ctag_slist __P((SCR *, char *));
- static char *linear_search __P((char *, char *, char *));
-***************
-*** 89,94 ****
---- 93,117 ----
- return (0);
- }
-
-+ #ifdef GTAGS
-+ /*
-+ * ex_rtag_push -- ^]
-+ * :rtag[!] [string]
-+ *
-+ * Enter a new TAGQ context based on a ctag string.
-+ *
-+ * PUBLIC: int ex_rtag_push __P((SCR *, EXCMD *));
-+ */
-+ int
-+ ex_rtag_push(sp, cmdp)
-+ SCR *sp;
-+ EXCMD *cmdp;
-+ {
-+ F_SET(cmdp, E_REFERENCE);
-+ return ex_tag_push(sp, cmdp);
-+ }
-+ #endif
-+
- /*
- * ex_tag_push -- ^]
- * :tag[!] [string]
-***************
-*** 138,143 ****
---- 161,172 ----
- }
-
- /* Get the tag information. */
-+ #ifdef GTAGS
-+ if (O_ISSET(sp, O_GTAGSMODE)) {
-+ if ((tqp = gtag_slist(sp, exp->tag_last, F_ISSET(cmdp, E_REFERENCE))) == NULL)
-+ return (1);
-+ } else
-+ #endif
- if ((tqp = ctag_slist(sp, exp->tag_last)) == NULL)
- return (1);
-
-***************
-*** 969,974 ****
---- 998,1116 ----
- return (0);
- }
-
-+ #ifdef GTAGS
-+ /*
-+ * getentry --
-+ * get tag information from current line.
-+ *
-+ * gtags temporary file format.
-+ * <tag> <lineno> <file> <image>
-+ *
-+ * sample.
-+ * +------------------------------------------------
-+ * |main 30 main.c main(argc, argv)
-+ * |func 21 subr.c func(arg)
-+ */
-+ static int
-+ getentry(buf, tag, file, line)
-+ char *buf, *tag, *file, *line;
-+ {
-+ char *p;
-+
-+ p = tag;
-+ while (*buf && !isspace(*buf)) /* tag name */
-+ *p++ = *buf++;
-+ *p = 0;
-+ while (*buf && isspace(*buf)) /* skip blanks */
-+ buf++;
-+ p = line;
-+ while (*buf && !isspace(*buf)) /* line no */
-+ *p++ = *buf++;
-+ *p = 0;
-+ while (*buf && isspace(*buf)) /* skip blanks */
-+ buf++;
-+ p = file;
-+ while (*buf && !isspace(*buf)) /* file name */
-+ *p++ = *buf++;
-+ *p = 0;
-+
-+ /* value check */
-+ if (strlen(tag) && strlen(line) && strlen(file) && atoi(line) > 0)
-+ return 1; /* OK */
-+ return 0; /* ERROR */
-+ }
-+
-+ /*
-+ * gtag_slist --
-+ * Search the list of tags files for a tag, and return tag queue.
-+ */
-+ static TAGQ *
-+ gtag_slist(sp, tag, ref)
-+ SCR *sp;
-+ char *tag;
-+ int ref;
-+ {
-+ EX_PRIVATE *exp;
-+ TAGF *tfp;
-+ TAGQ *tqp;
-+ size_t len;
-+ int echk;
-+ TAG *tp;
-+ static char name[80], file[200], line[10];
-+ char command[200];
-+ char buf[BUFSIZ+1];
-+ FILE *fp;
-+
-+ /* Allocate and initialize the tag queue structure. */
-+ len = strlen(tag);
-+ CALLOC_GOTO(sp, tqp, TAGQ *, 1, sizeof(TAGQ) + len + 1);
-+ CIRCLEQ_INIT(&tqp->tagq);
-+ tqp->tag = tqp->buf;
-+ memcpy(tqp->tag, tag, (tqp->tlen = len) + 1);
-+
-+ /*
-+ * Find the tag, only display missing file messages once, and
-+ * then only if we didn't find the tag.
-+ */
-+ sprintf(command, "global -%s '%s'", ref ? "rx" : "x", tag);
-+ if (fp = popen(command, "r")) {
-+ while (fgets(buf, sizeof(buf), fp)) {
-+ if (buf[strlen(buf)-1] == '\n') /* chop(buf) */
-+ buf[strlen(buf)-1] = 0;
-+ else
-+ while (fgetc(fp) != '\n')
-+ ;
-+ if (getentry(buf, name, file, line) == 0) {
-+ echk = 1;
-+ F_SET(tfp, TAGF_ERR);
-+ break;
-+ }
-+ CALLOC_GOTO(sp, tp,
-+ TAG *, 1, sizeof(TAG) + strlen(file) + 1 + strlen(line) + 1);
-+ tp->fname = tp->buf;
-+ strcpy(tp->fname, file);
-+ tp->fnlen = strlen(file);
-+ tp->search = tp->fname + tp->fnlen + 1;
-+ strcpy(tp->search, line);
-+ CIRCLEQ_INSERT_TAIL(&tqp->tagq, tp, q);
-+ }
-+ pclose(fp);
-+ }
-+
-+ /* Check to see if we found anything. */
-+ if (tqp->tagq.cqh_first == (void *)&tqp->tagq) {
-+ msgq_str(sp, M_ERR, tag, "162|%s: tag not found");
-+ free(tqp);
-+ return (NULL);
-+ }
-+
-+ tqp->current = tqp->tagq.cqh_first;
-+ return (tqp);
-+
-+ alloc_err:
-+ return (NULL);
-+ }
-+ #endif
- /*
- * ctag_slist --
- * Search the list of tags files for a tag, and return tag queue.
-diff -c -r -N /usr/local/src/nvi-1.79/include/ex_def.h ./include/ex_def.h
-*** /usr/local/src/nvi-1.79/include/ex_def.h Wed Oct 23 22:53:09 1996
---- ./include/ex_def.h Wed Apr 16 21:20:09 1997
-***************
-*** 47,78 ****
- #define C_RECOVER 46
- #define C_RESIZE 47
- #define C_REWIND 48
-! #define C_SUBSTITUTE 49
-! #define C_SCRIPT 50
-! #define C_SET 51
-! #define C_SHELL 52
-! #define C_SOURCE 53
-! #define C_STOP 54
-! #define C_SUSPEND 55
-! #define C_T 56
-! #define C_TAG 57
-! #define C_TAGNEXT 58
-! #define C_TAGPOP 59
-! #define C_TAGPREV 60
-! #define C_TAGTOP 61
-! #define C_TCLCMD 62
-! #define C_UNDO 63
-! #define C_UNABBREVIATE 64
-! #define C_UNMAP 65
-! #define C_V 66
-! #define C_VERSION 67
-! #define C_VISUAL_EX 68
-! #define C_VISUAL_VI 69
-! #define C_VIUSAGE 70
-! #define C_WRITE 71
-! #define C_WN 72
-! #define C_WQ 73
-! #define C_XIT 74
-! #define C_YANK 75
-! #define C_Z 76
-! #define C_SUBTILDE 77
---- 47,79 ----
- #define C_RECOVER 46
- #define C_RESIZE 47
- #define C_REWIND 48
-! #define C_RTAG 49
-! #define C_SUBSTITUTE 50
-! #define C_SCRIPT 51
-! #define C_SET 52
-! #define C_SHELL 53
-! #define C_SOURCE 54
-! #define C_STOP 55
-! #define C_SUSPEND 56
-! #define C_T 57
-! #define C_TAG 58
-! #define C_TAGNEXT 59
-! #define C_TAGPOP 60
-! #define C_TAGPREV 61
-! #define C_TAGTOP 62
-! #define C_TCLCMD 63
-! #define C_UNDO 64
-! #define C_UNABBREVIATE 65
-! #define C_UNMAP 66
-! #define C_V 67
-! #define C_VERSION 68
-! #define C_VISUAL_EX 69
-! #define C_VISUAL_VI 70
-! #define C_VIUSAGE 71
-! #define C_WRITE 72
-! #define C_WN 73
-! #define C_WQ 74
-! #define C_XIT 75
-! #define C_YANK 76
-! #define C_Z 77
-! #define C_SUBTILDE 78
-diff -c -r -N /usr/local/src/nvi-1.79/include/ex_extern.h ./include/ex_extern.h
-*** /usr/local/src/nvi-1.79/include/ex_extern.h Wed Oct 23 22:53:10 1996
---- ./include/ex_extern.h Wed Apr 16 21:20:09 1997
-***************
-*** 89,94 ****
---- 89,95 ----
- char *, size_t, char **, size_t *, regex_t *, u_int));
- void re_error __P((SCR *, int, regex_t *));
- int ex_tag_first __P((SCR *, char *));
-+ int ex_rtag_push __P((SCR *, EXCMD *));
- int ex_tag_push __P((SCR *, EXCMD *));
- int ex_tag_next __P((SCR *, EXCMD *));
- int ex_tag_prev __P((SCR *, EXCMD *));
-diff -c -r -N /usr/local/src/nvi-1.79/include/options_def.h ./include/options_def.h
-*** /usr/local/src/nvi-1.79/include/options_def.h Wed Oct 23 22:53:10 1996
---- ./include/options_def.h Wed Apr 16 21:20:09 1997
-***************
-*** 16,79 ****
- #define O_EXTENDED 15
- #define O_FILEC 16
- #define O_FLASH 17
-! #define O_HARDTABS 18
-! #define O_ICLOWER 19
-! #define O_IGNORECASE 20
-! #define O_KEYTIME 21
-! #define O_LEFTRIGHT 22
-! #define O_LINES 23
-! #define O_LISP 24
-! #define O_LIST 25
-! #define O_LOCKFILES 26
-! #define O_MAGIC 27
-! #define O_MATCHTIME 28
-! #define O_MESG 29
-! #define O_MODELINE 30
-! #define O_MSGCAT 31
-! #define O_NOPRINT 32
-! #define O_NUMBER 33
-! #define O_OCTAL 34
-! #define O_OPEN 35
-! #define O_OPTIMIZE 36
-! #define O_PARAGRAPHS 37
-! #define O_PATH 38
-! #define O_PRINT 39
-! #define O_PROMPT 40
-! #define O_READONLY 41
-! #define O_RECDIR 42
-! #define O_REDRAW 43
-! #define O_REMAP 44
-! #define O_REPORT 45
-! #define O_RULER 46
-! #define O_SCROLL 47
-! #define O_SEARCHINCR 48
-! #define O_SECTIONS 49
-! #define O_SECURE 50
-! #define O_SHELL 51
-! #define O_SHELLMETA 52
-! #define O_SHIFTWIDTH 53
-! #define O_SHOWMATCH 54
-! #define O_SHOWMODE 55
-! #define O_SIDESCROLL 56
-! #define O_SLOWOPEN 57
-! #define O_SOURCEANY 58
-! #define O_TABSTOP 59
-! #define O_TAGLENGTH 60
-! #define O_TAGS 61
-! #define O_TERM 62
-! #define O_TERSE 63
-! #define O_TILDEOP 64
-! #define O_TIMEOUT 65
-! #define O_TTYWERASE 66
-! #define O_VERBOSE 67
-! #define O_W1200 68
-! #define O_W300 69
-! #define O_W9600 70
-! #define O_WARN 71
-! #define O_WINDOW 72
-! #define O_WINDOWNAME 73
-! #define O_WRAPLEN 74
-! #define O_WRAPMARGIN 75
-! #define O_WRAPSCAN 76
-! #define O_WRITEANY 77
-! #define O_OPTIONCOUNT 78
---- 16,80 ----
- #define O_EXTENDED 15
- #define O_FILEC 16
- #define O_FLASH 17
-! #define O_GTAGSMODE 18
-! #define O_HARDTABS 19
-! #define O_ICLOWER 20
-! #define O_IGNORECASE 21
-! #define O_KEYTIME 22
-! #define O_LEFTRIGHT 23
-! #define O_LINES 24
-! #define O_LISP 25
-! #define O_LIST 26
-! #define O_LOCKFILES 27
-! #define O_MAGIC 28
-! #define O_MATCHTIME 29
-! #define O_MESG 30
-! #define O_MODELINE 31
-! #define O_MSGCAT 32
-! #define O_NOPRINT 33
-! #define O_NUMBER 34
-! #define O_OCTAL 35
-! #define O_OPEN 36
-! #define O_OPTIMIZE 37
-! #define O_PARAGRAPHS 38
-! #define O_PATH 39
-! #define O_PRINT 40
-! #define O_PROMPT 41
-! #define O_READONLY 42
-! #define O_RECDIR 43
-! #define O_REDRAW 44
-! #define O_REMAP 45
-! #define O_REPORT 46
-! #define O_RULER 47
-! #define O_SCROLL 48
-! #define O_SEARCHINCR 49
-! #define O_SECTIONS 50
-! #define O_SECURE 51
-! #define O_SHELL 52
-! #define O_SHELLMETA 53
-! #define O_SHIFTWIDTH 54
-! #define O_SHOWMATCH 55
-! #define O_SHOWMODE 56
-! #define O_SIDESCROLL 57
-! #define O_SLOWOPEN 58
-! #define O_SOURCEANY 59
-! #define O_TABSTOP 60
-! #define O_TAGLENGTH 61
-! #define O_TAGS 62
-! #define O_TERM 63
-! #define O_TERSE 64
-! #define O_TILDEOP 65
-! #define O_TIMEOUT 66
-! #define O_TTYWERASE 67
-! #define O_VERBOSE 68
-! #define O_W1200 69
-! #define O_W300 70
-! #define O_W9600 71
-! #define O_WARN 72
-! #define O_WINDOW 73
-! #define O_WINDOWNAME 74
-! #define O_WRAPLEN 75
-! #define O_WRAPMARGIN 76
-! #define O_WRAPSCAN 77
-! #define O_WRITEANY 78
-! #define O_OPTIONCOUNT 79
-diff -c -r -N /usr/local/src/nvi-1.79/vi/v_ex.c ./vi/v_ex.c
-*** /usr/local/src/nvi-1.79/vi/v_ex.c Mon Sep 16 05:03:02 1996
---- ./vi/v_ex.c Wed Apr 16 21:20:09 1997
-***************
-*** 226,231 ****
---- 226,236 ----
- ARGS *ap[2], a;
- EXCMD cmd;
-
-+ #ifdef GTAGS
-+ if (O_ISSET(sp, O_GTAGSMODE) && vp->m_start.cno == 0)
-+ ex_cinit(&cmd, C_RTAG, 0, OOBLNO, 0, 0, ap);
-+ else
-+ #endif
- ex_cinit(&cmd, C_TAG, 0, OOBLNO, 0, 0, ap);
- ex_cadd(&cmd, &a, VIP(sp)->keyw, strlen(VIP(sp)->keyw));
- return (v_exec_ex(sp, vp, &cmd));
diff --git a/contrib/groff/eqn/neqn.man b/contrib/groff/eqn/neqn.man
deleted file mode 100644
index 123a51524e1f..000000000000
--- a/contrib/groff/eqn/neqn.man
+++ /dev/null
@@ -1,13 +0,0 @@
-.TH @G@NEQN @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
-.SH NAME
-@g@neqn \- format equations for ascii output
-.SH SYNOPSIS
-.B @g@neqn
-[eqn options]
-.SH DESCRIPTION
-.B neqn
-program is actually just a shell script which invokes the
-.B eqn(1)
-command with the ascii output device.
-.SH "SEE ALSO"
-.BR eqn (@MAN1EXT@)
diff --git a/contrib/groff/nroff/psroff.man b/contrib/groff/nroff/psroff.man
deleted file mode 100644
index 73b3d05dfc61..000000000000
--- a/contrib/groff/nroff/psroff.man
+++ /dev/null
@@ -1,18 +0,0 @@
-.TH @G@PSROFF @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
-.SH NAME
-@g@psroff \- sent troff to PostScript printer
-.SH SYNOPSIS
-.B @g@psroff
-[groff options] [files ...]
-.SH DESCRIPTION
-The
-.B psroff
-program is actually just a shell script which invokes the
-.B groff(1)
-command
-to print the troff
-.I files
-to a PostScript printer.
-.SH
-.SH "SEE ALSO"
-.B groff(1), lpr(1), environ(7)
diff --git a/contrib/libg++/libg++/genclass/genclass.1 b/contrib/libg++/libg++/genclass/genclass.1
deleted file mode 100644
index 4988cd6d7230..000000000000
--- a/contrib/libg++/libg++/genclass/genclass.1
+++ /dev/null
@@ -1,63 +0,0 @@
-.\" $Id$
-.TH GENCLASS 1 "\*(Dt" "GNU Tools" "GNU Tools"
-.SH NAME
-genclass \- generate c++ classes from prototypes
-.SH SYNOPSIS
-.B genclass -list [proto ...]
-.br
-.B genclass -catalog [proto ...]
-.br
-.B genclass type1 {ref|val} proto [out_prefix]
-.br
-.B genclass -2 type1 {ref|val} type2 {ref, val} proto [out_prefix]
-.br
-.B genclass [-usage] [-version]
-.SH DESCRIPTION
-Specific classes may be generated via the
-.B genclass
-shell script
-program. This program has arguments specifying the kinds of base
-types(s) to be used. Specifying base types requires two arguments. The
-first is the name of the base type, which may be any named type, like
-`int' or `String'. Only named types are supported; things like `int*'
-are not accepted. However, pointers like this may be used by supplying
-the appropriate typedefs (e.g., editing the resulting files to include
-`typedef int* intp;'). The type name must be followed by one of the
-words `val' or `ref', to indicate whether the base elements should be
-passed to functions by-value or by-reference.
-.PP
-You can specify basic container classes using `genclass base
-[val,ref] proto', where `proto' is the name of the class being
-generated. Container classes like dictionaries and maps that require
-two types may be specified via `genclass -2 keytype [val, ref],
-basetype [val, ref] proto', where the key type is specified first and
-the contents type second. The resulting classnames and filenames are
-generated by prepending the specified type names to the prototype names,
-and separating the filename parts with dots. For example, `genclass
-int val List' generates class `intList' residing in files `int.List.h'
-and `int.List.cc'. `genclass -2 String ref int val VHMap' generates
-(the awkward, but unavoidable) class name `StringintVHMap'. Of course,
-programmers may use `typedef' or simple editing to create more
-appropriate names. The existence of dot seperators in file names
-allows the use of GNU make to help automate configuration and
-recompilation. An example Makefile exploiting such capabilities may be
-found in the `libg++/proto-kit' directory.
-.PP
-The
-.B genclass
-utility operates via simple text substitution using
-`sed'. All occurrences of the pseudo-types `<T>' and `<C>' (if there
-are two types) are replaced with the indicated type, and occurrences of
-`<T&>' and `<C&>' are replaced by just the types, if `val' is
-specified, or types followed by "&" if `ref' is specified.
-.SH FILES
-/usr/share/libg++/ standard g++ prototype directory
-.SH ENVIRONMENT
-PROTODIR standard g++ prototype directory if defined
-.SH "SEE ALSO"
-.BR g++(1)
-.br
-The GNU C++ library Texinfo documentation, file:/usr/share/info/libg++
-.SH AUTHORS
-Doug Lea (dl@rocky.oswego.edu), Wendell C. Baker.
-This Manpage based on the GNU C++ library Texinfo documentation.
diff --git a/contrib/libgmp/mpn/sysv.h b/contrib/libgmp/mpn/sysv.h
deleted file mode 100644
index 87c250902a58..000000000000
--- a/contrib/libgmp/mpn/sysv.h
+++ /dev/null
@@ -1 +0,0 @@
-#define C_SYMBOL_NAME(name) name
diff --git a/contrib/nvi/catalog/polish b/contrib/nvi/catalog/polish
deleted file mode 100644
index fc512039fb21..000000000000
--- a/contrib/nvi/catalog/polish
+++ /dev/null
@@ -1,317 +0,0 @@
-VI_MESSAGE_CATALOG
-Zbyt d³uga liniaX
-nie mo¿na usun±æ linii %luX
-nie mo¿na dodaæ do linii %luX
-nie mo¿na wstawiæ w linii %luX
-nie mo¿na zachowaæ linii %luX
-nie mo¿na pobraæ ostatniej liniiX
-B³±d: nie mo¿na pobraæ linii %luX
-Plik loguX
-Brak logowania, anulowanie (undo) niemo¿liweX
-Brak zmian do anulowaniaX
-Brak logowania, anulowanie (undo) niemo¿liweX
-Brak logowania, nie mo¿na przegl±daæ do przoduX
-Brak zmian do powtórzeniaX
-%s/%d: b³±d zapisu do loguX
-Standardowe wej¶cie i wyj¶cie vi musi byæ terminalemX
-Znacznik %s: nie ustawionyX
-Znacznik %s: linia zosta³a usuniêtaX
-Znacznik %s: pozycja kursora ju¿ nie istniejeX
-B³±d: X
-nowy plikX
-nazwa zosta³a zmienionaX
-zmienionyX
-nie zmienionyX
-ODBLOKOWANYX
-tylko do odczytuX
-linia %lu z %lu [%ld%%]X
-pusty plikX
-linia %luX
-Plik %s nie jest katalogiem komunikatówX
-Nie mo¿na ustawiæ domy¶lnej opcji %sX
-Sposób u¿ycia: %sX
-set: brak opcji %s: 'set all' wy¶wietla warto¶ci opcjiX
-set: opcja no]%s nie pobiera warto¶ciX
-set: opcja %s nie jest zmienn± boolowsk±X
-set: opcja %s: %sX
-set: opcja %s: %s: przepe³nienieX
-set: opcja %s: %s nie jest poprawn± liczb±X
-set: opcja %s nie jest zmienn± boolowsk±X
-Zbyt ma³a liczba kolumn ekranu, mniejsza ni¿ %dX
-Zbyt du¿a liczba kolumn, wiêksza ni¿ %dX
-Zbyt ma³a liczba wierszy ekranu, mniejsza ni¿ %dX
-Zbyt du¿a liczba wierszy ekranu, wiêksza ni¿ %dX
-Opcja lisp nie jest zaimplementowanaX
-komunikaty nie wy³±czone: %sX
-komunikaty nie w³±czone: %sX
-
-Opcja paragraph musi sk³adaæ siê z dwóch grup symboliX
-Opcja section musi sk³adaæ siê z dwóch grup symboliX
-
-
-
-Domy¶lny bufor jest pustyX
-Bufor %s jest pustyX
-Pliki z symbolem nowego wiersza w nazwie nie mog± byæ odtworzoneX
-Zmiany nie do odtworzenia, je¶li sesja zostanie przerwanaX
-Tworzenie kopii zapasowej...X
-B³±d podczas zachowywania: %sX
-Zmiany nie do odtworzenia, je¶li sesja zostanie przerwanaX
-B³±d podczas tworzenia kopii zapasowej: %sX
-Tworzenie kopii zapasowej...X
-Nie znaleziono informacji o u¿ytkowniku numer %uX
-Nie mo¿na zablokowaæ kopii zapasowejX
-Przepe³nienie bufora kopii zapasowejX
-Kopia zapasowaX
-%s: b³êdna kopia zapasowaX
-%s: b³êdna kopia zapasowaX
-Brak plików o nazwie %s, które móg³by¶ odczytaæ, do odzyskaniaX
-Istniej± starsze wersje tego pliku, które mo¿na odzyskaæX
-Istniej± inne pliki, które mo¿na odzyskaæX
-nie wysy³am poczty: %sX
-Pusty plik; nie ma czego szukaæX
-Dotarto do koñca pliku bez znalezienia szukanego wzorcaX
-Brak poprzedniego wzorca poszukiwañX
-Nie znaleziono wzorcaX
-Dotarto do pocz±tku pliku bez znalezienia szukanego wzorcaX
-Poszukiwanie od pocz±tkuX
-Szukam...X
-Nie znaleziono niedrukowalnych znakówX
-Nieznana nazwa poleceniaX
-
-%s: polecenie niedostêpne w trybie edytora exX
-Liczba nie mo¿e byæ zeremX
-%s: b³êdny numer liniiX
-Wewnêtrzny b³±d tablicy sk³adni (%s: %s)X
-Sposób u¿ycia: %sX
-%s: tymczasowy bufor nie zosta³ zwolnionyX
-Przesuniêcie przed liniê 1X
-Przesuniêcie poza koniec plikuX
-@ with range running when the file/screen changedX
-Wykonywano polecenie globalne/wizualne podczas zmiany pliku/ekranuX
-B³±d polecenie ex: pozosta³e polecenia anulowaneX
-B³±d polecenia ex: mapowanie klawiszy anulowaneX
-Drugi adres jest mniejszy od pierwszegoX
-Nie podano nazwy znacznikaX
-\\ bez / lub ?X
-Odniesienie do linii o numerze mniejszym od 0X
-Nieznane polecenie %sX
-Przepe³nienie warto¶ci adresuX
-Niedomiar warto¶ci adresuX
-Niedozwolona kombinacja adresuX
-Niedozwolony adres: jest tylko %lu linii w plikuX
-Niedozwolony adres: plik jest pustyX
-Polecenie %s nie zezwala na u¿ycie adresu 0X
-Brak skrótów do wy¶wietleniaX
-Skróty musz± siê koñczyæ symbolem "s³owo"X
-Skróty nie mog± zawieraæ spacji lub tabulacjiX
-Skróty nie mog± przeplataæ symboli s³owo/nie-s³owo, z wyj±tkiem na koñcu liniiX
-"%s" nie jest skrótemX
-B³±d polecenia vi: mapowanie klawiszy odrzuconeX
-Nie ma wiêcej plików do edycjiX
-Nie ma poprzednich plików do edycjiX
-Nie ma poprzednich plików do przewiniêcia wsteczX
-Nie ma listy plików do wy¶wietleniaX
-Nie ma poprzedniego polecenia do zast±pienia "!"X
-Nie ma nazwy pliku do zast±pienia %%X
-Nie ma nazwy pliku do zast±pienia #X
-B³±d: execl: %sX
-B³±d I/O: %sX
-Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæX
-Nie mozna znale¼æ katalogu domowego (home)X
-Nowy katalog bie¿±cy: %sX
-Nie ma buforów edycji do wy¶wietleniaX
-Polecenie %s nie mo¿e byæ u¿yte jako czê¶æ polecenia globalnego lub wizualnegoX
-%s/%s: nie wczytany: nie nale¿y do ciebie ani do rootaX
-%s/%s: nie wczytany: nie nale¿y do ciebieX
-%s/%s: nie wczytany: inny u¿ytkownik ni¿ w³a¶ciciel ma prawo do zapisuX
-%s: nie wczytany: nie nale¿y do ciebie ani do rootaX
-%s: nie wczytany: nie nale¿y do ciebieX
-%s: nie wczytany: inny uzytkownik ni¿ w³a¶ciciel ma prawo do zapisuX
-Brak kolejnych linii do po³±czeniaX
-Brak pozycji map wej¶ciowychX
-Brak pozycji map poleceñX
-Znak %s nie mo¿e byæ przemapowanyX
-"%s" obecnie nie jest mapowanyX
-Nazwa znacznika musi byæ pojedyñcz± liter±X
-%s istnieje, nie zapisany; u¿yj ! ¿eby wymusiæX
-Nowy plik exrc: %sX
-Linia docelowa jest wewn±trz przenoszonego obszaruX
-Polecenie open wymaga ustawienia opcji openX
-Polecenie open jest niezaimplementowaneX
-Niemo¿liwe jest zachowanie tego plikuX
-Plik zachowanyX
-%s: rozwija siê na zbyt wiele nazw plikówX
-Tylko zwyk³e pliki i nazwane ³±cza (named pipes) mo¿na czytaæX
-%s: nie mo¿na za³o¿yæ blokady do odczytuX
-Czytanie...X
-%s: %lu linii, %lu znakówX
-Brak ekranów w tle do wy¶wietleniaX
-Polecenie script dostêpne jest tylko w trybie viX
-Brak polecenia do wykonaniaX
-Opcja shiftwidth ustawiona na 0X
-Przepe³nienie licznikaX
-Niedomiar licznikaX
-Podano wyra¿enie regularne; flaga r nie ma znaczeniaX
-Flagi #, l oraz p nie mog± byæ ³±czone z flag± c w trybie viX
-Nie znaleziono wzorcaX
-Brak poprzedniego znacznikaX
-Mniej ni¿ %s na stosie znaczników; u¿yj :display t[ags]X
-Brak pliku %s na stosie znaczników do powrotu; u¿yj :display t[ags]X
-Naci¶nij Enter: X
-%s: znacznik nie znalezionyX
-%s: b³êdny znacznik w %sX
-%s: numer linii znacznika wykracza poza koniec plikuX
-Stos znaczników jest pustyX
-%s: nie znaleziono szukanego wzorcaX
-%d plików jeszcze do edycjiX
-Bufor %s jest pustyX
-Potwierdzasz zmianê? [n]X
-PrzerwanyX
-Brak poprzedniego bufora do wykonaniaX
-Brak poprzedniego wyra¿enia regularnegoX
-Polecenie %s wymaga uprzedniego wczytania plikuX
-Sposób u¿ycia: %sX
-Polecenie wizualne wymaga ustawienia opcji openX
-
-Pusty plikX
-Brak poprzedniego szukania F, f, T lub tX
-%s nie znalezionoX
-Brak poprzedniego pliku do edycjiX
-Kursor nie na liczbieX
-Liczba wynikowa zbyt du¿aX
-Liczba wynikowa zbyt ma³aX
-Brak pasuj±cych znaków w tej liniiX
-Nie znaleziono pasuj±cych znakówX
-Brak znaków do zamianyX
-Brak innego ekranu do prze³±czeniaX
-Znaki poza napisem do szukania, przesuniêciem linii i/lub poleceniem zX
-Brak poprzedniego wzorca szukaniaX
-Szukanie wróci³o do pierwotnej pozycjiX
-Skrót przekroczy³ limit rozwiniêcia: czê¶æ znaków odrzuconoX
-Niedozwolony znak; zacytuj, ¿eby wprowadziæX
-Ju¿ na pocz±tku wstawianiaX
-Brak kolejnych znaków do usuniêciaX
-Przesuniêcie poza koniec plikuX
-Przesuniêcie poza koniec liniiX
-Nie wykonano przesuniêcia kursoraX
-Ju¿ na pocz±tku plikuX
-Przesuniêcie przed pocz±tek plikuX
-Ju¿ w pierwszej kolumnieX
-Nale¿y podaæ bufory przed poleceniemX
-Ju¿ na koñcu plikuX
-Ju¿ na koñcu liniiX
-%s nie jest poleceniem viX
-Sposób u¿ycia: %sX
-Brak znaków do usuniêciaX
-Polecenie Q wymaga interfejsu terminala exX
-Brak polecenia do powtórzeniaX
-Plik jest pustyX
-%s nie mo¿e byæ u¿yte jako polecenie przesuniêciaX
-Ju¿ w trybie poleceñX
-Kursor nie na s³owieX
-
-Warto¶ci opcji okna zbyt du¿e, max to %uX
-Do³±czX
-ZmieñX
-PolecenieX
-WstawX
-ZamieñX
-Przesuniêcie poza koniec ekranuX
-Przesuniêcie przed pocz±tek ekranuX
-Ekran musi mieæ wiêcej ni¿ %d linii, ¿eby go podzieliæX
-Brak ekranów w tleX
-Nie ma ekranu w tle z edycj± pliku o nazwie %sX
-Nie mo¿na schowaæ w tle jedynego ekranu edycyjnegoX
-Mo¿na zmniejszyæ ekran tylko do %d wierszyX
-Ekran nie mo¿e byæ zmniejszonyX
-Ekran nie mo¿e byæ zwiêkszonyX
-
-Ekran nie mo¿e byæ zawieszonyX
-Przerwano: odrzucono mapowane klawiszeX
-vi: nie zwolniono bufora tymczasowegoX
-Ten terminal nie posiada klawisza %sX
-Mo¿na podaæ tylko jeden buforX
-Liczba wiêksza ni¿ %luX
-PrzerwanoX
-Nie mo¿na utworzyæ pliku tymczasowegoX
-Uwaga: %s nie jest zwyk³ym plikiemX
-%s ju¿ zablokowany, sesja tylko do odczytuX
-%s: usuñX
-%s: zamknijX
-%s: usuñX
-%s: usuñX
-Plik tylko do odczytu, nie zapisany; u¿yj ! ¿eby wymusiæX
-Plik tylko do odczytu, nie zapisanyX
-%s istnieje, nie zapisany; u¿yj ! ¿eby wymusiæX
-%s istnieje, nie zapisanyX
-Plik czê¶ciowy, nie zapisany; u¿yj ! ¿eby wymusiæX
-Plik czê¶ciowy, nie zapisanyX
-%s: plik zmodyfikowany pó¼niej, ni¿ ta kopia; u¿yj ! ¿eby wymusiæX
-%s: plik zmodyfikowany pó¼niej, ni¿ ta kopiaX
-%s: nie mo¿na zablokowaæ do pisaniaX
-Zapisywanie...X
-%s: OSTRZE¯ENIE: PLIK ZOSTA£ OBCIÊTYX
-Ju¿ przy pierwszym znaczniku z tej grupyX
-%s: nowy plik: %lu linii, %lu znakówX
-%s: %lu linii, %lu znakówX
-%s rozwija siê na zbyt wiele nazw plikówX
-%s: nie jest zwyk³ym plikiemX
-%s: nie jeste¶ w³a¶cicielemX
-%s: dostêpny dla u¿ytkownika innego ni¿ w³a¶cicielX
-Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæX
-Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj :edit! ¿eby wymusiæX
-Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæX
-To jest plik tymczasowy; wyj¶cie anuluje zmianyX
-Plik tylko do odczytu, nie ma autozapisu zmianX
-Ponownie rozpoczêto logowanieX
-potwierdzasz? [ynq]X
-Naci¶nij dowolny klawisz: X
-Naci¶nij dowolny klawisz [: ¿eby podaæ nastêpne polecenia ex]: X
-Naci¶nij dowolny klawisz [q ¿eby zakoñczyæ]: X
-Ta forma %s wymaga interfejsu terminala exX
-Wchodzê w tryb wprowadzania ex.X
-B³±d polecenia, jeszcze nie wczytano pliku.X
- dalej?X
-Nieoczekiwany symbolX
-Nieoczekiwany koniec plikuX
-Brak wzorców pasuj±cych do zapytaniaX
-Nieoczekiwane przerwanieX
-Nieoczekiwane polecenie koniecX
-Nieoczekiwane polecenie od¶wie¿eniaX
-Ju¿ przy ostatnim znaczniku z tej grupyX
-Polecenie %s wymaga interfejsu terminala exX
-Ta forma %s jest niedostêpna, kiedy ustawiona jest opcja bezpiecznej edycjiX
-Nieoczekiwany ci±g znakówX
-Nieoczekiwany timeoutX
-Nieoczekiwane polecenie zapisuX
-
-Rozwiniêcia shella niedostêpne w trybie bezpiecznej edycjiX
-Polecenie %s jest niedostêpne w trybie bezpiecznej edycjiX
-set: opcji %s nie mo¿na wy³±czyæX
-Ekran zbyt ma³y.X
-dodanoX
-zmienionoX
-usuniêtoX
-po³±czonoX
-przeniesionoX
-przesuniêtoX
-wczytanoX
-liniaX
-liniiX
-Vi nie zosta³ uruchomiony z interpreterem TclX
-Plik zmodyfikowany od ostatniego zapisuX
-B³±d rozwiniêcia shellaX
-Brak opcji %s edycjiX
-Vi nie zosta³ uruchomiony z interpreterem PerlX
-Brak polecenia ex do wykonaniaX
-Naci¶nij <CR> ¿eby wykonac polecenie, :q ¿eby wyj¶æX
-U¿yj "cscope help" w celu uzyskania pomocyX
-Brak aktywnych po³±czeñ cscopeX
-%s: nieznany typ poszukiwañ: u¿yj jednego z %sX
-%d: brak takiej sesji cscopeX
-set: nie mo¿na nigdy w³±czyæ opcji %sX
-set: opcja %s nie mo¿e nigdy mieæ warto¶ci 0X
-%s: dodano: %lu linii, %lu znakówX
-Nieoczekiwane polecenie zmiany rozmiaruX
-%d plików do edycjiX
diff --git a/contrib/nvi/catalog/polish.base b/contrib/nvi/catalog/polish.base
deleted file mode 100644
index 8e07a97677e1..000000000000
--- a/contrib/nvi/catalog/polish.base
+++ /dev/null
@@ -1,307 +0,0 @@
-002 "Zbyt d³uga linia"
-003 "nie mo¿na usun±æ linii %lu"
-004 "nie mo¿na dodaæ do linii %lu"
-005 "nie mo¿na wstawiæ w linii %lu"
-006 "nie mo¿na zachowaæ linii %lu"
-007 "nie mo¿na pobraæ ostatniej linii"
-008 "B³±d: nie mo¿na pobraæ linii %lu"
-009 "Plik logu"
-010 "Brak logowania, anulowanie (undo) niemo¿liwe"
-011 "Brak zmian do anulowania"
-012 "Brak logowania, anulowanie (undo) niemo¿liwe"
-013 "Brak logowania, nie mo¿na przegl±daæ do przodu"
-014 "Brak zmian do powtórzenia"
-015 "%s/%d: b³±d zapisu do logu"
-016 "Standardowe wej¶cie i wyj¶cie vi musi byæ terminalem"
-017 "Znacznik %s: nie ustawiony"
-018 "Znacznik %s: linia zosta³a usuniêta"
-019 "Znacznik %s: pozycja kursora ju¿ nie istnieje"
-020 "B³±d: "
-021 "nowy plik"
-022 "nazwa zosta³a zmieniona"
-023 "zmieniony"
-024 "nie zmieniony"
-025 "ODBLOKOWANY"
-026 "tylko do odczytu"
-027 "linia %lu z %lu [%ld%%]"
-028 "pusty plik"
-029 "linia %lu"
-030 "Plik %s nie jest katalogiem komunikatów"
-031 "Nie mo¿na ustawiæ domy¶lnej opcji %s"
-032 "Sposób u¿ycia: %s"
-033 "set: brak opcji %s: 'set all' wy¶wietla warto¶ci opcji"
-034 "set: opcja no]%s nie pobiera warto¶ci"
-035 "set: opcja %s nie jest zmienn± boolowsk±"
-036 "set: opcja %s: %s"
-037 "set: opcja %s: %s: przepe³nienie"
-038 "set: opcja %s: %s nie jest poprawn± liczb±"
-039 "set: opcja %s nie jest zmienn± boolowsk±"
-040 "Zbyt ma³a liczba kolumn ekranu, mniejsza ni¿ %d"
-041 "Zbyt du¿a liczba kolumn, wiêksza ni¿ %d"
-042 "Zbyt ma³a liczba wierszy ekranu, mniejsza ni¿ %d"
-043 "Zbyt du¿a liczba wierszy ekranu, wiêksza ni¿ %d"
-044 "Opcja lisp nie jest zaimplementowana"
-045 "komunikaty nie wy³±czone: %s"
-046 "komunikaty nie w³±czone: %s"
-048 "Opcja paragraph musi sk³adaæ siê z dwóch grup symboli"
-049 "Opcja section musi sk³adaæ siê z dwóch grup symboli"
-053 "Domy¶lny bufor jest pusty"
-054 "Bufor %s jest pusty"
-055 "Pliki z symbolem nowego wiersza w nazwie nie mog± byæ odtworzone"
-056 "Zmiany nie do odtworzenia, je¶li sesja zostanie przerwana"
-057 "Tworzenie kopii zapasowej..."
-058 "B³±d podczas zachowywania: %s"
-059 "Zmiany nie do odtworzenia, je¶li sesja zostanie przerwana"
-060 "B³±d podczas tworzenia kopii zapasowej: %s"
-061 "Tworzenie kopii zapasowej..."
-062 "Nie znaleziono informacji o u¿ytkowniku numer %u"
-063 "Nie mo¿na zablokowaæ kopii zapasowej"
-064 "Przepe³nienie bufora kopii zapasowej"
-065 "Kopia zapasowa"
-066 "%s: b³êdna kopia zapasowa"
-067 "%s: b³êdna kopia zapasowa"
-068 "Brak plików o nazwie %s, które móg³by¶ odczytaæ, do odzyskania"
-069 "Istniej± starsze wersje tego pliku, które mo¿na odzyskaæ"
-070 "Istniej± inne pliki, które mo¿na odzyskaæ"
-071 "nie wysy³am poczty: %s"
-072 "Pusty plik; nie ma czego szukaæ"
-073 "Dotarto do koñca pliku bez znalezienia szukanego wzorca"
-074 "Brak poprzedniego wzorca poszukiwañ"
-075 "Nie znaleziono wzorca"
-076 "Dotarto do pocz±tku pliku bez znalezienia szukanego wzorca"
-077 "Poszukiwanie od pocz±tku"
-078 "Szukam..."
-079 "Nie znaleziono niedrukowalnych znaków"
-080 "Nieznana nazwa polecenia"
-082 "%s: polecenie niedostêpne w trybie edytora ex"
-083 "Liczba nie mo¿e byæ zerem"
-084 "%s: b³êdny numer linii"
-085 "Wewnêtrzny b³±d tablicy sk³adni (%s: %s)"
-086 "Sposób u¿ycia: %s"
-087 "%s: tymczasowy bufor nie zosta³ zwolniony"
-088 "Przesuniêcie przed liniê 1"
-089 "Przesuniêcie poza koniec pliku"
-090 "@ with range running when the file/screen changed"
-091 "Wykonywano polecenie globalne/wizualne podczas zmiany pliku/ekranu"
-092 "B³±d polecenie ex: pozosta³e polecenia anulowane"
-093 "B³±d polecenia ex: mapowanie klawiszy anulowane"
-094 "Drugi adres jest mniejszy od pierwszego"
-095 "Nie podano nazwy znacznika"
-096 "\\ bez / lub ?"
-097 "Odniesienie do linii o numerze mniejszym od 0"
-098 "Nieznane polecenie %s"
-099 "Przepe³nienie warto¶ci adresu"
-100 "Niedomiar warto¶ci adresu"
-101 "Niedozwolona kombinacja adresu"
-102 "Niedozwolony adres: jest tylko %lu linii w pliku"
-103 "Niedozwolony adres: plik jest pusty"
-104 "Polecenie %s nie zezwala na u¿ycie adresu 0"
-105 "Brak skrótów do wy¶wietlenia"
-106 "Skróty musz± siê koñczyæ symbolem "s³owo""
-107 "Skróty nie mog± zawieraæ spacji lub tabulacji"
-108 "Skróty nie mog± przeplataæ symboli s³owo/nie-s³owo, z wyj±tkiem na koñcu linii"
-109 ""%s" nie jest skrótem"
-110 "B³±d polecenia vi: mapowanie klawiszy odrzucone"
-111 "Nie ma wiêcej plików do edycji"
-112 "Nie ma poprzednich plików do edycji"
-113 "Nie ma poprzednich plików do przewiniêcia wstecz"
-114 "Nie ma listy plików do wy¶wietlenia"
-115 "Nie ma poprzedniego polecenia do zast±pienia "!""
-116 "Nie ma nazwy pliku do zast±pienia %%"
-117 "Nie ma nazwy pliku do zast±pienia #"
-118 "B³±d: execl: %s"
-119 "B³±d I/O: %s"
-120 "Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæ"
-121 "Nie mozna znale¼æ katalogu domowego (home)"
-122 "Nowy katalog bie¿±cy: %s"
-123 "Nie ma buforów edycji do wy¶wietlenia"
-124 "Polecenie %s nie mo¿e byæ u¿yte jako czê¶æ polecenia globalnego lub wizualnego"
-125 "%s/%s: nie wczytany: nie nale¿y do ciebie ani do roota"
-126 "%s/%s: nie wczytany: nie nale¿y do ciebie"
-127 "%s/%s: nie wczytany: inny u¿ytkownik ni¿ w³a¶ciciel ma prawo do zapisu"
-128 "%s: nie wczytany: nie nale¿y do ciebie ani do roota"
-129 "%s: nie wczytany: nie nale¿y do ciebie"
-130 "%s: nie wczytany: inny uzytkownik ni¿ w³a¶ciciel ma prawo do zapisu"
-131 "Brak kolejnych linii do po³±czenia"
-132 "Brak pozycji map wej¶ciowych"
-133 "Brak pozycji map poleceñ"
-134 "Znak %s nie mo¿e byæ przemapowany"
-135 ""%s" obecnie nie jest mapowany"
-136 "Nazwa znacznika musi byæ pojedyñcz± liter±"
-137 "%s istnieje, nie zapisany; u¿yj ! ¿eby wymusiæ"
-138 "Nowy plik exrc: %s"
-139 "Linia docelowa jest wewn±trz przenoszonego obszaru"
-140 "Polecenie open wymaga ustawienia opcji open"
-141 "Polecenie open jest niezaimplementowane"
-142 "Niemo¿liwe jest zachowanie tego pliku"
-143 "Plik zachowany"
-144 "%s: rozwija siê na zbyt wiele nazw plików"
-145 "Tylko zwyk³e pliki i nazwane ³±cza (named pipes) mo¿na czytaæ"
-146 "%s: nie mo¿na za³o¿yæ blokady do odczytu"
-147 "Czytanie..."
-148 "%s: %lu linii, %lu znaków"
-149 "Brak ekranów w tle do wy¶wietlenia"
-150 "Polecenie script dostêpne jest tylko w trybie vi"
-151 "Brak polecenia do wykonania"
-152 "Opcja shiftwidth ustawiona na 0"
-153 "Przepe³nienie licznika"
-154 "Niedomiar licznika"
-155 "Podano wyra¿enie regularne; flaga r nie ma znaczenia"
-156 "Flagi #, l oraz p nie mog± byæ ³±czone z flag± c w trybie vi"
-157 "Nie znaleziono wzorca"
-158 "Brak poprzedniego znacznika"
-159 "Mniej ni¿ %s na stosie znaczników; u¿yj :display t[ags]"
-160 "Brak pliku %s na stosie znaczników do powrotu; u¿yj :display t[ags]"
-161 "Naci¶nij Enter: "
-162 "%s: znacznik nie znaleziony"
-163 "%s: b³êdny znacznik w %s"
-164 "%s: numer linii znacznika wykracza poza koniec pliku"
-165 "Stos znaczników jest pusty"
-166 "%s: nie znaleziono szukanego wzorca"
-167 "%d plików jeszcze do edycji"
-168 "Bufor %s jest pusty"
-169 "Potwierdzasz zmianê? [n]"
-170 "Przerwany"
-171 "Brak poprzedniego bufora do wykonania"
-172 "Brak poprzedniego wyra¿enia regularnego"
-173 "Polecenie %s wymaga uprzedniego wczytania pliku"
-174 "Sposób u¿ycia: %s"
-175 "Polecenie wizualne wymaga ustawienia opcji open"
-177 "Pusty plik"
-178 "Brak poprzedniego szukania F, f, T lub t"
-179 "%s nie znaleziono"
-180 "Brak poprzedniego pliku do edycji"
-181 "Kursor nie na liczbie"
-182 "Liczba wynikowa zbyt du¿a"
-183 "Liczba wynikowa zbyt ma³a"
-184 "Brak pasuj±cych znaków w tej linii"
-185 "Nie znaleziono pasuj±cych znaków"
-186 "Brak znaków do zamiany"
-187 "Brak innego ekranu do prze³±czenia"
-188 "Znaki poza napisem do szukania, przesuniêciem linii i/lub poleceniem z"
-189 "Brak poprzedniego wzorca szukania"
-190 "Szukanie wróci³o do pierwotnej pozycji"
-191 "Skrót przekroczy³ limit rozwiniêcia: czê¶æ znaków odrzucono"
-192 "Niedozwolony znak; zacytuj, ¿eby wprowadziæ"
-193 "Ju¿ na pocz±tku wstawiania"
-194 "Brak kolejnych znaków do usuniêcia"
-195 "Przesuniêcie poza koniec pliku"
-196 "Przesuniêcie poza koniec linii"
-197 "Nie wykonano przesuniêcia kursora"
-198 "Ju¿ na pocz±tku pliku"
-199 "Przesuniêcie przed pocz±tek pliku"
-200 "Ju¿ w pierwszej kolumnie"
-201 "Nale¿y podaæ bufory przed poleceniem"
-202 "Ju¿ na koñcu pliku"
-203 "Ju¿ na koñcu linii"
-204 "%s nie jest poleceniem vi"
-205 "Sposób u¿ycia: %s"
-206 "Brak znaków do usuniêcia"
-207 "Polecenie Q wymaga interfejsu terminala ex"
-208 "Brak polecenia do powtórzenia"
-209 "Plik jest pusty"
-210 "%s nie mo¿e byæ u¿yte jako polecenie przesuniêcia"
-211 "Ju¿ w trybie poleceñ"
-212 "Kursor nie na s³owie"
-214 "Warto¶ci opcji okna zbyt du¿e, max to %u"
-215 "Do³±cz"
-216 "Zmieñ"
-217 "Polecenie"
-218 "Wstaw"
-219 "Zamieñ"
-220 "Przesuniêcie poza koniec ekranu"
-221 "Przesuniêcie przed pocz±tek ekranu"
-222 "Ekran musi mieæ wiêcej ni¿ %d linii, ¿eby go podzieliæ"
-223 "Brak ekranów w tle"
-224 "Nie ma ekranu w tle z edycj± pliku o nazwie %s"
-225 "Nie mo¿na schowaæ w tle jedynego ekranu edycyjnego"
-226 "Mo¿na zmniejszyæ ekran tylko do %d wierszy"
-227 "Ekran nie mo¿e byæ zmniejszony"
-228 "Ekran nie mo¿e byæ zwiêkszony"
-230 "Ekran nie mo¿e byæ zawieszony"
-231 "Przerwano: odrzucono mapowane klawisze"
-232 "vi: nie zwolniono bufora tymczasowego"
-233 "Ten terminal nie posiada klawisza %s"
-234 "Mo¿na podaæ tylko jeden bufor"
-235 "Liczba wiêksza ni¿ %lu"
-236 "Przerwano"
-237 "Nie mo¿na utworzyæ pliku tymczasowego"
-238 "Uwaga: %s nie jest zwyk³ym plikiem"
-239 "%s ju¿ zablokowany, sesja tylko do odczytu"
-240 "%s: usuñ"
-241 "%s: zamknij"
-242 "%s: usuñ"
-243 "%s: usuñ"
-244 "Plik tylko do odczytu, nie zapisany; u¿yj ! ¿eby wymusiæ"
-245 "Plik tylko do odczytu, nie zapisany"
-246 "%s istnieje, nie zapisany; u¿yj ! ¿eby wymusiæ"
-247 "%s istnieje, nie zapisany"
-248 "Plik czê¶ciowy, nie zapisany; u¿yj ! ¿eby wymusiæ"
-249 "Plik czê¶ciowy, nie zapisany"
-250 "%s: plik zmodyfikowany pó¼niej, ni¿ ta kopia; u¿yj ! ¿eby wymusiæ"
-251 "%s: plik zmodyfikowany pó¼niej, ni¿ ta kopia"
-252 "%s: nie mo¿na zablokowaæ do pisania"
-253 "Zapisywanie..."
-254 "%s: OSTRZE¯ENIE: PLIK ZOSTA£ OBCIÊTY"
-255 "Ju¿ przy pierwszym znaczniku z tej grupy"
-256 "%s: nowy plik: %lu linii, %lu znaków"
-257 "%s: %lu linii, %lu znaków"
-258 "%s rozwija siê na zbyt wiele nazw plików"
-259 "%s: nie jest zwyk³ym plikiem"
-260 "%s: nie jeste¶ w³a¶cicielem"
-261 "%s: dostêpny dla u¿ytkownika innego ni¿ w³a¶ciciel"
-262 "Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæ"
-263 "Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj :edit! ¿eby wymusiæ"
-264 "Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæ"
-265 "To jest plik tymczasowy; wyj¶cie anuluje zmiany"
-266 "Plik tylko do odczytu, nie ma autozapisu zmian"
-267 "Ponownie rozpoczêto logowanie"
-268 "potwierdzasz? [ynq]"
-269 "Naci¶nij dowolny klawisz: "
-270 "Naci¶nij dowolny klawisz [: ¿eby podaæ nastêpne polecenia ex]: "
-271 "Naci¶nij dowolny klawisz [q ¿eby zakoñczyæ]: "
-272 "Ta forma %s wymaga interfejsu terminala ex"
-273 "Wchodzê w tryb wprowadzania ex."
-274 "B³±d polecenia, jeszcze nie wczytano pliku."
-275 " dalej?"
-276 "Nieoczekiwany symbol"
-277 "Nieoczekiwany koniec pliku"
-278 "Brak wzorców pasuj±cych do zapytania"
-279 "Nieoczekiwane przerwanie"
-280 "Nieoczekiwane polecenie koniec"
-281 "Nieoczekiwane polecenie od¶wie¿enia"
-282 "Ju¿ przy ostatnim znaczniku z tej grupy"
-283 "Polecenie %s wymaga interfejsu terminala ex"
-284 "Ta forma %s jest niedostêpna, kiedy ustawiona jest opcja bezpiecznej edycji"
-285 "Nieoczekiwany ci±g znaków"
-286 "Nieoczekiwany timeout"
-287 "Nieoczekiwane polecenie zapisu"
-289 "Rozwiniêcia shella niedostêpne w trybie bezpiecznej edycji"
-290 "Polecenie %s jest niedostêpne w trybie bezpiecznej edycji"
-291 "set: opcji %s nie mo¿na wy³±czyæ"
-292 "Ekran zbyt ma³y."
-293 "dodano"
-294 "zmieniono"
-295 "usuniêto"
-296 "po³±czono"
-297 "przeniesiono"
-298 "przesuniêto"
-299 "wczytano"
-300 "linia"
-301 "linii"
-302 "Vi nie zosta³ uruchomiony z interpreterem Tcl"
-303 "Plik zmodyfikowany od ostatniego zapisu"
-304 "B³±d rozwiniêcia shella"
-305 "Brak opcji %s edycji"
-306 "Vi nie zosta³ uruchomiony z interpreterem Perl"
-307 "Brak polecenia ex do wykonania"
-308 "Naci¶nij <CR> ¿eby wykonac polecenie, :q ¿eby wyj¶æ"
-309 "U¿yj "cscope help" w celu uzyskania pomocy"
-310 "Brak aktywnych po³±czeñ cscope"
-311 "%s: nieznany typ poszukiwañ: u¿yj jednego z %s"
-312 "%d: brak takiej sesji cscope"
-313 "set: nie mo¿na nigdy w³±czyæ opcji %s"
-314 "set: opcja %s nie mo¿e nigdy mieæ warto¶ci 0"
-315 "%s: dodano: %lu linii, %lu znaków"
-316 "Nieoczekiwane polecenie zmiany rozmiaru"
-317 "%d plików do edycji"
diff --git a/contrib/nvi/catalog/polish.check b/contrib/nvi/catalog/polish.check
deleted file mode 100644
index 400f0b98ad43..000000000000
--- a/contrib/nvi/catalog/polish.check
+++ /dev/null
@@ -1,35 +0,0 @@
-Unused message id's (this is okay):
-001
-047
-050
-051
-052
-081
-176
-213
-229
-288
-=========================
-MISSING ERROR MESSAGES (Please add!):
-=========================
-Extra error messages (just delete them):
-=========================
-MESSAGES WITH THE SAME MESSAGE ID's (FIX!):
-=========================
-Duplicate messages, both id and message (this is okay):
-=========================
-Duplicate messages, just message (this is okay):
- 2 %s istnieje, nie zapisany; u¿yj ! ¿eby wymusiæX
- 2 %s: %lu linii, %lu znakówX
- 2 %s: b³êdna kopia zapasowaX
- 2 Brak logowania, anulowanie (undo) niemo¿liweX
- 2 Bufor %s jest pustyX
- 2 Nie znaleziono wzorcaX
- 2 Przesuniêcie poza koniec plikuX
- 2 Tworzenie kopii zapasowej...X
- 2 Zmiany nie do odtworzenia, je¶li sesja zostanie przerwanaX
- 2 set: opcja %s nie jest zmienn± boolowsk±X
- 3 %s: usuñX
- 3 Plik zmodyfikowany od ostatniego zapisu; zapisz lub u¿yj ! ¿eby wymusiæX
- 4 Sposób u¿ycia: %sX
-=========================
diff --git a/contrib/nvi/catalog/polish.owner b/contrib/nvi/catalog/polish.owner
deleted file mode 100644
index 1fcf5c545810..000000000000
--- a/contrib/nvi/catalog/polish.owner
+++ /dev/null
@@ -1 +0,0 @@
-Andrzej Bia³ecki <abial@warman.org.pl>
diff --git a/contrib/pnpinfo/Makefile b/contrib/pnpinfo/Makefile
deleted file mode 100644
index 450c4c20433a..000000000000
--- a/contrib/pnpinfo/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-# @(#)Makefile 8.1 (Berkeley) 6/5/93
-
-PROG= pnpinfo
-MAN8= pnpinfo.8
-CFLAGS= -Wall
-
-.include <bsd.prog.mk>
diff --git a/contrib/pnpinfo/pnpinfo.8 b/contrib/pnpinfo/pnpinfo.8
deleted file mode 100644
index a966df855329..000000000000
--- a/contrib/pnpinfo/pnpinfo.8
+++ /dev/null
@@ -1,59 +0,0 @@
-.\" Copyright (c) 1996, Sujal M. Patel
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Sujal M. Patel
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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: pnpinfo.8,v 1.4 1996/05/06 00:00:18 smpatel Exp smpatel $
-.\"
-.Dd January 7, 1996
-.Dt PNPINFO 8
-.Os
-.Sh NAME
-.Nm pnpinfo
-.Nd "Reports information about Plug-n-Play ISA devices"
-.Sh SYNOPSIS
-.Nm pnpinfo
-.Sh DESCRIPTION
-.Nm pnpinfo
-reports information about Plug-n-Play ISA devices. Some of the information,
-such as the vendor ID, serial number, I/O ports, IRQ, etc. are useful when
-configuring a kernel with ISA PnP devices.
-.Sh BUGS
-A few of the tags are unimplemented (Enough exist for 99% of PnP cards).
-.Sh SEE ALSO
-.Xr pnp 4
-.Sh HISTORY
-The
-.Nm
-utility first appeared in
-.Tn FreeBSD
-2.2.
-.Sh AUTHOR
-.Bl -tag
-Sujal M. Patel, smpatel@umiacs.umd.edu
-.El
diff --git a/contrib/pnpinfo/pnpinfo.h b/contrib/pnpinfo/pnpinfo.h
deleted file mode 100644
index 5469891e259c..000000000000
--- a/contrib/pnpinfo/pnpinfo.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 1996, Sujal M. Patel
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Sujal M. Patel
- * 4. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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: pnpinfo.h,v 1.1 1996/01/08 00:48:32 smpatel Exp $
- */
-
-
-/* Maximum Number of PnP Devices. 6 should be plenty */
-#define MAX_CARDS 6
-
-
-/* Static ports */
-#define ADDRESS 0x279
-#define WRITE_DATA 0xa79
-
-
-/* PnP Registers. Write to ADDRESS and then use WRITE/READ_DATA */
-#define SET_RD_DATA 0x00
-#define SERIAL_ISOLATION 0x01
-#define WAKE 0x03
-#define RESOURCE_DATA 0x04
-#define STATUS 0x05
-#define SET_CSN 0x06
-
-/* Small Resource Item names */
-#define PNP_VERSION 0x1
-#define LOG_DEVICE_ID 0x2
-#define COMP_DEVICE_ID 0x3
-#define IRQ_FORMAT 0x4
-#define DMA_FORMAT 0x5
-#define START_DEPEND_FUNC 0x6
-#define END_DEPEND_FUNC 0x7
-#define IO_PORT_DESC 0x8
-#define FIXED_IO_PORT_DESC 0x9
-#define SM_RES_RESERVED 0xa-0xd
-#define SM_VENDOR_DEFINED 0xe
-#define END_TAG 0xf
-
-/* Large Resource Item names */
-#define MEMORY_RANGE_DESC 0x1
-#define ID_STRING_ANSI 0x2
-#define ID_STRING_UNICODE 0x3
-#define LG_VENDOR_DEFINED 0x4
-#define _32BIT_MEM_RANGE_DESC 0x5
-#define _32BIT_FIXED_LOC_DESC 0x6
-#define LG_RES_RESERVED 0x7-0x7f
diff --git a/crypto/README b/crypto/README
deleted file mode 100644
index 004485eadec0..000000000000
--- a/crypto/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This directory is for the EXACT same use as src/contrib, execpt it
-holds crypto sources. As a consequence of USA law, this makes it export
-controlled, so it has to be kept separate.
-
-Please do not export the contents of this direcory and its
-subdirectories from the USA without the necessary permits.
-
-Mark Murray
-3 May, 1997
diff --git a/crypto/kerberosIV/COPYRIGHT b/crypto/kerberosIV/COPYRIGHT
deleted file mode 100644
index 1ec6394da320..000000000000
--- a/crypto/kerberosIV/COPYRIGHT
+++ /dev/null
@@ -1,166 +0,0 @@
-Copyright (c) 1995, 1996, 1997 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. 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
- 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.
-
-
-
-Copyright (C) 1995 Eric Young (eay@mincom.oz.au)
-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 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. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by Eric Young (eay@mincom.oz.au)
-
-THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 AUTHOR 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.
-
-
-
-Copyright (c) 1983, 1990 The Regents of the University of California.
-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. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-
-4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
-
-
-
-Copyright (C) 1990 by the Massachusetts Institute of Technology
-
-Export of this software from the United States of America is assumed
-to require a specific license from the United States Government.
-It is the responsibility of any person or organization contemplating
-export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
-
-
-Copyright 1987, 1989 by the Student Information Processing Board
- of the Massachusetts Institute of Technology
-
-Permission to use, copy, modify, and distribute this software
-and its documentation for any purpose and without fee is
-hereby granted, provided that the above copyright notice
-appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation,
-and that the names of M.I.T. and the M.I.T. S.I.P.B. not be
-used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-M.I.T. and the M.I.T. S.I.P.B. make no representations about
-the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-
-
-Copyright 1992 Simmule Turner and Rich Salz. All rights reserved.
-
-This software is not subject to any license of the American Telephone
-and Telegraph Company or of the Regents of the University of California.
-
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it freely, subject
-to the following restrictions:
-
-1. The authors are not responsible for the consequences of use of this
- software, no matter how awful, even if they arise from flaws in it.
-
-2. The origin of this software must not be misrepresented, either by
- explicit claim or by omission. Since few users ever read sources,
- credits must appear in the documentation.
-
-3. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original software. Since few users
- ever read sources, credits must appear in the documentation.
-
-4. This notice may not be removed or altered.
-
diff --git a/crypto/kerberosIV/ChangeLog b/crypto/kerberosIV/ChangeLog
deleted file mode 100644
index 146748835025..000000000000
--- a/crypto/kerberosIV/ChangeLog
+++ /dev/null
@@ -1,3761 +0,0 @@
-Tue Jun 3 1997
-
- * Release 0.9.6
-
- * appl/kx/rxtelnet.in, appl/kx/rxterm.in: new argument '-w
- term_emulator' for specifiying which terminal emulator to use.
- Based on a patch from <arve@nada.kth.se>.
-
-Mon Jun 2 1997
-
- * appl/xnlock/Makefile.in, appl/kx/Makefile.in,
- lib/auth/Makefile.in: fix the Makefile to do the for loops the
- automake way.
-
-Sun Jun 1 1997
-
- * appl/xnlock/Makefile.in, appl/kx/Makefile.in: do install
- correctly even if there are no programs to install
-
- * configure.in: Check for `h_nerr'.
-
- * lib/auth/pam/pam.c: Include <security/pam_appl.h> to make it
- compile on Solaris 2.6
-
- lib/sl/sl.c, lib/krb/realm_parse.c, appl/ftp/ftpd/popen.c,
- appl/ftp/ftpd/ftpd.c, appl/bsd/login_fbtab.c,
- appl/bsd/login_access.c: Initialize the `lasts' to NULL before
- calling strtok_r the first time. With our strtok_r it's not
- necessary, but the man-page on SGIs says it should be done.
-
-Fri May 30 1997
-
- * lib/krb/mk_req.c (krb_mk_req, get_ad_tkt): Support for
- multi-realm ticket files by using the best matching TGT to define
- the realm of the ticket holder.
-
-
- * appl/bsd/utmpx_login.c (utmpx_update): Set `ut_id' if we're
- using utmpx
-
- * appl/telnet/telnetd/sys_term.c (start_login): Set `ut_id' if
- we're using utmpx
-
-Wed May 28 1997
-
- * lib/roken/daemon.c: New file.
-
- * include/protos.H: <sys/types.h> needed on solaris 2.4
-
-Mon May 26 1997
-
- * appl/bsd/su.c (kerberos): If kerberos password is zero length
- immediately try next scheme.
-
-
- * lib/kafs/afskrb.c (k_afsklog_uid): Token lifetime should be even
- if we don't know the proper ViceId.
-
-
- * Release 0.9.5
-
- * man/Makefile.in: Install preformatted manual pages with correct
- suffix on *BSD.
-
-Sun May 25 1997
-
- * appl/kpopper/popper.h: Remove XTND, and XTND XMIT. Rename XTND
- XOVER to XOVER.
-
-
- * appl/telnet/telnetd/sys_term.c: Only include <utmp.h> and
- <utmpx.h> once
-
- * fix-export: Also create cat manpages.
-
- * appl/ftp/ftpd/logwtmp.c: Check for `_PATH_WTMP'
-
- * appl/telnet/telnetd/sys_term.c: Ditto.
- Remove stupid macros.
-
- * appl/ftp/ftp/cmds.c (setpeer): Check for `__unix'. This is
- (apparently) a standard with many representations.
-
- * appl/ftp/ftpd/ftpcmd.y (SYST): Ditto.
-
- * appl/ftp/ftpd/ftpd.c (retrieve): file must exist to apply a
- command to it.
-
- * appl/ftp/ftpd/ftpd.c (retrieve): Generalise list of commands and
- basename argument.
-
- * appl/ftp/ftpd/popen.c (ftpd_popen): Try standard binary if the
- one in ~ftp fails.
-
- * appl/telnet/telnetd/sys_term.c: Use `_getpty' if there's one
-
- * appl/bsd/forkpty.c: Use `_getpty' if there's one
-
- * configure.in: check for `_getpty'
-
- * acconfig.h: correct test for IRIX
-
- * lib/roken/snprintf.c: code for checking the correct functioning
- of *nprintf is now #ifdef PARANOIA
-
- * appl/bsd/rlogind.c: fix logging in wtmp and parsing of winsize
-
- * appl/bsd/rlogin.c: New option `-p'.
-
- * lib/des/fcrypt.c: removed `inline' from `des_set_key'
-
-Thu May 22 1997
-
- * lib/des/md5.c (MD5Final): Made signature compliant with FreeBSD.
-
- * lib/des/md5.h: Remove digest from MD5_CTX, it is now an argument
- to MD5Final instead.
-
- * lib/des/fcrypt.c: Also support MD5 style crypt(2).
-
-Tue May 20 1997
-
- * appl/telnet/telnetd/sys_term.c: utmp stuff now seems to be
- compatible with login
-
- * appl/ftp/ftpd/logwtmp.c: Add support for logging to wtmpx
-
-
- * (*/)*/Makefile.in:s (install): Avoid redundant multiple
- recursion in install targets.
-
- * Made things compile with socks5-v1.0r1.
-
-
- * appl/telnet/telnetd/sys_term.c: changed utmp-stuff not to use
- ut_id at all
-
- * appl/bsd/utmpx_login.c: handle case where there's no wtmpx (such
- as HP-UX 10)
-
- * appl/bsd/rlogind.c: Added support for utmpx
-
-Sun May 18 1997
-
- * lib/roken: removed herror, strchr, and strrchr
-
- * lib/krb/dest_tkt.c(dest_tkt): Only use `lstat' iff HAVE_LSTAT
-
- * lib/krb: snprintf, strdup, strtok_r, and strcasecmp always live
- in lib/roken and get linked here when needed.
-
- * lib/roken: removed strchr, strrchr.
-
- * appl/telnet/telnet/telnet.c: Always use our own `setupterm' for
- compatibility reasons.
-
- * appl/telnet/telnetd/telnetd.c: Removed <curses.h> and <term.h>.
- They doesn't seem to be used and breaks on fujitsu.
-
- * appl/kx/kx.c: try to give a better error message (than a core
- dump :-) when talking to an old kxd.
-
- * appl/kx/kxd.c, appl/kip/kipd.c, appl/kauth/kauthd.c: corrected
- fencepost error with KRB_SENDAUTH_VLEN.
-
- * appl/ftp/common/buffer.c: new file.
-
- * configure.in: cray hides their bitypes in <bind/bitypes.h>.
- Also check for this file.
-
- * appl/telnet/telnet/telnet_locl.h: moved termios.h before
- curses.h. This was needed to compile on cray, but will probably
- break on some other host.
-
-Thu May 15 1997
-
- * server/kerberos.c: Implement changes to the tcp protocol, while
- being compatible with the old protocol.
-
- * lib/krb/send_to_kdc.c: The old method to signal end of
- transmission by closing the sending side of the socket does not
- work well through some firewalls. This is now changed so that the
- client instead sends the length of the request as a four byte
- integer (in network byte order) before sending the data.
-
-Wed May 14 1997
-
- * appl/telnet/telnetd/sys_term.c: HAVE_UTMPX -> HAVE_UTMPX_H. Fix
- for OSF1.
-
- * appl/bsd/utmp_login.c: UTMPX_DOES_UTMP_LOGGING -> HAVE_UTMPX_H
-
- * appl/bsd/sysv_environ.c: Use k_concat rather than snprintf.
-
-Tue May 13 1997
-
- * kuser/klist.c: updated usage string
-
- * lib/otp/otp_print.c: make word table and reverse word table
- constant
-
-Sun May 11 1997
-
- * */*: Added some __attribute__ ((format (printf))) and fixes
- where needed.
-
- * appl/ftp/common/sockbuf.c: start probing at 4Mb
-
- * appl/ftp/ftpd/ftpd.c: use MAP_FAILED
-
- * appl/ftp/ftp/ftp.c: Use MAP_FAILED.
- (alloc_buffer): new function for allocating a buffer of size
- max(BUFSIZ, st.st_blksize) (Based on a patch from
- <haba@pdc.kth.se>)
-
- * appl/ftpd/ftpdcmd.y: hack for reget.
-
- * appl/kx/kxd.c: Give a error message to old-version kx.
-
- * replaced vsprintf with vsnprintf.
-
- * lib/roken/vsyslog.c: not used. removed.
-
- * Changed <sys/bitypes.h> -> <ktypes.h>
-
- * include/Makefile.in: Added ktypes.h
-
- * include/sys/Makefile.in: removed bitypes.h
-
-Wed May 7 1997
-
- * appl/ftp/ftp/ftp.c: Open files in binary mode.
-
- * appl/ftp/ftpd/ftpd.c (checkaccess): Changed to make absent file
- mean `allow'. Added shell matching to names (if fnmatch is
- available).
-
-
- * appl/ftp/ftpd/kauth.c (kauth): Use `DEFAULT_TKT_LIFE'
-
- * appl/ftp/ftpd/ftpcmd.y, appl/ftp/ftpd/ftpd.c: always cast to
- (long) before printing out an `off_t'
-
- * lib/kdb/print_princ.c (krb_print_principal),
- lib/kdb/krb_lib.c (kerb_put_principal),
- admin/kdb_edit.c (change_principal),
- admin/kdb_util.c (print_time) : gmtime should never return
- tm_year > 1900
-
- * appl/ftp/ftpd/ftpcmd.y: Year 2000 fix
-
- * appl/telnet/telnetd/telnetd.c: removed code that used `getent'
-
- * lib/roken/getent.c: removed
-
-Mon May 5 1997
-
- * appl/ftp/ftpd/ftpd.c: fix for mmap and restart_point
-
- * kadmin/ksrvutil_get.c (ksrvutil_get): get correct default realm
-
-Sun May 4 1997
-
- * configure.in (REAL_PICFLAGS): Use `-fPIC' instead of `-fpic',
- otherwise it's not possible to make libotp on hpux.
-
- * configure.in: try sending picflags even when linking a shared
- library with $CC
-
- * lib/roken/getent.c: remove getstr
-
- * configure.in: removed unneeded REAL_-variables working shared
- libraries on *bsd*
-
- * appl/kip/kip.h: Added <net/if_var.h>
-
- * */Makefile.in: Use @LDSHARED@
-
- * configure.in: Fix shared libraries on HP/UX.
- check for curses.h
- check for `getstr' and `cgetstr' in curses
-
- * appl/telnet/telnet: clean-up
-
- * lib/kafs/afssys.c: ifdef-out the code that is not used to avoid
- referencing `syscall' on AIX.
-
- * lib/krb/et_list.c: s/WEAK_PRAGMA/PRAGMA_WEAK/
-
- * aclocal.m4 (AC_HAVE_PRAGMA_WEAK): redirect output
-
- * lib/roken/snprintf.c: fix for the case of max_sz == 0
-
- * doc/kth-krb.texi: Add @dircategory and @direntry to enable
- `install-info' to install this entry in `dir'.
-
- * appl/telnet/telnetd/Makefile.in: Don't link with getstr
-
-
- * lib/auth/sia/krb4_matrix.conf: Fix entries for ses_release and
- chk_user.
-
-Sat May 3 1997
-
- * lib/auth/sia/sia.c: Some cleanup.
-
-Fri May 2 1997
-
- * configure.in: only link the programs that need it with the
- db/dbm library
-
-
- * lib/auth/sia/sia.c: Merge code for for normal and su
- authentication.
-
-
- * Replaced sprintf with snprintf and asprintf all over the place.
-
- * lib/roken/snprintf.c: Added asnprintf and vasnprintf
-
- * lib/roken/snprintf.c: implemented asprintf, vasprintf
-
- * lib/roken/snprintf.c: new file
-
-Thu May 1 1997
-
- * lib/kafs/afskrb.c (k_afsklog_all_local_cells): Use `k_concat'
-
-Wed Apr 30 1997
-
- * lib/krb/{get_host,get_krbrlm,getrealm,realm_parse}.c: Fix some
- potential buffer overruns.
-
- * lib/krb/k_concat.c: Safely concatenate two strings.
-
-Sat Apr 26 1997
-
- * appl/telnet/libtelnet/kerberos.c: removed stupid #if 0
-
- * appl/bsd/rlogind.c (send_oob): different default for `last_oob'
- to avoid losing first OOB packet
-
-Fri Apr 25 1997
-
- * appl/voodoo/AuthOption.cpp: provoke the telnetd in turning on
- encryption
-
-Wed Apr 23 1997
-
- * lib/kafs/afskrb.c (realm_of_cell): don't overflow buffer with
- result from `gethostbyaddr'
-
- * lib/krb/name2name.c (krb_name_to_name): new parameter
- `phost_size' to disable buffer overflowing. Changed all callers.
-
- * lib/krb/k_getsockinst.c: New parameter `inst_size' to disable
- buffer overflowing. Changed all callers.
-
- * appl/kpopper/Makefile.in: soriasis make stupidity
-
- * appl/kx/Makefile.in: don't include encdata.c in SOURCES_COMMON,
- otherwise DEC make gets upset.
-
-Tue Apr 22 1997
-
- * lib/krb/k_getsockinst.c: Use same name as in krb_get_phost.
-
-
- * acconfig.h: hp-ux 10 also has `pututxline' that writes both to
- utmp and utmpx.
-
-Sun Apr 20 1997
-
- * include/win32/config.h: adapted to win95/NT
-
- * appl/voodoo: Merged in win32-telnet from <d93-jka@nada.kth.se>
-
- * lib/krb/tkt_string.c: dummy `getuid' function.
-
- * lib/krb/ticket_memory.c (tf_setup): implement
-
- * lib/roken/roken.mak, roken.def: new files
-
- * lib/des/des.def: Removed des_random_{seed,key}
-
- * lib/krb/dllmain.c: Rewrote `msg'.
- Better explanation when it fails to spawn `krbmanager'.
-
- * lib/krb/tf_util.c: backwards `in_tkt' added.
-
- * lib/krb/in_tkt.c: removed
-
- * lib/kclient/KClient: Reformatted and fixed.
-
-Sat Apr 19 1997
-
- * appl/ftp/ftpd/ftpd.c: Incorporate /etc/ftpusers changes from
- NetBSD.
-
- * appl/ftp/ftpd/ftpd.c: Handle oob-stuff better.
-
-Fri Apr 18 1997
-
- * appl/kpopper/pop_{dropinfo,send,updt}.c: Fix 'From ' line
- parsing bug.
-
- * appl/kpopper/pop_dropinfo.c: Add support for xover.
-
- * appl/kpopper/pop_xover.c: Add some kind of xover support.
-
- * appl/kpopper/pop_debug.c: New tiny popper debugging program.
-
-Tue Apr 15 1997
-
- * lib/krb/kdc_reply.c (kdc_reply_cred): fix sanity checks.
-
- * appl/bsd/rshd.c: k_afsklog so that remote command gets a token.
- fix usage string.
-
-Sat Apr 12 1997
-
- * appl/bsd/rcp.c (main): Rcp implements encrypted file transfer
- without using the kshell service.
-
-
- * lib/krb/mk_safe.c: Emit new checksum.
-
- * lib/krb/rd_safe.c: New code to handle both new and old
- checksums.
-
- * lib/des/qud_cksm.c: Fix compatibility with mit deslib.
-
-Fri Apr 11 1997
-
- * lib/sl/sl.c (sl_match): initialize `partial_cmd'
-
-Sun Apr 6 1997
-
- * lib/kafs/kafs.h: Ugly addition of `_P'
-
- * lib/kafs/afssys.c: <sys/socket.h> contains the definition of
- `_IOW' on cygwin32.
-
- * appl/telnet/telnet/utilities.c: <sys/socket.h> needed by
- cygwin32
-
- * doc/Makefile.in: always run $(MAKEINFO).
-
- * lib/otp/otp_md.c (sha_finito_little_endian): byte-swap
- correctly.
-
- * include/sys/bitypes.H: Added #ifndef for types
-
- * configure.in: test for types
-
- * aclocal.m4: Stolen AC_GROK_TYPES? from heimdal
-
-
- * appl/ftp/ftp/ftp.c: Fix passive mode.
-
-Sat Apr 5 1997
-
- * appl/kauth/ksrvtgt.in: New ksrvtgt script.
-
-Fri Apr 4 1997
-
- * lib/krb/kdc_reply.c: Add some range checking.
-
-
- * lib/otp/otptest.c: Updated tests from `draft-ietf-otp-01.txt'.
- Passes verification examples from appendix C.
-
- * admin/kdb_util.c: All usage strings are now consistent (and even
- with the code)!
-
-Thu Apr 3 1997
-
- * lib/kafs/afssys.c (k_pioctl): Separate syscall functionality and
- kerberos convenience routines into afssys.c and afskrb.c. This to
- make it possible to use k_pioctl() without linking in all
- libraries in the world.
-
-Tue Apr 1 1997
-
- * appl/telnet/telnet/commands.c: Rename suspend to telnetsuspend,
- since Unicos has one of its own.
-
-Sun Mar 30 1997
-
- * appl/bsd/{rsh,rlogin}.c: Don't look at argv[0].
-
-
- * man/tenletxr.1: new file
-
- * appl/kx/rxtelnet.in, appl/kx/rxterm.in, appl/kx/tenletxr.in:
- Support `-k'
-
- * appl/kx/tenletxr.in: new script for running kx in backwards
- mode.
-
- * appl/kx: New version of protocol.
-
- * appl/kauth: Use err & c:o
-
- * appl/kauth/encdata.c (read_encrypted): Give better return code
- for EOF
-
-
- * appl/ftp/ftp/krb4.c: Use stdout rather than stderr. Add newlines
- to many strings.
-
- * kuser/kdestroy.c: Use set_progname, make -q equal to -f, remove
- bell.
-
- * lib/roken/warnerr.c: New function set_progname.
- * aclocal.m4: Invert test of AC_NEED_DECLARATION and rename it to
- AC_CHECK_DECLARATION. Add new function AC_CHECK_VAR, that looks
- for a variable, including a declaration.
-
- * lib/roken/roken.h: Add optional declaration for __progname.
-
- * lib/roken/*{err,warn}.c: Restructure err and warn functions.
-
-Sat Mar 29 1997
-
- * appl/telnet/telnet/sys_bsd.c: Maybe-fix for HP-UX 10: Ifdef
- SO_OOBINLINE, don't even select for exceptional conditions.
-
- * lib/otp/otp_md.c: always downcase the seed.
- byte-swap the SHA result.
-
-Thu Mar 27 1997
-
- * appl/otp/otp.c: removed bad free of global data
-
-Sun Mar 23 1997
-
- * configure.in: moved version.h and config.h to include
-
-
- * acconfig.h: Fix utmp/utmpx stuff on OSF/1.
-
-
- * appl/bsd/rlogind.c (control): Rewritten to handle the case of
- there being no `ws_xpixel' and `ws_ypixel'
-
- * appl/bsd/rlogin.c (sendwindow): Rewritten to handle the case of
- there being no `ws_xpixel' and `ws_ypixel'
-
- * aclocal.m4 (AC_KRB_STRUCT_WINSIZE): Also test for `ws_xpixel'
- and `ws_ypixel'
-
- * lib/otp/otp.h: Change default global timeout
-
- * lib/krb/tf_util.c (tf_setup): Also take `pname' and `pinst'
-
- * appl/telnet/telnetd/sys_term.c, appl/bsd/utmpx_login.c: Do
- gettimeofday and then copy the data for the sake of those systems
- like SGI that can have different timevals in file and memory.
-
- * configure.in: Allow `--with-readline'
-
- * lib/editline/edit_compat.c (readline): strdup data before
- returning it.
-
-
- * appl/telnet/telnetd/state.c: Change size of subbuffer to 2k.
-
-Thu Mar 20 1997
-
- * lib/krb/decomp_ticket.c: Add some range checking.
-
- * appl/ftp/ftpd/krb4.c: Check return value from krb_net_write.
-
- * appl/ftp/ftp/ftp.c: Fix hash mark printing.
-
-Wed Mar 19 1997
-
- * appl/kauth/kauthd.c: more logging
-
- * man/kx.1, man/kxd.8: Updated.
-
- * appl/kx/kx.c, kxd.c: Hacked so that all TCP-connections are kx
- -> kxd
-
-
- * lib/editline/edit_compat.c: BSD libedit comatibility.
-
-Wed Mar 12 1997
-
- * appl/ftp/ftpd/ftpd.c: Set `byte_count' even when using mmap.
- Log foreign IP address together with hostname.
-
-Mon Mar 10 1997
-
- * server/kerberos.c: Fix log file muddle.
-
-Sun Mar 9 1997
-
- * appl/bsd/kcmd.c (kcmd): check malloc for failure.
-
-Tue Feb 25 1997
-
- * man/ftpd.8: Documented the `-g' option.
-
- * appl/ftp/ftpd/ftpd.c: New option `-g umask' for specifying the
- umask for anonymous users.
-
- * appl/ftp/ftpd/ftpd.c: conditionalize SIGURG
-
- * appl/otp/otp.c: More fixes from Fabien COELHO
- <coelho@cri.ensmp.fr>. Check for current OTP before allowing the
- update.
-
-Wed Feb 19 1997
-
- * appl/otp/otp.c: updated help string
-
- * appl/bsd/Makefile.in: Fixed installation of suid programs.
-
- * appl/telnet/libtelnet/kerberos.c: fix some stuff to get
- forwarding code to compile
-
- * lib/otp/otp_db.c: fix for signed char overflow.
-
-
- * lib/krb/resolve.c: Patch from Jörgen Wahlsten
- <wahlsten@pathfinder.com>: Zero out resource record, and send
- correct length to dn_expand.
-
-Mon Feb 17 1997
-
- * lib/roken/roken.h: Check for `_setsid'
-
- * appl/ftp/ftp/ftp.c: s/__CYGWIN32__/HAVE_H_ERRNO/
-
- * include/Makefile.in: Generete krb_err.h and kadm_err.h before
- linking/copying them
-
- * aclocal.m4: AC_FIND_FUNC: Add the library at the beginning of
- the list.
-
- * configure.in: Use AC_PROG_RANLIB
- Always use EMXOMF under OS/2
- Check for sys/termio.h and _setsid
-
-
- * configure.in: A preliminary fix for editline.
-
- * appl/telnet/libtelnet/kerberos.c: Include ticket forwarding
- stuff.
-
- * lib/krb/krb_get_in_tkt.c: Use tf_setup.
-
- * lib/krb/krb_get_in_tkt.c: New function tf_setup.
-
-Sat Feb 15 1997
-
- * man/otp.1: updated
-
- * appl/otp/otp.c: New options `-d' and `-r'. From Fabien COELHO
- <coelho@cri.ensmp.fr>
-
- * lib/otp/otp.h: Changed default from md4 to md5
- * lib/otp/otp_db.c (otp_get, otp_simple_get): New functions.
-
-Thu Feb 13 1997
-
- * appl/kx/rxtelnet.in: allow specification of port number
-
- * appl/otp/otp.c: Add `-u' option
-
-Sun Feb 9 1997
-
- * appl/ftp/common/glob.c: Rename FOO -> CHAR_FOO to avoid
- collision with symbol in sys/ioctl.h
-
-Fri Feb 7 1997
-
- * man/kpropd.8: updated
-
- * appl/bsd/rcmd_util.c: warning needs to know what program is
- used.
-
- * slave/kpropd.c: New explicit flag `-i' for interactive. Don't
- use AI to figure out if we have been started by inetd or not.
-
-Thu Feb 6 1997
-
- * appl/kx/rxtelnet.in, appl/kx/rxterm.in: Patch for sending -l to
- kx. From <map@stacken.kth.se>
-
- * kuser/klist.c: corrected alignment of `expired'
-
- * appl/telnet/telnet/commands.c: replaced lots of \n by \r\n
-
-Mon Feb 3 1997
-
- * configure.in (socket, gethostbyname, getsockopt, setsockopt):
- Better tests.
- (HAVE_H_ERRNO): New test
-
- * lib/roken/herror.c (herror): Check HAVE_H_ERRNO
- lots of other files as well.
-
-Sat Feb 1 1997
-
- * appl/bsd/rcp.c: Work around the non-working getpw* in cygwin32
-
- * lib/krb/logging.c: Init function for `std_log´
-
- * appl/telnet/telnet/utilities.c: Remove `upcase´
- Check HAVE_SETSOCKOPT
-
- * appl/telnet/telnet/telnet.c: Use `strupr´ instead of `upcase´
-
- * appl/telnet/telnet/commands.c, appl/movemail/pop.c,
- appl/kauth/rkinit.c, appl/ftp/ftp/ftp.c,
- appl/sample/sample_client.c: Ifdef around for the non-existence of
- `h_errno' in cygwin32.
-
- * lib/des/read_pwd.c: work-around for cygwin32
-
- * appl/telnet/telnet/sys_bsd.c: work-around for cygwin32
-
-Fri Jan 31 1997
-
- * lib/krb/tf_util.c: gnu-win32 needs to open files with O_BINARY.
-
-Sun Jan 26 1997
-
- * configure.in: removed duplicate of initgroups and lstat
- Use AC_KRB_STRUCT_WINSIZE
-
- * aclocal.m4 (AC_KRB_STRUCT_WINSIZE): New test
-
- * lib/krb/getaddrs.c: Check for SIOCGIFFLAGS and SIOCGIFADDR
-
- * appl/bsd/rlogin.c: conditional on SIGWINCH
-
- * appl/bsd/rcmd_util.c et al: conditional getsockopt
-
- * configure.in (cygwin32): New target
- (getsockopt, getsockopt): Test for
- (herror, hstrerror): Better tests
-
- * aclocal.m4 (AC_FIND_IF_NOT_BROKEN): Pass arguments to
- AC_FIND_FUNC
-
-Thu Jan 23 1997
-
- * configure.in: Add EXECSUFFIX
-
- * appl/kx/rxterm.in: rsh -n
-
- * lib/krb/unparse_name.c (krb_unparse_name_long_r): new function
-
-
- * lib/auth/sia/sia.c: Fix a bug with ticket filename. Add afs
- support.
-
- * lib/krb/get_host.c: Use KRB_SERVICE.
-
-Wed Jan 22 1997
-
- * lib/auth/sia/Makefile.in: Add linker magic fix for broken,
- conflicting kerberos code in xdm.
-
-Tue Jan 21 1997
-
- * appl/xnlock/xnlock.c (verify): Change the "LOGOUT" password to
- be manageable as X-resource XNlock*logoutPasswd. The password is
- stored in UNIX crypt format so that it can be stored in a global
- resource file for sites that whish to keep it a secret.
-
-
- * configure.in: Check for winsize in sys/ioctl.h also.
-
-Sat Jan 18 1997
-
- * lib/krb/get_default_principal.c: Use principal from
- KRB4PRINCIPAL before using uid.
-
-Wed Jan 15 1997
-
- * appl/telnet/telnet/sys_bsd.c: Use `get_window_size'
-
- * lib/roken/get_window_size.c: New file
-
- * appl/bsd/rlogin.c: Use `get_window_size'
-
- * appl/bsd/forkpty.c, appl/bsd/rlogind.c: conditionalize on
- TIOCSWINSZ
-
- * configure.in: Check for `_scrsize' and `struct winsize'
-
-Tue Jan 14 1997
-
- * Makefile.in (install-strip, travelkit-strip): New targets.
-
-Thu Jan 9 1997
-
- * */Makefile.in: Use @foo_prefix@ and @program_transform_name@
- Add code to uninstall target
-
-Thu Dec 19 1996
-
- * configure.in: Set LIBPREFIX
-
- * config.sub: Add os2 as a system
-
- * config.guess: Try to recognize i386-pc-os2_emx
-
- * configure.in: case for *-*-os2_emx
- NEED_PROTO for `strtok_r'
-
- * aclocal.m4: ranlib is apparently calld EMXOMF on OS/2
- (AC_KRB_PROG_LN_S): New test that uses cp if ln fails
-
-Wed Dec 18 1996
-
- * appl/bsd/login.c (main): First try to verify password using
- standard UNIX method and if it fails try kerberos authentication.
-
-Sat Dec 14 1996
-
- * appl/bsd/rcp.c: consider case of no fchmod
-
- * appl/kpopper/pop_init.c: Use k_getsockinst.
-
- * lib/roken/{strupr,strlwr,strchr,strrchr,lstat,initgroups,chown,
- fchown,rcmd}.c: new files
-
- * appl/kpopper/pop_lower.c: Removed.
-
- * Makefile.in (travelkit): New target.
-
-Tue Dec 10 1996
-
- * lib/krb/parse_name.c (kname_parse): Only copy realm if it is
- specified.
-
- * lib/krb/get_host.c (krb_get_host): Treat no realm as local
- realm.
-
-Mon Dec 9 1996
-
- * appl/ftp/ftpd/ftpd.c: Get afs-tokens when logging in with
- password.
-
-
- * slave/kprop.c: flock with K_LOCK_SH
-
-Wed Dec 4 1996
-
- * appl/telnet/telnet/commands.c: Also export XAUTHORITY
-
-Sun Dec 1 1996
-
- * kadmin/ksrvutil.c: If realm is not specified, use the local one.
-
-Sat Nov 30 1996
-
- * appl/kauth/kauthd.c: Use KAUTH_VERSION. Try to give correct
- error messages back to kauth.
-
- * config.sub, config.guess: Merged in changes from autoconf 2.12
-
- * appl/bsd/rsh.c: quick hack to make `-n' to the right thing.
-
- * kadmin/kadm_locl.h: Add prototype for FascistCheck.
-
-Thu Nov 28 1996
-
- * man/afslog.1: Documented `-createuser'
-
- * appl/afsutil/aklog.c: removed `cell_of_file' Added option
- `-createuser' to run pts to create a foreign principal.
-
-Tue Nov 26 1996
-
- * lib/otp/otp_challenge.c: Initialize error string and check for
- NULL from strdup.
-
- * lib/roken/mini_inetd.c: Initialize `sin_family'
-
- * appl/kpopper/pop_init.c: Add `-p' option and make `-a'
- auth-style
-
- * appl/bsd/rshd.c: Add `-p' option.
-
- * appl/bsd/rlogind.c: Handle `-p' correctly.
-
- * appl/bsd/login.c: Removed confusing initialization of
- `login_timeout'
-
- * appl/kpopper/pop_dropinfo.c: Remove white-space at the beginning
- of UIDL-string.
-
-Sun Nov 24 1996
-
- * Release 0.9.3
-
-Sat Nov 23 1996
-
- * kadmin/ksrvutil_get.c: Use `krb_unparse_name_long' Better
- defaults.
-
- * lib/krb/krb.h: Added *_to_key
-
- * lib/krb/get_svc_in_tkt.c (srvtab_to_key): Make public
-
- * kadmin/kadmin.c (do_init): `-p' is a synonym for `-u'
- (do_init): more logical defaults
- (help): removed old code
- better error messages
-
- * lib/krb/get_in_tkt.c (passwd_to_key, passwd_to_afskey): Export
- and remove functionality for reading passwords.
-
- * lib/sl/sl.c: Nicer help output.
-
- * lib/otp/otp_challenge.c: Initialize `challengep'
-
- * lib/krb/Makefile.in: Removed get_pw_tkt.c
-
-Fri Nov 22 1996
-
- * lib/auth/sia/sia.c: Now compiles under Digital UNIX 4.0.
-
-Wed Nov 20 1996
-
- * lib/auth/pam/pam.c: Chown ticketfile to correct GID.
-
-Tue Nov 19 1996
-
- * appl/kx/rxtelnet.in: Try to set the screen number as well.
-
- * Be careful not to thrust `h_length' from gethostby{name,addr}
-
- * appl/bsd/rcmd_util.c (ip_options_and_die): New function.
-
- * configure.in: moved headers before functions.
- call AC_PATH_XTRA_XTRA.
- Add strchr, index, rindex, and strrchr to AC_CHECK_FUNCS.
- remove strchr and strrchr, add strtok_r from/to AC_BROKEN.
-
- * aclocal.m4 (AC_PATH_XTRA_XTRA): New macro.
-
- * aclocal.m4 (AC_FIND_FUNC, AC_FIND_FUNC_NO_LIBS): Two new
- arguments: includes and arguments)
-
- * configure.in: Need to supply arguments and includes to test for
- `res_search' and `dn_expand'
-
- * lib/kafs/afssys.c (k_setpag): Handle AFS_SYSCALL3
-
- * Use `k_getpw{nam,uid}' instead of getpw{nam,uid}.
-
- * Replace lots of `strtok' with `strtok_r'.
-
- * lib/sl/sl.c: Allow unlimited number of arguments. Use
- `strtok_r' to divide up string into arguments.
-
- * lib/roken/roken.h: Added `strtok_r'
-
- * configure.in: Test for `strtok_r'
-
- * include/Makefile.in: Don't build in ss
-
- * Makefile.export: Fixed ChangeLog-generation
-
- * lib/sl/sl.c: Let `readline' to the \n-removal. Handle empty
- lines. Don't store empty lines in the history.
-
-Mon Nov 18 1996
-
- * lib/sl/sl.c: Use readline compatible i/o.
-
-
- * lib/otp/otp_locl.h: Changed location of otp database to /etc
-
- * appl/otp/Makefile.in: Install otp setuid root.
-
- * util/Makefile.in: don't build SS
-
- * lib/sl: New directory.
-
- * kadmin/kadmin.c: Replaced SS by SL.
-
-Sun Nov 17 1996
-
- * kadmin/kadm_funcs.c: Improved log messages.
-
-
- * Use KRB_TICKET_GRANTING_TICKET.
-
-
- * server/kerberos.c: Don't do any special logging when running as
- slave.
-
-
- * Lots of files: remove unnecessary `(void)'
-
- * Lots of files: remove unnecessary `register' declaration.
-
-
- * lib/krb/get_host.c: Only keep list of hosts from requested
- realm.
-
-
- * man/otpprint.1, otp.1: New files.
-
- * appl/otp/otp.c: `-s' is now default.
-
- * appl/otp/otp.c: removed count
-
- * lib/des/destest.c: more general quad_cksum test.
-
- * lib/otp/otp_print.c (otp_print_stddict_extended,
- otp_print_hex_extended): New functions.
-
- * lib/otp/otptest.c: New file.
-
-
- * appl/ftp/ftpd/ftpd.c: Change default auth level to what was
- formerly known as `user'.
-
- * appl/ftp/ftpd/ftpd.c: Orthogonalize arguments to -a
-
-
- * appl/kip/kip.c: Try all addresses we get back from the name
- server.
-
- * kadmin/kpasswd.c: updated to new functions.
-
- * lib/otp/otp_db.c (otp_db_open): Do a few retries. Unlock in
- case this file cannot be opened.
-
- * doc/kth-krb.texi: New chapter about OTPs.
-
- * appl/otp/otpprint.c, appl/otp/otp.c: Use OTP_ALG_DEFAULT.
- Consistent language Check return value from des_read_pw_string.
-
- * lib/otp/otp.h: Add OTP_ALG_DEFAULT
-
-
- * lib/krb/parse_name.c: New function krb_parse_name
-
-Sat Nov 16 1996
-
- * appl/bsd/login.c: removed S/Key.
- Added OTP with option `-a otp'
- Reorganized verification loop.
-
- * appl/bsd/Makefile.in (login): Remove skey and add OTP
-
- * configure.in: Test for `uid_t' and `off_t'
-
- * appl/telnet/telnetd/telnetd.c: Removed `-s' for securID and
- added `-a otp' for OTP.
-
- * appl/kpopper: removed s/key and added OTP support. Updated
- man-page.
-
- * lib/otp/otp.h: more fields in the struct and a new function.
-
- * appl/ftp/ftpd/ftpd.c: Full OTP support.
-
- * appl/kx/rxterm.in: Add options: -l username, -r args_to_rsh, and
- -x args_to_xterm
-
- * appl/kx/rxtelnet.in: Add options: -l username, -t
- args_to_telnet, and -x args_to_xterm
-
- * man/kx.cat1: regenerated
-
- * man/kx.1: Added `-l' option.
-
- * appl/kx/kxd.c: Accept username from `kx'
-
- * appl/kx/kx.c: Introduced option `-l user' to be able to login as
- some other user.
-
-Fri Nov 15 1996
-
- * appl/kx/kx.c: Print out display and not display_nr
-
- * lib/auth/Makefile.in: Fix the case with empty SUBDIRS.
-
- * */Makefile.in: Use $(LN_S) instead of ln -s
-
- * */Makefile.in: Add @SET_MAKE@
-
- * doc/latin1.tex: New file.
-
- * doc/kth-krb.texi: Use latin1.tex to be able to use one letter
- that some bear seem to think is important.
-
- * doc/kth-krb.texi: Added acknowledgements.
-
- * lib/auth/Makefile.in: Only build relevant subdirectories.
-
- * configure.in: Set @LIB_AUTH_SUBDIRS@ to the subdirectories of
- lib/auth that should be built.
-
-
- * lib/kafs/afssys.c: Only get tokens for each cell once.
-
-Thu Nov 14 1996
-
- * man: Added man pages for movemail(1) and kerberos(8).
-
-
- * kadmin/kadmin_cmds.ct: Add `add' for add_new_key and `passwd'
- for change_password.
-
-
- * lib/krb/logging.c: Now actually compiles!
-
-
- * config.{guess,sub}: Merge changes from Autoconf
-
-
- * lib/krb/{recv,send}auth.c: Don't return errno if there is a
- system error.
-
-Wed Nov 13 1996
-
- * util/ss/Makefile.in: Now even compiles with BSD make!
-
- * appl/kx: Now send the complete display from `kxd' to `kx'. This
- should enable it to work better with Xlibraries that don't support
- unix sockets.
-
- * kuser/klist.c: conditionally include <sys/ioctl.h> and
- <sys/ioccom.h> before <kafs.h>
-
- * lib/krb/resolve.h: Add fallback for `T_TXT'.
-
- * appl/otp/otp.c: removed print-functionality.
-
- * appl/otp/otpprint.c: New file.
-
- * appl/otp/Makefile.in: New program `otpprint'
-
- * lots of Makefile.in: Now should be possible to build with makes
- that have broken VPATH-handling.
-
- * configure.in: Always replace REAL_SHARED & c:o so that some
- libraries may be built as shared.
- Removed unused AC_SUBST.
- Only build afskauthlib on irix.
-
- * lib/auth/afskauthlib/Makefile.in, lib/auth/sia/Makefile.in,
- lib/auth/pam/Makefile.in: Always build as a shared library.
-
- * appl/kx/rxtelnet.in, appl/kx/rxterm.in: export PATH (from
- <jas@pdc.kth.se>).
-
-
- * lib/krb/{pkt_cipher,fgetst}.c: Removed
-
- * lib/krb/name2name.c: Renamed k_name_to_name to krb_name_to_name
-
-Mon Nov 11 1996
-
- * appl/telnet/telnetd/sys_term.c: Really remove bad stuff from
- environment.
-
-Fri Nov 8 1996
-
- * appl/bsd/rlogind.c (main): `portnum' should be int.
-
- * appl/bsd/sysv_environ.c: Use _PATH_ETC_ENVIRONMENT
-
- * appl/bsd/pathnames.h: _PATH_ETC_ENVIRONMENT: new
-
- * lib/krb/get_host.c (srv_find_realm): New parameter `service'
-
-
- * lib/krb/unparse_name.c: New function.
-
-Tue Nov 5 1996
-
- * lib/auth/pam/pam.c: Add PAM Kerberos module.
-
-Mon Nov 4 1996
-
- * configure.in: configure in lib/auth/afskauthlib
-
- * lib/kafs/afssys.c: New function `k_afsklog_uid'.
-
- * lib/auth/afskauthlib: New library that works like
- `afskauthlib.so' from Transarc.
-
-
- *lib/krb/get_host.c, lib/krb/getrealm.c, lib/kafs/afssys.c: Use
- dns_lookup().
-
- * lib/krb/resolve.c (dns_lookup): Replaced several different
- resolver functions with one more generalized.
-
-Sun Nov 3 1996
-
- * Add check target in lib/krb.
-
- * appl/bsd/login.c (main): Sleep 10 seconds before bailing out so
- that there is a chance of reading the error message.
-
- * appl/bsd/rsh.c (main): When invoked as rlogin equivalent change
- to real uid before execing rlogin.
-
-Sat Nov 2 1996
-
- * appl/bsd/utmp_login.c: Do the right thing on systems where
- UTMPX_DOES_UTMP_LOGGING is defined.
-
-
- * lib/krb/krb.h: names for `krb_kuserok' prototype
-
- * lib/krb/get_host.c: Add tcp/kerberos.REALM as well.
-
- * appl/bsd/su.c: Replace call to `kuserok' by `krb_kuserok'.
-
- * lib/otp/otp_parse.c: Add support for parsing extended responses
- (draft-ietf-otp-ext-01).
-
- * lib/otp/otp.h: Define OTP_HEXPREFIX and OTP_WORDPREFIX.
-
- * appl/otp/otp.c: Add option `-e' for printing responses in
- extended mode (according to draft-ietf-otp-ext-01.txt).
-
-
- * lib/krb/kuserok.c: Function krb_kuserok now takes name,
- instance, realm rather than an AUTH_DAT.
-
-Fri Nov 1 1996
-
- * lib/auth/sia: Add SIA Kerberos module.
-
-
- * lib/roken/roken.h: Need to include signal.h prior to defining
- SIG_ERR.
-
- * appl/bsd/utmpx_login.c (utmpx_update): Minor restructuring for
- simplified maintainability.
-
- * appl/bsd/utmp_login.c (utmp_login): Even when there are utmpx
- files on this system we should also log to the utmp files. If
- there are no utmp files we of course don't have to log to them.
-
-
- * Makefile.export: now generate PROBLEMS and COPYRIGHT as well.
-
- * PROBLEMS, COPYRIGHT, doc/kth-krb.info: removed
-
- * doc/kth-krb.texi: Put copyrights in marketing order.
-
- * appl/kpopper/popper.h: client and ipaddr should be char [] so
- that we can store the names there.
-
- * appl/kpopper/pop_init.c: save copies of addresses that otherwise
- get overwritten.
-
-Mon Oct 28 1996
-
- * lib/krb/send_to_kdc.c (send_recv_it): Use `recv' not `recvfrom'
- to make winsock happy. Also don't care anymore about from which
- address we got the answer since we do a `connect'.
-
- * admin/adm_locl.h, lib/kdb/kdb_locl.h, kadmin/kadm_locl.h,
- lib/krb/krb_locl.h, lib/roken/strftime.c, server/kerberos.c: Do
- not use #if, use #ifdef.
-
- * configure.in: Test for `rand' and `getuid'
-
-
- * slave/kprop.c: Don't terminate on trivial errors in slaves-file.
-
-Sun Oct 27 1996
-
- * doc/Makefile.in: Install from source directory if necessary.
-
- * lib/krb/kuserok.c: Do not use `k_getpwnam' in libkrb.
-
- * configure.in: You can't even use `unset', Ultrix sh does not
- have it.
-
-
- * several files: Check status from des_read_pw_string.
-
-
- * server/kerberos.c: Make sure all data is recieved on a tcp
- socket before trying to reply.
-
-
- * lib/krb/krb.h: Add <time.h> for `struct tm'
-
- * appl/kx/Makefile.in: Both kx and kxd requires @XauWriteAuth@
-
- * configure.in: Fix test for `XauReadAuth'
-
-Fri Oct 25 1996
-
- * lib/krb/get_host.c (init_hosts): Must ntohs(KRB_PORT) on
- machines running backwards.
-
- * More consistent use of CRLF in telnet and telnetd.
-
- * Removed redundant -I$(srcsdir)/../../include from compiler args.
-
-
- * appl/ftp/ftpd/ftpd.c: New option `-a otp' to allow OTPs but no
- ordinary passwords in cleartext.
-
- * appl/ftp/ftpd/Makefile.in: Link `ftpd' with -lotp
-
- * lib/Makefile.in: Add otp
-
- * include/Makefile.in: Add otp.h
-
- * configure.in: Test for ndbm.h
- Generate Makefiles in lib/otp and appl/otp
-
- * appl/otp: New program to set up and generate OTPs.
-
- * lib/otp: New library for one-time passwords (RFC1938).
-
- * lib/krb/get_host.c (srv_find_realm): Added parameter `proto'
-
- * lib/des/Makefile.in: Add md4 and sha. run `mdtest' from check.
-
- * lib/des/md4.h, lib/des/md4.c, lib/des/sha.c, lib/des/sha.h,
- lib/des/mdtest.c: New files.
-
- * appl/kauth/Makefile.in: Make $(libexedir) as well.
-
-Thu Oct 24 1996
-
- * appl/bsd/rlogind.c (setup_term): Actually set the speed of the
- terminal.
-
- * appl/bsd/rlogin.c (main): Do a `speed_t2int' before putting the
- speed in the TERM variable.
-
- * appl/bsd/rcmd_util.c: New functions: `speed_t2int' and
- `int2speed_t'.
-
- * appl/bsd/bsd_locl.h: Added prototype of `speed_t2int' and
- `int2speed_t'.
-
-Sun Oct 20 1996
-
- * appl/bsd/login.c: Do `getspnam' before change the UID. Also call
- `endspent'
-
- * appl/krbmanager: New program used on PCs by kclient.
-
- * lib/kclient: New library.
-
- * lib/des, lib/krb: Added some PC-specific files.
-
- * doc/kth-krb.info: Regenerated.
-
- * doc/Makefile.in (kth-krb.info): Some stupid makes don't
- understand $<
- (kth-krb.html): New rule.
-
- * doc/kth-krb.texi (Compiling from source): Added some references
- about Socks.
-
-Sat Oct 19 1996
-
- * doc/kth-krb.texi: Added text about ``--with-socks''.
-
- * configure.in: Use `AC_TEST_PACKAGE' for skey and socks.
-
- * aclocal.m4: Replaced `AC_TEST_SOCKS' and `AC_TEST_SKEY' with the
- more general `AC_TEST_PACKAGE'.
-
-Fri Oct 18 1996
-
- * configure.in: call AC_TEST_SOCKS
-
- * acconfig.h: SOCKS
-
- * aclocal.m4: Added AC_TEST_SOCKS
-
- * lib/krb/send_to_kdc.c (send_to_kdc): Removed unused `f' and
- close.
-
-Thu Oct 17 1996
-
- * man/popper.8: Option `-i'
-
- * appl/kpopper/pop_send.c: clean-up
-
- * appl/kpopper/popper.h: Removed old garbage and added SKEY.
-
- * appl/kpopper/pop_xmit.c: clean up
-
- * appl/kpopper/pop_user.c: SKEY-support
-
- * appl/kpopper/pop_pass.c: Added support for spaces in passwords
- and S/Key.
-
- * appl/kpopper/pop_init.c: Moved some variables into struct pop
- (main): Added support for `-i'
-
- * appl/kpopper/pop_get_command.c: New command "HELP".
-
- * appl/kpopper/Makefile.in: Add SKEY-stuff.
-
- * lib/krb/get_host.c: Use `k_getportbyname(KRB_SERVICE,...)' as a
- default instead of KRB_PORT
-
- * lib/krb/getaddrs.c (k_get_all_addrs): Add
- gethostbyname(k_gethostname()) as a fallback.
-
- * lib/krb/k_getport.c (k_getportbyname): proto can be NULL
-
- * lib/krb/krb.h: Only include <sys/types.h> if HAVE_SYS_TYPES_H
-
- * lib/krb/prot.h: KRB_SERVICE: Added
-
-
- * server/kerberos.c: Replaced linked list with a vector.
-
-Wed Oct 16 1996
-
- * server/kerberos.c: Add support for TCP connections.
-
- * lib/krb/send_to_kdc.c: On stream sockets, use krb_net_read
- rather than recvfrom.
-
-Mon Oct 14 1996
-
- * doc/kth-krb.texi: Only use `kdb_edit' to add the initial
- `nisse.admin'. Add all other users with `kadmin'.
-
- * doc/kth-krb.info: new file.
-
- * doc/kth-krb.texi: Added some text about kx and ftp.
-
- * appl/ftp/ftpd/ftpcmd.y,
- util/ss/ct.y,
- util/et/error_table.y :
- Added code for handling the case of using `bison' and having no
- `alloca'. Alloca is usually never called anyway, so we just use
- `malloc'.
-
- * appl/kx/kxd.c: All static variables are now global and in
- common.c.
- (doit_conn, doit): Turn on TCP_NODELAY.
- (create_and_write_cookie, suspicious_address): Moved to common.c
-
- * appl/kx/kx.c (connect_host): Try all addresses of `host'. Turn
- on TCP_NODELAY.
- (doit): prepare for TCP-only hosts.
- (usage,main): add `-t'
- (main): Passive mode is possible again.
-
- * appl/kx/kx.h: More #ifdefs for include files. Declarations for
- global variables.
-
- * appl/kx/common.c (get_xsockets): Try to chmod
- dirname(`X_UNIX_PATH')
- (get_xsockets): Turn on TCP_NODELAY on TCP connections.
-
- * doc/Makefile.in: New file
-
- * Makefile.in: Added `doc' to `SUBDIRS'
-
- * configure.in: Generate `doc/Makefile'
-
-Sun Oct 13 1996
-
- * appl/bsd/rcp.c (main): Made rcp AFS aware.
-
- * lib/krb/kuserok.c (kuserok): Act as if luser@LOCALREALM is
- always an entry of .klogin.
-
-Sat Oct 12 1996
-
- * appl/kx/rxtelnet.in: Start the `xterm' process correctly.
-
- * lib/des/rnd_keys.c (sumFile): consider the case that `res' is
- not longword-aligned.
-
- * lib/krb/get_host.c (parse_address): `getservbyname' should
- really get proto = NULL
-
- * lib/krb/send_to_kdc.c (krb_udp_port): removed
- (send_to_kdc): removed `addrlist'
-
- * lib/krb/send_to_kdc.c: Support not only UDP.
-
- * lib/krb/get_host.c (krb_get_admhst): Really ask for a admin host
- if that's what we want.
-
-Thu Oct 10 1996
-
- * lib/krb/get_host.c: Simplified some code. Added stub-support for
- SRV-records.
-
-Wed Oct 9 1996
-
- * appl/kx/rxtelnet.in, appl/kx/rxterm.in: PDC are unable to give
- correct instructions to their users and therefore we have to add
- strange directories to the PATH.
-
- * appl/kx/rxtelnet.in: Support sending arguments to telnet.
-
- * appl/kx/rxterm.in: rsh can reside in path or %bindir% support
- extra arguments to xterm (from <jas@pdc.kth.se>).
-
- * appl/kx/rxtelnet.in: Try to find some kind of terminal emulator
- for X.
-
- * appl/kx/rxterm.in, appl/kx/rxtelnet.in: Look for kx in $PATH and
- %bindir%.
-
- * appl/kx/common.c (get_xsockets): `mkdir' the correct directory.
- From <jas@pdc.kth.se>
-
-
- * lib/krb/send_to_kdc.c: Changes to allow other than udp port 750
- connections.
-
- * lib/krb/get_host.c: rewrite of krb_get_{adm,krb}hst.
-
-Sun Oct 6 1996
-
- * appl/ftp/ftpd/ftpd.c (retrieve): Got rid of `sprintf'.
-
- * configure.in: Fix order for x libs. From <jas@pdc.kth.se>.
- Check for `fcntl', `alloca', `winsock.h', and `io.h'.
-
- * lib/krb/krb_locl.h: Check for <io.h> and <winsock.h>
-
- * lib/krb/krb.h: Check for winsock.h
-
- * lib/krb/k_flock.c: Better test for `fcntl' with locking.
-
- * lib/krb/et_list.c: Hopefully correct pragma this time. From
- <jas@pdc.kth.se>
-
-Thu Oct 3 1996
-
- * lib/krb/klog.c (klog): Do not forget to print the text.
-
- * lib/krb/log.c (krb_log): Print space after time in log.
-
-Wed Oct 2 1996
-
- * appl/kpopper/popper.h: Add field msg_id to hold Message-Id for
- UIDL command.
-
- * appl/kpopper/pop_dropinfo.c (pop_dropinfo): Support for UIDL
- command. Saves Message-Id to be used as unique id. Everything is
- #ifdef:ed UIDL.
-
- * appl/kpopper/pop_get_command.c: Recognize UIDL command.
-
- * appl/kpopper/pop_uidl.c (pop_uidl): POP3 UIDL command
- implementation.
-
- * appl/kpopper/Makefile.in: New file pop_uidl.c.
-
-
- * configure.in: Made some of the tests into macros defined in
- aclocal.m4
-
- * appl/telnet/libtelnet/kerberos.c: Given better error message
- when user is not authorized to login.
-
- * lib/roken/k_getpwuid.c, lib/roken/k_getpwnam.c: Call `endpwent'.
- If we are using a BSD-kind of system we should not leave the
- shadow password database open.
-
- * appl/xnlock/xnlock.c: Got rid of all `register' declarations.
-
- * appl/kx/rxterm.in, appl/kx/rxtelnet.in: Use `set --'
-
-Mon Sep 30 1996
-
- * lib/roken/k_getpwnam.c, lib/roken_k_getpwuid.c: Call `endspent'
- to try to close the shadow password file.
-
- * appl/ftp/ftpd/ftpd.c (retrieve): Cut the argument to the command
- and the first character of the extension.
-
- * lib/krb/send_to_kdc.c: Sun doesn't have any strerror so we can't
- use that here. We are only printing debug messages anyway, so
- just print errno for now.
-
- * appl/kx/rxtelnet.in: Now using SIGUSR2.
-
- * appl/kx/kx.c: Now using SIGUSR1 to mean `exit when number of
- children goes down to zero'. SIGUSR2 is `exit when number of
- children is equal to zero'.
-
- * appl/xnlock/xnlock.c: More fixup of old code.
-
- * appl/ftp/ftpd/ftpd.c: Only call `filename_check' for guest
- users.
-
- * configure.in: Added tests for more header files. Also added
- more ifdefs when actually including those files.
-
- * appl/kx/Makefile.in: Do not build programs if we have no X11.
-
-Sun Sep 29 1996
-
- * appl/xnlock/xnlock.c (main): Support for shadow passwords.
-
- * lib/roken/k_getpwuid.c: New file, better support for shadow
- passwords.
-
-
- * appl/telnet/Makefile.in: Use SET_MAKE
-
-
- * appl/ftp/ftpd/ftpcmd.y: Remove access to several commands for
- anonymous users.
-
- * lib/krb/get_krbhst.c: Look for kerberos-#.realm.
-
- * appl/ftp/ftpd/popen.c: Execute files from ~ftp if possible.
-
- * appl/ftp/ftpd/ftpd.c: Add find site command.
-
- * appl/ftp/ftpd/ftpd.c: Add special handling of nonexistant files
- with extensions {,.tar}{,.gz,Z}.
-
-Sat Sep 28 1996
-
- * configure.in: Check for sys/times.h, sys/param.h, and
- sys/timeb.h
-
- * lib/des: autoconfed a little to make it compile.
-
- * lib/roken/roken.h: Add `max', `min', and definitions for broken
- syslogs.
-
- * appl/bsd/bsd_locl.h: Removed SYSLOG-garbage and max.
-
- * appl/kx/kx.h: Remove prototype of childhandler.
-
- * appl/kx/common.c: Remove childhandler. Not common any more.
-
- * appl/kx/rxterm.in: Send SIGUSR1 to kx before starting xterm.
-
- * appl/kx/rxtelnet.in: Send USR1 to kx at appropriate moment.
-
- * appl/kx/kx.c: Die after receiving SIGUSR1 and when number of
- children goes to zero.
-
- * lib/roken/roken.h: Add STDERR_FILENO
-
- * lib/roken/mini_inetd.c (mini_inetd): Also dup onto stderr.
-
- * lib/kafs/Makefile.in (afslib.so): Change argument so they work
- with `ld' instead of `cc'
-
- * appl/kx/kxd.c: writeauth.c as separate file.
-
- * appl/kx/kx.c: `-d' option to disable forking.
-
- * appl/kx/Makefile.in: Compile and link writeauth.c if necessary.
- For some stupid reason $< does not work correctly in BSD make.
- Use $(srcdir) instead.
-
- * appl/ftp/ftp/ftp_locl.h: Only include <roken.h> once.
-
- * configure.in: Use strange X flags when looking for XauReadAuth.
- Add XauWriteAuth if we need to include it.
-
-Fri Sep 27 1996
-
- * appl/sample: Sample programs work again.
-
-
- * appl/kx/kxd.c (main): use `mini_inetd'
-
- * appl/kx/kx.c: Use KX_PORT
-
- * appl/kx/kx.h: Remove SOMAXCONN and add KX_PORT
-
- * appl/kauth/kauthd.c (main): use `mini_inetd'
-
- * appl/ftp/ftpd/ftpd.c: Removed `conn_wait' and use `mini_inetd'
- instead.
-
- * appl/bsd/bsd_locl.h: Prototypes for `get_shell_port' and
- `get_login_port'
-
- * appl/bsd/rcmd_util.c: New file.
-
- * appl/bsd/Makefile.in: Added rcmd_util.c
-
- * appl/bsd/rcp.c: Moved `get_shell_port' to rcmd_util.c
-
- * appl/bsd/rsh.c: Moved `get_shell_port' to rcmd_util.c
-
- * appl/bsd/rlogind.c (main): Use `mini_inetd'
-
- * appl/bsd/rshd.c (main): Add support for interactive mode with
- `-i'.
-
- * appl/telnet/telnetd/telnetd.c (main): use `mini_inetd'
-
- * lib/roken/roken.h: Added prototype for `mini_inetd', and
- fallback definitions for SOMAXCONN, STDIN_FILENO, and
- STDOUT_FILENO.
-
- * lib/roken/Makefile.in: Added mini_inetd.o
-
- * lib/roken/mini_inetd.c: New file.
-
-Thu Sep 26 1996
-
- * appl/kx/kxd.c (doit): read port number in ascii.
-
- * appl/kx/kx.c (doit): write port number in ascii.
-
- * appl/kauth/rkinit.c (doit_host): Check return value from
- `read_encrypted'.
-
- * appl/kauth/kauthd.c (doit): Removed unnecessary sprintf's before
- syslog.
-
- * lib/krb/krb_get_in_tkt.c (krb_get_in_tkt): Return error code
- from `tf_create' and not always INTK_ERR.
-
- * lib/krb/tf_util.c (tf_create): Correct check for return value
- from `open'.
-
- * lib/des/rnd_keys.c (des_rand_data): Try /dev/urandom as well.
-
-Wed Sep 25 1996
-
- * appl/afsutil/pagsh.c (main): One-of error hopefully fixed this
- time.
-
- * configure.in: Add test for <sys/un.h>
-
- * kadmin/Makefile.in: Add back $(CRACKLIB)
-
-Mon Sep 16 1996
-
- * appl/kx/Makefile.in: Create rxterm and rxtelnet at compile time.
-
- * kstring2key moved to appl/afsutil.
-
-Sun Sep 15 1996
-
- * appl/kx/kx.c (main): For now always use passive mode. That's
- the only thing that has been tested and not a lot of people are
- going to use non-passive anyways.
-
- * appl/kx/kx.c (connect_host): write display_number in ascii.
-
- * appl/kx/kxd.c (doit): read display_number in ascii.
-
- * appl/kx/common.c (get_local_xsocket): Generate the
- /tmp/.X11-unix directory with the sticky bit set.
-
- * configure.in: Generate appl/kx/rxterm and appl/kx/rxtelnet.
-
- * appl/kx/Makefile.in: Install rxterm and rxtelnet.
-
- * appl/kx/rxterm.in, appl/kx/rxtelnet.in: New files.
-
- * appl/kx/common.c (get_local_xsocket): try to bind the socket
- instead of checking for existence with lstat.
-
-
- * appl/kx/kxd.c: Detect remote termination and cleanup on exit.
-
-Sat Sep 14 1996
-
- * lib/des/rnd_keys.c: Hack for systems that lack setitimer (like
- crays).
-
-
- * appl/kx/kxd.c (doit): Send over the display number and the
- authority file actually used to kx.
-
- (create_and_write_cookie): New function to generate and write into a
- file a local cookie used between this pseudo-server and the
- clients on this host.
-
- (start_session): New function to check and remove the local cookie
- before the data is sent over to `kx'.
-
- * appl/kx/kx.c (display_num, xauthfile): New variables. Now `kx'
- prints out the values of those two variables and then goes to the
- background to enable some script to set these on the other host.
-
- (start_session): New function that adds a local cookie before sending
- the rest of the connection to the local X-server.
-
- (main): Also recognize "unix" as a local DISPLAY.
-
- * appl/kx/kx.h: <X11/Xauth.h> used.
- (get_local_xsocket): Changed parameter.
-
- * appl/kx/common.c (get_local_xsocket): Now try to allocate the
- first free socket in /tmp/.X11-unix. Also `mkdir' this directory
- first. Return the number of the display opened.
-
- * appl/kx/Makefile.in: Added X libraries.
-
- * lib/des/des.h: Added prototype for `des_rand_data'.
-
- * lib/des/rnd_keys.c: Made `des_rand_data' non-static. This
- function is useful and now even used.
-
-Wed Sep 11 1996
-
- * appl/bsd/login.c: Use k_afs_cell_of_file() to get tokens for the
- cell of the home catalog rather than the local cell.
-
- * lib/kafs/afssys.c: Add k_afs_cell_of_file.
-
-Tue Sep 10 1996
-
- * appl/telnet/telnetd/telnetd.c, appl/telnet/telnetd/sys_term.c:
- Removed all convex code.
-
-Mon Sep 9 1996
-
- * appl/telnet/telnetd/termstat.c: UNICOS5: removed
-
- * appl/telnet/telnetd/telnetd.c, appl/telnet/telnetd/sys_term.c:
- NEWINIT, UNICOS7x, UNICOS5: removed
-
- STREAMSPTY: added variable `really_stream' Now able to handle the
- case where the OS supports stream ptys but we run out of them and
- start using ordinary BSD ones.
-
- * appl/telnet/telnetd/state.c: UNICOS5: removed
-
- * appl/telnet/telnetd/pathnames.h: BFTPPATH: removed
-
- * appl/telnet/telnetd/ext.h, appl/telnet/telnetd/global.c:
- BFTPDAEMON: removed.
- UNICOS5: removed.
-
- * appl/telnet/telnetd/ext.h: STREAMSPTY: added variable
- `really_stream'.
-
- * lib/krb/stime.c (krb_stime): argument should be `time_t'.
- lib/krb/krb_locl.h: changed prototype.
-
-Sun Sep 8 1996
-
- * configure.in: Also generate `appl/sample/Makefile'
-
- * appl/Makefile.in: Use @SET_MAKE@.
- Include sample
-
- * lib/krb/Makefile.in: Add krb_stime, krb_mk_auth, and
- krb_check_auth.
-
- * util/et/compile_et.c (main): Include <foo.h> in foo.c
-
- * slave/kprop.c: exit with return code == 1 to indicate failure.
-
- * server/kerberos.c (usage): Fixed usage string.
-
- * lib/krb/tkt_string.c (tkt_string): Removed bogus extern
- declaration of `getuid'.
-
- * lib/krb/tf_util.c (tf_save_cred): Removed bogus extern
- declaration of `lseek'.
-
- * lib/krb/stime.c (stime): Renamed to `krb_stime'
-
- * lib/krb/sendauth.c (krb_sendauth): reimplemented using
- `krb_mk_auth' and `krb_check_auth'.
-
- * lib/krb/send_to_kdc.c (send_recv): Removed stupid cast.
-
- * lib/krb/recvauth.c: Removed KRB_SENDAUTH_VERS
-
- * lib/krb/prot.h: create_auth_reply: correct prototype.
- krb_create_death_packet: ditto.
- KRB_SENDAUTH_VERS: moved here from sendauth.c and recvauth.c
-
- * lib/krb/month_sname.c: Made `month_sname' const.
-
- * lib/krb/mk_req.c: Remove stupid `register'
-
- * lib/krb/log.c (krb_log): Use `krb_stime'
-
- * lib/krb/kuserok.c (kuserok): Nightmare Filesystem might return
- ESTALE. Treat it the same way as ENOENT.
-
- * lib/krb/krb_locl.h: Added prototype for `krb_stime'
-
- * lib/krb/krb_check_auth.c: New file with `krb_check_auth',
- implemented for compatibility with CNS.
- lib/krb/krb_mk_auth.c: Ditto.
-
- * lib/krb/krb.h: Removed duplicate declarations of `get_request'
- and `krb_get_admhst'.
- Added declarations for `krb_mk_auth' and `krb_check_auth'.
-
- * lib/krb/kparse.h: removed prototype for `strsave'
-
- * lib/krb/kparse.c (fGetParameterSet): Use `strdup' instead of
- `strsave'.
- (strsave): Removed.
-
- * lib/krb/kname_parse.c: Removed stupid `register' declarations.
-
- * lib/krb/klog.c (klog): Use `krb_stime'
-
- * lib/krb/get_phost.c: Handle the case where the name has no dots
- in it by just returning it as-is.
-
- * lib/knet/Imakefile, lib/knet/getkdata.c, lib/knet/phost.c,
- lib/knet/sendkdata.c: removed unused files.
-
- * lib/kadm/kadm_cli_wrap.c (kadm_init_link): use `k_getportbyname'
-
- * kadmin/ksrvutil_get.c (get_srvtab_ent): Erase the key if
- something goes wrong. Include realm in the message when writing a
- key.
- (parseinput): New function that removes quotes and backslashes
- from input.
- (ksrvutil_get): Use `parseinput' to read input.
-
- * kadmin/ksrvutil.c (safe_read_stdin): Correct use of printf.
- Removed bogus casts and fflush of stdin.
- (main): Use `return' instead of `exit'.
-
- * kadmin/kpasswd.c (main): Use `return' instead of `exit'.
-
- * kadmin/admin_server.c: exit with return code == 1 to indicate
- failure.
-
- * appl/sample/sample_server.c: Rewrote to use all new functions.
-
- * appl/sample/sample_client.c: Rewrote to use all new functions.
-
- * appl/sample/sample.h: new file.
-
- * appl/sample/Makefile.in: new file.
-
- * appl/movemail/pop.c (socket_connection): use `k_getportbyname'
-
- * appl/kpopper/pop_init.c: exit with return code == 1 to indicate
- failure.
-
- * appl/kauth/kauth.c (doexec): new-style definition. ret should
- be a `pid_t'.
- (main): new-style definition. Use `prog' instead of `argv[0]'
-
- * appl/ftp/ftp/extern.h: Removed unused `abortsend'
-
- * appl/ftp/Makefile.in: Use @SET_MAKE@
-
- * appl/bsd/rsh.c: get_shell_port: use `k_getportbyname'
-
- * appl/bsd/rlogin.c: get_login_port: use `k_getportbyname'
-
- * appl/bsd/kcmd.c: Removed bogus casts to `caddr_t'
-
- * admin/kstash.c: Removed bogus flushing of stderr. Replaced lots
- of `exit(-1)' by `return 1'
-
- * admin/kdb_util.c: Removed unused variable `aprinc'.
- Removed bogus flushing of stderr.
- Replaced lots of `exit(-1)' by `return 1'.
-
- * admin/kdb_edit.c, admin/kdb_init.c: use `return' instead of
- calling `exit' and use 1, not -1, for failure.
-
- * Makefile.in: Use @SET_MAKE@
-
- * aclocal.m4: AC_NEED_PROTO: need macro to determine if we need to
- define a prototype for a function.
-
- * configure.in: Reordered. Removed unused stuff. Start using
- AC_NEED_PROTO.
-
- * config.guess: merged in FSF version from 960908.
-
-Tue Sep 3 1996
-
- * include/protos.H: Added optarg, opterr, optind, optopt and
- (fclose under Sunos 4). Removed these declarations from lots of
- other files.
-
- * acconfig.h: Add undefs for h_errno, h_errlist, optarg, optind,
- opterr, and optopt.
-
- * configure.in: Use `AC_NEED_DECLARATION' for h_errno, h_errlist,
- optarg, optind, opterr, and optopt.
-
- * aclocal.m4: New macro `AC_NEED_DECLARATION' to figure out if we
- need to have an external declaration of a variable.
-
-Mon Sep 2 1996
-
- * lib/krb/krb.h: Removed unused `req_act_vno' and `k_log'.
- Changed all callers.
-
- * lib/krb/krb.h: Removed definition of `MAX_HSTNM'.
-
- * lib/krb/send_to_kdc.c: Removed use of `MAX_HSTNM'.
-
- * appl/afsutil/pagsh.c: Some reformatting and fixed the off-by-one
- args bug.
-
-Sat Aug 31 1996
-
- * lib/krb/{send_to_kdc.c, getrealm.c}, appl/xnlock/xnlock.c,
- appl/kauthkauth.c, appl/bsd/{rshd.c,rlogind.c}: Removed '#if 0'-ed
- code.
-
- * lib/krb/get_in_tkt.c: Removed '#if 0'-ed code and now compiles
- with NOENCRYPTION.
-
- * kadmin/ksrvutil.c: Now compiles with NOENCRYPTION.
-
- * appl/ftp/ftpd/ftpcmd.y: Throw away passwd after use.
-
- * appl/ftp/ftpd/ftpd.c: Fixed old comment.
-
- * slave/kpropd.c: s/sa_len/salen/ Irix has a #define for sa_len.
-
- * lib/kdb/krb_dbm.c: If key->dptr is not a `char *' we have to
- cast it before adding to it.
-
- * configure.in: Old test for `sa_len' in `struct sockaddr' fails
- on IRIX 6.2. Try to compile a program refering to that field
- instead of grepping for it in <sys/socket.h>.
-
- * appl/bsd/kcmd.c: Removed old and broken code.
-
- * configure.in: Check for `gethostname', `uname', and
- <sys/utsname.h>
-
- * lib/krb/k_gethostname.c: Try to use `uname' if we have no
- `gethostname'.
-
- * appl/ftp/ftpd/klogin.c: Incorrect use of `gethostname' replaced
- by correct use of `k_gethostname'.
-
-
- * lib/roken/verify.c: Change name verify_unix_user ->
- unix_verify_user in analogy with krb_verify_user.
-
-Fri Aug 30 1996
-
- * appl/xnlock/Makefile.in: Install man-page.
-
- * configure.in, */Makefile.in: Replace `-shared' with some other
- option when not using gcc.
-
- * lib/kafs/afssys.c: Do not start by checking if we have AFS in
- `k_afsklog'.
-
- * appl/bsd/rlogin.c: More kludges to make it work with rlogin on
- linux: Do not select for an exceptional condition on `rem' after
- having received EINVAL.
-
- Also rewrote ifndef NOENCRYPTION stuff.
-
- * appl/bsd/rlogind.c: More kludges to make it work with rlogin on
- linux: Only send oob data just after having sent normal data to
- make sure we never send two consecutive bytes of oob data.
-
- Also rewrote ifndef NOENCRYPTION stuff.
-
-Thu Aug 29 1996
-
- * lib/kafs/Makefile.in: Use `ld' instead of `cc' for linking
- afslib.so. Not everybody has cc.
-
-Wed Aug 28 1996
-
- * Release 0.9.2a
-
-Mon Aug 26 1996
-
- * appl/bsd/login.c: Clean-up. Made static a lot of functions and
- variables. Rewrote some function definitions to ANSI-style.
-
- * appl/bsd/sysv_environ.c: KRB4_MAILDIR may and may not contain a
- trailing slash. We need to be very careful to make sure the
- contents of $MAIL does not contain two, because RMAIL in emacs
- uses it and emacs is no friend with double slashing.
-
-
- * lib/kafs/afssys.c (k_afsklog_all_local_cells): Now should return
- correct value.
-
-Sun Aug 25 1996
-
- * Release 0.9.2.
-
-Sat Aug 24 1996
-
- * lib/roken/hstrerror.c: Check for h_errlist prototype.
-
-Thu Aug 22 1996
-
- * lib/krb/send_to_kdc.c, etc/services.append, server/kerberos.c:
- Changed `kerberos' to `kerberos-iv' now that it has been
- registered with IANA.
-
- * man/rshd.8, man/rlogind.8: updated documentation of `-a'
-
- * lib/roken/roken.h: Added declaration of `h_errno'
-
- * kuser/Makefile.in: Link kdestroy with KRB_KAFS_LIB
-
- * appl/kauth/kauth.h: Stupid declarations for syslog.
-
- * appl/kauth/kauthd.c: syslog errors and success.
-
- * include/protos.H: Removed `h_errno', now in roken.h Declare
- `getusershell' under solaris.
-
- * configure.in, acconfig.h: Figure out if we have to declare
- `h_errno'.
-
- * appl/ftp/ftp/kauth.c: Added support for afs_string_to_key.
-
-Wed Aug 21 1996
-
- * lib/kafs/afssys.c: Look for AFS database servers in dns also.
-
- * lib/kafs/afssys.c: Add support for a ~/.TheseCells-file.
-
-Sun Aug 18 1996
-
- * appl/bsd/rlogind.c: Removed unused `check_all' variable. Use
- `inaddr2str'.
-
- * appl/bsd/rshd.c: Use `inaddr2str'.
-
- * appl/bsd/iruserok.c: Removed potential buffer overrun after
- `gethostbyaddr'.
-
- * lib/roken/inet_aton.c: Some const-ness.
-
- * lib/roken/Makefile.in: Add `inaddr2str.o'.
-
- * appl/ftp/ftpd/ftpd.c: Use `inaddr2str'.
-
- * lib/roken/inaddr2str.c, lib/roken/roken.h: New function
- `inaddr2str' to convert an IP address into a verified hostname or
- a string of the form x.y.z.a
-
- * lib/krb/{krb_locl.h, krb.h, k_name_to_name.c, k_getsockinst.c,
- getrealm.c}: Some const-ness.
-
- * appl/bsd/bsd_locl.h: Removed another prototype for `crypt'.
-
- * appl/kpopper/popper.h: Some const-ness to get rid of a warning.
-
- * appl/bsd/rshd.c: Always check reverse mapping. Removed
- `local_domain' and `top_domain'. Added some const-ness.
-
-Sat Aug 17 1996
-
- * include/Makefile.in: Removed VPATH. With it this makefile does
- not work correctly.
-
- * lib/krb/rw.c, lib/krb/krb_locl.h: Changed parameters to
- `krb_{get,put}'-functions to void *.
-
- * include/protos.H: Add `getusershell' in solaris.
-
- * appl/kauth/kauthd.c, appl/bsd/{rlogin.c,rlogind.c}: Less
- warnings because of arguments to `setsockopt'.
-
- * lib/roken/roken.h: Fixed prototype of `inet_aton'
-
-Wed Aug 14 1996
-
- * lib/roken/verify.c: Use <crypt.h> if there is one.
-
- * lib/kafs/Makefile.in: AFS_EXTRA_LIBS is always called
- `afslib.so'. Otherwise some makes get upset when there is no such
- library to be made.
-
- * appl/telnet/telnetd/telnetd.h: <protos.h> are needed to get
- prototype for `ptsname'.
-
- * appl/bsd/rlogind.c, appl/kpopper/pop_dropinfo.c,
- appl/telnet/libtelnet/{auth.h,enc_des.c,kerberos.c},
- appl/telnet/telnet/utilities.c, appl/telnet/telnetd/{sys_term.c,
- telnetd.h, kadmin/admin_server.c, kuser/klist.c,
- lib/kdb/{krb_cache.c, krb_dbm.c}, lib/krb/{fgetst.c, getst.c,
- log.c, tf_util.c}: Include type `int' on all definitions and
- remove unnecessary `register'.
-
- * appl/bsd/login_access.c: Fix parameter declaration to
- `netgroup_match'.
-
- * appl/bsd/forkpty.c, include/protos.h: s/__sgi__/__sgi//g
-
- * admin/kdb_util.c: Use `errno' for error message instead of
- uninitialized variable.
-
-Tue Aug 13 1996
-
- * appl/kauth/rkinit.c: Default port should be the same in kauth
- and kauthd.
-
-Sun Aug 11 1996
-
- * configure.in: Added `AC_REVISION'
-
- * slave/kpropd.c: Cleaned up structure. Now returns useful value.
-
- * lib/roken/verify.c: Broken OSes need declartion of `crypt'.
-
- * lib/roken/roken.h: Added prototype for `verify_unix_user'.
-
- * lib/krb/lsb_addr_comp.h: Added prototype for `lsb_time'.
-
- * lib/krb/{get_admhst.c, get_default_principal.c, get_krbhst.c,
- get_krbrlm.c, getrealm.c, realm_parse.c} : Check for buffer
- overwrite correctly.
-
- * lib/krb/rw.c, lib/krb/krb_locl.h: Prepended `krb_' to `get_int',
- `put_int', `get_address', `put_address', `put_string',
- `get_string', `get_nir', and `put_nir'. Changed all callers.
-
- * lib/kdb/krb_db.h: Added prototype for `kerb_delete_principal'
- and `kerb_db_delete_principal'.
-
- * lib/kadm/kadm_cli_wrap.c: Removed unused variable.
-
- * appl/telnet/telnetd/telnetd.c: Changed bogus `strncpy' to
- `strcpy'.
-
- * appl/bsd/su.c: Fixed error messages from execv.
-
- * appl/bsd/rlogin.c: Fixed potential buffer overrun when reading
- "TERM".
-
-Thu Aug 8 1996
-
- * appl/telnet/telnet/commands.c, appl/kauth/rkinit.c: Replaced
- `herror' by `hstrerror'.
-
- * appl/bsd/login.c: chmod the tty so that it is writable for group
- tty.
-
- * configure.in: Use AC_FIND_IF_NOT_BROKEN for herror and
- hstrerror.
-
- * aclocal.m4: New macro `AC_FIND_IF_NOT_BROKEN'
-
- * config.guess: Add 686
-
-Tue Aug 6 1996
-
- * lib/krb/getrealm.c: Fallback for `T_TXT'
-
- * configure.in: Look for `res_search' and `dn_expand' in
- libresolv.
-
-Mon Aug 5 1996
-
- * */Makefile.in: Add Id to those missing it.
-
- * configure.in: Small fix in comment.
-
-
- * Release 0.9.1.
-
-
- * appl/ftp/ftpd/ftpcmd.y: s/timeout/ftpd_timeout/
-
- * appl/kstring2key/kstring2key.c: `usage' changed to void.
-
- * lib/krb/mk_req.c: `build_request' changed to void.
-
- * appl/ftp/ftp/ftp_locl.h: Changed order of includes.
-
- * appl/bsd/login.c, appl/ftp/ftpd/*: s/timeout/login_timeout/
-
- * lib/kafs/afssysdefs.h: undef AFS_SYSCALL if we are defining it.
-
-Sun Aug 4 1996
-
- * lib/kafs/afssys.c: AIX systems will now correctly (I hope)
- detect whether AFS is loaded or not. This is currently a bit
- kludgy, and involves loading an external shared library,
- afslib.so, which can be put in athena/lib or pointed to with
- environment variable AFSLIBPATH. This is only tested on AIX 4
- (due to lack of an AIX 3 system).
-
-
- * lib/krb/getrealm.c: Range-check the result from the DNS.
-
- * lib/krb/get_krbrlm.c: Try to use the DNS to find out which realm
- this host belongs to.
-
- * kadmin/ksrvutil_get.c: Fixed error message.
-
-
- * lib/kafs/*: Fix aix/afs brokenness.
-
- * lib/kadm/kadm_stream.c (stv_string): Range check.
-
-Fri Jul 26 1996
-
- * appl/ftp/common/{ftp,ruserpass}.c: Less bogus domain name
- handling.
-
-Mon Jul 22 1996
-
- * lib/krb/mk_req.c: Use encrypt_ktext()
-
- * configure.in, lib/kafs/afssys.c: Add option to exclude AFS
- support (this is useful only on AIX systems that doesn't have
- AFS).
-
- * configure.in: Removed configuration from subdirectories.
-
-Sat Jul 13 1996
-
- * appl/ftp/ftp/extern.h, appl/ftp/ftp/ftp.c: Substitute `struct
- fd_set' with `fd_set'.
-
-Mon Jul 8 1996
-
- * Makefile.in: install should depend on all.
-
-Sun Jul 7 1996
-
- * appl/bsd/su.c: Allow root to set the uid without entering a
- password.
-
-Fri Jul 5 1996
-
- * lib/krb/getrealm.c: Add automatic dns realm search.
-
-Thu Jul 4 1996
-
- * lib/krb/log.c (krb_log): Renamed k_log(...) to krb_log(...) for
- compatibility with CNS. There is still a #define k_log krb_log.
-
- * util/et/et_list.c: Hack to resolve _et_list in shared libraries.
-
-Fri Jun 28 1996
-
- * appl/bsd/rlogin.c (reader): If after a select rlogin fails to
- read expected OOB data try to read ordinary data before continuing.
-
- * appl/bsd/rlogin.c (oob_real): SunOS5 tty race kludge.
-
- * appl/bsd/rlogind.c: Cleanup oobdata stuff.
-
-Thu Jun 27 1996
-
- * appl/bsd/login.c (main): Also check for complete tty name with
- `rootterm'.
-
- * lib/krb/check_time.c: New function `krb_check_tm'.
-
- * lib/roken/tm2time.c: New function `tm2time', mktime generalized
- to local timezone and UTC.
-
- * kadmin, admin: Use `tm2time' and `krb_check_time' instead of
- `maketime'.
-
-Tue Jun 25 1996
-
- * lib/krb/mk_priv.c (krb_mk_priv): Send correct address.
-
- * appl/kauth/kauthd.c: Set ticket file to some sane default, and
- add -i debugging switch.
-
-Mon Jun 24 1996
-
- * appl/xnlock, appl/kauth, appl/telnet/telnetd: Use BINDIR and not
- `/usr/athena/bin'.
-
-Wed Jun 19 1996
-
- * appl/bsd/rlogin.c: consistent usage of oob_real.
-
- * appl/bsd/rlogind.c: Do not send oob garbage when running
- solaris? Seems that linux is unable to handle the duplicate
- urgent data that is the result.
-
- * appl/bsd/rlogind.c: Fix usage.
-
- * appl/bsd/kcmd.c: Don't F_SETOWN.
-
-Mon Jun 17 1996
-
- * lib/krb/rw.c: Add get_address() and put_address().
-
-
- * appl/telnet/telnetd/telnetd.c: updated usage
-
- * appl/bsd/su.c: Replaced getpass by des_read_pw_string
-
- * appl/bsd/forkpty.c (ptym_open): Removed unused `ptr2'.
-
- * appl/bsd/rlogind.c: Removed unused functions and made others
- static.
-
-Sun Jun 16 1996
-
- * Release 0.9.
-
-
- * appl/ftp/ftpd/ftpd.c: Don't just send data in plain when doing
- NLST.
-
-
- * configure.in: test for setresgid.
-
- * kadmin/ksrvutil_get.c: Fixed byte manipulations of keys.
-
-Sat Jun 15 1996
-
- * lib/des/rnd_keys.c (des_rand_data): At least `srandom'.
-
- * appl/ftp/ftp/cmds.c: Support longer passwords when retrying
- login.
-
- * kadmin/admin_server.c, man/kadmind.8, kth-krb.texi: Reading key
- file from file is now the default. Use `-m' to enter it manually.
- `-n' is currently a no-op.
-
- * appl/ftp/ftpd/ftpd.c: Add S/Key support.
-
- * appl/ftp/ftpd/Makefile.in: Link with S/Key.
-
- * appl/ftp/configure.in: Test for S/key.
-
- * configure.in, aclocal.m4: Moved skey test
- to aclocal.m4.
-
- * appl/bsd/login.c: Correct argument to `skeyaccess'.
-
-Fri Jun 14 1996
-
- * lib/krb/verify_user.c: New parameter to specify service key
- instance, NULL means "rcmd".
-
- * lots of files: All ticket filenames uses `TKT_ROOT'.
-
- * appl/bsd/rlogind.c: Check for uid == 0 and user != "root".
-
-Tue Jun 11 1996
-
- * appl/kpopper/pop_init.c(pop_init): Got rid of some old ifdef'ed
- code.
-
- * lib/kdb/krb_dbm.c: Add macro for `dbm_delete' for the people
- that are ndbm challenged.
-
-Mon Jun 10 1996
-
- * lib/krb/kname_parse.c: Got rid of duplicate defintions.
-
- * appl/ftp/ftp/ruserpass.c: Get hostname even if user has no
- '.netrc' file.
-
-
- * lib/kadm, lib/kdb, kadmin: Add database delete operation.
-
- * lib/krb/kname_parse.c: Allow dots in instances.
-
-
- * appl/bsd/rlogind.c (logwtmp): Only define `logwtmp' if it does
- not exist. Log more garbage.
-
-Sun Jun 9 1996
-
- * appl/telnet/configure.in: Check for `logwtmp'.
-
- * appl/ftp/configure.in: Use `AC_FUNC_MMAP'
-
-
- * appl/bsd/forkpty.c: Removed all ugly pty search stuff from
- ptym_open().
-
- * configure.in: Modified the creation of version.h, now actually
- shows up with ident.It is now also slightly more keen on creating
- a new version.h.
-
-Sat Jun 8 1996
-
- * lib/roken/verify.c: <stdio.h> for NULL.
-
- * appl/xnlock/xnlock.c (leave): Call XCloseDisplay, otherwise
- screen saver changes are not updated before closing the X
- connection.
-
-
- * appl/bsd/utmp_login.c: Remove tty-prefix from ut_id; this field
- is usually very short.
-
-Fri Jun 7 1996
-
- * slave/kpropd.c: Add option -m to merge rather then load
- database.
-
-Thu Jun 6 1996
-
- * admin/kdb_util.c: Add a merge operation. (One day it might be
- used to propagate only patches to the database)
-
-Wed Jun 5 1996
-
- * appl/kpopper: Support both POP3 and KPOP3.
-
- * appl/xnlock/xnlock.c: Use `verify_unix_user'
-
- * lib/roken/verify.c: verify_unix_user: New function from xnlock
- for checking passwd in `/etc/passwd'.
-
- * appl/telnet/telnetd/sys_term.c: gettimeofday buglet
-
-
- * slave/kpropd.c: Rewrite of kpropd.
-
- * admin/kdb_util.c: Sanity check on input to load_db.
-
- * slave/kpropd.c: Use default value for fname.
-
- * slave/kprop.c: Use some sane default values for data_file and
- slaves_file.
-
- * admin/kdb_util.c: If there isn't any database when loading,
- create an empty one.
-
-Mon Jun 3 1996
-
- * appl/telnet/telnetd/sys_term.c: Somewhat changed the way utmpx
- entries are created. It should now work on both Solaris and IRIX,
- without stale login information.
-
-Sat Jun 1 1996
-
- * lib/krb/k_gethostname.c (k_gethostname): Fallback.
-
- * lib/krb/send_to_kdc.c (send_to_kdc),
- kadmin/kadm_ser_wrap.c (kadm_ser_init),
- slave/kprop.c (prop_to_slaves),
- slave/kpropd.c (main): Use `k_getportbyname'.
-
-Fri May 31 1996
-
- * Lots of files: more #includes ifdefad and cleaned up.
-
-Thu May 30 1996
-
- * Lots of files: Replaced bcopy/bzero/bcmp with
- memcpy/memset/memcmp.
-
-
- * lib/krb/get_default_principal.c: Use getlogin() if it is the BSD
- variant that actually gives some information.
-
- * lib/krb/create_ticket.c: Write correct address byteorder.
-
- * lib/kadm/kadm_stream.c,kadm_cli_wrap.c: Don't assume int32_t is
- four bytes.
-
- * kadmin/kpasswd.c: Allow principal without -n.
-
- * kadmin/kadmin.c: Use krb_get_default_principal.
-
- * appl/ftp/ftpd/ftpd.c: Fix bare newline bug.
-
- * appl/bsd/rlogind.c: Add -i and -p options to start rlogind from
- command line (for debugging).
-
- * INSTALL: Rewritten.
-
-Wed May 29 1996
-
- * appl/ftp/ftp/krb4.c: Handle different sizes of returned
- checksum.
-
-
- * appl/bsd/Makefile.in: Don't install login setuid.
-
-Fri May 24 1996
-
- * appl/bsd/rsh.c: Don't run away yelling if someone calls you
- `remsh'.
-
-Sun May 19 1996
-
- * lib/krb/kdc_reply.c: Remove unused function decrypt_tkt. Sanity
- check on decrypted ticket.
-
-Wed May 15 1996
-
- * server/kerberos.c: Should work with the new libkrb
-
- * appl/kip: Support more than one tunnel device.
-
-
- * lib/krb/*.c: All functions that create or decode kerberos
- packets have been rewritten. Hopefully, everything still
- works. This is to eliminate problems with wierd systems, like
- Crays, that doesn't have any two or four byte integers. Some of
- these changes could be a lot more pretty, and *many* assumptions
- that sizeof(int32) == 4 still exist in the rest of the code,
- though.
-
- As a side effect, all packets sent are now in network byte order.
-
-Mon May 13 1996
-
- * configure.in: Shared libraries for Irix
-
-
- * Several fixes for UNICOS.
-
- * appl/ftp/ftp/krb4.c: Allow default data protection level through
- a "prot level" in .netrc. This really should be done in a more
- useful manner.
-
-Sun May 12 1996
-
- * appl/xnlock/xnlock.c: Cleaned up user verification code. Now
- uses new function krb_verify_user. Also fixed a few problems with
- the password prompt box.
-
- * lib/krb/verify_user.c: New function krb_verify_user to verify a
- user with kerberos.
-
-
- * appl/kip: New program for forwarding IP packets over kerberised
- connections using tunnel devices.
-
- * appl/kauth/kauth.c, kadmin/ksrvutil.c: Use
- krb_get_default_principal
-
- * appl/bsd/rlogind.c: Do not change portnumber to host order if
- using kerberos. This will cause the magic
- `reverse-time-if-port-is-less-than' to fail.
-
- * lib/des/GNUmakefile: Removed file. This file causes problem
- when building in the source directory and when using GNU make
- which prefers this file to the generated Makefile.
-
- * appl/bsd/login.c: More careful when handling returned value from
- `getspnam'.
-
-Sat May 11 1996
-
- * lib/krb/realm_parse.c: New function to expand a non-complete
- realm to its official name, e.g nada -> NADA.KTH.SE.
-
- * lib/krb/get_default_principal.c: New function to guess the
- default principal to use. Looks at any existing ticket file first,
- then at uid/logname etc.
-
-
- * kadmin/kadmin.c: Use kname_parse and allow different instances
- and realms.
-
- * lib/roken/k_getpwnam.c: New function k_getpwnam that should work
- with and without shadow passwords.
-
- * Lots of files: s/getpwnam/k_&/g.
-
-Tue May 7 1996
-
- * lib/des/des_locl.h: DES library updated to version 3.23,
- des_locl.h now includes configure.h to get HAVE_TERMIOS etc.
-
- * lib/des/des.h: On the alpha define DES_LONG to unsigned int.
-
-
- * kuser/kinit.c: Handle passwords longer than 16 characters.
-
- * appl/xnlock/xnlock.c (GetPasswd): Handle longer passwords than
- 16 characters.
-
-Sun May 5 1996
-
- * Release 0.8.
-
-
- * appl/ftp/ftpd/kauth.c: Klist command.
-
-
- * appl/ftp/ftpd: Removed `-g' from calls to ls.
-
- * appl/ftp/ftp/cmds.c (setpeer): Fix so that opening a second
- connection to a specified port works.
-
- * appl/telnet/telnet: Default is binary.
-
- * appl: Now build under Ultrix.
-
- * appl/kx: Now even builds on AIX.
-
-Sat May 4 1996
-
- * lib/des: Now merged in libdes 3.21 on main branch.
-
-
- * appl/ftp/ftpd/logwtmp.c: Slightly different functionality. Works
- on systems that has more fields in struct utmp such as OSF/1.
- Still some questions about Solaris.
-
- * lib/krb/lsb_addr_comp.c: Now byteorder independent.
-
-
- * appl/kx: Rewrote kx & kxd to share more code. They are also now
- able to talk both ways.
-
- * lib/kdb/krb_dbm.c (kerb_db_rename): Now works properly when
- using berkeley DB.
-
-Thu Apr 25 1996
-
- * lib/krb/get_krbrlm.c (krb_get_default_realm): New function for
- SunOS5 compat.
-
- * When building shared libraries link libkrb with libdes to be
- compatible with SunOS5.
-
- * Move lib/krb/krb_err.et to lib/kadm since it is only used there,
- no longer need to link libkrb against libcom_err.
-
-Wed Apr 24 1996
-
- * lib/krb/lsb_addr_comp.h: Renamed ugly lsb_addr_comp.
-
- * Some porting to UNICOS.
-
-Tue Apr 23 1996
-
- * Moved some junk from appl/bsd to libroken.
-
- * lib/roken/Makefile.in (LIBNAME): Added header file roken.h for
- library libroken.a.
-
-
- * Add kerberized ftp.
-
- * Add libroken.
-
-Mon Apr 22 1996
-
- * appl/kauth/kauth.c: When commands are given to kauth, a new
- ticket file is used.
-
-Sat Apr 20 1996
-
- * appl/xnlock/xnlock.c: Fixed a potential overwrite bug. Also
- works with more than one screen, only fancy stuff on screen 0,
- though.
-
-Fri Apr 19 1996
-
- * appl/bsd/login.c, su.c, rshd.c, rlogind.c: Syslog and abort when
- getpwnam returns uid == 0 but user is not root. This is usually
- the result of an attack on NIS (former YP).
-
-Wed Apr 17 1996
-
- * kadmin/ksrvutil.c (get_key_from_password): Support for
- generating AFS keys. From <flag@it.kth.se>
-
-Sun Apr 14 1996
-
- * appl/kx: New program for forwarding a X connection.
-
-Mon Apr 8 1996
-
- * appl/bsd/rsh.c (get_shell_port): Default port number for ekshell
- changed from 2106 to 545.
-
- * appl/bsd/login.c (doremotelogin): Remove terminal speed from the
- value of $TERM in the case of an ancient rlogind being used.
-
-Thu Apr 4 1996
-
- * lib/kafs/afssys.c (k_afsklog): Try to read from
- /usr/vice/etc/TheseCells for list of cells we should try to obtain
- tokens for.
-
- * appl/kauth/kauth.c (renew): Use cell even when renewing.
-
- * appl/kauth/kauth.c, appl/xnlock/xnlock.c: Always call k_afsklog
- with realm == NULL.
-
-
- * lib/kafs/afssys.c: More thorough guessing of what realm a cell
- belongs to.
-
-Wed Apr 3 1996
-
- * appl/bsd/login.c: If setuid() failes and not logging in as root,
- exit.
-
-Tue Apr 2 1996
-
- * server/kerberos.c: Set name, inst, and realm to NULL in
- APPL_REQUEST, error replies tend to look a bit funny otherwise.
-
-Thu Mar 28 1996
-
- * appl/bsd/iruserok.c (iruserok): Imported iruserok() FreeBSD.
-
-Tue Mar 26 1996
-
- * lib/des/Makefile.in: Removed enc_read.c enc_writ.c.
-
- * appl/bsd/Makefile.in: New file with the old functions from
- libdes.
-
-
- * appl/bsd/utmp_login.c: Fixed (hopefully) double utmp-entries in
- Solaris. Only put entries in one of utmp/utmpx, since they both
- get updated by putut*ent() anyway.
-
-Mon Mar 25 1996
-
- * kuser/klist.c (main): Use verbose option (-v) to list key
- version numbers.
-
-
- * Release 0.7.
-
-Sun Mar 24 1996
-
- * appl/bsd/rlogin.c (doit): Moved signal junk (as far as possible)
- to doit().
-
-
- * configure.in: Check for getmsg with AC_TRY_RUN instead.
- Otherwise it fails under AIx 3.2. Now rlogind works on this
- so-called OS. Also cache value of berkeley db check.
-
-
- * lib/kdb/krb_kdb_utils.c: New experimental masterkey generation,
- enabled with --enable-random-mkey. This makes kdb_init et al
- generate random master keys, based on random input from the
- user. This comes in a package with auto-kstash, and possibility to
- enter lost master keys as base64.
-
- Moved default master key file from /.k to
- /var/kerberos/master-key, override with --with-mkey=file.
-
-
- * kadmin/kadmin.c (do_init): Handle the `-t' option to kadmin,
- meaning do not get a new ticket file. (From CNS).
-
-Fri Mar 22 1996
-
- * appl/xnlock/xnlock.c: Removed some dead code, and a few unused
- header files.
-
-
- * kadmin/pw_check.c (kadm_pw_check): If kadm_pw_check()
- fails *pw_msg can't be 0! At the very least use the
- empty string but a descriptive error-message is preferred.
-
- * libtelnet: add nonbroken signal() function.
-
-Wed Mar 20 1996
-
- * appl/kpopper/pop_pass.c (pop_pass): Use kuserok to determine if
- user is allowed to fetch mail.
-
- * appl/kpopper/*. Got rid of some ugly codes and some warnings.
-
- * appl/bsd/Makefile.in: signal.o was not included in OBJECTS,
- which made strange makes not doing what they should.
-
- * configure.in, appl/kpopper/popper.h, appl/bsd/pathnames.h: Now
- should work on systems that do not have mail spool files in
- /var/spool/mail. Looks for MAILDIR or _PATH_MAILDIR, usually from
- <paths.h> or <maillock.h>. Defaults to /var/spool/mail.
-
-Mon Mar 18 1996
-
- * appl/bsd/bsd_locl.h: TIOCPKT for those systems missing it.
-
-Fri Mar 15 1996
-
- * lib/kafs/kafs.h: Use <sys/ioctl.h> instead of <sys/ioccom.h>
-
- * appl/bsd/rshd.c (doit): Don't set environ, send it as an
- argument to execle instead.
-
- * lib/kafs/kafs.h: Find definition of _IOW.
-
- * configure.in: Check for random.
-
- * appl/bsd/bsd_locl.h: Including <crypt.h> gives too many conflicts.
-
- * appl/afsutil/pagsh.c: Check for random.
-
-Thu Mar 14 1996
-
- * appl/bsd/bsd_locl.h, appl/telnet/telnetd/defs.h: Default values
- of `TIOCPKT_FLUSHWRITE' & c:o.
-
- * appl/telnet/telnet{,d}/Makefile.in (telnetd): Change order of
- linking in libraries.
-
- * configure.in: Check for interesting functions in libsocket and
- libnsl and not strange soriasis inventions.
-
-Wed Mar 13 1996
-
- * appl/bsd/bsd_locl.h (fatal): Only use prototype or iruserok if
- the function does not exist.
-
-Mon Mar 11 1996
-
- * lib/krb/krb_err_txt.c (krb_get_err_text): Changed name of
- krb_err_msg to krb_get_err_text(int) to be compatible with the CNS
- distribution. This function is used for instance by CVS-1.7.
-
-Sun Mar 10 1996
-
- * configure.in, appl/Makefile.in: removed rkinit
-
- * etc/inetd.conf.changes, etc/services.append: Added kauth.
-
- * appl/kauth: Integrated rkinit into kauth.
-
- * appl/kauth/kauth.c (main): Only look for principal name if no -p
- has been given.
-
- * lots of files: prototypes and other small fixes.
-
- * appl/bsd/sysv_shadow.h: spwd multiple defined.
-
- * appl/bsd/bsd_locl.h: include <crypt.h>
-
- * configure.in: Added afsutil and rkinit.
-
- * */Makefile.in: Do cd $$i && $(MAKE). Otherwise, if cd fails you
- end up with an infinite recursion.
-
- * kuser/klist.c (display_tktfile): Another warning removed.
-
-Tue Mar 5 1996
-
- * appl/bsd/forkpty.c (forkpty): Kludge for Ultrix, rlogind now
- works properly also under this system.
-
-
- * appl/afsutil: New aklog and pagsh
-
-
- * lib/krb/krb_equiv.c (krb_equiv): Fix bugs with '\\'.
-
- * lib/des/rnd_keys.c: Include <sys/time.h>.
-
-Mon Mar 4 1996
-
- * appl/kauth/kauth.c (main): Handle name when given after options.
-
-Sun Mar 3 1996
-
- * appl/rkinit/rkinit.c (getalladdrs): Check for herror. Solaris
- apparently does not have any.
- (main): Use memset instead of bzero.
-
- * appl/rkinit/rkinitd.c (decrypt_remote_tkt): bcopy -> memcpy.
-
- * kuser/kinit.c (main): Corrected lifetime.
-
- * lib/krb/krb_equiv.c (krb_equiv): Now handles longer lines,
- continuation lines and addresses of the form 193.10.156.0/24.
-
-
- * kuser/Makefile.in (kdestroy): Link kdestroy with libkafs.
-
-Wed Feb 28 1996
-
- * Replaced all occurencies of krb_err_txt[] with new function
- krb_err_msg(), that does some sanity checks before indexing
- krb_err_txt.
-
-Mon Feb 26 1996
-
- * appl/telnet/telnetd: Added flags -z to have telnetd log
- unauthenticated logins, such as when using an old telnet
- client. Unfortunately in most of these cases, the user name is not
- known.
-
- There should also be a way to tell the difference between bad
- authentication (such as with expired tickets) and no attempt to
- provide authentication (such as with an old client).
-
-Sun Feb 25 1996
-
- * kuser/kdestroy.c: Remove afs-tokens as well as tickets, -t flags
- added to prevent this.
-
-Thu Feb 22 1996
-
- * appl/rkinit/rkinitd.c (doit): Use k_getsockinst to make it work
- correctly for multi-homed hosts.
-
- * appl/rkinit: New program with rkinit functionality.
-
- * lib/krb/k_getport.c: Function for finding port in /etc/services
- with fallback.
-
- * lib/krb/netread.c,netwrite.c (krb_net_{read,write}): Now correct
- prototype with void * and size_t.
-
-Wed Feb 21 1996
-
- * kadmin/new_pwd.c (get_pw_new_pwd): Moved get_pw_new_pwd to
- seperate file. Now called both from kadmin and kpasswd.
-
- * kadmin/pw_check.c (kadm_pw_check): Handle the case of no
- password provided. This is really a policy decision. The server
- should be able to say `use a client that sends the password'.
-
- * appl/bsd/rlogind.c (local_domain): MAXHOSTNAMELEN -> MaxHostNameLen.
-
-Sun Feb 18 1996
-
- * appl/bsd/rcp.c (answer_auth): Made rcp multihome aware.
-
- * appl/bsd/rlogind.c (do_krb_login): Made rlogind multihome aware.
-
- * appl/bsd/rshd.c (doit): Made rshd multihome aware.
-
- * lib/krb/k_getsockinst.c (k_getsockinst): New function to figure
- out the instance name of interfaces on multihomed hosts. Use this
- function when making daemons multihome aware.
-
- * appl/telnet/libtelnet/kerberos.c (kerberos4_is): Made telnetd
- multihome aware.
-
-Mon Feb 12 1996
-
- * Release 0.6.
-
-Sun Feb 11 1996
-
- * lots of files: hacks to make it all compile.
-
- * configure.in, appl/telnet/configure.in: More broken AIX.
-
-
- * appl/bsd/bsd_locl.h: Fix for old syslogs (as in Ultrix).
-
-
- * appl/telnet/libtelnet/encrypt.c: encrypt_verbose by default.
-
-
- * appl/telnet/libtelnet/kerberos.c: Show difference between
- MUTUAL and ONE_WAY KERBEROS4.
-
- * appl/telnet/libtelnet/encrypt.c:
- Print message about not encrypting when receiving WONT or DONT encrypt.
-
-
- * configure.in: Automatic check for HAVE_NEW_DB.
-
-
- * lib/krb/getaddrs.c (k_get_all_addrs): Fixed for systems with
- SOCKADDR_HAS_SA_LEN, aka 4.4BSD-based.
-
- * appl/telnet/telnetd/global.c: Removed some multiple defined
- variables.
-
- * appl/bsd/rlogind.c (cleanup): ifndef HAVE_VHANGUP.
-
- * appl/bsd/sysv_shadow.h: Add DAY and DAY_NOW ifndef.
-
- * configure.in: Check if `struct sockaddr' has `sa_len'.
-
-Sat Feb 10 1996
-
- * appl/telnet/telnetd/telnetd.c (recv_ayt): pty -> ourpty.
-
- * appl/bsd/bsd_locl.h: More include-files: <sys/uio.h> and <userpw.h>
-
- * appl/kpopper/popper.c (catchSIGHUP): Got rid of some warnings.
-
- * lib/krb/log.c (new_log): Yet another year 2000.
-
- * appl/bsd/sysv_environ.c (read_etc_environment): Support setting
- environment variables from /etc/environment.
-
- * appl/bsd/bsd_locl.h: <usersec.h>
-
- * configure.in: check for setpcred, libs.a and <usersec.h>.
-
- * appl/bsd/login.c (main): setpcred is used on AIX.
-
- * appl/bsd/rshd.c (doit): Added setpcred for AIX.
-
- * lib/krb/getaddrs.c: <sys/sockio.h> is sometimes needed.
-
- * admin/kdb_init.c (main): Now verifies master key.
-
- * lib/kdb/krb_kdb_utils.c (kdb_get_master_key): Added possibility
- of asking for verfication.
-
- * appl/bsd/bsd_locl.h: Try to include <sys/stream.h>
-
- * appl/telnet/telnetd/utility.c (printsub): Mismatch arguments.
-
- * lib/krb/send_to_kdc.c (send_to_kdc): Send to all A records and
- accept an answer from anything we have sent to.
-
- * appl/kauth/kauth.c (renew): Use strange return types for strange
- OSes.
- (doexec): Remove tokens.
-
- * server/kerberos.c (main): Uses k_get_all_addrs and binds to each
- of these addresses.
-
- * kadmin/ksrvutil_get.c (ksrvutil_get): Added support for
- specifying key to create on command line to get.
-
-Wed Feb 7 1996
-
- * lib/krb/log.c (k_log): Now using YYYY for years.
-
- * lib/krb/klog.c (klog): Preparing for the year 2000.
-
- * kuser/kinit.c (main): Added option -p to get changepw-tickets.
-
- * lib/krb/getaddrs.c: New file to get all the addresses of all the
- interfaces on this machine.
-
-Tue Feb 6 1996
-
- * configure.in: Support for S/Key in login.c. Use --with-skeylib
- switch to configure. The code assumes that the skeylib.a comes
- from logdaemon.
-
- * General support for shadow password files if there is an
- shadow.h.
-
- * appl/bsd/su.c: Arrange so that it supports shadow passords.
-
-Sun Feb 4 1996
-
- * appl/telnet/*: Hacks to make it work on strange OSes.
-
- * appl/bsd/bsd_locl.h: Check for sys/ptyvar.h
-
- * appl/telnet/configure.in (telnet_msg): sys/str_tty.h, sys/uio.h
-
- * configure.in: test for crypt.h and sys/ptyvar.h
-
- * appl/telnet/telnetd/*.c: pty -> ourpty.
-
-
- * telnetd: Changes to make more systems work better, specifically
- AIX 4. Hopefully this will work on both STREAM and BSD
- systems. Not tested on some systems, like CRAY and Linux.
-
-
- * util/ss/mk_cmds.c: Generating cleaner code.
-
- * lib/krb/krb_err_txt.c (krb_err_txt): Clarification.
-
- * kadmin/admin_server.c: Less varnings.
-
- * appl/xnlock/xnlock.c: Changed some types and added some casts.
-
- * appl/movemail/movemail.c: Not using syswait.h anymore.
-
- * appl/xnlock/xnlock.c: God rid of some warnings.
-
- * util/ss/*.[ch]: cleanup
-
- * util/et/*.[ch]: cleanup
-
- * appl/bsd/rcp.c: Less warnings.
-
- * kadmin/admin_server.c (kadm_listen): Get rid of another warning.
-
- * kadmin/pw_check.c (kadm_pw_check): Support for letting cracklib
- check the quality of the password.
-
- * kadmin/pw_check.h (kadm_pw_check): New argument to
- kadm_pw_check: list of useful strings to check for.
-
- * kadmin/kadm_server.c (kadm_ser_cpw): Send a few `useful' strings
- to kadm_pw_check (name, instance, and realm).
-
- * kadmin/Makefile.in (kadmind): Linking with -lcrack.
-
- * configure.in: Support for --with-cracklib and --with-dictpath.
-
- * kadmin/ksrvutil_get.c: Now seems to be working.
-
- * kadmin/ksrvutil.h: Some new parameters.
-
- * kadmin/ksrvutil.c: Some reorganisation and uses a working
- ksrvutil_get.
-
- * appl/movemail/movemail.c: Some more include-files.
-
- * appl/bsd/rlogind.c: Testing for the existence of vhangup.
-
-Wed Jan 31 1996
-
- * configure.in: Massaged the configure files so that we can build
- under NEXTSTEP 3.3. Some kludges to prevent cpp bugs and link
- errors where also neccessary.
-
-Tue Jan 30 1996
-
- * appl/xnlock/xnlock.c (main): Improved user feedback on password
- input.
-
- * appl/xnlock/xnlock.c: Applied patch made by flag@it.kth.se that
- enables C-u to erase the password field.
-
- * lib/krb/lifetime.c: configure now creates a version string which
- is referenced here. Use what and grep version to figure out where,
- when and by whom binaries where created.
-
- * appl/bsd/forkpty.c (ptys_open): Call revoke before pty slave is
- opened. Add revoke using vhangup for those system lacking revoke.
- Also call vhangup when rlogind exits.
-
-Mon Jan 29 1996
-
- * lib/krb/send_to_kdc.c (send_to_kdc): Removed kludge for SunOS
- 3.2 and Ultrix 2.2 that prevented multihomed kerberos servers to
- operate correctly.
-
- * kadmin/kadmin.c (change_key): Add new subcommand change_key so
- that it is possible to enter keys in the DB on binary form. Most
- usefull for sites running AFS.
-
-Fri Jan 26 1996
-
- * appl/bsd/su.c (koktologin): New option -i root-instance. If you
- want a user.afs ticket in a root shell and user.afs is on root's
- ACL then do a "su -i afs".
-
- * Makefile.in: Rearrange the order of object files to make shared
- libraries slightly more efficient.
-
- * appl/kauth/kauth.c (main): Always up case realm. Better error
- messages on failed exec.
-
-Mon Jan 22 1996
-
- * appl/bsd/rshd.c (main): New option -P to prevent rshd from using
- a new PAG. Expert use only!
-
- * appl/bsd/rlogind.c (doit): Avoid race when setting tty size.
-
- * appl/bsd/rlogin.c (reader): Use select rather than horrible
- signal hacks to handle OOB data.
-
- * appl/bsd/login.c (main) sysv_environ.c (sysv_newenv): Login does
- now honor the -p switch when invoked by root. This is used by
- telnetd to export environment variables.
-
-Fri Jan 5 1996
-
- * appl/bsd/signal.c (signal): New BSD compatible signal
- function. Most r* applications assume reliable signals.
-
-
- * appl/bsd/login.c (main): Check HAVE_ULIMIT.
-
- * appl/bsd/bsd_locl.h: Include sys/ioctl.h.
-
- * configure.in: Check for ulimit.
-
- * admin/kdb_edit.c: Flush stdout after printing prompts.
-
- * appl/kpopper/pop_xmit.c: Remember to include config.h.
-
-Tue Jan 2 1996
-
- * appl/bsd/login.c (main): New function stty_default to setup
- default tty settings.
-
-Fri Dec 29 1995
-
- * appl/kstring2key/kstring2key.c (main): New program that converts
- passwords to DES keys, either using des_string_to_key or
- afs_string_to_key.
-
- * server/kerberos.c: Kerberos server now listen on 2 ports,
- kerberos/udp and kerberos-sec/udp.
-
-Wed Dec 27 1995
-
- * appl/bsd/rcp.c (main): Integrated -x option to rcp. This
- required some real horrible hacks in lib/des/enc_{read,write}.c
-
- * acconfig.h: Enabled MULTIHOMED_KADMIN in acconfig.h.
-
- * Add RCSID stuff to telnet files.
-
-Fri Dec 22 1995
-
- * appl/bsd/login.c (main): The login program does now by default
- read /etc/default/login, even on non Psoriasis systems. Unifdef
- SYSV4, this was essentially only for prompting.
-
-Mon Dec 18 1995
-
- * appl/kpopper/popper.c (main): Integrate default timeout of 120
- seconds from Qualcomm popper. Timeout is also set able with -T
- seconds.
-
-
- * lib/kadm/kadm_cli_wrap.c (kadm_change_pw_plain): If there's no
- password, don't even send the empty string.
-
-Thu Dec 7 1995
-
- * lots of files: all debug messages now printed to stderr (from
- <lama@pdc.kth.se>)
-
- * lib/krb/tf_util.c (tf_create): New method for creating a new
- ticket file. Remove the old old and then open with O_CREAT and
- O_EXCL.
-
- * server/kerberos.c, slave/kpropd.c: Some casts to get rid of warnings.
-
- * configure.in: Added checks for unistd.h, memmove and const.
-
- * appl/telnet/telnet/commands.c: Changed types of functions to
- confirm with struct Command.
-
- * appl/telnet/configure.in: Check for setpgid.
-
- * appl/bsd/rlogin.c: Get rid of another warning.
-
- * appl/bsd/bsd_locl.h, appl/telnet/acconfig.h: New synonym for
- solaris.
-
-Wed Dec 6 1995
-
- * (movemail): Now from emacs-19.30. If you have a newish emacs
- there is no reason to use this movemail.
-
- * (kadm): Added support for server side password checks. Hopefully
- this is compatible with kerberos 4.10. Old kpasswd:s will give
- funny error messages. For examples of checks, see
- kadmin/pw_check.c. Since this is mostly political matters,
- kadm_pw_check() should probably return KADM_SUCCESS by default.
-
-Mon Nov 27 1995
-
- * appl/telnet/telnetd/telnetd.c (main): Kludge to fix encryption
- problem with Mac NCSA telnet 2.6.
-
-
- * lib/krb/stime.c: Now using YYYY for years. (2000 is soon here).
-
- * appl/bsd/rsh.c, rcp.c, rlogin.c: Fixed fallback for port number
- (added missing ntohs).
-
-Sun Nov 12 1995
-
- * (many files): More ANSI/ISO 9899-1990 to the people!
- Now actually builds (not including util) with DEC "cc -std1" and
- Sun "acc -Xc". There are still major prototype conflicts, but
- there isn't much to do about this.
-
-Sat Oct 28 1995
-
- * lib/kadm/kadm_cli_wrap.c: Fallback for kerberos and
- kerberos_master services.
-
-Fri Oct 27 1995
-
- * Released version 0.5
-
-
- * lib/des/read_pwd.c: Redifine TIOCGETP and TIOCSETP so that the
- same code is used both for posix termios and others.
-
- * rsh, rlogin: Add environment variable RSTAR_NO_WARN which when
- set to "yes" make warnings about "rlogin: warning, using standard
- rlogin: remote host doesn't support Kerberos." go away.
-
-Tue Oct 24 1995
-
- * admin/kdb_util.c (load_db) lib/kdb/krb_dbm.c (kerb_db_update):
- Optimized so that it can handle large databases, previously a
- 10000 entry DB would take *many* minutes, this can now be done in
- under a minute.
-
-Sat Oct 21 1995
-
- * Changes in server/kerberos.c, kadmin/*.c slave/*.c to support 64
- bit machines. Source should now be free of 64 bit assumptions.
-
- * admin/copykey.c (copy_from_key): New functions for copying to
- and from keys. Neccessary to solve som problems with longs on 64
- bit machines in kdb_init, kdb_edit, kdb_util and ext_srvtab.
-
- * lib/kdb/krb_kdb_utils.c (kdb_verify_master_key): More problems
- with longs on 64 bit machines.
-
-Mon Oct 16 1995
-
- * appl/bsd/login.c (main): Lots of stuff to support Psoriasis
- login. Courtesy of gertz@lysator.liu.se.
-
- * configure.in, all Makefile.in's: Support for Linux shared
- libraries. Courtesy of svedja@lysator.liu.se.
-
- * lib/krb/cr_err_reply.c server/kerberos.c: Moved int req_act_vno
- = KRB_PROT_VERSION; from server kode to libkrb where it really
- belongs.
-
- * appl/bsd/forkpty.c (forkpty): New function that allocates master
- and slave ptys in a portable way. Used by rlogind.
-
- * appl/telnet/telnetd/sys_term.c (start_login): Under SunOS5 the
- same utmpx slot got used by sevral sessions. Courtesy of
- gertz@lysator.liu.se.
-
-Wed Oct 4 1995
-
- * util/{ss, et}/Makefile.in (LEX): Use flex or lex. Courtesy of
- svedja@lysator.liu.se.
-
- * Fix the above Makefiles to work around bugs in Solaris and OSF/1
- make rules that was triggered by VPATH functionality in the yacc
- and lex rules.
-
-Mon Oct 2 1995
-
- * appl/kpopper/pop_log.c (pop_log) appl/kpopper/pop_msg.c (pop_msg):
- Use stdarg instead of varargs. The code is still broken though,
- you'll realize that on a machine with 64 bit pointers and 32 bit
- int:s and no vsprintf, let's hope there will be no such beasts ;-).
-
- * appl/telnet/telnetd/sys_term.c (getptyslave): Not all systems
- have (or need) modules ttcompat and pckt so don't flag it as a
- fatal error if they don't exist.
-
-Mon Sep 25 1995
-
- * kadmin/admin_server.c (kadm_listen) kadmind/kadm_ser_wrap.c
- (kadm_listen): Add kludge for kadmind running on a multihomed
- server. #ifdef:ed under MULTIHOMED_KADMIN. Change in acconfig.h
- if you need this feature.
-
- * appl/Makefile.in (SUBDIRS): Add applications movemail kpopper
- and xnlock.
-
-Wed Sep 20 1995
-
- * appl/bsd/rlogin.c (main): New rlogind.c, forkpty() is not
- implemented yet though.
-
-Wed Sep 13 1995
-
- * appl/xnlock/Makefile.in: Some stubs for X11 programs in
- configure.in as well as a kerberized version of xnlock.
-
- * appl/bsd/{rlogin.c, rsh.c, rcp.c}: Add code to support fallback
- port numbers if they can not be found using getservbyname.
-
-Tue Sep 12 1995
-
- * appl/bsd/klogin.c (klogin): Use differnet ticket files for each
- login so that a malicous user won't be able to destroy our tickets
- with a failed login attempt.
-
- * lib/kafs/afssys.c (k_afsklog): First we try afs.cell@REALM, if
- there is no such thing try afs@CELL instead. There is now two
- arguments to k_afslog(char *cell, char *realm).
-
-Mon Sep 11 1995
-
- * kadmin/admin_server.c (kadm_listen): If we are multihomed we
- need to figure out which local address that is used this time
- since it is used in "direction" comparison.
-
-Wed Sep 6 1995
-
- * kadmin/kadm_ser_wrap.c (kadm_ser_init): Fallback to use default
- port number.
-
- * lib/krb/send_to_kdc.c (send_to_kdc): Default port number
- (KRB_PORT) was not in network byte order.
-
-Tue Sep 5 1995
-
- * lib/krb/send_to_kdc.c (send_recv): Linux clears timeout struct
- when selecting.
-
-
-Mon Sep 4 1995
-
- * appl/bsd/rcp.c, appl/bsd/rlogin.c, appl/bsd/rsh.c:
- Now does fallback if there isn't any entries in /etc/services for
- klogin/kshell. This also made the code a bit more pretty.
-
-
- * appl/bsd/login.c: Added support for lots of more struct utmp fields.
- If there is no ttyslot() use setutent and friends.
-
- * appl/bsd/Makefile.in, appl/bsd/rlogind.c, appl/bsd/rshd.c:
- Added extern iruserok().
-
- * appl/bsd/iruserok.c: Initial revision
-
- * appl/bsd/bsd_locl.h: Must include sys/filio.h on Psoriasis.
-
- * appl/bsd/Makefile.in: New install
-
- * appl/bsd/pathnames.h: Fix default path, rsh and rlogin.
-
- * appl/bsd/rshd.c: Extend default PATH with bindir to find rcp.
-
-
- * appl/bsd/login.c (login): If there is no ttyslot use setutent
- and friends. Added support for lots of more struct utmp fields.
-
- * server/kerberos.c (main) lib/kafs/afssys.c appl/bsd/bsd_locl.h:
- Must include sys/filio.h on Psoriasis to find _IOW and FIO* macros.
-
- * appl/bsd/rlogind.c (doit): Use _PATH_DEFPATH rather than
- _PATH_DEF.
-
- * appl/bsd/login.c, su.c (main): Use fallback to bourne shell if
- running as root.
-
- * appl/bsd/su.c (main): Update usage message to reflect that '-'
- option must come after the ordinary options and before login-id.
-
-Sat Sep 2 1995
-
- * appl/telnet/telnetd/telnetd.c (doit): If remote host name is to
- long to fit into utmp try to remove domain part if it does match
- our local domain.
-
- (main): Add new option -L /bin/login so that it is possible to
- specify an alternate login program.
-
- * appl/telnet/telnet/commands.c (env_init): When exporting
- variable DISPLAY and if hostname is not the full name, try to get
- the full name from DNS.
-
- * appl/telnet/telnet/main.c (main): Option -k realm was broken due
- to a bogous external declaration.
-
-Fri Sep 1 1995
-
- * kadmin/kadmin.c (add_new_key): Kadmin now properly sets
- lifetime, expiration date and attributes in add_new_key command.
-
-Wed Aug 30 1995
-
- * appl/bsd/su.c (main): Don't handle '-' option with getopt.
-
- * appl/telnet/telnet/externs.h: Removed protection for multiple
- inclusions of termio(s).h since it broke definition of termio
- macro on POSIX systems.
-
-Tue Aug 29 1995
-
- * lib/krb/lifetime.c (krb_life_to_time): If you want to disable
- AFS compatible long lifetimes set krb_no_long_lifetimes = 1.
-
- Please note that the long lifetimes are 100% compatible up to
- 10h so this should rarely be necessary.
-
- * lib/krb/krb_equiv.c (krb_equiv): If you don't want to use
- ipaddress protection of tickets set krb_ignore_ip_address. This
- makes it possible for an intruder to steal a ticket and then use
- it from som other machine anywhere on the net.
-
-Mon Aug 28 1995
-
- * kadmin/kadm_ser_wrap.c (kadm_ser_init): Don't bind to only one
- local address. Accept request on all interfaces.
-
- * admin/kdb_edit.c (change_principal): Don't accept illegal
- dates. Courtesy of gertz@lysator.liu.se.
-
-Sat Aug 26 1995
-
- * configure.in: AIX specific libraries needed when using standard
- libc routine getttyent, IBM should be ashamed!
-
- * lib/krb/recvauth.c (krb_recvauth): Long that should be int32_t
- problem.
-
- * Added strdup for su and rlogin.
-
- * Fix for old syslog macros in appl/bsd/bsd_locl.
-
-Fri Aug 25 1995
-
- * lib/kdb/krb_dbm.c (kerb_db_rename) admin/kdb_destroy.c: New
- ifdef HAVE_NEW_DB for new databases residing in one file only.
-
- * appl/bsd/rlogin.c (oob): Add workaround for Linux.
-
-Mon Aug 21 1995
-
- * appl/bsd/getpass.c: New routine that reads up to 127 char
- passwords. Used in su.c and login.c.
-
-Tue Aug 15 1995
-
- * appl/telnet/telnetd/sys_term.c (login_tty): Ioctl TIOCSCTTY
- should not be used on HP-UX.
-
-Mon Aug 14 1995
-
- * appl/bsd/rlogin.c (main): Added dummy rlogind that tells user to
- rather use telnet.
-
-Thu Aug 10 1995
-
- * lib/krb/ krb.h, decomp_ticket.c, getrealm.c, get_krbhst.c,
- get_krbrlm.c, get_admhst.c:
-
- Use multiple configuration directories for krb.conf and
- krb.realms, KRB_CONF and KRB_REALM_TRANS macros substituted with
- KRB_CNF_FILES and KRB_RLM_FILES. Currently /etc and
- /etc/kerberosIV are searched. Directory specified by envioronment
- variable KRBCONFDIR is searched first if set. No hardcoded
- realmname or kerberos server. Instead use domainname for deafult
- realm and kerberos.domain as kerberos server if they are not
- listed in krb.conf and/or krb.realms. In the normal case there
- should be no need for configuration files if administrators add a
- CNAME pointing to the kerberos server.
-
- * appl/bsd/Makefile.in and friends: GNU make should no longer be
- neccessary unless building with VPATH.
-
-Wed Aug 9 1995
-
- * appl/bsd/klogin.c (klogin): Old ticket file need to be removed
- before we call krb_get_pw_in_tkt or we might get a Kerberos intkt
- error because the wrong user owns the file.
-
-Tue Aug 8 1995
-
- * configure.in : Telnet.beta2 is now official and has been moved
- to appl/telnet.
-
- * appl/bsd/su.c (main): Reenable -K flag, won't work if not
- PASSWD_FALLBACK is enabled. Cosmetics for Password prompt.
-
-Fri Aug 4 1995
-
- * appl/bsd/su.c (kerberos): Don't allow su from possibly bogous
- kerberos server. Controlled by #ifdef KLOGIN_PARANOID.
-
- * lib/kafs/afssys.c (SIGSYS_handler): Need to reinstall handler on
- SYSV.
-
-Mon Jul 24 1995
-
- * lib/kafs/afssys.c (k_afsklog): Use default realm on null argument.
-
- * appl/bsd/rlogin.c, login.c: New programs.
-
-Fri Jul 21 1995
-
- * appl/bsd/kcmd.c rsh.c rlogin.c: Use POSIX signals.
-
- * appl/telnet.95.05.31.NE/telnetd/sys_term.c, telnetd.c: Port to
- IRIX.
-
-Tue Jul 11 1995
-
- * admin/kdb_init.c (main): Use new random generator. Dito in
- admin/kdb_edit.c. Use master key to initialize random sequence.
-
-Mon Jul 10 1995
-
- * kadmin/kadmin.c (get_password): Fix for random passwords.
- Dito for admin/kdb_edit.c
-
- * appl/kauth/kauth.c (main): Updated for krb distribution, now
- uses new library libkafs.
-
- * appl/telnet.beta/telnet/main.c (main): New telnet with
- encryption hacks from ftp.funet.fi:/pub/unix/security/esrasrc-1.0.
- Encryption does not currently work though.
-
-Tue Jun 20 1995
-
- * New library to support AFS. Routines:
-
- int k_hasafs(void);
- int k_afsklog(...);
- int k_setpag(void);
- int k_unlog(void);
- int k_pioctl(char *, int, struct ViceIoctl *, int);
-
- Modified it to support more than one single entry point AFS
- syscalls (needed by HPUX and OSF/1 when running DFS). Don't rely
- on transarc headers or library code.
-
- This has not been tested and will most probably need some
- serious violence to get working under AIX. (AIX has since been
- fixed to. /bg)
-
-Fri Jun 16 1995
-
- * lib/krb/krb_equiv.c (krb_equiv): Compare IP adresses using
- krb_equiv() to allow for hosts with more than one address in files
- rd_priv.c rd_req.c and rd_safe.c.
-
- * slave/kpropd.c (main): Fix uninitialized variables and rewind
- file in kprop.c.
-
-Thu Jun 15 1995
-
- * appl/bsd/rcp.c (allocbuf): Fix various bugs.
-
- * slave/kpropd.c (main): Responder uses
- KPROP_SERVICE_NAME.`hostname' and requestor always uses
- KPROP_SERVICE_NAME.KRB_MASTER, i.e rcmd.kerberos in kprop/kpropd
- protocol.
-
-Wed Jun 14 1995
-
- * appl/bsd/rshd.c (doit): Encryption should now work both ways.
-
-Tue Jun 13 1995
-
- * appl/bsd/pathnames.h: Fixup paths.
-
- * server/Makefile.in and friends (install): Install daemons in in
- libexec and administrator programs in sbin.
-
-
- * Makefile.in: Joda (d91-jda) added install target
-
-Wed Jun 7 1995
-
- * lib/krb/k_strerror.c: New function k_strerror() to use instead
- of the non portable sys_errlist[].
diff --git a/crypto/kerberosIV/Makefile.in b/crypto/kerberosIV/Makefile.in
deleted file mode 100644
index afa77fbec745..000000000000
--- a/crypto/kerberosIV/Makefile.in
+++ /dev/null
@@ -1,70 +0,0 @@
-# $Id: Makefile.in,v 1.30 1997/05/20 18:58:34 bg Exp $
-
-srcdir = @srcdir@
-prefix = @prefix@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-TRAVELKIT = appl/kauth/kauth kuser/klist appl/telnet/telnet/telnet \
- appl/ftp/ftp/ftp appl/kx/kx appl/kx/rxtelnet
-
-@SET_MAKE@
-
-SUBDIRS = util include lib kuser server slave admin kadmin appl man doc
-
-all:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) all); done
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-check:
- cd lib && $(MAKE) $(MFLAGS) check
-
-install:
- $(MKINSTALLDIRS) $(prefix)
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) install); done
-
-install-strip:
- $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
-
-uninstall:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) uninstall); done
-
-travelkit: all
- $(MKINSTALLDIRS) tmp
- for i in $(TRAVELKIT); \
- do $(INSTALL_PROGRAM) $$i tmp; done
- (cd tmp; tar cf ../travelkit.tar `for i in $(TRAVELKIT); do basename $$i; done`)
- rm -rf tmp
-
-travelkit-strip:
- $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' travelkit
-
-TAGS:
- find . -name '*.[chyl]' -print | etags -
-
-clean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) clean); done
-
-mostlyclean: clean
-
-distclean:
- $(MAKE) clean
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) distclean); done
- rm -f Makefile config.status config.cache config.log version.h newversion.h.in version.h.in *~
-
-realclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) realclean); done
-
-.PHONY: all install install-strip uninstall travelkit travelkit-strip clean distclean realclean mostlyclean
diff --git a/crypto/kerberosIV/NEWS b/crypto/kerberosIV/NEWS
deleted file mode 100644
index cddbb2291699..000000000000
--- a/crypto/kerberosIV/NEWS
+++ /dev/null
@@ -1,563 +0,0 @@
-Minor changes in release 0.9.6:
-
-* utmp(x) works correctly on systems with utmpx.
-
-* A security-related bug in ftpd fixed.
-
-* Compiles on solaris 2.4, 2.6 and on WinNT/95 with cygwin32 beta18.
-
-* New option `-w' to rxtelnet, rxterm.
-
-Major changes in release 0.9.5:
-
-* We made some changes to be compatible with the other kerberised ftp
- implementations and this means that an old kerberised ftp client will
- not be able to talk to a new ftp server. So try to upgrade your ftp
- clients and servers at the same time. The reason for this change is
- described in more detail below.
-
-* The interpretation of /etc/ftpusers has changed slightly, see
- ftpusers(5). These changes come from NetBSD.
-
-* The function `des_quad_cksum', which is used by `krb_rd_safe', and
- `krb_mk_safe', has never been compatible with MIT's DES
- library. This has now been fixed.
-
- This fix will however break some programs that used those functions,
- for instance `ftp'. In this version `krb_rd_safe' is modified to
- accept checksums of both the new and the old format; `krb_mk_safe'
- will always emit checksums of the new type *unless* `krb_rd_safe'
- has detected that the client is using the old checksum (this feature
- may be removed in some future release).
-
- If you have programs that use `krb_mk_safe' and `krb_rd_safe' you
- should upgrade all clients before upgrading your servers. Client is
- here defined as the program that first calls `krb_rd_safe'.
-
- If you are using some protocol that talks to more than one client or
- server in one session, the heuristics to detect which kind of
- checksum to use might fail.
-
- The problem with `des_quad_cksum' was just a byte-order problem, so
- there are no security problems with using the old versions. Thanks
- to Derrick J Brashear <shadow@DEMENTIA.ORG> for pointing in the
- right general direction.
-
-* Rewrote kx to work always open TCP connections in the same
- direction. This was needed to make it work through NATs and is
- generally a cleaner way of doing it. Also added `tenletxr'.
- Unfortunately the new protocol is not compatible with the old one.
- The new kx and kxd programs try to figure out if they are talking to
- old versions.
-
-* Quite a bit of new functionality in otp. Changed default hash
- function to `md5'. Fixed implementation of SHA and added downcasing
- of seed to conform with `draft-ietf-otp-01.txt'. All verification
- examples in the draft now work.
-
-* Fixed buffer overflows.
-
-* Add history/line editing in kadmin and ftp.
-
-* utmp/utmpx and wtmp/wtmpx might work better on strange machines.
-
-* Bug fixes for `rsh -n' and `rcp -x'.
-
-* reget now works in ftp and ftpd. Passive mode works. Other minor
- bug fixes as well.
-
-* New option `-g umask' to ftpd for specifying the umask for anonymous users.
-
-* Fix for `-l' option in rxtelnet and rxterm.
-
-* XOVER support in popper.
-
-* Better support for building shared libraries.
-
-* Better support for talking to the KDC over TCP. This could make it
- easier to use brain-damaged firewalls.
-
-* Support FreeBSD-style MD5 /etc/passwd.
-
-* New option `-createuser' to afslog.
-
-* Upgraded to work with socks5-v1.0r1.
-
-* Almost compiles and works on OS/2 with EMX, and Win95/NT with gnu-win32.
-
-* Merged in win32-telnet, see README-WIN32 for more details.
-
-* Possibly fixed telnet bug on HP-UX 10.
-
-* Updated man-pages.
-
-* Support for NetBSD/OpenBSD manual page circus.
-
-* Bug fixes.
-
-Major changes in release 0.9.3:
-
-* kx has been rewritten and is now a lot easier to use. Two new
- scripts: rxtelnet and rxterm. It also works on machines such as
- Cray where the X-libraries cannot talk unix sockets.
-
-* experimental OTP (RFC1938). Included in login, ftpd, and popper.
-
-* authentication modules: PAM for linux, SIA for OSF/1, and
- afskauthlib for Irix.
-
-* popper now has the UIDL command.
-
-* ftpd can now tar and compress files and directories on the fly, also
- added a find site command.
-
-* updated documentation and man pages.
-
-* Change kuserok so that it acts as if luser@LOCALREALM is always an
- entry of .klogin, even when it's not possible to verify that there
- is no such file or the file is unreadable.
-
-* Support for SRV-records.
-
-* Socks v5 support.
-
-* rcp is AFS-aware.
-
-* allow for other transport mechanisms than udp (useful for firewall
- tormented souls); as a side effect the format of krb.conf had to
- become more flexible
-
-* sample programs included.
-
-* work arounds for Linux networking bugs in rlogind and rlogin.
-
-* more portable
-
-* quite a number of improvments/bugfixes
-
-* New platforms: HP-UX 10, Irix 6.2
-
-Major changes in release 0.9.2a:
-
-* fix annoying bug with kauth (et al) returning incorrect error
-
-Major changes in release 0.9.2:
-
-* service `kerberos-iv' and port 750 has been registered with IANA.
-
-* Bugfixes.
-
- - Compiles with gcc on AIX.
-
- - Compiles with really old resolvers.
-
- - ftp works with afs string-to-key.
-
- - shared libraries should work on Linux/ELF.
-
- - some potential buffer overruns.
-
- - general code clean-up.
-
-* Better Cray/UNICOS support.
-
-* New platforms: AIX 4.2, IRIX 6.1, and Linux 2.0
-
-Major changes in release 0.9.1:
-
-* Mostly bugfixes.
-
- - No hardcoded references to /usr/athena
-
- - Better Linux support with rlogin
-
- - Fix for broken handling of NULL password in kadmind (such as with
- `ksrvutil change')
-
- - AFS-aware programs should work on AIX systems without AFS
-
-* New platforms: Digital UNIX 4.0 and Fujitsu UXP/V
-
-* New mechanism to determine realm from hostname based on DNS. To find
- the realm of a.b.c.d it tries to find krb4-realm.a.b.c.d and then
- krb4-realm.b.c.d and so on. The entry in DNS should be a TXT record
- with the realm name.
-
- krb4-realm.pdc.kth.se. 7200 TXT "NADA.KTH.SE"
-
-Major changes in release 0.9:
-
-* Tested platforms:
-
-Dec Alpha OSF/1 3.2 with cc -std1
-HP 9000/735 HP/UX 9.05 with gcc
-DEC Pmax Ultrix 4.4 with gcc (cc does not work)
-IBM RS/6000 AIX 4.1 with xlc (gcc works, cc does not)
-SGI IRIX 5.3 with cc
-Sun SunOS 4.1.4 with gcc (cc is not ANSI and does not work)
-Sun SunOS 5.5 with gcc
-Intel i386 NetBSD 1.2 with gcc
-Intel i386 Linux 1.3.95 with gcc
-Cray J90 Unicos 9 with cc
-
-* Mostly ported to Crays running Unicos 9.
-
-* S/Key-support in ftpd.
-
-* Delete operation supported in kerberos database.
-
-* Cleaner and more portable code.
-
-* Even less bugs than before.
-
-* kpopper now supports the old pop3 protocol and has been renamed to popper.
-
-* rsh can be renamed remsh.
-
-* Experimental program for forwarding IP over a kerberos tunnel.
-
-* Updated to libdes 3.23.
-
-Major changes in release 0.8:
-
-* New programs: ftp & ftpd.
-
-* New programs: kx & kxd. These programs forward X connections over
- kerberos-encrypted connections.
-
-* Incorporated version 3.21 of libdes.
-
-* login: No double utmp-entries on Solaris.
-
-* kafs
-
- * Better guessing of what realm a cell belongs to.
-
- * Support for authenticating to several cells. Reads
- /usr/vice/etc/TheseCells, if present.
-
-* ksrvutil: Support for generating AFS keys.
-
-* login, su, rshd, rlogind: tries to counter possible NIS-attack.
-
-* xnlock: several bug fixes and support for more than one screen.
-
-* Default port number for ekshell changed from 2106 to 545. kauth
- port changed from 4711 to 2120.
-
-* Rumored to work on Fujitsu UXP/V and Cray UNICOS.
-
-Major changes in release 0.7:
-
-* New experimental masterkey generation. Enable with
- --enable-random-mkey. Also the default place for the master key has
- moved from /.k to /var/kerberos/master-key. This is customizable
- with --with-mkey=file. If you don't want you master key to be on the
- same backup medium as your database, remember to use this flag. All
- relevant programs still checks for /.k.
-
-* `-t' option to kadmin.
-
-* Kpopper uses kuserok to verify if user is allowed to pop mail.
-
-* Kpopper tries to locate the mail spool directory: /var/mail or
- /var/spool/mail.
-
-* kauth has ability to get ticket on a remove host with the `-h' option.
-
-* afslog (aklog clone) and pagsh included.
-
-* New format for /etc/krb.equiv.
-
-* Better multi-homed hosts support in kauth, rcp, rlogin, rlogind,
- rshd, telnet, telnetd.
-
-* rlogind works on ultrix and aix 3.2.
-
-* lots of bug fixes.
-
-Major changes in release 0.6:
-
-* Tested platforms:
-
-DEC/Alpha OSF3.2
-HP700 HPux 9.x
-Dec/Pmax Ultrix 4.4 (rlogind not working)
-IBM RS/6000 AIX 3.2 (rlogind not working)
-IBM RS/6000 AIX 4.1
-SGI Irix 5.3
-Sun Sunos 4.1.x
-Sun Sunos 5.4
-386 BSD/OS 2.0.1
-386 NetBSD 1.1
-386 Linux 1.2.13
-
-It is rumored to work to some extent on NextStep 3.3.
-
-* ksrvutil get to create new keys and put them in the database at the
-same time.
-
-* Support for S/Key in login.
-
-* kstring2key: new program to show string to key conversion.
-
-* Kerberos server should now listen on all available network
-interfaces and on both port 88 and 750.
-
-* Timeout in kpopper.
-
-* Support password quality checks in kadmind. Use --with-crack-lib to
-link kadmind with cracklib. The patches in cracklib.patch are needed.
-
-* Movemail from emacs 19.30.
-
-* Logging format uses four digits for years.
-
-* Fallback if port numbers are not listed in /etc/services.
-
-
- * Relesed version 0.5
-
- * lib/des/read_pwd.c: Redifine TIOCGETP and TIOCSETP so that the
- same code is used both for posix termios and others.
-
- * rsh, rlogin: Add environment variable RSTAR_NO_WARN which when
- set to "yes" make warnings about "rlogin: warning, using standard
- rlogin: remote host doesn't support Kerberos." go away.
-
- * admin/kdb_util.c (load_db) lib/kdb/krb_dbm.c (kerb_db_update):
- Optimized so that it can handle large databases, previously a
- 10000 entry DB would take *many* minutes, this can now be done in
- under a minute.
-
- * Changes in server/kerberos.c, kadmin/*.c slave/*.c to support 64
- bit machines. Source should now be free of 64 bit assumptions.
-
- * admin/copykey.c (copy_from_key): New functions for copying to
- and from keys. Neccessary to solve som problems with longs on 64
- bit machines in kdb_init, kdb_edit, kdb_util and ext_srvtab.
-
- * lib/kdb/krb_kdb_utils.c (kdb_verify_master_key): More problems
- with longs on 64 bit machines.
-
- * appl/bsd/login.c (main): Lots of stuff to support Psoriasis
- login. Courtesy of gertz@lysator.liu.se.
-
- * configure.in, all Makefile.in's: Support for Linux shared
- libraries. Courtesy of svedja@lysator.liu.se.
-
- * lib/krb/cr_err_reply.c server/kerberos.c: Moved int req_act_vno
- = KRB_PROT_VERSION; from server kode to libkrb where it really
- belongs.
-
- * appl/bsd/forkpty.c (forkpty): New function that allocates master
- and slave ptys in a portable way. Used by rlogind.
-
- * appl/telnet/telnetd/sys_term.c (start_login): Under SunOS5 the
- same utmpx slot got used by sevral sessions. Courtesy of
- gertz@lysator.liu.se.
-
- * util/{ss, et}/Makefile.in (LEX): Use flex or lex. Courtesy of
- svedja@lysator.liu.se.
-
- * Fix the above Makefiles to work around bugs in Solaris and OSF/1
- make rules that was triggered by VPATH functionality in the yacc
- and lex rules.
-
- * appl/kpopper/pop_log.c (pop_log) appl/kpopper/pop_msg.c (pop_msg):
- Use stdarg instead of varargs. The code is still broken though,
- you'll realize that on a machine with 64 bit pointers and 32 bit
- int:s and no vsprintf, let's hope there will be no such beasts ;-).
-
- * appl/telnet/telnetd/sys_term.c (getptyslave): Not all systems
- have (or need) modules ttcompat and pckt so don't flag it as a
- fatal error if they don't exist.
-
- * kadmin/admin_server.c (kadm_listen) kadmind/kadm_ser_wrap.c
- (kadm_listen): Add kludge for kadmind running on a multihomed
- server. #ifdef:ed under MULTIHOMED_KADMIN. Change in acconfig.h
- if you need this feature.
-
- * appl/Makefile.in (SUBDIRS): Add applications movemail kpopper
- and xnlock.
-
- * appl/bsd/rlogin.c (main): New rlogind.c, forkpty() is not
- implemented yet though.
-
- * appl/xnlock/Makefile.in: Some stubs for X11 programs in
- configure.in as well as a kerberized version of xnlock.
-
- * appl/bsd/{rlogin.c, rsh.c, rcp.c}: Add code to support fallback
- port numbers if they can not be found using getservbyname.
-
- * appl/bsd/klogin.c (klogin): Use differnet ticket files for each
- login so that a malicous user won't be able to destroy our tickets
- with a failed login attempt.
-
- * lib/kafs/afssys.c (k_afsklog): First we try afs.cell@REALM, if
- there is no such thing try afs@CELL instead. There is now two
- arguments to k_afslog(char *cell, char *realm).
-
- * kadmin/admin_server.c (kadm_listen): If we are multihomed we
- need to figure out which local address that is used this time
- since it is used in "direction" comparison.
-
- * kadmin/kadm_ser_wrap.c (kadm_ser_init): Fallback to use default
- port number.
-
- * lib/krb/send_to_kdc.c (send_to_kdc): Default port number
- (KRB_PORT) was not in network byte order.
-
- * lib/krb/send_to_kdc.c (send_recv): Linux clears timeout struct
- when selecting.
-
- * appl/bsd/rcp.c, appl/bsd/rlogin.c, appl/bsd/rsh.c:
- Now does fallback if there isn't any entries in /etc/services for
- klogin/kshell. This also made the code a bit more pretty.
-
- * appl/bsd/login.c: Added support for lots of more struct utmp fields.
- If there is no ttyslot() use setutent and friends.
-
- * appl/bsd/Makefile.in, appl/bsd/rlogind.c, appl/bsd/rshd.c:
- Added extern iruserok().
-
- * appl/bsd/iruserok.c: Initial revision
-
- * appl/bsd/bsd_locl.h: Must include sys/filio.h on Psoriasis.
-
- * appl/bsd/Makefile.in: New install
-
- * appl/bsd/pathnames.h: Fix default path, rsh and rlogin.
-
- * appl/bsd/rshd.c: Extend default PATH with bindir to find rcp.
-
- * appl/bsd/login.c (login): If there is no ttyslot use setutent
- and friends. Added support for lots of more struct utmp fields.
-
- * server/kerberos.c (main) lib/kafs/afssys.c appl/bsd/bsd_locl.h:
- Must include sys/filio.h on Psoriasis to find _IOW and FIO* macros.
-
- * appl/bsd/rlogind.c (doit): Use _PATH_DEFPATH rather than
- _PATH_DEF.
-
- * appl/bsd/login.c, su.c (main): Use fallback to bourne shell if
- running as root.
-
- * appl/bsd/su.c (main): Update usage message to reflect that '-'
- option must come after the ordinary options and before login-id.
-
- * appl/telnet/telnetd/telnetd.c (doit): If remote host name is to
- long to fit into utmp try to remove domain part if it does match
- our local domain.
-
- (main): Add new option -L /bin/login so that it is possible to
- specify an alternate login program.
-
- * appl/telnet/telnet/commands.c (env_init): When exporting
- variable DISPLAY and if hostname is not the full name, try to get
- the full name from DNS.
-
- * appl/telnet/telnet/main.c (main): Option -k realm was broken due
- to a bogous external declaration.
-
- * kadmin/kadmin.c (add_new_key): Kadmin now properly sets
- lifetime, expiration date and attributes in add_new_key command.
-
- * appl/bsd/su.c (main): Don't handle '-' option with getopt.
-
- * appl/telnet/telnet/externs.h: Removed protection for multiple
- inclusions of termio(s).h since it broke definition of termio
- macro on POSIX systems.
-
- * lib/krb/lifetime.c (krb_life_to_time): If you want to disable
- AFS compatible long lifetimes set krb_no_long_lifetimes = 1.
-
- Please note that the long lifetimes are 100% compatible up to
- 10h so this should rarely be necessary.
-
- * lib/krb/krb_equiv.c (krb_equiv): If you don't want to use
- ipaddress protection of tickets set krb_ignore_ip_address. This
- makes it possible for an intruder to steal a ticket and then use
- it from som other machine anywhere on the net.
-
- * kadmin/kadm_ser_wrap.c (kadm_ser_init): Don't bind to only one
- local address. Accept request on all interfaces.
-
- * admin/kdb_edit.c (change_principal): Don't accept illegal
- dates. Courtesy of gertz@lysator.liu.se.
-
- * configure.in: AIX specific libraries needed when using standard
- libc routine getttyent, IBM should be ashamed!
-
- * lib/krb/recvauth.c (krb_recvauth): Long that should be int32_t
- problem.
-
- * Added strdup for su and rlogin.
-
- * Fix for old syslog macros in appl/bsd/bsd_locl.
-
- * lib/kdb/krb_dbm.c (kerb_db_rename) admin/kdb_destroy.c: New
- ifdef HAVE_NEW_DB for new databases residing in one file only.
-
- * appl/bsd/rlogin.c (oob): Add workaround for Linux.
-
- * appl/bsd/getpass.c: New routine that reads up to 127 char
- passwords. Used in su.c and login.c.
-
- * appl/telnet/telnetd/sys_term.c (login_tty): Ioctl TIOCSCTTY
- should not be used on HP-UX.
-
-==========================*** Released 0.2? ***=============================
-
-ksrvutil
- If there is a dot in the about to be added principals name there is
- no need to ask for instance name.
-
-kerberos & kadmind
- Logfiles are created with small permissions (600).
-
-krb.conf and krb.realms
- Use domain part as realm name if there is no match in krb.realms.
- Use kerberos.REALMNAME if there is no match in krb.realms.
-
-rlogin
- The rlogin client is supported both with and without encryption,
- there is no rlogind yet though.
-
-login
- There is login program that supports the -f option. Both kerberos
- and /etc/passwd authentication is enabled.
-
- Vendors login programs typically have no -f option (needed by
- telnetd) and also does not know how to verify passwords againts
- kerberos.
-
-appl/bsd/*
- Now uses POSIX signals.
-
-kdb_edit, kadmin
- Generate random passwords if administrator enters empty password.
-
-lib/kafs
- New library to support AFS. Routines:
- int k_hasafs(void);
- int k_afsklog(...); or some other name
- int k_setpag(void);
- int k_unlog(void);
- int k_pioctl(char *, int, struct ViceIoctl *, int);
-
- Library supports more than one single entry point AFS syscalls
- (needed be HP/UX and OSF/1 when running DFS). Doesn't rely on
- transarc headers or library code. Same binaries can be used both on
- machines running AFS and others.
-
- This library is used in telnetd, login and the r* programs.
-
-telnet & telnetd
- Based on telnet.95.05.31.NE but with the encryption hacks from
- ftp.funet.fi:/pub/unix/security/esrasrc-1.0 added. This encryption
- stuff needed some more modifications (done by joda@nada.kth.se)
- before it was usable. Telnet has also been modified to use GNU
- autoconf.
-
-Numerous other changes that are long since forgotten.
diff --git a/crypto/kerberosIV/PROBLEMS b/crypto/kerberosIV/PROBLEMS
deleted file mode 100644
index f6eeeef3e858..000000000000
--- a/crypto/kerberosIV/PROBLEMS
+++ /dev/null
@@ -1,74 +0,0 @@
-
-Problems compiling Kerberos
-===========================
-
-Many compilers require a switch to become ANSI compliant. Since kth-krb
-is written in ANSI C it is necessary to specify the name of the compiler
-to be used and the required switch to make it ANSI compliant. This is
-most easily done when running configure using the `env' command. For
-instance to build under HP-UX using the native compiler do:
-
- datan$ env CC="cc -Ae" ./configure
-
-In general `gcc' works. The following combinations have also been
-verified to successfully compile the distribution:
-
-`HP-UX'
- `cc -Ae'
-
-`Digital UNIX'
- `cc -std1'
-
-`AIX'
- `xlc'
-
-`Solaris 2.x'
- `cc' (unbundled one)
-
-`IRIX'
- `cc'
-
-Linux problems
---------------
-
-Some systems have lost `/usr/include/ndbm.h' which is necessary to
-build kth-krb correctly. There is a `ndbm.h.Linux' right next to the
-source distribution.
-
-There has been reports of non-working `libdb' on some Linux
-distributions. If that happens, use the `--without-berkeley-db' when
-configuring.
-
-HP-UX problems
---------------
-
-The shared library `/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"
-binaries first install GNU gdbm or Berkeley DB, and make sure that you
-are linking against that library.
-
-Cray problems
--------------
-
-`rlogind' won't work on Crays until `forkpty()' has been ported, in the
-mean time use `telnetd'.
-
-AIX problems
-------------
-
-`gcc' version 2.7.2.1 has a bug which makes it miscompile
-`appl/telnet/telnetd/sys_term.c' (and possibily `appl/bsd/forkpty.c'),
-if used with too much optimization.
-
-C2 problems
------------
-
-The programs that checks passwords works with `passwd', OTP, and
-Kerberos paswords. This is problem if you use C2 security (or use some
-other password database), that normally keeps passwords in some obscure
-place. If you want to use Kerberos with C2 security you will have to
-think about what kind of changes are necessary. See also the discussion
-about Digital's SIA and C2 security, see *Note Digital SIA::.
-
-
diff --git a/crypto/kerberosIV/README b/crypto/kerberosIV/README
deleted file mode 100644
index 064761495f48..000000000000
--- a/crypto/kerberosIV/README
+++ /dev/null
@@ -1,44 +0,0 @@
-This is a severly hacked up version of Eric Young's eBones-p9 kerberos
-version. The DES library has been updated with his 3.23 version and
-numerous patches collected over the years have been applied to both
-the kerberos and DES sources, most notably the CMU patches for extended
-lifetimes that AFS uses. There is also support for AFS built into most
-programs.
-
-The source has been changed to use ANSI C and POSIX to the largest
-possible extent. The code in util/et and appl/bsd have not been
-updated in this way though (they really need it).
-
-Telnet and telnetd are based on the telnet.95.10.23.NE.tar.Z. Kerberos
-authentication is the default and warnings are issued by telnetd if
-the telnet client does not turn on encryption.
-
-The r* programs in appl/bsd have been updated with newer sources from
-NetBSD and FreeBSD. NOTE: use of telnet is prefered to the use of
-rlogin which is a temporary hack and not an Internet standard (and has
-only been documented quite recently). Telnet uses kerberos
-authentication to prevent the passing of cleartext passwords and is
-thus superior to rlogin.
-
-The distribution has been configured to primarily use kerberos
-authentication with a fallback to /etc/passwd passwords. This should
-make it easy to do a slow migration to kerberos. OTP support is also
-included in login, popper, and ftpd.
-
-All programs in this distribution follow these conventions:
-
-/usr/athena/bin: User programs
-/usr/athena/sbin: Administrator programs
-/usr/athena/libexec: Daemons
-/etc: Configuration files
-/var/log: Logfiles
-/var/kerberos: Kerberos database and ACL files
-
-A W3-page is at http://www.pdc.kth.se/kth-krb/
-
-You can get some documentation from ftp://ftp.pdc.kth.se/pub/krb/doc.
-
-Please report bugs and problems to kth-krb-bugs@nada.kth.se
-
-There is a mailing list discussing kerberos at krb4@sics.se, send a
-message to majordomo@sics.se to subscribe.
diff --git a/crypto/kerberosIV/README-WIN32 b/crypto/kerberosIV/README-WIN32
deleted file mode 100644
index ba74c46f2172..000000000000
--- a/crypto/kerberosIV/README-WIN32
+++ /dev/null
@@ -1,30 +0,0 @@
-It should be possible to build several of the libraries and the GUI
-telnet ``voodoo'' on Win95/NT. In case you don't want to try there
-are binaries available at
-ftp://ftp.pdc.kth.se/pub/krb/binaries/i386-unknown-winnt4.0.
-
-In case you want to build from source and possibly hack some on them
-yourself here's a short guide:
-
-You need to build the libraries (DLLs) first and in this order:
-
-lib/roken
-lib/des
-lib/krb
-lib/kclient
-
-And then the two applications:
-
-appl/krbmanager
-appl/voodoo
-
-In each case there is a Visual-C++ generated makefile with the name
-*.mak in the corresponding directory. You might be able to load that
-into Microsoft whatever Studio and you might be able to just run nmake
-on them.
-
-Once you have ended up with 4 DLLs and 2 EXEs you only have to place
-them in a directory in your PATH and start voodoo.
-
-In case it doesn't work, you have discovered bugs or added some more
-features the mail address to use is <kth-krb-bugs@nada.kth.se>
diff --git a/crypto/kerberosIV/TODO b/crypto/kerberosIV/TODO
deleted file mode 100644
index 66aa1f13b8c2..000000000000
--- a/crypto/kerberosIV/TODO
+++ /dev/null
@@ -1,42 +0,0 @@
--*- indented-text -*-
-rlogind, rshd, popper, ftpd (telnetd uses nonce?)
- Add a replay cache.
-
-telnet, rlogin, rsh, rcp
- Some form of support for ticket forwarding, perhaps only for AFS tickets.
-
-telnet, telnetd
- Add negotiation for keep-alives.
-
-rlogind
- Fix utmp logging.
-
-documentation
- Write more info on:
- * how to use
-
-rshd
- Read default environment from /etc/default/login and other files.
- Encryption without secondary port is bugged, it currently does no
- encryption. But, nobody uses it anyway.
-
-autoconf
-
-libraries
- generate archive and shared libraries in some portable way.
-
-k_get_all_addrs
- for Cray UNICOS
-
-ftpd
-
-kx
- Compress and recode X protocol?
-
-kip
- Other kinds of encapsulations?
- Tunnel device as loadable kernel module.
- Speed?
-
-BUGS
- Where?
diff --git a/crypto/kerberosIV/acconfig.h b/crypto/kerberosIV/acconfig.h
deleted file mode 100644
index bb7b7aa83214..000000000000
--- a/crypto/kerberosIV/acconfig.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* $Id: acconfig.h,v 1.71 1997/06/01 22:32:24 assar Exp $ */
-
-/* Define this if RETSIGTYPE == void */
-#undef VOID_RETSIGTYPE
-
-/* Define this if struct utmp have ut_user */
-#undef HAVE_UT_USER
-
-/* Define this if struct utmp have ut_host */
-#undef HAVE_UT_HOST
-
-/* Define this if struct utmp have ut_addr */
-#undef HAVE_UT_ADDR
-
-/* Define this if struct utmp have ut_type */
-#undef HAVE_UT_TYPE
-
-/* Define this if struct utmp have ut_pid */
-#undef HAVE_UT_PID
-
-/* Define this if struct utmp have ut_id */
-#undef HAVE_UT_ID
-
-/* Define this if struct utmpx have ut_syslen */
-#undef HAVE_UT_SYSLEN
-
-/* Define this if struct winsize is declared in sys/termios.h */
-#undef HAVE_STRUCT_WINSIZE
-
-/* Define this if struct winsize have ws_xpixel */
-#undef HAVE_WS_XPIXEL
-
-/* Define this if struct winsize have ws_ypixel */
-#undef HAVE_WS_YPIXEL
-
-/* Define this to be the directory where the dictionary for cracklib */
-/* resides */
-#undef DICTPATH
-
-/* Define this if you want to use SOCKS v5 */
-#undef SOCKS
-
-/* Define this to the path of the mail spool directory */
-#undef KRB4_MAILDIR
-
-/* Define this if `struct sockaddr' includes sa_len */
-#undef SOCKADDR_HAS_SA_LEN
-
-/* Define this if `struct siaentity' includes ouid */
-#undef SIAENTITY_HAS_OUID
-
-/* Define if getlogin has POSIX flavour, as opposed to BSD */
-#undef POSIX_GETLOGIN
-
-/* Define if getpwnam_r has POSIX flavour */
-#undef POSIX_GETPWNAM_R
-
-/* define if getcwd() is broken (such as in SunOS) */
-#undef BROKEN_GETCWD
-
-/* define if the system is missing a prototype for crypt() */
-#undef NEED_CRYPT_PROTO
-
-/* define if the system is missing a prototype for strtok_r() */
-#undef NEED_STRTOK_R_PROTO
-
-/* define if /bin/ls takes -A */
-#undef HAVE_LS_A
-
-/* define if you have h_errno */
-#undef HAVE_H_ERRNO
-
-/* define if you have h_errlist but not hstrerror */
-#undef HAVE_H_ERRLIST
-
-/* define if you have h_nerr but not hstrerror */
-#undef HAVE_H_NERR
-
-/* define if your system doesn't declare h_errlist */
-#undef HAVE_H_ERRLIST_DECLARATION
-
-/* define if your system doesn't declare h_nerr */
-#undef HAVE_H_NERR_DECLARATION
-
-/* define this if you need a declaration for h_errno */
-#undef HAVE_H_ERRNO_DECLARATION
-
-/* define if you need a declaration for optarg */
-#undef HAVE_OPTARG_DECLARATION
-
-/* define if you need a declaration for optind */
-#undef HAVE_OPTIND_DECLARATION
-
-/* define if you need a declaration for opterr */
-#undef HAVE_OPTERR_DECLARATION
-
-/* define if you need a declaration for optopt */
-#undef HAVE_OPTOPT_DECLARATION
-
-/* define if you need a declaration for __progname */
-#undef HAVE___PROGNAME_DECLARATION
-
-@BOTTOM@
-
-#undef HAVE_INT8_T
-#undef HAVE_INT16_T
-#undef HAVE_INT32_T
-#undef HAVE_INT64_T
-#undef HAVE_U_INT8_T
-#undef HAVE_U_INT16_T
-#undef HAVE_U_INT32_T
-#undef HAVE_U_INT64_T
-
-#define RCSID(msg) \
-static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
-
-/*
- * Set ORGANIZATION to be the desired organization string printed
- * by the 'kinit' program. It may have spaces.
- */
-#define ORGANIZATION "eBones International"
-
-#if 0
-#undef BINDIR
-#undef LIBDIR
-#undef LIBEXECDIR
-#undef SBINDIR
-#endif
-
-#if 0
-#define KRB_CNF_FILES { "/etc/krb.conf", "/etc/kerberosIV/krb.conf", 0}
-#define KRB_RLM_FILES { "/etc/krb.realms", "/etc/kerberosIV/krb.realms", 0}
-#define KRB_EQUIV "/etc/krb.equiv"
-
-#define KEYFILE "/etc/srvtab"
-
-#define KRBDIR "/var/kerberos"
-#define DBM_FILE KRBDIR "/principal"
-#define DEFAULT_ACL_DIR KRBDIR
-
-#define KRBLOG "/var/log/kerberos.log" /* master server */
-#define KRBSLAVELOG "/var/log/kerberos_slave.log" /* slave server */
-#define KADM_SYSLOG "/var/log/admin_server.syslog"
-#define K_LOGFIL "/var/log/kpropd.log"
-#endif
-
-/* Maximum values on all known systems */
-#define MaxHostNameLen (64+4)
-#define MaxPathLen (1024+4)
-
-/*
- * Define NDBM if you are using the 4.3 ndbm library (which is part of
- * libc). If not defined, 4.2 dbm will be assumed.
- */
-#if defined(HAVE_DBM_FIRSTKEY)
-#define NDBM
-#endif
-
-/* ftp stuff -------------------------------------------------- */
-
-#define KERBEROS
-
-/* telnet stuff ----------------------------------------------- */
-
-/* define this if you have kerberos 4 */
-#undef KRB4
-
-/* define this if you want encryption */
-#undef ENCRYPTION
-
-/* define this if you want authentication */
-#undef AUTHENTICATION
-
-#if defined(ENCRYPTION) && !defined(AUTHENTICATION)
-#define AUTHENTICATION 1
-#endif
-
-/* Set this if you want des encryption */
-#undef DES_ENCRYPTION
-
-/* Set this to the default system lead string for telnetd
- * can contain %-escapes: %s=sysname, %m=machine, %r=os-release
- * %v=os-version, %t=tty, %h=hostname, %d=date and time
- */
-#undef USE_IM
-
-/* define this if you want diagnostics in telnetd */
-#undef DIAGNOSTICS
-
-/* define this if you want support for broken ENV_{VALUE,VAR} systems */
-#undef ENV_HACK
-
-/* */
-#undef OLD_ENVIRON
-
-/* Used with login -p */
-#undef LOGIN_ARGS
-
-/* Define if there are working stream ptys */
-#undef STREAMSPTY
-
-/* set this to a sensible login */
-#ifndef LOGIN_PATH
-#define LOGIN_PATH BINDIR "/login"
-#endif
-
-
-/* ------------------------------------------------------------ */
-
-/*
- * Define this if your ndbm-library really is berkeley db and creates
- * files that ends in .db.
- */
-#undef HAVE_NEW_DB
-
-/* Define this if you have a working getmsg */
-#undef HAVE_GETMSG
-
-/* Define to enable new master key code */
-#undef RANDOM_MKEY
-
-/* Location of the master key file, default value lives in <kdc.h> */
-#undef MKEYFILE
-
-/* Define if you don't want support for afs, might be a good idea on
- AIX if you don't have afs */
-#undef NO_AFS
-
-/* Define if you have a readline compatible library */
-#undef HAVE_READLINE
-
-#ifdef VOID_RETSIGTYPE
-#define SIGRETURN(x) return
-#else
-#define SIGRETURN(x) return (RETSIGTYPE)(x)
-#endif
-
-/* Define this if your compiler supports '#pragma weak' */
-#undef HAVE_PRAGMA_WEAK
-
-/* Temporary fixes for krb_{rd,mk}_safe */
-#define DES_QUAD_GUESS 0
-#define DES_QUAD_NEW 1
-#define DES_QUAD_OLD 2
-
-/* Set this to one of the constants above to specify default checksum
- type to emit */
-#undef DES_QUAD_DEFAULT
-
-/*
- * AIX braindamage!
- */
-#if _AIX
-#define _ALL_SOURCE
-#define _POSIX_SOURCE
-/* this is left for hysteric reasons :-) */
-#define unix /* well, ok... */
-#endif
-
-/*
- * SunOS braindamage! (Sun include files are generally braindead)
- */
-#if (defined(sun) || defined(__sun))
-#if defined(__svr4__) || defined(__SVR4)
-#define SunOS 5
-#else
-#define SunOS 4
-#endif
-#endif
-
-#if defined(__sgi) || defined(sgi)
-#if defined(__SYSTYPE_SVR4) || defined(_SYSTYPE_SVR4)
-#define IRIX 5
-#else
-#define IRIX 4
-#endif
-#endif
-
-/* IRIX 4 braindamage */
-#if IRIX == 4 && !defined(__STDC__)
-#define __STDC__ 0
-#endif
diff --git a/crypto/kerberosIV/aclocal.m4 b/crypto/kerberosIV/aclocal.m4
deleted file mode 100644
index 133e19d93e43..000000000000
--- a/crypto/kerberosIV/aclocal.m4
+++ /dev/null
@@ -1,543 +0,0 @@
-dnl
-dnl $Id: aclocal.m4,v 1.38 1997/05/18 18:47:30 assar Exp $
-dnl
-
-dnl
-dnl General tests
-dnl
-
-dnl
-dnl Look for function in any of the specified libraries
-dnl
-
-dnl AC_FIND_FUNC_NO_LIBS(func, libraries, includes, arguments)
-AC_DEFUN(AC_FIND_FUNC_NO_LIBS, [
-
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(ac_cv_funclib_$1,
-[
-if eval "test \"\$ac_cv_func_$1\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" $2; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- 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}"
- LIBS="$ac_save_LIBS"
-fi
-])
-
-eval "ac_res=\$ac_cv_funclib_$1"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs $1"@@@
-@@@libs="$libs $2"@@@
-END
-
-changequote(, )dnl
-eval "ac_tr_func=HAVE_`echo $1 | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_$1=$ac_res"
-changequote([, ])dnl
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_$1=yes"
- eval "LIB_$1="
- AC_DEFINE_UNQUOTED($ac_tr_func)
- AC_MSG_RESULT([yes])
- ;;
- no)
- eval "ac_cv_func_$1=no"
- eval "LIB_$1="
- AC_MSG_RESULT([no])
- ;;
- *)
- eval "ac_cv_func_$1=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- AC_DEFINE_UNQUOTED($ac_tr_func)
- AC_DEFINE_UNQUOTED($ac_tr_lib)
- AC_MSG_RESULT([yes, in $ac_res])
- ;;
-esac
-AC_SUBST(LIB_$1)
-])
-
-dnl AC_FIND_FUNC(func, libraries, includes, arguments)
-AC_DEFUN(AC_FIND_FUNC, [
-AC_FIND_FUNC_NO_LIBS([$1], [$2], [$3], [$4])
-if test -n "$LIB_$1"; then
- LIBS="$LIB_$1 $LIBS"
-fi
-])
-
-dnl
-dnl Same as AC _REPLACE_FUNCS, just define HAVE_func if found in normal
-dnl libraries
-
-AC_DEFUN(AC_BROKEN,
-[for ac_func in $1
-do
-AC_CHECK_FUNC($ac_func, [
-changequote(, )dnl
-ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
-changequote([, ])dnl
-AC_DEFINE_UNQUOTED($ac_tr_func)],[LIBOBJS="$LIBOBJS ${ac_func}.o"])
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs $1"@@@
-END
-done
-AC_SUBST(LIBOBJS)dnl
-])
-
-dnl
-dnl Mix between AC_FIND_FUNC and AC_BROKEN
-dnl
-
-AC_DEFUN(AC_FIND_IF_NOT_BROKEN,
-[AC_FIND_FUNC([$1], [$2], [$3], [$4])
-if eval "test \"$ac_cv_func_$1\" != yes"; then
-LIBOBJS="$LIBOBJS $1.o"
-fi
-AC_SUBST(LIBOBJS)dnl
-])
-
-dnl
-dnl
-dnl
-
-dnl AC_TEST_PACKAGE(package,header,lib,linkline)
-AC_DEFUN(AC_TEST_PACKAGE,
-[
-AC_MSG_CHECKING(for $1)
-AC_ARG_WITH($1,
-[ --with-$1=dir use $1 in dir],
-[if test "$with_$1" = "no"; then
- with_$1=
-fi]
-)
-AC_ARG_WITH($1-lib,
-[ --with-$1-lib=dir use $1-lib in dir],
-[if test "$withval" = "yes" -o "$withval" = "no"; then
- AC_MSG_ERROR([No argument for --with-$1-lib])
-elif test "X$with_$1" = "X"; then
- with_$1=yes
-fi]
-)
-AC_ARG_WITH($1-include,
-[ --with-$1-include=dir use $1-include in dir],
-[if test "$withval" = "yes" -o "$withval" = "no"; then
- AC_MSG_ERROR([No argument for --with-$1-include])
-elif test "X$with_$1" = "X"; then
- with_$1=yes
-fi]
-)
-
-define([foo], translit($1, [a-z], [A-Z]))
-: << END
-@@@syms="$syms foo"@@@
-END
-
-if test -n "$with_$1"; then
- AC_DEFINE([foo])
- if test "$with_$1" != "yes"; then
- $1_dir=$with_$1
- fi
-dnl Try to find include
- if test -n "$with_$1_include"; then
- trydir=$with_$1_include
- elif test "$with_$1" != "yes"; then
- trydir="$with_$1 $with_$1/include"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/$2; then
- found=yes; res=$i; break
- fi
- else
- AC_TRY_CPP([#include <$2>], [found=yes; res=$i; break])
- fi
- done
- if test -n "$found"; then
- $1_include=$res
- else
- AC_MSG_ERROR(Cannot find $2)
- fi
-dnl Try to find lib
- if test -n "$with_$1_lib"; then
- trydir=$with_$1_lib
- elif test "$with_$1" != "yes"; then
- trydir="$with_$1 $with_$1/lib"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/$3; then
- found=yes; res=$i; break
- fi
- else
- old_LIBS=$LIBS
- LIBS="$4 $LIBS"
- AC_TRY_LINK([], [], [found=yes; res=$i; LIBS=$old_LIBS; break])
- LIBS=$old_LIBS
- fi
- done
- if test -n "$found"; then
- $1_lib=$res
- else
- AC_MSG_ERROR(Cannot find $3)
- fi
- AC_MSG_RESULT([headers $$1_include, libraries $$1_lib])
- AC_DEFINE_UNQUOTED(foo)
- if test -n "$$1_include"; then
- foo[INCLUDE]="-I$$1_include"
- fi
- AC_SUBST(foo[INCLUDE])
- if test -n "$$1_lib"; then
- foo[LIB]="-L$$1_lib"
- fi
- foo[LIB]="$foo[LIB] $4"
- AC_SUBST(foo[LIB])
-else
- AC_MSG_RESULT(no)
-fi
-undefine([foo])
-])
-
-dnl
-dnl Check if we need the declaration of a variable
-dnl
-
-dnl AC_HAVE_DECLARATION(includes, variable)
-AC_DEFUN(AC_CHECK_DECLARATION, [
-AC_MSG_CHECKING([if $2 is properly declared])
-AC_CACHE_VAL(ac_cv_var_$2_declaration, [
-AC_TRY_COMPILE([$1
-extern struct { int foo; } $2;],
-[$2.foo = 1;],
-eval "ac_cv_var_$2_declaration=no",
-eval "ac_cv_var_$2_declaration=yes")
-])
-
-ac_tr_var=[HAVE_]translit($2, [a-z], [A-Z])[_DECLARATION]
-
-define([foo], [HAVE_]translit($2, [a-z], [A-Z])[_DECLARATION])
-: << END
-@@@syms="$syms foo"@@@
-END
-undefine([foo])
-
-AC_MSG_RESULT($ac_cv_var_$2_declaration)
-if eval "test \"\$ac_cv_var_$2_declaration\" = yes"; then
- AC_DEFINE_UNQUOTED($ac_tr_var)
-fi
-])
-
-dnl
-dnl
-dnl
-
-dnl AC_CHECK_VAR(includes, variable)
-AC_DEFUN(AC_CHECK_VAR, [
-AC_MSG_CHECKING(for $2)
-AC_CACHE_VAL(ac_cv_var_$2, [
-AC_TRY_LINK([extern int $2;
-int foo() { return $2; }],
- [foo()],
- ac_cv_var_$2=yes, ac_cv_var_$2=no)
-])
-eval "ac_tr_var=[HAVE_]translit($2,[a-z],[A-Z])"
-
-define([foo], [HAVE_]translit($2, [a-z], [A-Z]))
-: << END
-@@@syms="$syms foo"@@@
-END
-undefine([foo])
-
-AC_MSG_RESULT(`eval echo \\$ac_cv_var_$2`)
-if test `eval echo \\$ac_cv_var_$2` = yes; then
- AC_DEFINE_UNQUOTED($ac_tr_var)
- AC_CHECK_DECLARATION([$1],[$2])
-fi
-])
-
-dnl
-dnl Check if we need the prototype for a function
-dnl
-
-dnl AC_NEED_PROTO(includes, function)
-
-AC_DEFUN(AC_NEED_PROTO, [
-AC_CACHE_CHECK([if $2 needs a prototype], ac_cv_func_$2_noproto,
-AC_TRY_COMPILE([$1],
-[struct foo { int foo; } xx;
-extern int $2 (struct foo*);
-$2(&xx);
-],
-eval "ac_cv_func_$2_noproto=yes",
-eval "ac_cv_func_$2_noproto=no"))
-define([foo], [NEED_]translit($2, [a-z], [A-Z])[_PROTO])
-if test "$ac_cv_func_$2_noproto" = yes; then
- AC_DEFINE(foo)
-fi
-: << END
-@@@syms="$syms foo"@@@
-END
-undefine([foo])
-])
-
-dnl AC_MSG_RESULT($ac_cv_func_$3_proto)
-dnl if eval "test \"\$ac_cv_func_$3_proto\" = yes"; then
-dnl AC_DEFINE_UNQUOTED($ac_tr_func)
-dnl fi
-dnl ])
-dnl
-dnl AC_DEFUN(AC_NEED_PROTO, [
-dnl AC_MSG_CHECKING([if $3 needs a proto])
-dnl AC_CACHE_VAL(ac_cv_func_$3_proto, [
-dnl AC_TRY_COMPILE([$1],
-dnl [$2],
-dnl eval "ac_cv_func_$3_proto=no",
-dnl eval "ac_cv_func_$3_proto=yes")
-dnl ])
-dnl changequote(, )dnl
-dnl eval "ac_tr_func=NEED_`echo $3 | tr '[a-z]' '[A-Z]'`_PROTO"
-dnl changequote([, ])dnl
-dnl
-dnl define([foo], [NEED_]translit($3, [a-z], [A-Z])[_PROTO])
-dnl : << END
-dnl @@@syms="$syms foo"@@@
-dnl END
-dnl undefine([foo])
-dnl
-dnl AC_MSG_RESULT($ac_cv_func_$3_proto)
-dnl if eval "test \"\$ac_cv_func_$3_proto\" = yes"; then
-dnl AC_DEFINE_UNQUOTED($ac_tr_func)
-dnl fi
-dnl ])
-
-AC_DEFUN(AC_GROK_TYPE, [
-AC_CACHE_VAL(ac_cv_type_$1,
-AC_TRY_COMPILE([
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_BITYPES_H
-#include <sys/bitypes.h>
-#endif
-#ifdef HAVE_BIND_BITYPES_H
-#include <bind/bitypes.h>
-#endif
-#ifdef HAVE_NETINET_IN6_MACHTYPES_H
-#include <netinet/in6_machtypes.h>
-#endif
-],
-$i x;
-,
-eval ac_cv_type_$1=yes,
-eval ac_cv_type_$1=no))])
-
-
-AC_DEFUN(AC_GROK_TYPES, [
-for i in $1; do
- AC_MSG_CHECKING(for $i)
- AC_GROK_TYPE($i)
- eval ac_res=\$ac_cv_type_$i
- if test "$ac_res" = yes; then
- type=HAVE_`echo $i | tr '[a-z]' '[A-Z]'`
- AC_DEFINE_UNQUOTED($type)
- fi
- AC_MSG_RESULT($ac_res)
-done
-])
-
-dnl
-dnl Specific tests
-dnl
-
-dnl
-dnl We prefer byacc or yacc because they do not use `alloca'
-dnl
-
-AC_DEFUN(AC_KRB_PROG_YACC,
-[AC_CHECK_PROGS(YACC, byacc yacc 'bison -y')])
-
-dnl
-dnl Also look for EMXOMF for OS/2
-dnl
-
-AC_DEFUN(AC_KRB_PROG_RANLIB,
-[AC_CHECK_PROGS(RANLIB, ranlib EMXOMF, :)])
-
-dnl
-dnl Better test for ln -s, ln or cp
-dnl
-
-AC_DEFUN(AC_KRB_PROG_LN_S,
-[AC_MSG_CHECKING(for ln -s or something else)
-AC_CACHE_VAL(ac_cv_prog_LN_S,
-[rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- touch conftestdata1
- if ln conftestdata1 conftestdata2; then
- rm -f conftestdata*
- ac_cv_prog_LN_S=ln
- else
- ac_cv_prog_LN_S=cp
- fi
-fi])dnl
-LN_S="$ac_cv_prog_LN_S"
-AC_MSG_RESULT($ac_cv_prog_LN_S)
-AC_SUBST(LN_S)dnl
-])
-
-dnl
-dnl NEXTSTEP is not posix compliant by default,
-dnl you need a switch -posix to the compiler
-dnl
-
-AC_DEFUN(AC_KRB_SYS_NEXTSTEP, [
-AC_MSG_CHECKING(for NEXTSTEP)
-AC_CACHE_VAL(krb_cv_sys_nextstep,
-AC_EGREP_CPP(yes,
-[#ifdef NeXT
- yes
-#endif
-], krb_cv_sys_nextstep=yes, krb_cv_sys_nextstep=no) )
-if test "$krb_cv_sys_nextstep" = "yes"; then
- CFLAGS="$CFLAGS -posix"
- LIBS="$LIBS -posix"
-fi
-AC_MSG_RESULT($krb_cv_sys_nextstep)
-])
-
-dnl
-dnl AIX have a very different syscall convention
-dnl
-AC_DEFUN(AC_KRB_SYS_AIX, [
-AC_MSG_CHECKING(for AIX)
-AC_CACHE_VAL(krb_cv_sys_aix,
-AC_EGREP_CPP(yes,
-[#ifdef _AIX
- yes
-#endif
-], krb_cv_sys_aix=yes, krb_cv_sys_aix=no) )
-AC_MSG_RESULT($krb_cv_sys_aix)
-])
-
-dnl
-dnl test for broken getcwd in (SunOS braindamage)
-dnl
-
-AC_DEFUN(AC_KRB_FUNC_GETCWD_BROKEN, [
-if test "$ac_cv_func_getcwd" = yes; then
-AC_MSG_CHECKING(if getcwd is broken)
-AC_CACHE_VAL(ac_cv_func_getcwd_broken, [
-ac_cv_func_getcwd_broken=no
-
-AC_TRY_RUN([
-#include <errno.h>
-char *getcwd(char*, int);
-
-void *popen(char *cmd, char *mode)
-{
- errno = ENOTTY;
- return 0;
-}
-
-int main()
-{
- char *ret;
- ret = getcwd(0, 1024);
- if(ret == 0 && errno == ENOTTY)
- return 0;
- return 1;
-}
-], ac_cv_func_getcwd_broken=yes,:,:)
-])
-if test "$ac_cv_func_getcwd_broken" = yes; then
- AC_DEFINE(BROKEN_GETCWD, 1)dnl
- LIBOBJS="$LIBOBJS getcwd.o"
- AC_SUBST(LIBOBJS)dnl
- AC_MSG_RESULT($ac_cv_func_getcwd_broken)
-else
- AC_MSG_RESULT([seems ok])
-fi
-fi
-])
-
-
-AC_DEFUN(AC_HAVE_PRAGMA_WEAK, [
-if test "${with_shared}" = "yes"; then
-AC_MSG_CHECKING(for pragma weak)
-AC_CACHE_VAL(ac_have_pragma_weak, [
-ac_have_pragma_weak=no
-cat > conftest_foo.$ac_ext <<'EOF'
-[#]line __oline__ "configure"
-#include "confdefs.h"
-#pragma weak foo = _foo
-int _foo = 17;
-EOF
-cat > conftest_bar.$ac_ext <<'EOF'
-[#]line __oline__ "configure"
-#include "confdefs.h"
-extern int foo;
-
-int t() {
- return foo;
-}
-
-int main() {
- return t();
-}
-EOF
-if AC_TRY_EVAL('CC -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest_foo.$ac_ext conftest_bar.$ac_ext 1>&AC_FD_CC'); then
-ac_have_pragma_weak=yes
-fi
-rm -rf conftest*
-])
-if test "$ac_have_pragma_weak" = "yes"; then
- AC_DEFINE(HAVE_PRAGMA_WEAK, 1)dnl
-fi
-AC_MSG_RESULT($ac_have_pragma_weak)
-fi
-])
-
-dnl
-dnl Search for struct winsize
-dnl
-
-AC_DEFUN(AC_KRB_STRUCT_WINSIZE, [
-AC_MSG_CHECKING(for struct winsize)
-AC_CACHE_VAL(ac_cv_struct_winsize, [
-ac_cv_struct_winsize=no
-for i in sys/termios.h sys/ioctl.h; do
-AC_EGREP_HEADER(
-changequote(, )dnl
-struct[ ]*winsize,dnl
-changequote([,])dnl
-$i, ac_cv_struct_winsize=yes; break)dnl
-done
-])
-if test "$ac_cv_struct_winsize" = "yes"; then
- AC_DEFINE(HAVE_STRUCT_WINSIZE, 1)dnl
-fi
-AC_MSG_RESULT($ac_cv_struct_winsize)
-AC_EGREP_HEADER(ws_xpixel, termios.h, AC_DEFINE(HAVE_WS_XPIXEL))
-AC_EGREP_HEADER(ws_ypixel, termios.h, AC_DEFINE(HAVE_WS_YPIXEL))
-])
diff --git a/crypto/kerberosIV/admin/Makefile.in b/crypto/kerberosIV/admin/Makefile.in
deleted file mode 100644
index d0b68b1532ef..000000000000
--- a/crypto/kerberosIV/admin/Makefile.in
+++ /dev/null
@@ -1,104 +0,0 @@
-# $Id: Makefile.in,v 1.26 1997/05/04 08:33:50 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-LIBS = @LIBS@
-LIB_DBM = @LIB_DBM@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-sbindir = @sbindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROGS = ext_srvtab$(EXECSUFFIX) \
- kdb_destroy$(EXECSUFFIX) \
- kdb_edit$(EXECSUFFIX) \
- kdb_init$(EXECSUFFIX) \
- kdb_util$(EXECSUFFIX) \
- kstash$(EXECSUFFIX)
-
-SOURCES = ext_srvtab.c kdb_destroy.c kdb_edit.c \
- kdb_init.c kdb_util.c kstash.c
-
-OBJECTS = ext_srvtab.o kdb_destroy.o kdb_edit.o \
- kdb_init.o kdb_util.o kstash.o
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(sbindir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(sbindir)/`echo $$x|sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(sbindir)/`echo $$x|sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../lib/kdb -lkdb -L../lib/krb -lkrb -L../lib/des -ldes
-LIBROKEN= -L../lib/roken -lroken
-
-ext_srvtab$(EXECSUFFIX): ext_srvtab.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ ext_srvtab.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-kdb_destroy$(EXECSUFFIX): kdb_destroy.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kdb_destroy.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-kdb_edit$(EXECSUFFIX): kdb_edit.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kdb_edit.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-kdb_init$(EXECSUFFIX): kdb_init.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kdb_init.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-kdb_util$(EXECSUFFIX): kdb_util.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kdb_util.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-kstash$(EXECSUFFIX): kstash.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kstash.o $(KLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-$(OBJECTS): ../include/config.h
diff --git a/crypto/kerberosIV/admin/adm_locl.h b/crypto/kerberosIV/admin/adm_locl.h
deleted file mode 100644
index 6cbd20dfde9a..000000000000
--- a/crypto/kerberosIV/admin/adm_locl.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: adm_locl.h,v 1.16 1997/04/20 05:46:14 assar Exp $ */
-
-#ifndef __adm_locl_h
-#define __adm_locl_h
-
-#include "config.h"
-#include "protos.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif /* !TIME_WITH_SYS_TIME */
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <signal.h>
-#include <errno.h>
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#include <err.h>
-
-#include <roken.h>
-
-#include <des.h>
-#include <krb.h>
-#include <krb_db.h>
-#include <kdc.h>
-#include <kadm.h>
-
-#endif /* __adm_locl_h */
diff --git a/crypto/kerberosIV/admin/ext_srvtab.c b/crypto/kerberosIV/admin/ext_srvtab.c
deleted file mode 100644
index 9c029219d899..000000000000
--- a/crypto/kerberosIV/admin/ext_srvtab.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Description
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: ext_srvtab.c,v 1.13 1997/05/02 14:27:33 assar Exp $");
-
-static des_cblock master_key;
-static des_cblock session_key;
-static des_key_schedule master_key_schedule;
-static char realm[REALM_SZ];
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "Usage: %s [-n] [-r realm] instance [instance ...]\n",
- __progname);
- exit(1);
-}
-
-static void
-StampOutSecrets(void)
-{
- memset(master_key, 0, sizeof master_key);
- memset(session_key, 0, sizeof session_key);
- memset(master_key_schedule, 0, sizeof master_key_schedule);
-}
-
-static void
-Die(void)
-{
- StampOutSecrets();
- exit(1);
-}
-
-static void
-FWrite(void *p, int size, int n, FILE *f)
-{
- if (fwrite(p, size, n, f) != n) {
- printf("Error writing output file. Terminating.\n");
- Die();
- }
-}
-
-int
-main(int argc, char **argv)
-{
- FILE *fout;
- char fname[1024];
- int fopen_errs = 0;
- int arg;
- Principal princs[40];
- int more;
- int prompt = KDB_GET_PROMPT;
- int n, i;
-
- set_progname (argv[0]);
- memset(realm, 0, sizeof(realm));
-
- /* Parse commandline arguments */
- if (argc < 2)
- usage();
- else {
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-n") == 0)
- prompt = FALSE;
- else if (strcmp(argv[i], "-r") == 0) {
- if (++i >= argc)
- usage();
- else {
- strcpy(realm, argv[i]);
- /*
- * This is to humor the broken way commandline
- * argument parsing is done. Later, this
- * program ignores everything that starts with -.
- */
- argv[i][0] = '-';
- }
- }
- else if (argv[i][0] == '-')
- usage();
- else
- if (!k_isinst(argv[i])) {
- warnx("bad instance name: %s", argv[i]);
- usage();
- }
- }
- }
-
- if (kdb_get_master_key (prompt, &master_key, master_key_schedule) != 0)
- errx (1, "Couldn't read master key.");
-
- if (kdb_verify_master_key (&master_key, master_key_schedule, stderr) < 0) {
- exit(1);
- }
-
- /* For each arg, search for instances of arg, and produce */
- /* srvtab file */
- if (!realm[0])
- if (krb_get_lrealm(realm, 1) != KSUCCESS)
- errx (1, "couldn't get local realm");
- umask(077);
-
- for (arg = 1; arg < argc; arg++) {
- if (argv[arg][0] == '-')
- continue;
- snprintf(fname, sizeof(fname), "%s-new-srvtab", argv[arg]);
- if ((fout = fopen(fname, "w")) == NULL) {
- warn("Couldn't create file '%s'.", fname);
- fopen_errs++;
- continue;
- }
- printf("Generating '%s'....\n", fname);
- n = kerb_get_principal("*", argv[arg], &princs[0], 40, &more);
- if (more)
- fprintf(stderr, "More than 40 found...\n");
- for (i = 0; i < n; i++) {
- FWrite(princs[i].name, strlen(princs[i].name) + 1, 1, fout);
- FWrite(princs[i].instance, strlen(princs[i].instance) + 1,
- 1, fout);
- FWrite(realm, strlen(realm) + 1, 1, fout);
- FWrite(&princs[i].key_version,
- sizeof(princs[i].key_version), 1, fout);
- copy_to_key(&princs[i].key_low, &princs[i].key_high, session_key);
- kdb_encrypt_key (&session_key, &session_key,
- &master_key, master_key_schedule, DES_DECRYPT);
- FWrite(session_key, sizeof session_key, 1, fout);
- }
- fclose(fout);
- }
-
- StampOutSecrets();
-
- return fopen_errs; /* 0 errors if successful */
-
-}
diff --git a/crypto/kerberosIV/admin/kdb_destroy.c b/crypto/kerberosIV/admin/kdb_destroy.c
deleted file mode 100644
index fca339f0dd6b..000000000000
--- a/crypto/kerberosIV/admin/kdb_destroy.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Description.
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: kdb_destroy.c,v 1.7 1997/03/31 02:25:21 assar Exp $");
-
-int
-main(int argc, char **argv)
-{
- char answer[10]; /* user input */
- char dbm[256]; /* database path and name */
- char dbm1[256]; /* database path and name */
-#ifdef HAVE_NEW_DB
- char *file; /* database file names */
-#else
- char *file1, *file2; /* database file names */
-#endif
-
- set_progname (argv[0]);
-
- strcpy(dbm, DBM_FILE);
-#ifdef HAVE_NEW_DB
- file = strcat(dbm, ".db");
-#else
- strcpy(dbm1, DBM_FILE);
- file1 = strcat(dbm, ".dir");
- file2 = strcat(dbm1, ".pag");
-#endif
-
- printf("You are about to destroy the Kerberos database ");
- printf("on this machine.\n");
- printf("Are you sure you want to do this (y/n)? ");
- fgets(answer, sizeof(answer), stdin);
-
- if (answer[0] == 'y' || answer[0] == 'Y') {
-#ifdef HAVE_NEW_DB
- if (unlink(file) == 0)
-#else
- if (unlink(file1) == 0 && unlink(file2) == 0)
-#endif
- {
- warnx ("Database deleted at %s", DBM_FILE);
- return 0;
- }
- else
- warn ("Database cannot be deleted at %s", DBM_FILE);
- } else
- warnx ("Database not deleted at %s", DBM_FILE);
- return 1;
-}
diff --git a/crypto/kerberosIV/admin/kdb_edit.c b/crypto/kerberosIV/admin/kdb_edit.c
deleted file mode 100644
index 5d07135e9780..000000000000
--- a/crypto/kerberosIV/admin/kdb_edit.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * This routine changes the Kerberos encryption keys for principals,
- * i.e., users or services.
- */
-
-/*
- * exit returns 0 ==> success -1 ==> error
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: kdb_edit.c,v 1.25 1997/05/07 01:34:05 assar Exp $");
-
-#ifdef DEBUG
-extern kerb_debug;
-#endif
-
-#define zaptime(foo) memset((foo), 0, sizeof(*(foo)))
-
-static int nflag = 0;
-static int debug;
-
-static des_cblock new_key;
-
-static int i, j;
-static int more;
-
-static char input_name[ANAME_SZ];
-static char input_instance[INST_SZ];
-
-#define MAX_PRINCIPAL 10
-static Principal principal_data[MAX_PRINCIPAL];
-
-static Principal old_principal;
-static Principal default_princ;
-
-static des_cblock master_key;
-static des_cblock session_key;
-static des_key_schedule master_key_schedule;
-static char pw_str[255];
-static long master_key_version;
-
-static void
-Usage(void)
-{
- fprintf(stderr, "Usage: %s [-n]\n", __progname);
- exit(1);
-}
-
-static char *
-n_gets(char *buf, int size)
-{
- char *p;
- char *ret;
- ret = fgets(buf, size, stdin);
-
- if (ret && (p = strchr(buf, '\n')))
- *p = 0;
- return ret;
-}
-
-
-static int
-change_principal(void)
-{
- static char temp[255];
- int creating = 0;
- int editpw = 0;
- int changed = 0;
- long temp_long; /* Don't change to int32_t, used by scanf */
- int n;
- struct tm *tp, edate;
-
- fprintf(stdout, "\nPrincipal name: ");
- fflush(stdout);
- if (!n_gets(input_name, sizeof(input_name)) || *input_name == '\0')
- return 0;
- fprintf(stdout, "Instance: ");
- fflush(stdout);
- /* instance can be null */
- n_gets(input_instance, sizeof(input_instance));
- j = kerb_get_principal(input_name, input_instance, principal_data,
- MAX_PRINCIPAL, &more);
- if (!j) {
- fprintf(stdout, "\n\07\07<Not found>, Create [y] ? ");
- fflush(stdout);
- n_gets(temp, sizeof(temp)); /* Default case should work, it didn't */
- if (temp[0] != 'y' && temp[0] != 'Y' && temp[0] != '\0')
- return -1;
- /* make a new principal, fill in defaults */
- j = 1;
- creating = 1;
- strcpy(principal_data[0].name, input_name);
- strcpy(principal_data[0].instance, input_instance);
- principal_data[0].old = NULL;
- principal_data[0].exp_date = default_princ.exp_date;
- if (strcmp(input_instance, "admin") == 0)
- principal_data[0].max_life = 1 + (CLOCK_SKEW/(5*60)); /*5+5 minutes*/
- else if (strcmp(input_instance, "root") == 0)
- principal_data[0].max_life = 96; /* 8 hours */
- else
- principal_data[0].max_life = default_princ.max_life;
- principal_data[0].attributes = default_princ.attributes;
- principal_data[0].kdc_key_ver = (unsigned char) master_key_version;
- principal_data[0].key_version = 0; /* bumped up later */
- }
- tp = k_localtime(&principal_data[0].exp_date);
- snprintf(principal_data[0].exp_date_txt,
- sizeof(principal_data[0].exp_date_txt),
- "%4d-%02d-%02d",
- tp->tm_year + 1900,
- tp->tm_mon + 1, tp->tm_mday); /* January is 0, not 1 */
- for (i = 0; i < j; i++) {
- for (;;) {
- fprintf(stdout,
- "\nPrincipal: %s, Instance: %s, kdc_key_ver: %d",
- principal_data[i].name, principal_data[i].instance,
- principal_data[i].kdc_key_ver);
- fflush(stdout);
- editpw = 1;
- changed = 0;
- if (!creating) {
- /*
- * copy the existing data so we can use the old values
- * for the qualifier clause of the replace
- */
- principal_data[i].old = (char *) &old_principal;
- memcpy(&old_principal, &principal_data[i],
- sizeof(old_principal));
- printf("\nChange password [n] ? ");
- n_gets(temp, sizeof(temp));
- if (strcmp("y", temp) && strcmp("Y", temp))
- editpw = 0;
- }
- /* password */
- if (editpw) {
-#ifdef NOENCRYPTION
- placebo_read_pw_string(pw_str, sizeof pw_str,
- "\nNew Password: ", TRUE);
-#else
- if(des_read_pw_string(pw_str, sizeof pw_str,
- "\nNew Password: ", TRUE))
- continue;
-#endif
- if ( strcmp(pw_str, "RANDOM") == 0
- || strcmp(pw_str, "") == 0) {
- printf("\nRandom password [y] ? ");
- n_gets(temp, sizeof(temp));
- if (!strcmp("n", temp) || !strcmp("N", temp)) {
- /* no, use literal */
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- new_key[0] = 127;
-#else
- des_string_to_key(pw_str, &new_key);
-#endif
- memset(pw_str, 0, sizeof pw_str); /* "RANDOM" */
- } else {
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- new_key[0] = 127;
-#else
- des_new_random_key(&new_key);
-#endif
- memset(pw_str, 0, sizeof pw_str);
- }
- } else if (!strcmp(pw_str, "NULL")) {
- printf("\nNull Key [y] ? ");
- n_gets(temp, sizeof(temp));
- if (!strcmp("n", temp) || !strcmp("N", temp)) {
- /* no, use literal */
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- new_key[0] = 127;
-#else
- des_string_to_key(pw_str, &new_key);
-#endif
- memset(pw_str, 0, sizeof pw_str); /* "NULL" */
- } else {
-
- principal_data[i].key_low = 0;
- principal_data[i].key_high = 0;
- goto null_key;
- }
- } else {
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- new_key[0] = 127;
-#else
- des_string_to_key(pw_str, &new_key);
-#endif
- memset(pw_str, 0, sizeof pw_str);
- }
-
- /* seal it under the kerberos master key */
- kdb_encrypt_key (&new_key, &new_key,
- &master_key, master_key_schedule,
- DES_ENCRYPT);
- copy_from_key(new_key,
- &principal_data[i].key_low,
- &principal_data[i].key_high);
- memset(new_key, 0, sizeof(new_key));
- null_key:
- /* set master key version */
- principal_data[i].kdc_key_ver =
- (unsigned char) master_key_version;
- /* bump key version # */
- principal_data[i].key_version++;
- fprintf(stdout,
- "\nPrincipal's new key version = %d\n",
- principal_data[i].key_version);
- fflush(stdout);
- changed = 1;
- }
- /* expiration date */
- fprintf(stdout, "Expiration date (enter yyyy-mm-dd) [ %s ] ? ",
- principal_data[i].exp_date_txt);
- fflush(stdout);
- zaptime(&edate);
- while (n_gets(temp, sizeof(temp)) && ((n = strlen(temp)) >
- sizeof(principal_data[0].exp_date_txt))) {
- bad_date:
- fprintf(stdout, "\07\07Date Invalid\n");
- fprintf(stdout,
- "Expiration date (enter yyyy-mm-dd) [ %s ] ? ",
- principal_data[i].exp_date_txt);
- fflush(stdout);
- zaptime(&edate);
- }
-
- if (*temp) {
- if (sscanf(temp, "%d-%d-%d", &edate.tm_year,
- &edate.tm_mon, &edate.tm_mday) != 3)
- goto bad_date;
- edate.tm_mon--; /* January is 0, not 1 */
- edate.tm_hour = 23; /* nearly midnight at the end of the */
- edate.tm_min = 59; /* specified day */
- if (krb_check_tm (edate))
- goto bad_date;
- edate.tm_year -= 1900;
- temp_long = tm2time (edate, 1);
- strcpy(principal_data[i].exp_date_txt, temp);
- principal_data[i].exp_date = temp_long;
- changed = 1;
- }
-
- /* maximum lifetime */
- fprintf(stdout, "Max ticket lifetime (*5 minutes) [ %d ] ? ",
- principal_data[i].max_life);
- fflush(stdout);
- while (n_gets(temp, sizeof(temp)) && *temp) {
- if (sscanf(temp, "%ld", &temp_long) != 1)
- goto bad_life;
- if (temp_long > 255 || (temp_long < 0)) {
- bad_life:
- fprintf(stdout, "\07\07Invalid, choose 0-255\n");
- fprintf(stdout,
- "Max ticket lifetime (*5 minutes) [ %d ] ? ",
- principal_data[i].max_life);
- fflush(stdout);
- continue;
- }
- changed = 1;
- /* dont clobber */
- principal_data[i].max_life = (unsigned short) temp_long;
- break;
- }
-
- /* attributes */
- fprintf(stdout, "Attributes [ %d ] ? ",
- principal_data[i].attributes);
- fflush(stdout);
- while (n_gets(temp, sizeof(temp)) && *temp) {
- if (sscanf(temp, "%ld", &temp_long) != 1)
- goto bad_att;
- if (temp_long > 65535 || (temp_long < 0)) {
- bad_att:
- fprintf(stdout, "\07\07Invalid, choose 0-65535\n");
- fprintf(stdout, "Attributes [ %d ] ? ",
- principal_data[i].attributes);
- fflush(stdout);
- continue;
- }
- changed = 1;
- /* dont clobber */
- principal_data[i].attributes =
- (unsigned short) temp_long;
- break;
- }
-
- /*
- * remaining fields -- key versions and mod info, should
- * not be directly manipulated
- */
- if (changed) {
- if (kerb_put_principal(&principal_data[i], 1)) {
- fprintf(stdout,
- "\nError updating Kerberos database");
- } else {
- fprintf(stdout, "Edit O.K.");
- }
- } else {
- fprintf(stdout, "Unchanged");
- }
-
-
- memset(&principal_data[i].key_low, 0, 4);
- memset(&principal_data[i].key_high, 0, 4);
- fflush(stdout);
- break;
- }
- }
- if (more) {
- fprintf(stdout, "\nThere were more tuples found ");
- fprintf(stdout, "than there were space for");
- }
- return 1;
-}
-
-static void
-cleanup(void)
-{
-
- memset(master_key, 0, sizeof(master_key));
- memset(session_key, 0, sizeof(session_key));
- memset(master_key_schedule, 0, sizeof(master_key_schedule));
- memset(principal_data, 0, sizeof(principal_data));
- memset(new_key, 0, sizeof(new_key));
- memset(pw_str, 0, sizeof(pw_str));
-}
-
-int
-main(int argc, char **argv)
-{
- /* Local Declarations */
-
- long n;
-
- set_progname (argv[0]);
-
- while (--argc > 0 && (*++argv)[0] == '-')
- for (i = 1; argv[0][i] != '\0'; i++) {
- switch (argv[0][i]) {
-
- /* debug flag */
- case 'd':
- debug = 1;
- continue;
-
- /* debug flag */
-#ifdef DEBUG
- case 'l':
- kerb_debug |= 1;
- continue;
-#endif
- case 'n': /* read MKEYFILE for master key */
- nflag = 1;
- continue;
-
- default:
- warnx ("illegal flag \"%c\"", argv[0][i]);
- Usage(); /* Give message and die */
- }
- }
-
- fprintf(stdout, "Opening database...\n");
- fflush(stdout);
- kerb_init();
- if (argc > 0)
- if (kerb_db_set_name(*argv) != 0)
- errx (1, "Could not open altername database name");
-
- if (kdb_get_master_key ((nflag == 0) ? KDB_GET_PROMPT : 0,
- &master_key, master_key_schedule) != 0)
- errx (1, "Couldn't read master key.");
-
- if ((master_key_version = kdb_verify_master_key(&master_key,
- master_key_schedule,
- stdout)) < 0)
- return 1;
-
- /* Initialize non shared random sequence */
- des_init_random_number_generator(&master_key);
-
- /* lookup the default values */
- n = kerb_get_principal(KERB_DEFAULT_NAME, KERB_DEFAULT_INST,
- &default_princ, 1, &more);
- if (n != 1)
- errx (1, "Kerberos error on default value lookup, %ld found.", n);
- fprintf(stdout, "Previous or default values are in [brackets] ,\n");
- fprintf(stdout, "enter return to leave the same, or new value.\n");
-
- while (change_principal()) {
- }
-
- cleanup();
- return 0;
-}
diff --git a/crypto/kerberosIV/admin/kdb_init.c b/crypto/kerberosIV/admin/kdb_init.c
deleted file mode 100644
index b9ea009c5d1c..000000000000
--- a/crypto/kerberosIV/admin/kdb_init.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * program to initialize the database, reports error if database file
- * already exists.
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: kdb_init.c,v 1.23 1997/03/30 17:45:05 assar Exp $");
-
-enum ap_op {
- NULL_KEY, /* setup null keys */
- MASTER_KEY, /* use master key as new key */
- RANDOM_KEY /* choose a random key */
-};
-
-static des_cblock master_key;
-static des_key_schedule master_key_schedule;
-
-/* use a return code to indicate success or failure. check the return */
-/* values of the routines called by this routine. */
-
-static int
-add_principal(char *name, char *instance, enum ap_op aap_op, int maxlife)
-{
- Principal principal;
- struct tm *tm;
- des_cblock new_key;
-
- memset(&principal, 0, sizeof(principal));
- strncpy(principal.name, name, ANAME_SZ);
- strncpy(principal.instance, instance, INST_SZ);
- switch (aap_op) {
- case NULL_KEY:
- principal.key_low = 0;
- principal.key_high = 0;
- break;
- case RANDOM_KEY:
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- new_key[0] = 127;
-#else
- des_new_random_key(&new_key);
-#endif
- kdb_encrypt_key (&new_key, &new_key, &master_key, master_key_schedule,
- DES_ENCRYPT);
- copy_from_key(new_key, &principal.key_low, &principal.key_high);
- memset(new_key, 0, sizeof(new_key));
- break;
- case MASTER_KEY:
- memcpy(new_key, master_key, sizeof (des_cblock));
- kdb_encrypt_key (&new_key, &new_key, &master_key, master_key_schedule,
- DES_ENCRYPT);
- copy_from_key(new_key, &principal.key_low, &principal.key_high);
- break;
- }
- principal.exp_date = 946702799; /* Happy new century */
- strncpy(principal.exp_date_txt, "12/31/99", DATE_SZ);
- principal.mod_date = time(0);
-
- tm = k_localtime(&principal.mod_date);
- principal.attributes = 0;
- principal.max_life = maxlife;
-
- principal.kdc_key_ver = 1;
- principal.key_version = 1;
-
- strncpy(principal.mod_name, "db_creation", ANAME_SZ);
- strncpy(principal.mod_instance, "", INST_SZ);
- principal.old = 0;
-
- if (kerb_db_put_principal(&principal, 1) != 1)
- return -1; /* FAIL */
-
- /* let's play it safe */
- memset(new_key, 0, sizeof (des_cblock));
- memset(&principal.key_low, 0, 4);
- memset(&principal.key_high, 0, 4);
- return 0;
-}
-
-int
-main(int argc, char **argv)
-{
- char realm[REALM_SZ];
- char *cp;
- int code;
- char *database;
-
- set_progname (argv[0]);
-
- if (argc > 3) {
- fprintf(stderr, "Usage: %s [realm-name] [database-name]\n", argv[0]);
- return 1;
- }
- if (argc == 3) {
- database = argv[2];
- --argc;
- } else
- database = DBM_FILE;
-
- /* Do this first, it'll fail if the database exists */
- if ((code = kerb_db_create(database)) != 0)
- err (1, "Couldn't create database %s", database);
- kerb_db_set_name(database);
-
- if (argc == 2)
- strncpy(realm, argv[1], REALM_SZ);
- else {
- if (krb_get_lrealm(realm, 1) != KSUCCESS)
- strcpy(realm, KRB_REALM);
- fprintf(stderr, "Realm name [default %s ]: ", realm);
- if (fgets(realm, sizeof(realm), stdin) == NULL)
- errx (1, "\nEOF reading realm");
- if ((cp = strchr(realm, '\n')))
- *cp = '\0';
- if (!*realm) /* no realm given */
- if (krb_get_lrealm(realm, 1) != KSUCCESS)
- strcpy(realm, KRB_REALM);
- }
- if (!k_isrealm(realm))
- errx (1, "Bad kerberos realm name \"%s\"", realm);
-#ifndef RANDOM_MKEY
- printf("You will be prompted for the database Master Password.\n");
- printf("It is important that you NOT FORGET this password.\n");
-#else
- printf("To generate a master key, please enter some random data.\n");
- printf("You do not have to remember this.\n");
-#endif
- fflush(stdout);
-
- if (kdb_get_master_key (KDB_GET_TWICE, &master_key,
- master_key_schedule) != 0)
- errx (1, "Couldn't read master key.");
-
-#ifdef RANDOM_MKEY
- if(kdb_kstash(&master_key, MKEYFILE) < 0)
- err (1, "Error writing master key");
- fprintf(stderr, "Wrote master key to %s\n", MKEYFILE);
-#endif
-
- /* Initialize non shared random sequence */
- des_init_random_number_generator(&master_key);
-
- /* Maximum lifetime for changepw.kerberos (kadmin) tickets, 10 minutes */
-#define ADMLIFE (1 + (CLOCK_SKEW/(5*60)))
-
- /* Maximum lifetime for ticket granting tickets, 4 days or 21.25h */
-#define TGTLIFE ((krb_life_to_time(0, 162) >= 24*60*60) ? 161 : 255)
-
- /* This means that default lifetimes have not been initialized */
-#define DEFLIFE 255
-
-#define NOLIFE 0
-
- if (
- add_principal(KERB_M_NAME, KERB_M_INST, MASTER_KEY, NOLIFE) ||
- add_principal(KERB_DEFAULT_NAME, KERB_DEFAULT_INST, NULL_KEY,DEFLIFE)||
- add_principal(KRB_TICKET_GRANTING_TICKET, realm, RANDOM_KEY, TGTLIFE)||
- add_principal(PWSERV_NAME, KRB_MASTER, RANDOM_KEY, ADMLIFE)
- ) {
- putc ('\n', stderr);
- errx (1, "couldn't initialize database.");
- }
-
- /* play it safe */
- memset(master_key, 0, sizeof (des_cblock));
- memset(master_key_schedule, 0, sizeof (des_key_schedule));
- return 0;
-}
diff --git a/crypto/kerberosIV/admin/kdb_util.c b/crypto/kerberosIV/admin/kdb_util.c
deleted file mode 100644
index b221fddb1e6b..000000000000
--- a/crypto/kerberosIV/admin/kdb_util.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Kerberos database manipulation utility. This program allows you to
- * dump a kerberos database to an ascii readable file and load this
- * file into the database. Read locking of the database is done during a
- * dump operation. NO LOCKING is done during a load operation. Loads
- * should happen with other processes shutdown.
- *
- * Written July 9, 1987 by Jeffrey I. Schiller
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: kdb_util.c,v 1.35 1997/05/07 00:57:45 assar Exp $");
-
-static des_cblock master_key, new_master_key;
-static des_key_schedule master_key_schedule, new_master_key_schedule;
-
-#define zaptime(foo) memset((foo), 0, sizeof(*(foo)))
-
-/* cv_key is a procedure which takes a principle and changes its key,
- either for a new method of encrypting the keys, or a new master key.
- if cv_key is null no transformation of key is done (other than net byte
- order). */
-
-struct callback_args {
- void (*cv_key)(Principal *);
- FILE *output_file;
-};
-
-static void
-print_time(FILE *file, time_t timeval)
-{
- struct tm *tm;
- tm = gmtime(&timeval);
- fprintf(file, " %04d%02d%02d%02d%02d",
- tm->tm_year + 1900,
- tm->tm_mon + 1,
- tm->tm_mday,
- tm->tm_hour,
- tm->tm_min);
-}
-
-static long
-time_explode(char *cp)
-{
- char wbuf[5];
- struct tm tp;
- int local;
-
- zaptime(&tp); /* clear out the struct */
-
- if (strlen(cp) > 10) { /* new format */
- strncpy(wbuf, cp, 4);
- wbuf[4] = 0;
- tp.tm_year = atoi(wbuf) - 1900;
- cp += 4; /* step over the year */
- local = 0; /* GMT */
- } else { /* old format: local time,
- year is 2 digits, assuming 19xx */
- wbuf[0] = *cp++;
- wbuf[1] = *cp++;
- wbuf[2] = 0;
- tp.tm_year = atoi(wbuf);
- local = 1; /* local */
- }
-
- wbuf[0] = *cp++;
- wbuf[1] = *cp++;
- wbuf[2] = 0;
- tp.tm_mon = atoi(wbuf)-1;
-
- wbuf[0] = *cp++;
- wbuf[1] = *cp++;
- tp.tm_mday = atoi(wbuf);
-
- wbuf[0] = *cp++;
- wbuf[1] = *cp++;
- tp.tm_hour = atoi(wbuf);
-
- wbuf[0] = *cp++;
- wbuf[1] = *cp++;
- tp.tm_min = atoi(wbuf);
-
-
- return(tm2time(tp, local));
-}
-
-static int
-dump_db_1(void *arg, Principal *principal)
-{ /* replace null strings with "*" */
- struct callback_args *a = (struct callback_args *)arg;
-
- if (principal->instance[0] == '\0') {
- principal->instance[0] = '*';
- principal->instance[1] = '\0';
- }
- if (principal->mod_name[0] == '\0') {
- principal->mod_name[0] = '*';
- principal->mod_name[1] = '\0';
- }
- if (principal->mod_instance[0] == '\0') {
- principal->mod_instance[0] = '*';
- principal->mod_instance[1] = '\0';
- }
- if (a->cv_key != NULL) {
- (*a->cv_key) (principal);
- }
- fprintf(a->output_file, "%s %s %d %d %d %d %x %x",
- principal->name,
- principal->instance,
- principal->max_life,
- principal->kdc_key_ver,
- principal->key_version,
- principal->attributes,
- (int)htonl (principal->key_low),
- (int)htonl (principal->key_high));
- print_time(a->output_file, principal->exp_date);
- print_time(a->output_file, principal->mod_date);
- fprintf(a->output_file, " %s %s\n",
- principal->mod_name,
- principal->mod_instance);
- return 0;
-}
-
-static int
-dump_db (char *db_file, FILE *output_file, void (*cv_key) (Principal *))
-{
- struct callback_args a;
-
- a.cv_key = cv_key;
- a.output_file = output_file;
-
- kerb_db_iterate ((k_iter_proc_t)dump_db_1, &a);
- return fflush(output_file);
-}
-
-static int
-add_file(void *db, FILE *file)
-{
- int ret;
- int lineno = 0;
- char line[1024];
- unsigned long key[2]; /* yes, long */
- Principal pr;
-
- char exp_date[64], mod_date[64];
-
- int life, kkvno, kvno;
-
- while(1){
- memset(&pr, 0, sizeof(pr));
- errno = 0;
- if(fgets(line, sizeof(line), file) == NULL){
- if(errno != 0)
- err (1, "fgets");
- break;
- }
- lineno++;
- ret = sscanf(line, "%s %s %d %d %d %hd %lx %lx %s %s %s %s",
- pr.name, pr.instance,
- &life, &kkvno, &kvno,
- &pr.attributes,
- &key[0], &key[1],
- exp_date, mod_date,
- pr.mod_name, pr.mod_instance);
- if(ret != 12){
- warnx("Line %d malformed (ignored)", lineno);
- continue;
- }
- pr.key_low = ntohl (key[0]);
- pr.key_high = ntohl (key[1]);
- pr.max_life = life;
- pr.kdc_key_ver = kkvno;
- pr.key_version = kvno;
- pr.exp_date = time_explode(exp_date);
- pr.mod_date = time_explode(mod_date);
- if (pr.instance[0] == '*')
- pr.instance[0] = 0;
- if (pr.mod_name[0] == '*')
- pr.mod_name[0] = 0;
- if (pr.mod_instance[0] == '*')
- pr.mod_instance[0] = 0;
- if (kerb_db_update(db, &pr, 1) != 1) {
- warn ("store %s.%s aborted",
- pr.name, pr.instance);
- return 1;
- }
- }
- return 0;
-}
-
-static void
-load_db (char *db_file, FILE *input_file)
-{
- long *db;
- int temp1;
- int code;
- char *temp_db_file;
-
- temp1 = strlen(db_file)+2;
- temp_db_file = malloc (temp1);
- strcpy(temp_db_file, db_file);
- strcat(temp_db_file, "~");
-
- /* Create the database */
- if ((code = kerb_db_create(temp_db_file)) != 0)
- err (1, "creating temp database %s", temp_db_file);
- kerb_db_set_name(temp_db_file);
- db = kerb_db_begin_update();
- if (db == NULL)
- err (1, "opening temp database %s", temp_db_file);
-
- if(add_file(db, input_file))
- errx (1, "Load aborted");
-
- kerb_db_end_update(db);
- if ((code = kerb_db_rename(temp_db_file, db_file)) != 0)
- warn("database rename failed");
- fclose(input_file);
- free(temp_db_file);
-}
-
-static void
-merge_db(char *db_file, FILE *input_file)
-{
- void *db;
-
- db = kerb_db_begin_update();
- if(db == NULL)
- err (1, "Couldn't open database");
- if(add_file(db, input_file))
- errx (1, "Merge aborted");
- kerb_db_end_update(db);
-}
-
-static void
-update_ok_file (char *file_name)
-{
- /* handle slave locking/failure stuff */
- char *file_ok;
- int fd;
- static char ok[]=".dump_ok";
-
- asprintf (&file_ok, "%s%s", file_name, ok);
- if (file_ok == NULL)
- errx (1, "out of memory");
- if ((fd = open(file_ok, O_WRONLY|O_CREAT|O_TRUNC, 0400)) < 0)
- err (1, "Error creating %s", file_ok);
- free(file_ok);
- close(fd);
-}
-
-static void
-convert_key_new_master (Principal *p)
-{
- des_cblock key;
-
- /* leave null keys alone */
- if ((p->key_low == 0) && (p->key_high == 0)) return;
-
- /* move current key to des_cblock for encryption, special case master key
- since that's changing */
- if ((strncmp (p->name, KERB_M_NAME, ANAME_SZ) == 0) &&
- (strncmp (p->instance, KERB_M_INST, INST_SZ) == 0)) {
- memcpy (key, new_master_key, sizeof(des_cblock));
- (p->key_version)++;
- } else {
- copy_to_key(&p->key_low, &p->key_high, key);
- kdb_encrypt_key (&key, &key, &master_key, master_key_schedule, DES_DECRYPT);
- }
-
- kdb_encrypt_key (&key, &key, &new_master_key, new_master_key_schedule, DES_ENCRYPT);
-
- copy_from_key(key, &(p->key_low), &(p->key_high));
- memset(key, 0, sizeof (key)); /* a little paranoia ... */
-
- (p->kdc_key_ver)++;
-}
-
-static void
-clear_secrets (void)
-{
- memset(master_key, 0, sizeof (des_cblock));
- memset(master_key_schedule, 0, sizeof (des_key_schedule));
- memset(new_master_key, 0, sizeof (des_cblock));
- memset(new_master_key_schedule, 0, sizeof (des_key_schedule));
-}
-
-static void
-convert_new_master_key (char *db_file, FILE *out)
-{
-#ifdef RANDOM_MKEY
- errx (1, "Sorry, this function is not available with "
- "the new master key scheme.");
-#else
- printf ("\n\nEnter the CURRENT master key.");
- if (kdb_get_master_key (KDB_GET_PROMPT, &master_key,
- master_key_schedule) != 0) {
- clear_secrets ();
- errx (1, "Couldn't get master key.");
- }
-
- if (kdb_verify_master_key (&master_key, master_key_schedule, stderr) < 0) {
- clear_secrets ();
- exit (1);
- }
-
- printf ("\n\nNow enter the NEW master key. Do not forget it!!");
- if (kdb_get_master_key (KDB_GET_TWICE, &new_master_key,
- new_master_key_schedule) != 0) {
- clear_secrets ();
- errx (1, "Couldn't get new master key.");
- }
-
- dump_db (db_file, out, convert_key_new_master);
- {
- char fname[128];
- snprintf(fname, sizeof(fname), "%s.new", MKEYFILE);
- kdb_kstash(&new_master_key, fname);
- }
-#endif /* RANDOM_MKEY */
-}
-
-static void
-convert_key_old_db (Principal *p)
-{
- des_cblock key;
-
- /* leave null keys alone */
- if ((p->key_low == 0) && (p->key_high == 0)) return;
-
- copy_to_key(&p->key_low, &p->key_high, key);
-
-#ifndef NOENCRYPTION
- des_pcbc_encrypt((des_cblock *)key,(des_cblock *)key,
- (long)sizeof(des_cblock),master_key_schedule,
- (des_cblock *)master_key_schedule, DES_DECRYPT);
-#endif
-
- /* make new key, new style */
- kdb_encrypt_key (&key, &key, &master_key, master_key_schedule, DES_ENCRYPT);
-
- copy_from_key(key, &(p->key_low), &(p->key_high));
- memset(key, 0, sizeof (key)); /* a little paranoia ... */
-}
-
-static void
-convert_old_format_db (char *db_file, FILE *out)
-{
- des_cblock key_from_db;
- Principal principal_data[1];
- int n, more;
-
- if (kdb_get_master_key (KDB_GET_PROMPT, &master_key,
- master_key_schedule) != 0L) {
- clear_secrets();
- errx (1, "Couldn't get master key.");
- }
-
- /* can't call kdb_verify_master_key because this is an old style db */
- /* lookup the master key version */
- n = kerb_get_principal(KERB_M_NAME, KERB_M_INST, principal_data,
- 1 /* only one please */, &more);
- if ((n != 1) || more)
- errx (1, "verify_master_key: Kerberos error on master key lookup, %d found.\n", n);
-
- /* set up the master key */
- fprintf(stderr, "Current Kerberos master key version is %d.\n",
- principal_data[0].kdc_key_ver);
-
- /*
- * now use the master key to decrypt (old style) the key in the db, had better
- * be the same!
- */
- copy_to_key(&principal_data[0].key_low,
- &principal_data[0].key_high,
- key_from_db);
-#ifndef NOENCRYPTION
- des_pcbc_encrypt(&key_from_db,&key_from_db,(long)sizeof(key_from_db),
- master_key_schedule,(des_cblock *)master_key_schedule, DES_DECRYPT);
-#endif
- /* the decrypted database key had better equal the master key */
-
- n = memcmp(master_key, key_from_db, sizeof(master_key));
- memset(key_from_db, 0, sizeof(key_from_db));
-
- if (n) {
- fprintf(stderr, "\n\07\07verify_master_key: Invalid master key, ");
- fprintf(stderr, "does not match database.\n");
- exit (1);
- }
-
- fprintf(stderr, "Master key verified.\n");
-
- dump_db (db_file, out, convert_key_old_db);
-}
-
-int
-main(int argc, char **argv)
-{
- int ret;
- FILE *file;
- enum {
- OP_LOAD,
- OP_MERGE,
- OP_DUMP,
- OP_SLAVE_DUMP,
- OP_NEW_MASTER,
- OP_CONVERT_OLD_DB
- } op;
- char *file_name;
- char *db_name;
-
- set_progname (argv[0]);
-
- if (argc != 3 && argc != 4) {
- fprintf(stderr, "Usage: %s operation file [database name].\n",
- argv[0]);
- fprintf(stderr, "Operation is one of: "
- "load, merge, dump, slave_dump, new_master_key, "
- "convert_old_db\n");
- exit(1);
- }
- if (argc == 3)
- db_name = DBM_FILE;
- else
- db_name = argv[3];
-
- ret = kerb_db_set_name (db_name);
-
- /* this makes starting slave servers ~14.3 times easier */
- if(ret && strcmp(argv[1], "load") == 0)
- ret = kerb_db_create (db_name);
-
- if(ret)
- err (1, "Can't open database");
-
- if (!strcmp(argv[1], "load"))
- op = OP_LOAD;
- else if (!strcmp(argv[1], "merge"))
- op = OP_MERGE;
- else if (!strcmp(argv[1], "dump"))
- op = OP_DUMP;
- else if (!strcmp(argv[1], "slave_dump"))
- op = OP_SLAVE_DUMP;
- else if (!strcmp(argv[1], "new_master_key"))
- op = OP_NEW_MASTER;
- else if (!strcmp(argv[1], "convert_old_db"))
- op = OP_CONVERT_OLD_DB;
- else {
- warnx ("%s is an invalid operation.", argv[1]);
- warnx ("Valid operations are \"load\", \"merge\", "
- "\"dump\", \"slave_dump\", \"new_master_key\", "
- "and \"convert_old_db\"");
- return 1;
- }
-
- file_name = argv[2];
- file = fopen(file_name, (op == OP_LOAD || op == OP_MERGE) ? "r" : "w");
- if (file == NULL)
- err (1, "open %s", argv[2]);
-
- switch (op) {
- case OP_DUMP:
- if ((dump_db (db_name, file, (void (*)(Principal *)) 0) == EOF) ||
- (fclose(file) == EOF))
- err (1, "%s", file_name);
- break;
- case OP_SLAVE_DUMP:
- if ((dump_db (db_name, file, (void (*)(Principal *)) 0) == EOF) ||
- (fclose(file) == EOF))
- err (1, "%s", file_name);
- update_ok_file (file_name);
- break;
- case OP_LOAD:
- load_db (db_name, file);
- break;
- case OP_MERGE:
- merge_db (db_name, file);
- break;
- case OP_NEW_MASTER:
- convert_new_master_key (db_name, file);
- printf("Don't forget to do a `kdb_util load %s' to reload the database!\n", file_name);
- break;
- case OP_CONVERT_OLD_DB:
- convert_old_format_db (db_name, file);
- printf("Don't forget to do a `kdb_util load %s' to reload the database!\n", file_name);
- break;
- }
- return 0;
-}
diff --git a/crypto/kerberosIV/admin/kstash.c b/crypto/kerberosIV/admin/kstash.c
deleted file mode 100644
index 4595de58ef32..000000000000
--- a/crypto/kerberosIV/admin/kstash.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Description.
- */
-
-#include "adm_locl.h"
-
-RCSID("$Id: kstash.c,v 1.10 1997/03/30 17:35:37 assar Exp $");
-
-/* change this later, but krblib_dbm needs it for now */
-
-static des_cblock master_key;
-static des_key_schedule master_key_schedule;
-
-static void
-clear_secrets(void)
-{
- memset(master_key_schedule, 0, sizeof(master_key_schedule));
- memset(master_key, 0, sizeof(master_key));
-}
-
-int
-main(int argc, char **argv)
-{
- long n;
- int ret = 0;
- set_progname (argv[0]);
-
- if ((n = kerb_init()))
- errx(1, "Kerberos db and cache init failed = %ld\n", n);
-
- if (kdb_get_master_key (KDB_GET_PROMPT, &master_key,
- master_key_schedule) != 0) {
- clear_secrets();
- errx(1, "Couldn't read master key.");
- }
-
- if (kdb_verify_master_key (&master_key, master_key_schedule, stderr) < 0) {
- clear_secrets();
- return 1;
- }
-
- ret = kdb_kstash(&master_key, MKEYFILE);
- if(ret < 0)
- warn("writing master key");
- else
- fprintf(stderr, "Wrote master key to %s\n", MKEYFILE);
-
- clear_secrets();
- return ret;
-}
diff --git a/crypto/kerberosIV/appl/Makefile.in b/crypto/kerberosIV/appl/Makefile.in
deleted file mode 100644
index c9512589525f..000000000000
--- a/crypto/kerberosIV/appl/Makefile.in
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: Makefile.in,v 1.27 1997/05/20 18:58:37 bg Exp $
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-@SET_MAKE@
-
-SUBDIRS = sample kauth bsd movemail afsutil \
- kpopper xnlock kx otp @APPL_KIP_DIR@ ftp telnet
-
-all:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) all); done
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-install:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) install); done
-
-uninstall:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) uninstall); done
-
-clean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) clean); done
-
-mostlyclean: clean
-
-distclean:
- for i in $(SUBDIRS);\
- do (cd $$i && $(MAKE) $(MFLAGS) distclean); done
- rm -f Makefile *~
-
-realclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) realclean); done
-
-.PHONY: all install uninstall clean distclean realclean mostlyclean
diff --git a/crypto/kerberosIV/appl/bsd/Makefile.in b/crypto/kerberosIV/appl/bsd/Makefile.in
deleted file mode 100644
index 57a810890094..000000000000
--- a/crypto/kerberosIV/appl/bsd/Makefile.in
+++ /dev/null
@@ -1,135 +0,0 @@
-# $Id: Makefile.in,v 1.56 1997/05/20 20:35:04 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-topdir = ../..
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@ -DBINDIR='"$(bindir)"'
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @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@
-
-# Beware, these are all setuid root programs
-PROG_SUIDBIN = rsh$(EXECSUFFIX) \
- rcp$(EXECSUFFIX) \
- rlogin$(EXECSUFFIX) \
- su$(EXECSUFFIX)
-PROG_BIN = login$(EXECSUFFIX)
-PROG_LIBEXEC = rshd$(EXECSUFFIX) \
- rlogind$(EXECSUFFIX)
-PROGS = $(PROG_SUIDBIN) $(PROG_BIN) $(PROG_LIBEXEC)
-
-SOURCES = rsh.c kcmd.c krcmd.c rlogin.c rcp.c rcp_util.c rshd.c \
- login.c klogin.c login_access.c su.c rlogind.c iruserok.c \
- login_fbtab.c forkpty.c sysv_default.c sysv_environ.c sysv_shadow.c \
- utmp_login.c utmpx_login.c stty_default.c encrypt.c rcmd_util.c tty.c
-
-rsh_OBJS = rsh.o kcmd.o krcmd.o encrypt.o rcmd_util.o
-rcp_OBJS = rcp.o rcp_util.o kcmd.o krcmd.o encrypt.o rcmd_util.o
-rlogin_OBJS = rlogin.o kcmd.o krcmd.o encrypt.o rcmd_util.o
-login_OBJS = login.o klogin.o login_fbtab.o login_access.o \
- sysv_default.o sysv_environ.o sysv_shadow.o \
- utmp_login.o utmpx_login.o stty_default.o tty.o
-su_OBJS = su.o
-rshd_OBJS = rshd.o iruserok.o encrypt.o rcmd_util.o
-rlogind_OBJS = rlogind.o iruserok.o forkpty.o encrypt.o rcmd_util.o tty.o
-
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libexecdir)
- for x in $(PROG_LIBEXEC); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x| sed '$(transform)'`; \
- done
- $(MKINSTALLDIRS) $(bindir)
- for x in $(PROG_BIN); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
- -for x in $(PROG_SUIDBIN); do \
- $(INSTALL_PROGRAM) -o root -m 04555 $$x $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROG_LIBEXEC); do \
- rm -f $(libexecdir)/`echo $$x| sed '$(transform)'`; \
- done
- for x in $(PROG_BIN); do \
- rm -f $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
- for x in $(PROG_SUIDBIN); do \
- rm -f $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../../lib/krb -lkrb -L../../lib/des -ldes
-KLIB_AFS=@KRB_KAFS_LIB@ $(KLIB)
-OTPLIB=-L../../lib/otp -lotp
-LIBROKEN=-L../../lib/roken -lroken
-
-rcp$(EXECSUFFIX): $(rcp_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(rcp_OBJS) $(KLIB_AFS) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-rsh$(EXECSUFFIX): $(rsh_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(rsh_OBJS) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-rshd$(EXECSUFFIX): $(rshd_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(rshd_OBJS) $(KLIB_AFS) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-rlogin$(EXECSUFFIX): $(rlogin_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(rlogin_OBJS) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-rlogind$(EXECSUFFIX): $(rlogind_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(rlogind_OBJS) $(KLIB_AFS) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-login$(EXECSUFFIX): $(login_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(login_OBJS) $(OTPLIB) $(KLIB_AFS) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-su$(EXECSUFFIX): $(su_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(su_OBJS) $(KLIB_AFS) $(LIBROKEN) $(LIBS) $(LIBROKEN)
diff --git a/crypto/kerberosIV/appl/bsd/README.login b/crypto/kerberosIV/appl/bsd/README.login
deleted file mode 100644
index c0729690a77f..000000000000
--- a/crypto/kerberosIV/appl/bsd/README.login
+++ /dev/null
@@ -1,20 +0,0 @@
-This login has additional functionalities. They are all based on (part of)
-Wietse Venema's logdaemon package.
-
-
-The following defines can be used:
-1) LOGIN_ACCESS to allow access control on a per tty/user combination
-2) LOGALL to log all logins
-
--Guido
-
-This login has some of Berkeley's paranoid/broken (depending on your point
-of view) Kerberos code conditionalized out, so that by default it works like
-klogin does at MIT-LCS. You can define KLOGIN_PARANOID to re-enable this code.
-This define also controls whether a warning message is printed when logging
-into a system with no krb.conf file, which usually means that Kerberos is
-not configured.
-
--GAWollman
-
-(removed S/Key, /assar)
diff --git a/crypto/kerberosIV/appl/bsd/bsd_locl.h b/crypto/kerberosIV/appl/bsd/bsd_locl.h
deleted file mode 100644
index d0b37aa56f66..000000000000
--- a/crypto/kerberosIV/appl/bsd/bsd_locl.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: bsd_locl.h,v 1.98 1997/05/25 01:14:17 assar Exp $ */
-
-#define LOGALL
-#define KERBEROS
-#define KLOGIN_PARANOID
-#define LOGIN_ACCESS
-#define PASSWD_FALLBACK
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/* Any better way to test NO_MOTD? */
-#if (SunOS == 5) || defined(__hpux)
-#define NO_MOTD
-#endif
-
-#ifdef HAVE_SHADOW_H
-#define SYSV_SHADOW
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <setjmp.h>
-
-#include <stdarg.h>
-
-#include <errno.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#ifndef S_ISTXT
-#ifdef S_ISVTX
-#define S_ISTXT S_ISVTX
-#else
-#define S_ISTXT 0
-#endif
-#endif
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-#include <signal.h>
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif /* HAVE_SYS_RESOURCE_H */
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifndef NCARGS
-#define NCARGS 0x100000 /* (absolute) max # characters in exec arglist */
-#endif
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif
-#ifdef HAVE_UTIME_H
-#include <utime.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_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_SYS_IOCCOM_H
-#include <sys/ioccom.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-#ifdef HAVE_SYS_FILIO_H
-#include <sys/filio.h>
-#endif
-
-#ifdef HAVE_SYS_STREAM_H
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif /* HAVE_SYS_UIO_H */
-#include <sys/stream.h>
-#endif /* HAVE_SYS_STREAM_H */
-
-#ifdef HAVE_SYS_PTYVAR_H
-#ifdef HAVE_SYS_PROC_H
-#include <sys/proc.h>
-#endif
-#ifdef HAVE_SYS_TTY_H
-#include <sys/tty.h>
-#endif
-#ifdef HAVE_SYS_PTYIO_H
-#include <sys/ptyio.h>
-#endif
-#include <sys/ptyvar.h>
-#endif /* HAVE_SYS_PTYVAR_H */
-
-/* Cray stuff */
-#ifdef HAVE_UDB_H
-#include <udb.h>
-#endif
-#ifdef HAVE_SYS_CATEGORY_H
-#include <sys/category.h>
-#endif
-
-/* Strange ioctls that are not always defined */
-
-#ifndef TIOCPKT_FLUSHWRITE
-#define TIOCPKT_FLUSHWRITE 0x02
-#endif
-
-#ifndef TIOCPKT_NOSTOP
-#define TIOCPKT_NOSTOP 0x10
-#endif
-
-#ifndef TIOCPKT_DOSTOP
-#define TIOCPKT_DOSTOP 0x20
-#endif
-
-#ifndef TIOCPKT
-#define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */
-#endif
-
-#ifdef HAVE_LASTLOG_H
-#include <lastlog.h>
-#endif
-
-#ifdef HAVE_LOGIN_H
-#include <login.h>
-#endif
-
-#ifdef HAVE_TTYENT_H
-#include <ttyent.h>
-#endif
-
-#ifdef HAVE_STROPTS_H
-#include <stropts.h>
-#endif
-
-#ifdef HAVE_UTMP_H
-#include <utmp.h>
-#endif
-#ifndef UT_NAMESIZE
-#define UT_NAMESIZE sizeof(((struct utmp *)0)->ut_name)
-#endif
-
-#ifdef HAVE_UTMPX_H
-#include <utmpx.h>
-#endif
-
-#ifdef HAVE_USERPW_H
-#include <userpw.h>
-#endif /* HAVE_USERPW_H */
-
-#ifdef HAVE_USERSEC_H
-#include <usersec.h>
-#endif /* HAVE_USERSEC_H */
-
-#ifndef PRIO_PROCESS
-#define PRIO_PROCESS 0
-#endif
-
-#include <err.h>
-
-#include <roken.h>
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <des.h>
-#include <krb.h>
-#include <kafs.h>
-
-int kcmd(int *sock, char **ahost, u_int16_t rport, char *locuser,
- char *remuser, char *cmd, int *fd2p, KTEXT ticket,
- char *service, char *realm, CREDENTIALS *cred,
- Key_schedule schedule, MSG_DAT *msg_data,
- struct sockaddr_in *laddr, struct sockaddr_in *faddr,
- int32_t authopts);
-
-int krcmd(char **ahost, u_int16_t rport, char *remuser, char *cmd,
- int *fd2p, char *realm);
-
-int krcmd_mutual(char **ahost, u_int16_t rport, char *remuser,
- char *cmd,int *fd2p, char *realm,
- CREDENTIALS *cred, Key_schedule sched);
-
-int klogin(struct passwd *pw, char *instance, char *localhost, char *password);
-
-typedef struct {
- int cnt;
- char *buf;
-} BUF;
-
-char *colon(char *cp);
-int okname(char *cp0);
-int susystem(char *s, int userid);
-
-int forkpty(int *amaster, char *name,
- struct termios *termp, struct winsize *winp);
-
-#ifndef MODEMASK
-#define MODEMASK (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
-#endif
-
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-#ifdef HAVE_MAILLOCK_H
-#include <maillock.h>
-#endif
-#include "pathnames.h"
-
-void stty_default (void);
-
-int utmpx_login(char *line, char *user, char *host);
-
-extern char **environ;
-
-void sysv_newenv(int argc, char **argv, struct passwd *pwd,
- char *term, int pflag);
-
-int login_access(char *user, char *from);
-#ifndef HAVE_IRUSEROK
-int iruserok(u_int32_t raddr, int superuser, const char *ruser,
- const char *luser);
-#endif
-void fatal(int f, const char *msg, int syserr);
-
-extern int LEFT_JUSTIFIED;
-int des_enc_read(int fd,char *buf,int len,des_key_schedule sched,
- des_cblock *iv);
-int des_enc_write(int fd,char *buf,int len,des_key_schedule sched,
- des_cblock *iv);
-
-void sysv_defaults(void);
-void utmp_login(char *tty, char *username, char *hostname);
-void sleepexit (int);
-
-#ifndef HAVE_SETPRIORITY
-#define setpriority(which, who, niceval) 0
-#endif
-
-#ifndef HAVE_GETPRIORITY
-#define getpriority(which, who) 0
-#endif
-
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#endif
-
-#ifndef _POSIX_VDISABLE
-#define _POSIX_VDISABLE 0
-#endif /* _POSIX_VDISABLE */
-#if SunOS == 4
-#include <sys/ttold.h>
-#endif
-
-#if defined(_AIX)
-#include <sys/termio.h>
-#endif
-
-#ifndef CEOF
-#define CEOF 04
-#endif
-
-/* concession to Sun */
-#ifndef SIGUSR1
-#define SIGUSR1 30
-#endif
-
-#ifndef TIOCPKT_WINDOW
-#define TIOCPKT_WINDOW 0x80
-#endif
-
-int get_shell_port(int kerberos, int encryption);
-int get_login_port(int kerberos, int encryption);
-int speed_t2int (speed_t);
-speed_t int2speed_t (int);
-void ip_options_and_die (int sock, struct sockaddr_in *);
-void warning(const char *fmt, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-
-char *clean_ttyname (char *tty);
-char *make_id (char *tty);
-void prepare_utmp (struct utmp *utmp, char *tty, char *username,
- char *hostname);
diff --git a/crypto/kerberosIV/appl/bsd/encrypt.c b/crypto/kerberosIV/appl/bsd/encrypt.c
deleted file mode 100644
index b74f329c4d79..000000000000
--- a/crypto/kerberosIV/appl/bsd/encrypt.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/* Copyright (C) 1995 Eric Young (eay@mincom.oz.au)
- * All rights reserved.
- *
- * This file is part of an SSL implementation written
- * by Eric Young (eay@mincom.oz.au).
- * The implementation was written so as to conform with Netscapes SSL
- * specification. This library and applications are
- * FREE FOR COMMERCIAL AND NON-COMMERCIAL USE
- * as long as the following conditions are aheared to.
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed. If this code is used in a product,
- * Eric Young should be given attribution as the author of the parts used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * 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 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Eric Young (eay@mincom.oz.au)
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 AUTHOR 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.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: encrypt.c,v 1.3 1996/04/30 13:50:54 bg Exp $");
-
-#undef BSIZE
-
-/* used in des_read and des_write */
-#define MAXWRITE (1024*16)
-#define BSIZE (MAXWRITE+4)
-
-/* replacements for htonl and ntohl since I have no idea what to do
- * when faced with machines with 8 byte longs. */
-#define HDRSIZE 4
-
-#define n2l(c,l) (l =((u_int32_t)(*((c)++)))<<24, \
- l|=((u_int32_t)(*((c)++)))<<16, \
- l|=((u_int32_t)(*((c)++)))<< 8, \
- l|=((u_int32_t)(*((c)++))))
-
-#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff))
-
-/* This has some uglies in it but it works - even over sockets. */
-extern int errno;
-int des_rw_mode=DES_PCBC_MODE;
-int LEFT_JUSTIFIED = 0;
-
-int
-des_enc_read(int fd, char *buf, int len, struct des_ks_struct *sched, des_cblock *iv)
-{
- /* data to be unencrypted */
- int net_num=0;
- unsigned char net[BSIZE];
- /* extra unencrypted data
- * for when a block of 100 comes in but is des_read one byte at
- * a time. */
- static char unnet[BSIZE];
- static int unnet_start=0;
- static int unnet_left=0;
- int i;
- long num=0,rnum;
- unsigned char *p;
-
- /* left over data from last decrypt */
- if (unnet_left != 0)
- {
- if (unnet_left < len)
- {
- /* we still still need more data but will return
- * with the number of bytes we have - should always
- * check the return value */
- memcpy(buf,&(unnet[unnet_start]),unnet_left);
- /* eay 26/08/92 I had the next 2 lines
- * reversed :-( */
- i=unnet_left;
- unnet_start=unnet_left=0;
- }
- else
- {
- memcpy(buf,&(unnet[unnet_start]),len);
- unnet_start+=len;
- unnet_left-=len;
- i=len;
- }
- return(i);
- }
-
- /* We need to get more data. */
- if (len > MAXWRITE) len=MAXWRITE;
-
- /* first - get the length */
- net_num=0;
- while (net_num < HDRSIZE)
- {
- i=read(fd,&(net[net_num]),(unsigned int)HDRSIZE-net_num);
- if ((i == -1) && (errno == EINTR)) continue;
- if (i <= 0) return(0);
- net_num+=i;
- }
-
- /* we now have at net_num bytes in net */
- p=net;
- num=0;
- n2l(p,num);
- /* num should be rounded up to the next group of eight
- * we make sure that we have read a multiple of 8 bytes from the net.
- */
- if ((num > MAXWRITE) || (num < 0)) /* error */
- return(-1);
- rnum=(num < 8)?8:((num+7)/8*8);
-
- net_num=0;
- while (net_num < rnum)
- {
- i=read(fd,&(net[net_num]),(unsigned int)rnum-net_num);
- if ((i == -1) && (errno == EINTR)) continue;
- if (i <= 0) return(0);
- net_num+=i;
- }
-
- /* Check if there will be data left over. */
- if (len < num)
- {
- if (des_rw_mode & DES_PCBC_MODE)
- des_pcbc_encrypt((des_cblock *)net,(des_cblock *)unnet,
- num,sched,iv,DES_DECRYPT);
- else
- des_cbc_encrypt((des_cblock *)net,(des_cblock *)unnet,
- num,sched,iv,DES_DECRYPT);
- memcpy(buf,unnet,len);
- unnet_start=len;
- unnet_left=num-len;
-
- /* The following line is done because we return num
- * as the number of bytes read. */
- num=len;
- }
- else
- {
- /* >output is a multiple of 8 byes, if len < rnum
- * >we must be careful. The user must be aware that this
- * >routine will write more bytes than he asked for.
- * >The length of the buffer must be correct.
- * FIXED - Should be ok now 18-9-90 - eay */
- if (len < rnum)
- {
- char tmpbuf[BSIZE];
-
- if (des_rw_mode & DES_PCBC_MODE)
- des_pcbc_encrypt((des_cblock *)net,
- (des_cblock *)tmpbuf,
- num,sched,iv,DES_DECRYPT);
- else
- des_cbc_encrypt((des_cblock *)net,
- (des_cblock *)tmpbuf,
- num,sched,iv,DES_DECRYPT);
-
- /* eay 26/08/92 fix a bug that returned more
- * bytes than you asked for (returned len bytes :-( */
- if (LEFT_JUSTIFIED || (len >= 8))
- memcpy(buf,tmpbuf,num);
- else
- memcpy(buf,tmpbuf+(8-num),num); /* Right justified */
- }
- else if (num >= 8)
- {
- if (des_rw_mode & DES_PCBC_MODE)
- des_pcbc_encrypt((des_cblock *)net,
- (des_cblock *)buf,num,sched,iv,
- DES_DECRYPT);
- else
- des_cbc_encrypt((des_cblock *)net,
- (des_cblock *)buf,num,sched,iv,
- DES_DECRYPT);
- }
- else
- {
- if (des_rw_mode & DES_PCBC_MODE)
- des_pcbc_encrypt((des_cblock *)net,
- (des_cblock *)buf,8,sched,iv,
- DES_DECRYPT);
- else
- des_cbc_encrypt((des_cblock *)net,
- (des_cblock *)buf,8,sched,iv,
- DES_DECRYPT);
- if (!LEFT_JUSTIFIED)
- memcpy(buf, buf+(8-num), num); /* Right justified */
- }
- }
- return(num);
-}
-
-int
-des_enc_write(int fd, char *buf, int len, struct des_ks_struct *sched, des_cblock *iv)
-{
- long rnum;
- int i,j,k,outnum;
- char outbuf[BSIZE+HDRSIZE];
- char shortbuf[8];
- char *p;
- static int start=1;
-
- /* If we are sending less than 8 bytes, the same char will look
- * the same if we don't pad it out with random bytes */
- if (start)
- {
- start=0;
- srand(time(NULL));
- }
-
- /* lets recurse if we want to send the data in small chunks */
- if (len > MAXWRITE)
- {
- j=0;
- for (i=0; i<len; i+=k)
- {
- k=des_enc_write(fd,&(buf[i]),
- ((len-i) > MAXWRITE)?MAXWRITE:(len-i),sched,iv);
- if (k < 0)
- return(k);
- else
- j+=k;
- }
- return(j);
- }
-
- /* write length first */
- p=outbuf;
- l2n(len,p);
-
- /* pad short strings */
- if (len < 8)
- {
- if (LEFT_JUSTIFIED)
- {
- p=shortbuf;
- memcpy(shortbuf,buf,(unsigned int)len);
- for (i=len; i<8; i++)
- shortbuf[i]=rand();
- rnum=8;
- }
- else
- {
- p=shortbuf;
- for (i=0; i<8-len; i++)
- shortbuf[i]=rand();
- memcpy(shortbuf + 8 - len, buf, len);
- rnum=8;
- }
- }
- else
- {
- p=buf;
- rnum=((len+7)/8*8); /* round up to nearest eight */
- }
-
- if (des_rw_mode & DES_PCBC_MODE)
- des_pcbc_encrypt((des_cblock *)p,(des_cblock *)&(outbuf[HDRSIZE]),
- (long)((len<8)?8:len),sched,iv,DES_ENCRYPT);
- else
- des_cbc_encrypt((des_cblock *)p,(des_cblock *)&(outbuf[HDRSIZE]),
- (long)((len<8)?8:len),sched,iv,DES_ENCRYPT);
-
- /* output */
- outnum=rnum+HDRSIZE;
-
- for (j=0; j<outnum; j+=i)
- {
- /* eay 26/08/92 I was not doing writing from where we
- * got upto. */
- i=write(fd,&(outbuf[j]),(unsigned int)(outnum-j));
- if (i == -1)
- {
- if (errno == EINTR)
- i=0;
- else /* This is really a bad error - very bad
- * It will stuff-up both ends. */
- return(-1);
- }
- }
-
- return(len);
-}
diff --git a/crypto/kerberosIV/appl/bsd/forkpty.c b/crypto/kerberosIV/appl/bsd/forkpty.c
deleted file mode 100644
index 5c0aaafa40aa..000000000000
--- a/crypto/kerberosIV/appl/bsd/forkpty.c
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "bsd_locl.h"
-
-#ifndef HAVE_FORKPTY
-
-RCSID("$Id: forkpty.c,v 1.52 1997/05/25 07:37:01 assar Exp $");
-
-/* Only CRAY is known to have problems with forkpty(). */
-#if defined(CRAY)
-static int forkpty_ok = 0;
-#else
-static int forkpty_ok = 1;
-#endif
-
-#ifndef HAVE_PTSNAME
-static char *ptsname(int fd)
-{
-#ifdef HAVE_TTYNAME
- return ttyname(fd);
-#else
- return NULL;
-#endif
-}
-#endif
-
-#ifndef HAVE_GRANTPT
-#define grantpt(fdm) (0)
-#endif
-
-#ifndef HAVE_UNLOCKPT
-#define unlockpt(fdm) (0)
-#endif
-
-#ifndef HAVE_VHANGUP
-#define vhangup() (0)
-#endif
-
-#ifndef HAVE_REVOKE
-static
-void
-revoke(char *line)
-{
- int slave;
- RETSIGTYPE (*ofun)();
-
- if ( (slave = open(line, O_RDWR)) < 0)
- return;
-
- ofun = signal(SIGHUP, SIG_IGN);
- vhangup();
- signal(SIGHUP, ofun);
- /*
- * Some systems (atleast SunOS4) want to have the slave end open
- * at all times to prevent a race in the child. Login will close
- * it so it should really not be a problem. However for the
- * paranoid we use the close on exec flag so it will only be open
- * in the parent. Additionally since this will be the controlling
- * tty of rlogind the final vhangup() in rlogind should hangup all
- * processes. A working revoke would of course have been prefered
- * though (sigh).
- */
- fcntl(slave, F_SETFD, 1);
- /* close(slave); */
-}
-#endif
-
-
-static int pty_major, pty_minor;
-
-static void
-pty_scan_start(void)
-{
- pty_major = -1;
- pty_minor = 0;
-}
-
-static char *bsd_1 = "0123456789abcdefghijklmnopqrstuv";
-/* there are many more */
-static char *bsd_2 = "pqrstuvwxyzabcdefghijklmnoABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
-static int
-pty_scan_next(char *buf, size_t sz)
-{
-#ifdef CRAY
- if(++pty_major >= sysconf(_SC_CRAY_NPTY))
- return -1;
- snprintf(buf, sz, "/dev/pty/%03d", pty_major);
-#else
- if(++pty_major == strlen(bsd_1)){
- pty_major = 0;
- if(++pty_minor == strlen(bsd_2))
- return -1;
- }
-#ifdef __hpux
- snprintf(buf, sz, "/dev/ptym/pty%c%c", bsd_2[pty_major], bsd_1[pty_minor]);
-#else
- snprintf(buf, sz, "/dev/pty%c%c", bsd_2[pty_major], bsd_1[pty_minor]);
-#endif /* __hpux */
-#endif /* CRAY */
- return 0;
-}
-
-static void
-pty_scan_tty(char *buf, size_t sz)
-{
-#ifdef CRAY
- snprintf(buf, sz, "/dev/ttyp%03d", pty_major);
-#elif defined(__hpux)
- snprintf(buf, sz, "/dev/pty/tty%c%c", bsd_2[pty_major], bsd_1[pty_minor]);
-#else
- snprintf(buf, sz, "/dev/tty%c%c", bsd_2[pty_major], bsd_1[pty_minor]);
-#endif
-}
-
-static int
-ptym_open_streams_flavor(char *pts_name, int *streams_pty)
-{
- /* Try clone device master ptys */
- const char *const clone[] = { "/dev/ptc", "/dev/ptmx",
- "/dev/ptm", "/dev/ptym/clone", 0 };
- int fdm;
- const char *const *q;
-
- for (q = clone; *q; q++) {
- fdm = open(*q, O_RDWR);
- if (fdm >= 0)
- break;
- }
- if (fdm >= 0) {
- char *ptr1;
- if ((ptr1 = ptsname(fdm)) != NULL) /* Get slave's name */
- strcpy(pts_name, ptr1); /* Return name of slave */
- else {
- close(fdm);
- return(-4);
- }
- if (grantpt(fdm) < 0) { /* Grant access to slave */
- close(fdm);
- return(-2);
- }
- if (unlockpt(fdm) < 0) { /* Clear slave's lock flag */
- close(fdm);
- return(-3);
- }
- return(fdm); /* return fd of master */
- }
- return -1;
-}
-
-static int
-ptym_open_bsd_flavor(char *pts_name, int *streams_pty)
-{
- int fdm;
- char ptm[MaxPathLen];
-
- pty_scan_start();
-
- while (pty_scan_next(ptm, sizeof(ptm)) != -1) {
- fdm = open(ptm, O_RDWR);
- if (fdm < 0)
- continue;
-#if SunOS == 4
- /* Avoid a bug in SunOS4 ttydriver */
- if (fdm > 0) {
- int pgrp;
- if ((ioctl(fdm, TIOCGPGRP, &pgrp) == -1)
- && (errno == EIO))
- /* All fine */;
- else {
- close(fdm);
- continue;
- }
- }
-#endif
- pty_scan_tty(pts_name, sizeof(ptm));
-#if CRAY
- /* this is some magic from the telnet code */
- {
- struct stat sb;
- if(stat(pts_name, &sb) < 0) {
- close(fdm);
- continue;
- }
- if(sb.st_uid || sb.st_gid || sb.st_mode != 0600) {
- chown(pts_name, 0, 0);
- chmod(pts_name, 0600);
- close(fdm);
- fdm = open(ptm, 2);
- if (fdm < 0)
- continue;
- }
- }
- /*
- * Now it should be safe...check for accessability.
- */
- if (access(pts_name, 6) != 0){
- /* no tty side to pty so skip it */
- close(fdm);
- continue;
- }
-#endif
- return fdm; /* All done! */
- }
-
- /* We failed to find BSD style pty */
- errno = ENOENT;
- return -1;
-}
-
-/*
- *
- * Open a master pty either using the STREAM flavor or the BSD flavor.
- * Depending on if there are any free ptys in the different classes we
- * need to try both. Normally try STREAMS first and then BSD.
- *
- * Kludge alert: Under HP-UX 10 and perhaps other systems STREAM ptys
- * doesn't get initialized properly so we try them in different order
- * until the problem has been resolved.
- *
- */
-static int
-ptym_open(char *pts_name, size_t pts_name_sz, int *streams_pty)
-{
- int fdm;
-
-#ifdef HAVE__GETPTY
- {
- char *p = _getpty(&fdm, O_RDWR, 0600, 1);
- if (p) {
- *streams_pty = 1;
- strcpy (pts_name, p);
- return fdm;
- }
- }
-#endif
-
-#ifdef STREAMSPTY
- fdm = ptym_open_streams_flavor(pts_name, streams_pty);
- if (fdm >= 0)
- {
- *streams_pty = 1;
- return fdm;
- }
-#endif
-
- fdm = ptym_open_bsd_flavor(pts_name, streams_pty);
- if (fdm >= 0)
- {
- *streams_pty = 0;
- return fdm;
- }
-
-#ifndef STREAMSPTY
- fdm = ptym_open_streams_flavor(pts_name, streams_pty);
- if (fdm >= 0)
- {
- *streams_pty = 1;
- return fdm;
- }
-#endif
-
- return -1;
-}
-
-static int
-maybe_push_modules(int fd, char **modules)
-{
-#ifdef I_PUSH
- char **p;
- int err;
-
- for(p=modules; *p; p++){
- err=ioctl(fd, I_FIND, *p);
- if(err == 1)
- break;
- if(err < 0 && errno != EINVAL)
- return -17;
- /* module not pushed or does not exist */
- }
- /* p points to null or to an already pushed module, now push all
- modules before this one */
-
- for(p--; p >= modules; p--){
- err = ioctl(fd, I_PUSH, *p);
- if(err < 0 && errno != EINVAL)
- return -17;
- }
-#endif
- return 0;
-}
-
-static int
-ptys_open(int fdm, char *pts_name, int streams_pty)
-{
- int fds;
-
- if (streams_pty) {
- /* Streams style slave ptys */
- if ( (fds = open(pts_name, O_RDWR)) < 0) {
- close(fdm);
- return(-5);
- }
-
- {
- char *ttymodules[] = { "ttcompat", "ldterm", "ptem", NULL };
- char *ptymodules[] = { "pckt", NULL };
-
- if(maybe_push_modules(fds, ttymodules)<0){
- close(fdm);
- close(fds);
- return -6;
- }
- if(maybe_push_modules(fdm, ptymodules)<0){
- close(fdm);
- close(fds);
- return -7;
- }
- }
- } else {
- /* BSD style slave ptys */
- struct group *grptr;
- int gid;
- if ( (grptr = getgrnam("tty")) != NULL)
- gid = grptr->gr_gid;
- else
- gid = -1; /* group tty is not in the group file */
-
- /* Grant access to slave */
- chown(pts_name, getuid(), gid);
- chmod(pts_name, S_IRUSR | S_IWUSR | S_IWGRP);
-
- if ( (fds = open(pts_name, O_RDWR)) < 0) {
- close(fdm);
- return(-1);
- }
- }
- return(fds);
-}
-
-int
-forkpty(int *ptrfdm,
- char *slave_name,
- struct termios *slave_termios,
- struct winsize *slave_winsize)
-{
- int fdm, fds, streams_pty;
- pid_t pid;
- char pts_name[20];
-
- if (!forkpty_ok)
- fatal(0, "Protocol not yet supported, use telnet", 0);
-
- if ( (fdm = ptym_open(pts_name, sizeof(pts_name), &streams_pty)) < 0)
- return -1;
-
- if (slave_name != NULL)
- strcpy(slave_name, pts_name); /* Return name of slave */
-
- pid = fork();
- if (pid < 0)
- return(-1);
- else if (pid == 0) { /* Child */
- if (setsid() < 0)
- fatal(0, "setsid() failure", errno);
-
- revoke(slave_name);
-
-#if defined(NeXT) || defined(ultrix)
- /* The NeXT is severely broken, this makes things slightly
- * better but we still doesn't get a working pty. If there
- * where a TIOCSCTTY we could perhaps fix things but... The
- * same problem also exists in xterm! */
- if (setpgrp(0, 0) < 0)
- fatal(0, "NeXT kludge failed setpgrp", errno);
-#endif
-
- /* SVR4 acquires controlling terminal on open() */
- if ( (fds = ptys_open(fdm, pts_name, streams_pty)) < 0)
- return -1;
- close(fdm); /* All done with master in child */
-
-#if defined(TIOCSCTTY) && !defined(CIBAUD) && !defined(__hpux)
- /* 44BSD way to acquire controlling terminal */
- /* !CIBAUD to avoid doing this under SunOS */
- if (ioctl(fds, TIOCSCTTY, (char *) 0) < 0)
- return -1;
-#endif
-#if defined(NeXT)
- {
- int t = open("/dev/tty", O_RDWR);
- if (t < 0)
- fatal(0, "Failed to open /dev/tty", errno);
- close(fds);
- fds = t;
- }
-#endif
- /* Set slave's termios and window size */
- if (slave_termios != NULL) {
- if (tcsetattr(fds, TCSANOW, slave_termios) < 0)
- return -1;
- }
-#ifdef TIOCSWINSZ
- if (slave_winsize != NULL) {
- if (ioctl(fds, TIOCSWINSZ, slave_winsize) < 0)
- return -1;
- }
-#endif
- /* slave becomes stdin/stdout/stderr of child */
- if (dup2(fds, STDIN_FILENO) != STDIN_FILENO)
- return -1;
- if (dup2(fds, STDOUT_FILENO) != STDOUT_FILENO)
- return -1;
- if (dup2(fds, STDERR_FILENO) != STDERR_FILENO)
- return -1;
- if (fds > STDERR_FILENO)
- close(fds);
- return(0); /* child returns 0 just like fork() */
- }
- else { /* Parent */
- *ptrfdm = fdm; /* Return fd of master */
- return(pid); /* Parent returns pid of child */
- }
-}
-#endif /* HAVE_FORKPTY */
diff --git a/crypto/kerberosIV/appl/bsd/iruserok.c b/crypto/kerberosIV/appl/bsd/iruserok.c
deleted file mode 100644
index 8349d8526ab8..000000000000
--- a/crypto/kerberosIV/appl/bsd/iruserok.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 1983, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: iruserok.c,v 1.15 1997/03/23 04:54:00 assar Exp $");
-
-#ifndef HAVE_IRUSEROK
-
-int __check_rhosts_file = 1;
-char *__rcmd_errstr = 0;
-
-/*
- * Returns "true" if match, 0 if no match.
- */
-static
-int
-__icheckhost(u_int32_t raddr, const char *lhost)
-{
- struct hostent *hp;
- u_long laddr;
- char **pp;
-
- /* Try for raw ip address first. */
- if (isdigit(*lhost) && (long)(laddr = inet_addr(lhost)) != -1)
- return (raddr == laddr);
-
- /* Better be a hostname. */
- if ((hp = gethostbyname(lhost)) == NULL)
- return (0);
-
- /* Spin through ip addresses. */
- for (pp = hp->h_addr_list; *pp; ++pp)
- if (memcmp(&raddr, *pp, sizeof(u_long)) == 0)
- return (1);
-
- /* No match. */
- return (0);
-}
-
-#ifndef HAVE_INNETGR
-static int
-innetgr(const char *netgroup, const char *machine,
- const char *user, const char *domain)
-{
- return 0;
-}
-#endif
-
-/*
- * Returns 0 if ok, -1 if not ok.
- */
-static
-int
-__ivaliduser(FILE *hostf, u_int32_t raddr, const char *luser,
- const char *ruser)
-{
- char *user, *p;
- int ch;
- char buf[MaxHostNameLen + 128]; /* host + login */
- char hname[MaxHostNameLen];
- struct hostent *hp;
- /* Presumed guilty until proven innocent. */
- int userok = 0, hostok = 0;
-#ifdef HAVE_YP_GET_DEFAULT_DOMAIN
- char *ypdomain;
-
- if (yp_get_default_domain(&ypdomain))
- ypdomain = NULL;
-#else
-#define ypdomain NULL
-#endif
- /* We need to get the damn hostname back for netgroup matching. */
- if ((hp = gethostbyaddr((char *)&raddr,
- sizeof(u_long),
- AF_INET)) == NULL)
- return (-1);
- strncpy(hname, hp->h_name, sizeof(hname));
- hname[sizeof(hname) - 1] = '\0';
-
- while (fgets(buf, sizeof(buf), hostf)) {
- p = buf;
- /* Skip lines that are too long. */
- if (strchr(p, '\n') == NULL) {
- while ((ch = getc(hostf)) != '\n' && ch != EOF);
- continue;
- }
- if (*p == '\n' || *p == '#') {
- /* comment... */
- continue;
- }
- while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') {
- *p = isupper(*p) ? tolower(*p) : *p;
- p++;
- }
- if (*p == ' ' || *p == '\t') {
- *p++ = '\0';
- while (*p == ' ' || *p == '\t')
- p++;
- user = p;
- while (*p != '\n' && *p != ' ' &&
- *p != '\t' && *p != '\0')
- p++;
- } else
- user = p;
- *p = '\0';
- /*
- * Do +/- and +@/-@ checking. This looks really nasty,
- * but it matches SunOS's behavior so far as I can tell.
- */
- switch(buf[0]) {
- case '+':
- if (!buf[1]) { /* '+' matches all hosts */
- hostok = 1;
- break;
- }
- if (buf[1] == '@') /* match a host by netgroup */
- hostok = innetgr((char *)&buf[2],
- (char *)&hname, NULL, ypdomain);
- else /* match a host by addr */
- hostok = __icheckhost(raddr,(char *)&buf[1]);
- break;
- case '-': /* reject '-' hosts and all their users */
- if (buf[1] == '@') {
- if (innetgr((char *)&buf[2],
- (char *)&hname, NULL, ypdomain))
- return(-1);
- } else {
- if (__icheckhost(raddr,(char *)&buf[1]))
- return(-1);
- }
- break;
- default: /* if no '+' or '-', do a simple match */
- hostok = __icheckhost(raddr, buf);
- break;
- }
- switch(*user) {
- case '+':
- if (!*(user+1)) { /* '+' matches all users */
- userok = 1;
- break;
- }
- if (*(user+1) == '@') /* match a user by netgroup */
- userok = innetgr(user+2, NULL, (char *)ruser,
- ypdomain);
- else /* match a user by direct specification */
- userok = !(strcmp(ruser, user+1));
- break;
- case '-': /* if we matched a hostname, */
- if (hostok) { /* check for user field rejections */
- if (!*(user+1))
- return(-1);
- if (*(user+1) == '@') {
- if (innetgr(user+2, NULL,
- (char *)ruser, ypdomain))
- return(-1);
- } else {
- if (!strcmp(ruser, user+1))
- return(-1);
- }
- }
- break;
- default: /* no rejections: try to match the user */
- if (hostok)
- userok = !(strcmp(ruser,*user ? user : luser));
- break;
- }
- if (hostok && userok)
- return(0);
- }
- return (-1);
-}
-
-/*
- * New .rhosts strategy: We are passed an ip address. We spin through
- * hosts.equiv and .rhosts looking for a match. When the .rhosts only
- * has ip addresses, we don't have to trust a nameserver. When it
- * contains hostnames, we spin through the list of addresses the nameserver
- * gives us and look for a match.
- *
- * Returns 0 if ok, -1 if not ok.
- */
-int
-iruserok(u_int32_t raddr, int superuser, const char *ruser, const char *luser)
-{
- char *cp;
- struct stat sbuf;
- struct passwd *pwd;
- FILE *hostf;
- uid_t uid;
- int first;
- char pbuf[MaxPathLen];
-
- first = 1;
- hostf = superuser ? NULL : fopen(_PATH_HEQUIV, "r");
-again:
- if (hostf) {
- if (__ivaliduser(hostf, raddr, luser, ruser) == 0) {
- fclose(hostf);
- return (0);
- }
- fclose(hostf);
- }
- if (first == 1 && (__check_rhosts_file || superuser)) {
- first = 0;
- if ((pwd = k_getpwnam((char*)luser)) == NULL)
- return (-1);
- strcpy(pbuf, pwd->pw_dir);
- strcat(pbuf, "/.rhosts");
-
- /*
- * Change effective uid while opening .rhosts. If root and
- * reading an NFS mounted file system, can't read files that
- * are protected read/write owner only.
- */
- uid = geteuid();
- seteuid(pwd->pw_uid);
- hostf = fopen(pbuf, "r");
- seteuid(uid);
-
- if (hostf == NULL)
- return (-1);
- /*
- * If not a regular file, or is owned by someone other than
- * user or root or if writeable by anyone but the owner, quit.
- */
- cp = NULL;
- if (lstat(pbuf, &sbuf) < 0)
- cp = ".rhosts lstat failed";
- else if (!S_ISREG(sbuf.st_mode))
- cp = ".rhosts not regular file";
- else if (fstat(fileno(hostf), &sbuf) < 0)
- cp = ".rhosts fstat failed";
- else if (sbuf.st_uid && sbuf.st_uid != pwd->pw_uid)
- cp = "bad .rhosts owner";
- else if (sbuf.st_mode & (S_IWGRP|S_IWOTH))
- cp = ".rhosts writeable by other than owner";
- /* If there were any problems, quit. */
- if (cp) {
- __rcmd_errstr = cp;
- fclose(hostf);
- return (-1);
- }
- goto again;
- }
- return (-1);
-}
-
-#endif /* !HAVE_IRUSEROK */
diff --git a/crypto/kerberosIV/appl/bsd/kcmd.c b/crypto/kerberosIV/appl/bsd/kcmd.c
deleted file mode 100644
index 9fa7ab285aac..000000000000
--- a/crypto/kerberosIV/appl/bsd/kcmd.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: kcmd.c,v 1.19 1997/05/02 14:27:42 assar Exp $");
-
-#define START_PORT 5120 /* arbitrary */
-
-static int
-getport(int *alport)
-{
- struct sockaddr_in sin;
- int s;
-
- sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
- s = socket(AF_INET, SOCK_STREAM, 0);
- if (s < 0)
- return (-1);
- for (;;) {
- sin.sin_port = htons((u_short)*alport);
- if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
- return (s);
- if (errno != EADDRINUSE) {
- close(s);
- return (-1);
- }
- (*alport)--;
-#ifdef ATHENA_COMPAT
- if (*alport == IPPORT_RESERVED/2) {
-#else
- if (*alport == IPPORT_RESERVED) {
-#endif
- close(s);
- errno = EAGAIN; /* close */
- return (-1);
- }
- }
-}
-
-int
-kcmd(int *sock,
- char **ahost,
- u_int16_t rport,
- char *locuser,
- char *remuser,
- char *cmd,
- int *fd2p,
- KTEXT ticket,
- char *service,
- char *realm,
- CREDENTIALS *cred,
- Key_schedule schedule,
- MSG_DAT *msg_data,
- struct sockaddr_in *laddr,
- struct sockaddr_in *faddr,
- int32_t authopts)
-{
- int s, timo = 1;
- pid_t pid;
- struct sockaddr_in sin, from;
- char c;
-#ifdef ATHENA_COMPAT
- int lport = IPPORT_RESERVED - 1;
-#else
- int lport = START_PORT;
-#endif
- struct hostent *hp;
- int rc;
- char *host_save;
- int status;
-
- pid = getpid();
- hp = gethostbyname(*ahost);
- if (hp == NULL) {
- /* fprintf(stderr, "%s: unknown host\n", *ahost); */
- return (-1);
- }
-
- host_save = strdup(hp->h_name);
- if (host_save == NULL)
- return -1;
- *ahost = host_save;
-
- /* If realm is null, look up from table */
- if (realm == NULL || realm[0] == '\0')
- realm = krb_realmofhost(host_save);
-
- for (;;) {
- s = getport(&lport);
- if (s < 0) {
- if (errno == EAGAIN)
- warnx("kcmd(socket): All ports in use\n");
- else
- warn("kcmd: socket");
- return (-1);
- }
- sin.sin_family = hp->h_addrtype;
- memcpy (&sin.sin_addr, hp->h_addr, sizeof(sin.sin_addr));
- sin.sin_port = rport;
- if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
- break;
- close(s);
- if (errno == EADDRINUSE) {
- lport--;
- continue;
- }
- /*
- * don't wait very long for Kerberos rcmd.
- */
- if (errno == ECONNREFUSED && timo <= 4) {
- /* sleep(timo); don't wait at all here */
- timo *= 2;
- continue;
- }
- if (hp->h_addr_list[1] != NULL) {
- warn ("kcmd: connect (%s)",
- inet_ntoa(sin.sin_addr));
- hp->h_addr_list++;
- memcpy(&sin.sin_addr,
- hp->h_addr_list[0],
- sizeof(sin.sin_addr));
- fprintf(stderr, "Trying %s...\n",
- inet_ntoa(sin.sin_addr));
- continue;
- }
- if (errno != ECONNREFUSED)
- warn ("connect(%s)", hp->h_name);
- return (-1);
- }
- lport--;
- if (fd2p == 0) {
- write(s, "", 1);
- lport = 0;
- } else {
- char num[8];
- int s2 = getport(&lport), s3;
- int len = sizeof(from);
-
- if (s2 < 0) {
- status = -1;
- goto bad;
- }
- listen(s2, 1);
- snprintf(num, sizeof(num), "%d", lport);
- if (write(s, num, strlen(num) + 1) != strlen(num) + 1) {
- warn("kcmd(write): setting up stderr");
- close(s2);
- status = -1;
- goto bad;
- }
- {
- fd_set fds;
- FD_ZERO(&fds);
- FD_SET(s, &fds);
- FD_SET(s2, &fds);
- status = select(FD_SETSIZE, &fds, NULL, NULL, NULL);
- if(FD_ISSET(s, &fds)){
- warnx("kcmd: connection unexpectedly closed.");
- close(s2);
- status = -1;
- goto bad;
- }
- }
- s3 = accept(s2, (struct sockaddr *)&from, &len);
- close(s2);
- if (s3 < 0) {
- warn ("kcmd: accept");
- lport = 0;
- status = -1;
- goto bad;
- }
-
- *fd2p = s3;
- from.sin_port = ntohs((u_short)from.sin_port);
- if (from.sin_family != AF_INET ||
- from.sin_port >= IPPORT_RESERVED) {
- warnx("kcmd(socket): "
- "protocol failure in circuit setup.");
- status = -1;
- goto bad2;
- }
- }
- /*
- * Kerberos-authenticated service. Don't have to send locuser,
- * since its already in the ticket, and we'll extract it on
- * the other side.
- */
- /* write(s, locuser, strlen(locuser)+1); */
-
- /* set up the needed stuff for mutual auth, but only if necessary */
- if (authopts & KOPT_DO_MUTUAL) {
- int sin_len;
- *faddr = sin;
-
- sin_len = sizeof(struct sockaddr_in);
- if (getsockname(s, (struct sockaddr *)laddr, &sin_len) < 0) {
- warn("kcmd(getsockname)");
- status = -1;
- goto bad2;
- }
- }
- if ((status = krb_sendauth(authopts, s, ticket, service, *ahost,
- realm, (unsigned long) getpid(), msg_data,
- cred, schedule,
- laddr,
- faddr,
- "KCMDV0.1")) != KSUCCESS)
- goto bad2;
-
- write(s, remuser, strlen(remuser)+1);
- write(s, cmd, strlen(cmd)+1);
-
- if ((rc = read(s, &c, 1)) != 1) {
- if (rc == -1)
- warn("read(%s)", *ahost);
- else
- warnx("kcmd: bad connection with remote host");
- status = -1;
- goto bad2;
- }
- if (c != '\0') {
- while (read(s, &c, 1) == 1) {
- write(2, &c, 1);
- if (c == '\n')
- break;
- }
- status = -1;
- goto bad2;
- }
- *sock = s;
- return (KSUCCESS);
-bad2:
- if (lport)
- close(*fd2p);
-bad:
- close(s);
- return (status);
-}
diff --git a/crypto/kerberosIV/appl/bsd/klogin.c b/crypto/kerberosIV/appl/bsd/klogin.c
deleted file mode 100644
index 321da64cbf9b..000000000000
--- a/crypto/kerberosIV/appl/bsd/klogin.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*-
- * Copyright (c) 1990, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: klogin.c,v 1.20 1997/05/02 14:27:42 assar Exp $");
-
-#ifdef KERBEROS
-
-#define VERIFY_SERVICE "rcmd"
-
-extern int notickets;
-extern char *krbtkfile_env;
-
-static char tkt_location[MaxPathLen];
-
-/*
- * Attempt to log the user in using Kerberos authentication
- *
- * return 0 on success (will be logged in)
- * 1 if Kerberos failed (try local password in login)
- */
-int
-klogin(struct passwd *pw, char *instance, char *localhost, char *password)
-{
- int kerror;
- AUTH_DAT authdata;
- KTEXT_ST ticket;
- struct hostent *hp;
- u_int32_t faddr;
- char realm[REALM_SZ], savehost[MaxHostNameLen];
- extern int noticketsdontcomplain;
-
-#ifdef KLOGIN_PARANOID
- noticketsdontcomplain = 0; /* enable warning message */
-#endif
- /*
- * Root logins don't use Kerberos.
- * If we have a realm, try getting a ticket-granting ticket
- * and using it to authenticate. Otherwise, return
- * failure so that we can try the normal passwd file
- * for a password. If that's ok, log the user in
- * without issuing any tickets.
- */
- if (strcmp(pw->pw_name, "root") == 0 ||
- krb_get_lrealm(realm, 0) != KSUCCESS)
- return (1);
-
- noticketsdontcomplain = 0; /* enable warning message */
-
- /*
- * get TGT for local realm
- * tickets are stored in a file named TKT_ROOT plus uid
- * except for user.root tickets.
- */
-
- if (strcmp(instance, "root") != 0)
- snprintf(tkt_location, sizeof(tkt_location),
- "%s%u_%u",
- TKT_ROOT, (unsigned)pw->pw_uid, (unsigned)getpid());
- else {
- snprintf(tkt_location, sizeof(tkt_location),
- "%s_root_%d", TKT_ROOT,
- (unsigned)pw->pw_uid);
- }
- krbtkfile_env = tkt_location;
- krb_set_tkt_string(tkt_location);
-
- kerror = krb_get_pw_in_tkt(pw->pw_name, instance,
- realm, KRB_TICKET_GRANTING_TICKET, realm,
- DEFAULT_TKT_LIFE, password);
-
- /*
- * If we got a TGT, get a local "rcmd" ticket and check it so as to
- * ensure that we are not talking to a bogus Kerberos server.
- *
- * There are 2 cases where we still allow a login:
- * 1: the VERIFY_SERVICE doesn't exist in the KDC
- * 2: local host has no srvtab, as (hopefully) indicated by a
- * return value of RD_AP_UNDEC from krb_rd_req().
- */
- if (kerror != INTK_OK) {
- if (kerror != INTK_BADPW && kerror != KDC_PR_UNKNOWN) {
- syslog(LOG_ERR, "Kerberos intkt error: %s",
- krb_get_err_text(kerror));
- dest_tkt();
- }
- return (1);
- }
-
- if (chown(TKT_FILE, pw->pw_uid, pw->pw_gid) < 0)
- syslog(LOG_ERR, "chown tkfile (%s): %m", TKT_FILE);
-
- strncpy(savehost, krb_get_phost(localhost), sizeof(savehost));
- savehost[sizeof(savehost)-1] = '\0';
-
-#ifdef KLOGIN_PARANOID
- /*
- * if the "VERIFY_SERVICE" doesn't exist in the KDC for this host,
- * don't allow kerberos login, also log the error condition.
- */
-
- kerror = krb_mk_req(&ticket, VERIFY_SERVICE, savehost, realm, 33);
- if (kerror == KDC_PR_UNKNOWN) {
- syslog(LOG_NOTICE,
- "warning: TGT not verified (%s); %s.%s not registered, or srvtab is wrong?",
- krb_get_err_text(kerror), VERIFY_SERVICE, savehost);
- notickets = 0;
- return (1);
- }
-
- if (kerror != KSUCCESS) {
- warnx("unable to use TGT: (%s)", krb_get_err_text(kerror));
- syslog(LOG_NOTICE, "unable to use TGT: (%s)",
- krb_get_err_text(kerror));
- dest_tkt();
- return (1);
- }
-
- if (!(hp = gethostbyname(localhost))) {
- syslog(LOG_ERR, "couldn't get local host address");
- dest_tkt();
- return (1);
- }
-
- memcpy(&faddr, hp->h_addr, sizeof(faddr));
-
- kerror = krb_rd_req(&ticket, VERIFY_SERVICE, savehost, faddr,
- &authdata, "");
-
- if (kerror == KSUCCESS) {
- notickets = 0;
- return (0);
- }
-
- /* undecipherable: probably didn't have a srvtab on the local host */
- if (kerror == RD_AP_UNDEC) {
- syslog(LOG_NOTICE, "krb_rd_req: (%s)\n", krb_get_err_text(kerror));
- dest_tkt();
- return (1);
- }
- /* failed for some other reason */
- warnx("unable to verify %s ticket: (%s)", VERIFY_SERVICE,
- krb_get_err_text(kerror));
- syslog(LOG_NOTICE, "couldn't verify %s ticket: %s", VERIFY_SERVICE,
- krb_get_err_text(kerror));
- dest_tkt();
- return (1);
-#else
- notickets = 0;
- return (0);
-#endif
-}
-#endif
diff --git a/crypto/kerberosIV/appl/bsd/krcmd.c b/crypto/kerberosIV/appl/bsd/krcmd.c
deleted file mode 100644
index 8c3c6f3c2172..000000000000
--- a/crypto/kerberosIV/appl/bsd/krcmd.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: krcmd.c,v 1.10 1997/03/30 18:20:18 joda Exp $");
-
-#define SERVICE_NAME "rcmd"
-
-/*
- * krcmd: simplified version of Athena's "kcmd"
- * returns a socket attached to the destination, -1 or krb error on error
- * if fd2p is non-NULL, another socket is filled in for it
- */
-
-int
-krcmd(char **ahost, u_short rport, char *remuser, char *cmd, int *fd2p, char *realm)
-{
- int sock = -1, err = 0;
- KTEXT_ST ticket;
- long authopts = 0L;
-
- err = kcmd(
- &sock,
- ahost,
- rport,
- NULL, /* locuser not used */
- remuser,
- cmd,
- fd2p,
- &ticket,
- SERVICE_NAME,
- realm,
- (CREDENTIALS *) NULL, /* credentials not used */
- 0, /* key schedule not used */
- (MSG_DAT *) NULL, /* MSG_DAT not used */
- (struct sockaddr_in *) NULL, /* local addr not used */
- (struct sockaddr_in *) NULL, /* foreign addr not used */
- authopts
- );
-
- if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
- warning("krcmd: %s", krb_get_err_text(err));
- return(-1);
- }
- if (err < 0)
- return(-1);
- return(sock);
-}
-
-int
-krcmd_mutual(char **ahost, u_short rport, char *remuser, char *cmd, int *fd2p, char *realm, CREDENTIALS *cred, Key_schedule sched)
-{
- int sock, err;
- KTEXT_ST ticket;
- MSG_DAT msg_dat;
- struct sockaddr_in laddr, faddr;
- long authopts = KOPT_DO_MUTUAL;
-
- err = kcmd(
- &sock,
- ahost,
- rport,
- NULL, /* locuser not used */
- remuser,
- cmd,
- fd2p,
- &ticket,
- SERVICE_NAME,
- realm,
- cred, /* filled in */
- sched, /* filled in */
- &msg_dat, /* filled in */
- &laddr, /* filled in */
- &faddr, /* filled in */
- authopts
- );
-
- if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
- warnx("krcmd_mutual: %s", krb_get_err_text(err));
- return(-1);
- }
-
- if (err < 0)
- return (-1);
- return(sock);
-}
diff --git a/crypto/kerberosIV/appl/bsd/login.c b/crypto/kerberosIV/appl/bsd/login.c
deleted file mode 100644
index c436f8db98bb..000000000000
--- a/crypto/kerberosIV/appl/bsd/login.c
+++ /dev/null
@@ -1,990 +0,0 @@
-/*-
- * Copyright (c) 1980, 1987, 1988, 1991, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * login [ name ]
- * login -h hostname (for telnetd, etc.)
- * login -f name (for pre-authenticated login: datakit, xterm, etc.)
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: login.c,v 1.104 1997/05/20 20:35:06 assar Exp $");
-
-#include <otp.h>
-
-#include "sysv_default.h"
-#ifdef SYSV_SHADOW
-#include "sysv_shadow.h"
-#endif
-
-static void badlogin (char *);
-static void checknologin (void);
-static void dolastlog (int);
-static void getloginname (int);
-static int rootterm (char *);
-static char *stypeof (char *);
-static RETSIGTYPE timedout (int);
-static int doremotelogin (char *);
-void login_fbtab (char *, uid_t, gid_t);
-#ifdef KERBEROS
-int klogin (struct passwd *, char *, char *, char *);
-#endif
-
-#define TTYGRPNAME "tty" /* name of group to own ttys */
-
-/*
- * This bounds the time given to login. Change it in
- * `/etc/default/login'.
- */
-
-static u_int login_timeout;
-
-#ifdef KERBEROS
-int notickets = 1;
-int noticketsdontcomplain = 1;
-char *instance;
-char *krbtkfile_env;
-int authok;
-#endif
-
-#ifdef HAVE_SHADOW_H
-static struct spwd *spwd = NULL;
-#endif
-
-static char *ttyprompt;
-
-static struct passwd *pwd;
-static int failures;
-static char term[64], *hostname, *username, *tty;
-
-static char rusername[100], lusername[100];
-
-static int
-change_passwd(struct passwd *who)
-{
- int status;
- int pid;
- int wpid;
-
- switch (pid = fork()) {
- case -1:
- warn("fork /bin/passwd");
- sleepexit(1);
- case 0:
- execlp("/bin/passwd", "passwd", who->pw_name, (char *) 0);
- _exit(1);
- default:
- while ((wpid = wait(&status)) != -1 && wpid != pid)
- /* void */ ;
- return (status);
- }
-}
-
-#ifndef NO_MOTD /* message of the day stuff */
-
-jmp_buf motdinterrupt;
-
-static RETSIGTYPE
-sigint(int signo)
-{
- longjmp(motdinterrupt, 1);
-}
-
-static void
-motd(void)
-{
- int fd, nchars;
- RETSIGTYPE (*oldint)();
- char tbuf[8192];
-
- if ((fd = open(_PATH_MOTDFILE, O_RDONLY, 0)) < 0)
- return;
- oldint = signal(SIGINT, sigint);
- if (setjmp(motdinterrupt) == 0)
- while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0)
- write(fileno(stdout), tbuf, nchars);
- signal(SIGINT, oldint);
- close(fd);
-}
-
-#endif /* !NO_MOTD */
-
-#define AUTH_NONE 0
-#define AUTH_OTP 1
-
-/*
- * getpwnam and try to detect the worst form of NIS attack.
- */
-
-static struct passwd *
-paranoid_getpwnam (char *user)
-{
- struct passwd *p;
-
- p = k_getpwnam (user);
- if (p == NULL)
- return p;
- if (p->pw_uid == 0 && strcmp (username, "root") != 0) {
- syslog (LOG_ALERT,
- "NIS attack, user %s has uid 0", username);
- return NULL;
- }
- return p;
-}
-
-int
-main(int argc, char **argv)
-{
- struct group *gr;
- int ask, ch, cnt, fflag, hflag, pflag, quietlog, nomailcheck;
- int rootlogin, rval;
- int rflag;
- int changepass = 0;
- uid_t uid;
- char *domain, *p, passwd[128], *ttyn;
- char tbuf[MaxPathLen + 2], tname[sizeof(_PATH_TTY) + 10];
- char localhost[MaxHostNameLen];
- char full_hostname[MaxHostNameLen];
- int auth_level = AUTH_NONE;
- OtpContext otp_ctx;
- int mask = 022; /* Default umask (set below) */
- int maxtrys = 5; /* Default number of allowed failed logins */
-
- set_progname(argv[0]);
-
- openlog("login", LOG_ODELAY, LOG_AUTH);
-
- /* Read defaults file and set the login timeout period. */
- sysv_defaults();
- login_timeout = atoi(default_timeout);
- maxtrys = atoi(default_maxtrys);
- if (sscanf(default_umask, "%o", &mask) != 1 || (mask & ~0777))
- syslog(LOG_WARNING, "bad umask default: %s", default_umask);
- else
- umask(mask);
-
- signal(SIGALRM, timedout);
- alarm(login_timeout);
- signal(SIGQUIT, SIG_IGN);
- signal(SIGINT, SIG_IGN);
- setpriority(PRIO_PROCESS, 0, 0);
-
- /*
- * -p is used by getty to tell login not to destroy the environment
- * -f is used to skip a second login authentication
- * -h is used by other servers to pass the name of the remote
- * host to login so that it may be placed in utmp and wtmp
- * -r is used by old-style rlogind to execute the autologin protocol
- */
-
- *full_hostname = '\0';
- domain = NULL;
- if (k_gethostname(localhost, sizeof(localhost)) < 0)
- syslog(LOG_ERR, "couldn't get local hostname: %m");
- else
- domain = strchr(localhost, '.');
-
- fflag = hflag = pflag = rflag = 0;
- uid = getuid();
- while ((ch = getopt(argc, argv, "a:d:fh:pr:")) != EOF)
- switch (ch) {
- case 'a':
- if (strcmp (optarg, "none") == 0)
- auth_level = AUTH_NONE;
- else if (strcmp (optarg, "otp") == 0)
- auth_level = AUTH_OTP;
- else
- warnx ("bad value for -a: %s", optarg);
- break;
- case 'd':
- break;
- case 'f':
- fflag = 1;
- break;
- case 'h':
- if (rflag || hflag) {
- printf("Only one of -r and -h allowed\n");
- exit(1);
- }
- if (uid)
- errx(1, "-h option: %s", strerror(EPERM));
- hflag = 1;
- strncpy(full_hostname, optarg, sizeof(full_hostname)-1);
- if (domain && (p = strchr(optarg, '.')) &&
- strcasecmp(p, domain) == 0)
- *p = 0;
- hostname = optarg;
- break;
- case 'p':
- if (getuid()) {
- warnx("-p for super-user only.");
- exit(1);
- }
- pflag = 1;
- break;
- case 'r':
- if (rflag || hflag) {
- warnx("Only one of -r and -h allowed\n");
- exit(1);
- }
- if (getuid()) {
- warnx("-r for super-user only.");
- exit(1);
- }
- rflag = 1;
- strncpy(full_hostname, optarg, sizeof(full_hostname)-1);
- if (domain && (p = strchr(optarg, '.')) &&
- strcasecmp(p, domain) == 0)
- *p = 0;
- hostname = optarg;
- fflag = (doremotelogin(full_hostname) == 0);
- break;
- case '?':
- default:
- if (!uid)
- syslog(LOG_ERR, "invalid flag %c", ch);
- fprintf(stderr,
- "usage: login [-fp] [-a otp]"
- "[-h hostname | -r hostname] [username]\n");
- exit(1);
- }
- argc -= optind;
- argv += optind;
-
- if (geteuid() != 0) {
- warnx("only root may use login, use su");
- /* Or install login setuid root, which is not necessary */
- sleep(10);
- exit(1);
- }
- /*
- * Figure out if we should ask for the username or not. The name
- * may be given on the command line or via the environment, and
- * it may even be in the terminal input queue.
- */
- if (rflag) {
- username = lusername;
- ask = 0;
- } else
- if (*argv && strchr(*argv, '=')) {
- ask = 1;
- } else
- if (*argv && strcmp(*argv, "-") == 0) {
- argc--;
- argv++;
- ask = 1;
- } else
- if (*argv) {
- username = *argv;
- ask = 0;
- argc--;
- argv++;
- } else if ((ttyprompt = getenv("TTYPROMPT")) && *ttyprompt) {
- getloginname(0);
- ask = 0;
- } else
- ask = 1;
-
- /* Default tty settings. */
- stty_default();
-
- for (cnt = getdtablesize(); cnt > 2; cnt--)
- close(cnt);
-
- /*
- * Determine the tty name. BSD takes the basename, SYSV4 takes
- * whatever remains after stripping the "/dev/" prefix. The code
- * below should produce sensible results in either environment.
- */
- ttyn = ttyname(STDIN_FILENO);
- if (ttyn == NULL || *ttyn == '\0') {
- snprintf(tname, sizeof(tname), "%s??", _PATH_TTY);
- ttyn = tname;
- }
- if ((tty = strchr(ttyn + 1, '/')))
- ++tty;
- else
- tty = ttyn;
-
- for (cnt = 0;; ask = 1) {
- char prompt[128], ss[256];
- if (ask) {
- fflag = 0;
- getloginname(1);
- }
- rootlogin = 0;
- rval = 1;
-#ifdef KERBEROS
- if ((instance = strchr(username, '.')) != NULL) {
- if (strcmp(instance, ".root") == 0)
- rootlogin = 1;
- *instance++ = '\0';
- } else
- instance = "";
-#endif
- if (strlen(username) > UT_NAMESIZE)
- username[UT_NAMESIZE] = '\0';
-
- /*
- * Note if trying multiple user names; log failures for
- * previous user name, but don't bother logging one failure
- * for nonexistent name (mistyped username).
- */
- if (failures && strcmp(tbuf, username)) {
- if (failures > (pwd ? 0 : 1))
- badlogin(tbuf);
- failures = 0;
- }
- strcpy(tbuf, username);
-
- pwd = paranoid_getpwnam (username);
-
- /*
- * if we have a valid account name, and it doesn't have a
- * password, or the -f option was specified and the caller
- * is root or the caller isn't changing their uid, don't
- * authenticate.
- */
- if (pwd) {
- if (pwd->pw_uid == 0)
- rootlogin = 1;
-
- if (fflag && (uid == 0 || uid == pwd->pw_uid)) {
- /* already authenticated */
- break;
- } else if (pwd->pw_passwd[0] == '\0') {
- /* pretend password okay */
- rval = 0;
- goto ttycheck;
- }
- }
-
- fflag = 0;
-
- setpriority(PRIO_PROCESS, 0, -4);
-
- if (otp_challenge (&otp_ctx, username,
- ss, sizeof(ss)) == 0)
- snprintf (prompt, sizeof(prompt), "%s's %s Password: ",
- username, ss);
- else {
- if (auth_level == AUTH_NONE)
- snprintf(prompt, sizeof(prompt), "%s's Password: ",
- username);
- else {
- char *s;
-
- rval = 1;
- s = otp_error(&otp_ctx);
- if(s)
- printf ("OTP: %s\n", s);
- continue;
- }
- }
-
- if (des_read_pw_string (passwd, sizeof(passwd) - 1, prompt, 0))
- continue;
- passwd[sizeof(passwd) - 1] = '\0';
-
- /* Verify it somehow */
-
- if (otp_verify_user (&otp_ctx, passwd) == 0)
- rval = 0;
- else if (pwd == NULL)
- ;
- else if (auth_level == AUTH_NONE) {
- uid_t pwd_uid = pwd->pw_uid;
-
- rval = unix_verify_user (username, passwd);
-
- if (rval == 0)
- {
- if (rootlogin && pwd_uid != 0)
- rootlogin = 0;
- }
- else
- {
- rval = klogin(pwd, instance, localhost, passwd);
- if (rval != 0 && rootlogin && pwd_uid != 0)
- rootlogin = 0;
- if (rval == 0)
- authok = 1;
- }
- } else {
- char *s;
-
- rval = 1;
- if ((s = otp_error(&otp_ctx)))
- printf ("OTP: %s\n", s);
- }
-
- memset (passwd, 0, sizeof(passwd));
- setpriority (PRIO_PROCESS, 0, 0);
-
- /*
- * Santa Claus, give me a portable and reentrant getpwnam.
- */
- pwd = paranoid_getpwnam (username);
-
- ttycheck:
- /*
- * If trying to log in as root without Kerberos,
- * but with insecure terminal, refuse the login attempt.
- */
-#ifdef KERBEROS
- if (authok == 0)
-#endif
- if (pwd && !rval && rootlogin && !rootterm(tty)
- && !rootterm(ttyn)) {
- warnx("%s login refused on this terminal.",
- pwd->pw_name);
- if (hostname)
- syslog(LOG_NOTICE,
- "LOGIN %s REFUSED FROM %s ON TTY %s",
- pwd->pw_name, hostname, tty);
- else
- syslog(LOG_NOTICE,
- "LOGIN %s REFUSED ON TTY %s",
- pwd->pw_name, tty);
- continue;
- }
-
- if (rval == 0)
- break;
-
- printf("Login incorrect\n");
- failures++;
-
- /* max number of attemps and delays taken from defaults file */
- /* we allow maxtrys tries, but after 2 we start backing off */
- if (++cnt > 2) {
- if (cnt >= maxtrys) {
- badlogin(username);
- sleepexit(1);
- }
- sleep((u_int)((cnt - 2) * atoi(default_sleep)));
- }
- }
-
- /* committed to login -- turn off timeout */
- alarm(0);
-
- endpwent();
-
-#if defined(HAVE_GETUDBNAM) && defined(HAVE_SETLIM)
- {
- struct udb *udb;
- long t;
- const long maxcpu = 46116860184; /* some random constant */
- udb = getudbnam(pwd->pw_name);
- if(udb == UDB_NULL){
- warnx("Failed to get UDB entry.");
- exit(1);
- }
- t = udb->ue_pcpulim[UDBRC_INTER];
- if(t == 0 || t > maxcpu)
- t = CPUUNLIM;
- else
- t *= 100 * CLOCKS_PER_SEC;
-
- if(limit(C_PROC, 0, L_CPU, t) < 0)
- warn("limit C_PROC");
-
- t = udb->ue_jcpulim[UDBRC_INTER];
- if(t == 0 || t > maxcpu)
- t = CPUUNLIM;
- else
- t *= 100 * CLOCKS_PER_SEC;
-
- if(limit(C_JOBPROCS, 0, L_CPU, t) < 0)
- warn("limit C_JOBPROCS");
-
- nice(udb->ue_nice[UDBRC_INTER]);
- }
-#endif
- /* if user not super-user, check for disabled logins */
- if (!rootlogin)
- checknologin();
-
- if (chdir(pwd->pw_dir) < 0) {
- printf("No home directory %s!\n", pwd->pw_dir);
- if (chdir("/"))
- exit(0);
- pwd->pw_dir = "/";
- printf("Logging in with home = \"/\".\n");
- }
-
- quietlog = access(_PATH_HUSHLOGIN, F_OK) == 0;
- nomailcheck = access(_PATH_NOMAILCHECK, F_OK) == 0;
-
-#if defined(HAVE_PASSWD_CHANGE) && defined(HAVE_PASSWD_EXPIRE)
- if (pwd->pw_change || pwd->pw_expire)
- gettimeofday(&tp, (struct timezone *)NULL);
-
- if (pwd->pw_change)
- if (tp.tv_sec >= pwd->pw_change) {
- printf("Sorry -- your password has expired.\n");
- changepass=1;
- } else if (pwd->pw_change - tp.tv_sec <
- 2 * DAYSPERWEEK * SECSPERDAY && !quietlog)
- printf("Warning: your password expires on %s",
- ctime(&pwd->pw_change));
- if (pwd->pw_expire)
- if (tp.tv_sec >= pwd->pw_expire) {
- printf("Sorry -- your account has expired.\n");
- sleepexit(1);
- } else if (pwd->pw_expire - tp.tv_sec <
- 2 * DAYSPERWEEK * SECSPERDAY && !quietlog)
- printf("Warning: your account expires on %s",
- ctime(&pwd->pw_expire));
-#endif /* defined(HAVE_PASSWD_CHANGE) && defined(HAVE_PASSWD_EXPIRE) */
-
- /* Nothing else left to fail -- really log in. */
-
- /*
- * Update the utmp files, both BSD and SYSV style.
- */
- if (utmpx_login(tty, username, hostname ? hostname : "") != 0
- && !fflag) {
- printf("No utmpx entry. You must exec \"login\" from the lowest level \"sh\".\n");
- sleepexit(0);
- }
- utmp_login(ttyn, username, hostname ? hostname : "");
- dolastlog(quietlog);
-
- /*
- * Set device protections, depending on what terminal the
- * user is logged in. This feature is used on Suns to give
- * console users better privacy.
- */
- login_fbtab(tty, pwd->pw_uid, pwd->pw_gid);
-
- chown(ttyn, pwd->pw_uid,
- (gr = getgrnam(TTYGRPNAME)) ? gr->gr_gid : pwd->pw_gid);
- chmod(ttyn, S_IRUSR | S_IWUSR | S_IWGRP);
- setgid(pwd->pw_gid);
-
- initgroups(username, pwd->pw_gid);
-
- if (*pwd->pw_shell == '\0')
- pwd->pw_shell = _PATH_BSHELL;
-
- /*
- * Set up a new environment. With SYSV, some variables are always
- * preserved; some varables are never preserved, and some variables
- * are always clobbered. With BSD, nothing is always preserved, and
- * some variables are always clobbered. We add code to make sure
- * that LD_* and IFS are never preserved.
- */
- if (term[0] == '\0')
- strncpy(term, stypeof(tty), sizeof(term));
- /* set up a somewhat censored environment. */
- sysv_newenv(argc, argv, pwd, term, pflag);
-#ifdef KERBEROS
- if (krbtkfile_env)
- setenv("KRBTKFILE", krbtkfile_env, 1);
-#endif
-
- if (tty[sizeof("tty")-1] == 'd')
- syslog(LOG_INFO, "DIALUP %s, %s", tty, pwd->pw_name);
-
- /* If fflag is on, assume caller/authenticator has logged root login. */
- if (rootlogin && fflag == 0)
- if (hostname)
- syslog(LOG_NOTICE, "ROOT LOGIN (%s) ON %s FROM %s",
- username, tty, hostname);
- else
- syslog(LOG_NOTICE, "ROOT LOGIN (%s) ON %s", username, tty);
-
-#ifdef KERBEROS
- if (!quietlog && notickets == 1 && !noticketsdontcomplain)
- printf("Warning: no Kerberos tickets issued.\n");
-#endif
-
-#ifdef LOGALL
- /*
- * Syslog each successful login, so we don't have to watch hundreds
- * of wtmp or lastlogin files.
- */
- if (hostname) {
- syslog(LOG_INFO, "login from %s as %s", hostname, pwd->pw_name);
- } else {
- syslog(LOG_INFO, "login on %s as %s", tty, pwd->pw_name);
- }
-#endif
-
-#ifndef NO_MOTD
- /*
- * Optionally show the message of the day. System V login leaves
- * motd and mail stuff up to the shell startup file.
- */
- if (!quietlog) {
- struct stat st;
-#if 0
- printf("%s\n\t%s %s\n\n",
- "Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994",
- "The Regents of the University of California. ",
- "All rights reserved.");
-#endif
- motd();
- if(!nomailcheck){
- snprintf(tbuf, sizeof(tbuf), "%s/%s", _PATH_MAILDIR, pwd->pw_name);
- if (stat(tbuf, &st) == 0 && st.st_size != 0)
- printf("You have %smail.\n",
- (st.st_mtime > st.st_atime) ? "new " : "");
- }
- }
-#endif /* NO_MOTD */
-
-#ifdef LOGIN_ACCESS
- if (login_access(pwd->pw_name, hostname ? full_hostname : tty) == 0) {
- printf("Permission denied\n");
- if (hostname)
- syslog(LOG_NOTICE, "%s LOGIN REFUSED FROM %s",
- pwd->pw_name, hostname);
- else
- syslog(LOG_NOTICE, "%s LOGIN REFUSED ON %s",
- pwd->pw_name, tty);
- sleepexit(1);
- }
-#endif
-
- signal(SIGALRM, SIG_DFL);
- signal(SIGQUIT, SIG_DFL);
- signal(SIGINT, SIG_DFL);
- signal(SIGTSTP, SIG_IGN);
-
- tbuf[0] = '-';
- strcpy(tbuf + 1, (p = strrchr(pwd->pw_shell, '/')) ?
- p + 1 : pwd->pw_shell);
-
-#ifdef HAVE_SETLOGIN
- if (setlogin(pwd->pw_name) < 0)
- syslog(LOG_ERR, "setlogin() failure: %m");
-#endif
-
-#ifdef HAVE_SETPCRED
- if (setpcred (pwd->pw_name, NULL) == -1)
- syslog(LOG_ERR, "setpcred() failure: %m");
-#endif /* HAVE_SETPCRED */
-
-#if defined(SYSV_SHADOW) && defined(HAVE_GETSPNAM)
- spwd = getspnam (username);
- endspent ();
-#endif
- /* Discard permissions last so can't get killed and drop core. */
- {
- int uid = rootlogin ? 0 : pwd->pw_uid;
- if(setuid(uid) != 0){
- warn("setuid(%d)", uid);
- if(!rootlogin)
- exit(1);
- }
- }
-
-
- /*
- * After dropping privileges and after cleaning up the environment,
- * optionally run, as the user, /bin/passwd.
- */
-
- if (pwd->pw_passwd[0] == 0 &&
- strcasecmp(default_passreq, "YES") == 0) {
- printf("You don't have a password. Choose one.\n");
- if (change_passwd(pwd))
- sleepexit(0);
- changepass = 0;
- }
-
-#ifdef SYSV_SHADOW
- if (spwd && sysv_expire(spwd)) {
- if (change_passwd(pwd))
- sleepexit(0);
- changepass = 0;
- }
-#endif /* SYSV_SHADOW */
- if (changepass) {
- int res;
- if ((res=system(_PATH_CHPASS)))
- sleepexit(1);
- }
-
- if (k_hasafs()) {
- char cell[64];
- k_setpag();
- if(k_afs_cell_of_file(pwd->pw_dir, cell, sizeof(cell)) == 0)
- k_afsklog(cell, 0);
- k_afsklog(0, 0);
- }
-
- execlp(pwd->pw_shell, tbuf, 0);
- if (getuid() == 0) {
- warnx("Can't exec %s, trying %s\n",
- pwd->pw_shell, _PATH_BSHELL);
- execlp(_PATH_BSHELL, tbuf, 0);
- err(1, "%s", _PATH_BSHELL);
- }
- err(1, "%s", pwd->pw_shell);
- return 1;
-}
-
-#ifdef KERBEROS
-#define NBUFSIZ (UT_NAMESIZE + 1 + 5) /* .root suffix */
-#else
-#define NBUFSIZ (UT_NAMESIZE + 1)
-#endif
-
-static void
-getloginname(int prompt)
-{
- int ch;
- char *p;
- static char nbuf[NBUFSIZ];
-
- for (;;) {
- if (prompt)
- if (ttyprompt && *ttyprompt)
- printf("%s", ttyprompt);
- else
- printf("login: ");
- prompt = 1;
- for (p = nbuf; (ch = getchar()) != '\n'; ) {
- if (ch == EOF) {
- badlogin(username);
- exit(0);
- }
- if (p < nbuf + (NBUFSIZ - 1))
- *p++ = ch;
- }
- if (p > nbuf)
- if (nbuf[0] == '-')
- warnx("login names may not start with '-'.");
- else {
- *p = '\0';
- username = nbuf;
- break;
- }
- }
-}
-
-static int
-rootterm(char *ttyn)
-{
-#ifndef HAVE_TTYENT_H
- return (default_console == 0 || strcmp(default_console, ttyname(0)) == 0);
-#else
- struct ttyent *t;
-
- return ((t = getttynam(ttyn)) && t->ty_status & TTY_SECURE);
-#endif
-}
-
-static RETSIGTYPE
-timedout(int signo)
-{
- fprintf(stderr, "Login timed out after %d seconds\n",
- login_timeout);
- exit(0);
-}
-
-static void
-checknologin(void)
-{
- int fd, nchars;
- char tbuf[8192];
-
- if ((fd = open(_PATH_NOLOGIN, O_RDONLY, 0)) >= 0) {
- while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0)
- write(fileno(stdout), tbuf, nchars);
- sleepexit(0);
- }
-}
-
-static void
-dolastlog(int quiet)
-{
-#if defined(HAVE_LASTLOG_H) || defined(HAVE_LOGIN_H) || defined(SYSV_SHADOW)
- struct lastlog ll;
- int fd;
-
- if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) {
- lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET);
-#ifdef SYSV_SHADOW
- if (read(fd, &ll, sizeof(ll)) == sizeof(ll) &&
- ll.ll_time != 0) {
- if (pwd->pw_uid && spwd && spwd->sp_inact > 0
- && ll.ll_time / (24 * 60 * 60)
- + spwd->sp_inact < time(0)) {
- printf("Your account has been inactive too long.\n");
- sleepexit(1);
- }
- if (!quiet) {
- printf("Last login: %.*s ",
- 24-5, ctime(&ll.ll_time));
- if (*ll.ll_host != '\0') {
- printf("from %.*s\n",
- (int)sizeof(ll.ll_host),
- ll.ll_host);
- } else
- printf("on %.*s\n",
- (int)sizeof(ll.ll_line),
- ll.ll_line);
- }
- }
- lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET);
-#else /* SYSV_SHADOW */
- if (!quiet) {
- if (read(fd, &ll, sizeof(ll)) == sizeof(ll) &&
- ll.ll_time != 0) {
- printf("Last login: %.*s ",
- 24-5, ctime(&ll.ll_time));
- if (*ll.ll_host != '\0')
- printf("from %.*s\n",
- (int)sizeof(ll.ll_host),
- ll.ll_host);
- else
- printf("on %.*s\n",
- (int)sizeof(ll.ll_line),
- ll.ll_line);
- }
- lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET);
- }
-#endif /* SYSV_SHADOW */
- memset(&ll, 0, sizeof(ll));
- time(&ll.ll_time);
- strncpy(ll.ll_line, tty, sizeof(ll.ll_line));
- if (hostname)
- strncpy(ll.ll_host, hostname, sizeof(ll.ll_host));
- write(fd, &ll, sizeof(ll));
- close(fd);
- }
-#endif /* DOLASTLOG */
-}
-
-static void
-badlogin(char *name)
-{
-
- if (failures == 0)
- return;
- if (hostname) {
- syslog(LOG_NOTICE, "%d LOGIN FAILURE%s FROM %s",
- failures, failures > 1 ? "S" : "", hostname);
- syslog(LOG_AUTHPRIV|LOG_NOTICE,
- "%d LOGIN FAILURE%s FROM %s, %s",
- failures, failures > 1 ? "S" : "", hostname, name);
- } else {
- syslog(LOG_NOTICE, "%d LOGIN FAILURE%s ON %s",
- failures, failures > 1 ? "S" : "", tty);
- syslog(LOG_AUTHPRIV|LOG_NOTICE,
- "%d LOGIN FAILURE%s ON %s, %s",
- failures, failures > 1 ? "S" : "", tty, name);
- }
-}
-
-#undef UNKNOWN
-#define UNKNOWN "su"
-
-static char *
-stypeof(char *ttyid)
-{
- /* TERM is probably a better guess than anything else. */
- char *term = getenv("TERM");
-
- if (term != 0 && term[0] != 0)
- return term;
-
- {
-#ifndef HAVE_TTYENT_H
- return UNKNOWN;
-#else
- struct ttyent *t;
- return (ttyid && (t = getttynam(ttyid)) ? t->ty_type : UNKNOWN);
-#endif
- }
-}
-
-static void
-xgetstr(char *buf, int cnt, char *err)
-{
- char ch;
-
- do {
- if (read(0, &ch, sizeof(ch)) != sizeof(ch))
- exit(1);
- if (--cnt < 0) {
- fprintf(stderr, "%s too long\r\n", err);
- sleepexit(1);
- }
- *buf++ = ch;
- } while (ch);
-}
-
-/*
- * Some old rlogind's unknowingly pass remuser, locuser and
- * terminal_type/speed so we need to take care of that part of the
- * protocol here. Also, we can't make a getpeername(2) on the socket
- * so we have to trust that rlogind resolved the name correctly.
- */
-
-static int
-doremotelogin(char *host)
-{
- int code;
- char *cp;
-
- xgetstr(rusername, sizeof (rusername), "remuser");
- xgetstr(lusername, sizeof (lusername), "locuser");
- xgetstr(term, sizeof(term), "Terminal type");
- cp = strchr(term, '/');
- if (cp != 0)
- *cp = 0; /* For now ignore speed/bg */
- pwd = k_getpwnam(lusername);
- if (pwd == NULL)
- return(-1);
- code = ruserok(host, (pwd->pw_uid == 0), rusername, lusername);
- if (code == 0)
- syslog(LOG_NOTICE,
- "Warning: An old rlogind accepted login probably from host %s",
- host);
- return(code);
-}
-
-void
-sleepexit(int eval)
-{
-
- sleep(5);
- exit(eval);
-}
diff --git a/crypto/kerberosIV/appl/bsd/login_access.c b/crypto/kerberosIV/appl/bsd/login_access.c
deleted file mode 100644
index 0e017b10cdfd..000000000000
--- a/crypto/kerberosIV/appl/bsd/login_access.c
+++ /dev/null
@@ -1,221 +0,0 @@
- /*
- * This module implements a simple but effective form of login access
- * control based on login names and on host (or domain) names, internet
- * addresses (or network numbers), or on terminal line names in case of
- * non-networked logins. Diagnostics are reported through syslog(3).
- *
- * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: login_access.c,v 1.15 1997/06/01 03:12:28 assar Exp $");
-
-#ifdef LOGIN_ACCESS
-
- /* Delimiters for fields and for lists of users, ttys or hosts. */
-
-static char fs[] = ":"; /* field separator */
-static char sep[] = ", \t"; /* list-element separator */
-
- /* Constants to be used in assignments only, not in comparisons... */
-
-#define YES 1
-#define NO 0
-
-static int list_match(char *list, char *item, int (*match_fn)(char *, char *));
-static int user_match(char *tok, char *string);
-static int from_match(char *tok, char *string);
-static int string_match(char *tok, char *string);
-
-/* login_access - match username/group and host/tty with access control file */
-
-int login_access(char *user, char *from)
-{
- FILE *fp;
- char line[BUFSIZ];
- char *perm; /* becomes permission field */
- char *users; /* becomes list of login names */
- char *froms; /* becomes list of terminals or hosts */
- int match = NO;
- int end;
- int lineno = 0; /* for diagnostics */
- char *foo;
-
- /*
- * Process the table one line at a time and stop at the first match.
- * Blank lines and lines that begin with a '#' character are ignored.
- * Non-comment lines are broken at the ':' character. All fields are
- * mandatory. The first field should be a "+" or "-" character. A
- * non-existing table means no access control.
- */
-
- if ((fp = fopen(_PATH_LOGACCESS, "r")) != 0) {
- while (!match && fgets(line, sizeof(line), fp)) {
- lineno++;
- if (line[end = strlen(line) - 1] != '\n') {
- syslog(LOG_ERR, "%s: line %d: missing newline or line too long",
- _PATH_LOGACCESS, lineno);
- continue;
- }
- if (line[0] == '#')
- continue; /* comment line */
- while (end > 0 && isspace(line[end - 1]))
- end--;
- line[end] = 0; /* strip trailing whitespace */
- if (line[0] == 0) /* skip blank lines */
- continue;
- foo = NULL;
- if (!(perm = strtok_r(line, fs, &foo))
- || !(users = strtok_r(NULL, fs, &foo))
- || !(froms = strtok_r(NULL, fs, &foo))
- || strtok_r(NULL, fs, &foo)) {
- syslog(LOG_ERR, "%s: line %d: bad field count",
- _PATH_LOGACCESS,
- lineno);
- continue;
- }
- if (perm[0] != '+' && perm[0] != '-') {
- syslog(LOG_ERR, "%s: line %d: bad first field",
- _PATH_LOGACCESS,
- lineno);
- continue;
- }
- match = (list_match(froms, from, from_match)
- && list_match(users, user, user_match));
- }
- fclose(fp);
- } else if (errno != ENOENT) {
- syslog(LOG_ERR, "cannot open %s: %m", _PATH_LOGACCESS);
- }
- return (match == 0 || (line[0] == '+'));
-}
-
-/* list_match - match an item against a list of tokens with exceptions */
-
-static int
-list_match(char *list, char *item, int (*match_fn)(char *, char *))
-{
- char *tok;
- int match = NO;
- char *foo = NULL;
-
- /*
- * Process tokens one at a time. We have exhausted all possible matches
- * when we reach an "EXCEPT" token or the end of the list. If we do find
- * a match, look for an "EXCEPT" list and recurse to determine whether
- * the match is affected by any exceptions.
- */
-
- for (tok = strtok_r(list, sep, &foo);
- tok != NULL;
- tok = strtok_r(NULL, sep, &foo)) {
- if (strcasecmp(tok, "EXCEPT") == 0) /* EXCEPT: give up */
- break;
- if ((match = (*match_fn) (tok, item)) != 0) /* YES */
- break;
- }
- /* Process exceptions to matches. */
-
- if (match != NO) {
- while ((tok = strtok_r(NULL, sep, &foo)) && strcasecmp(tok, "EXCEPT"))
- /* VOID */ ;
- if (tok == 0 || list_match(NULL, item, match_fn) == NO)
- return (match);
- }
- return (NO);
-}
-
-/* netgroup_match - match group against machine or user */
-
-static int netgroup_match(char *group, char *machine, char *user)
-{
-#ifdef HAVE_YP_GET_DEFAULT_DOMAIN
- static char *mydomain = 0;
-
- if (mydomain == 0)
- yp_get_default_domain(&mydomain);
- return (innetgr(group, machine, user, mydomain));
-#else
- syslog(LOG_ERR, "NIS netgroup support not configured");
- return 0;
-#endif
-}
-
-/* user_match - match a username against one token */
-
-static int user_match(char *tok, char *string)
-{
- struct group *group;
- int i;
-
- /*
- * If a token has the magic value "ALL" the match always succeeds.
- * Otherwise, return YES if the token fully matches the username, or if
- * the token is a group that contains the username.
- */
-
- if (tok[0] == '@') { /* netgroup */
- return (netgroup_match(tok + 1, (char *) 0, string));
- } else if (string_match(tok, string)) { /* ALL or exact match */
- return (YES);
- } else if ((group = getgrnam(tok)) != 0) { /* try group membership */
- for (i = 0; group->gr_mem[i]; i++)
- if (strcasecmp(string, group->gr_mem[i]) == 0)
- return (YES);
- }
- return (NO);
-}
-
-/* from_match - match a host or tty against a list of tokens */
-
-static int from_match(char *tok, char *string)
-{
- int tok_len;
- int str_len;
-
- /*
- * If a token has the magic value "ALL" the match always succeeds. Return
- * YES if the token fully matches the string. If the token is a domain
- * name, return YES if it matches the last fields of the string. If the
- * token has the magic value "LOCAL", return YES if the string does not
- * contain a "." character. If the token is a network number, return YES
- * if it matches the head of the string.
- */
-
- if (tok[0] == '@') { /* netgroup */
- return (netgroup_match(tok + 1, string, (char *) 0));
- } else if (string_match(tok, string)) { /* ALL or exact match */
- return (YES);
- } else if (tok[0] == '.') { /* domain: match last fields */
- if ((str_len = strlen(string)) > (tok_len = strlen(tok))
- && strcasecmp(tok, string + str_len - tok_len) == 0)
- return (YES);
- } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no dots */
- if (strchr(string, '.') == 0)
- return (YES);
- } else if (tok[(tok_len = strlen(tok)) - 1] == '.' /* network */
- && strncmp(tok, string, tok_len) == 0) {
- return (YES);
- }
- return (NO);
-}
-
-/* string_match - match a string against one token */
-
-static int string_match(char *tok, char *string)
-{
-
- /*
- * If the token has the magic value "ALL" the match always succeeds.
- * Otherwise, return YES if the token fully matches the string.
- */
-
- if (strcasecmp(tok, "ALL") == 0) { /* all: always matches */
- return (YES);
- } else if (strcasecmp(tok, string) == 0) { /* try exact match */
- return (YES);
- }
- return (NO);
-}
-#endif /* LOGIN_ACCES */
diff --git a/crypto/kerberosIV/appl/bsd/login_fbtab.c b/crypto/kerberosIV/appl/bsd/login_fbtab.c
deleted file mode 100644
index f7f53aa57c43..000000000000
--- a/crypto/kerberosIV/appl/bsd/login_fbtab.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/************************************************************************
-* Copyright 1995 by Wietse Venema. All rights reserved.
-*
-* This material was originally written and compiled by Wietse Venema at
-* Eindhoven University of Technology, The Netherlands, in 1990, 1991,
-* 1992, 1993, 1994 and 1995.
-*
-* Redistribution and use in source and binary forms are permitted
-* provided that this entire copyright notice is duplicated in all such
-* copies.
-*
-* This software is provided "as is" and without any expressed or implied
-* warranties, including, without limitation, the implied warranties of
-* merchantibility and fitness for any particular purpose.
-************************************************************************/
-/*
- SYNOPSIS
- void login_fbtab(tty, uid, gid)
- char *tty;
- uid_t uid;
- gid_t gid;
-
- DESCRIPTION
- This module implements device security as described in the
- SunOS 4.1.x fbtab(5) and SunOS 5.x logindevperm(4) manual
- pages. The program first looks for /etc/fbtab. If that file
- cannot be opened it attempts to process /etc/logindevperm.
- We expect entries with the folowing format:
-
- Comments start with a # and extend to the end of the line.
-
- Blank lines or lines with only a comment are ignored.
-
- All other lines consist of three fields delimited by
- whitespace: a login device (/dev/console), an octal
- permission number (0600), and a ":"-delimited list of
- devices (/dev/kbd:/dev/mouse). All device names are
- absolute paths. A path that ends in "/*" refers to all
- directory entries except "." and "..".
-
- If the tty argument (relative path) matches a login device
- name (absolute path), the permissions of the devices in the
- ":"-delimited list are set as specified in the second
- field, and their ownership is changed to that of the uid
- and gid arguments.
-
- DIAGNOSTICS
- Problems are reported via the syslog daemon with severity
- LOG_ERR.
-
- BUGS
-
- AUTHOR
- Wietse Venema (wietse@wzv.win.tue.nl)
- Eindhoven University of Technology
- The Netherlands
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: login_fbtab.c,v 1.10 1997/06/01 03:12:54 assar Exp $");
-
-void login_protect (char *, char *, int, uid_t, gid_t);
-void login_fbtab (char *tty, uid_t uid, gid_t gid);
-
-#define WSPACE " \t\n"
-
-/* login_fbtab - apply protections specified in /etc/fbtab or logindevperm */
-
-void
-login_fbtab(char *tty, uid_t uid, gid_t gid)
-{
- FILE *fp;
- char buf[BUFSIZ];
- char *devname;
- char *cp;
- int prot;
- char *table;
- char *foo;
-
- if ((fp = fopen(table = _PATH_FBTAB, "r")) == 0
- && (fp = fopen(table = _PATH_LOGINDEVPERM, "r")) == 0)
- return;
-
- while (fgets(buf, sizeof(buf), fp)) {
- if ((cp = strchr(buf, '#')) != 0)
- *cp = 0; /* strip comment */
- foo = NULL;
- if ((cp = devname = strtok_r(buf, WSPACE, &foo)) == 0)
- continue; /* empty or comment */
- if (strncmp(devname, "/dev/", 5) != 0
- || (cp = strtok_r(NULL, WSPACE, &foo)) == 0
- || *cp != '0'
- || sscanf(cp, "%o", &prot) == 0
- || prot == 0
- || (prot & 0777) != prot
- || (cp = strtok_r(NULL, WSPACE, &foo)) == 0) {
- syslog(LOG_ERR, "%s: bad entry: %s", table, cp ? cp : "(null)");
- continue;
- }
- if (strcmp(devname + 5, tty) == 0) {
- foo = NULL;
- for (cp = strtok_r(cp, ":", &foo);
- cp;
- cp = strtok_r(NULL, ":", &foo)) {
- login_protect(table, cp, prot, uid, gid);
- }
- }
- }
- fclose(fp);
-}
-
-/* login_protect - protect one device entry */
-
-void
-login_protect(char *table, char *path, int mask, uid_t uid, gid_t gid)
-{
- char buf[BUFSIZ];
- int pathlen = strlen(path);
- struct dirent *ent;
- DIR *dir;
-
- if (strcmp("/*", path + pathlen - 2) != 0) {
- if (chmod(path, mask) && errno != ENOENT)
- syslog(LOG_ERR, "%s: chmod(%s): %m", table, path);
- if (chown(path, uid, gid) && errno != ENOENT)
- syslog(LOG_ERR, "%s: chown(%s): %m", table, path);
- } else {
- strcpy(buf, path);
- buf[pathlen - 1] = 0;
- if ((dir = opendir(buf)) == 0) {
- syslog(LOG_ERR, "%s: opendir(%s): %m", table, path);
- } else {
- while ((ent = readdir(dir)) != 0) {
- if (strcmp(ent->d_name, ".") != 0
- && strcmp(ent->d_name, "..") != 0) {
- strcpy(buf + pathlen - 1, ent->d_name);
- login_protect(table, buf, mask, uid, gid);
- }
- }
- closedir(dir);
- }
- }
-}
diff --git a/crypto/kerberosIV/appl/bsd/pathnames.h b/crypto/kerberosIV/appl/bsd/pathnames.h
deleted file mode 100644
index 3c10bff02404..000000000000
--- a/crypto/kerberosIV/appl/bsd/pathnames.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 1989 The Regents of the University of California.
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * from: @(#)pathnames.h 5.2 (Berkeley) 4/9/90
- * $Id: pathnames.h,v 1.23 1996/11/17 06:36:42 joda Exp $
- */
-
-/******* First fix default path, we stick to _PATH_DEFPATH everywhere */
-
-#if !defined(_PATH_DEFPATH) && defined(_PATH_USERPATH)
-#define _PATH_DEFPATH _PATH_USERPATH
-#endif
-
-#if defined(_PATH_DEFPATH) && !defined(_DEF_PATH)
-#define _DEF_PATH _PATH_DEFPATH
-#endif
-
-#if !defined(_PATH_DEFPATH) && defined(_DEF_PATH)
-#define _PATH_DEFPATH _DEF_PATH
-#endif
-
-#ifndef _PATH_DEFPATH
-#define _PATH_DEFPATH "/usr/ucb:/usr/bin:/bin"
-#define _DEF_PATH _PATH_DEFPATH
-#endif /* !_PATH_DEFPATH */
-
-#ifndef _PATH_DEFSUPATH
-#define _PATH_DEFSUPATH "/usr/sbin:" _DEF_PATH
-#endif /* _PATH_DEFSUPATH */
-
-/******* Default PATH fixed! */
-
-#undef _PATH_RLOGIN /* Redifine rlogin */
-#define _PATH_RLOGIN BINDIR "/rlogin"
-
-#undef _PATH_RSH /* Redifine rsh */
-#define _PATH_RSH BINDIR "/rsh"
-
-#undef _PATH_LOGIN
-#define _PATH_LOGIN BINDIR "/login"
-
-/******* The rest is fallback defaults */
-
-#ifndef _PATH_DEV
-#define _PATH_DEV "/dev/"
-#endif
-
-#ifndef _PATH_CP
-#define _PATH_CP "/bin/cp"
-#endif /* _PATH_CP */
-
-#ifndef _PATH_SHELLS
-#define _PATH_SHELLS "/etc/shells"
-#endif /* _PATH_SHELLS */
-
-#ifndef _PATH_BSHELL
-#define _PATH_BSHELL "/bin/sh"
-#endif /* _PATH_BSHELL */
-
-#ifndef _PATH_CSHELL
-#define _PATH_CSHELL "/bin/csh"
-#endif /* _PATH_CSHELL */
-
-#ifndef _PATH_NOLOGIN
-#define _PATH_NOLOGIN "/etc/nologin"
-#endif /* _PATH_NOLOGIN */
-
-#ifndef _PATH_TTY
-#define _PATH_TTY "/dev/tty"
-#endif /* _PATH_TTY */
-
-#ifndef _PATH_HUSHLOGIN
-#define _PATH_HUSHLOGIN ".hushlogin"
-#endif /* _PATH_HUSHLOGIN */
-
-#ifndef _PATH_NOMAILCHECK
-#define _PATH_NOMAILCHECK ".nomailcheck"
-#endif /* _PATH_NOMAILCHECK */
-
-#ifndef _PATH_MOTDFILE
-#define _PATH_MOTDFILE "/etc/motd"
-#endif /* _PATH_MOTDFILE */
-
-#ifndef _PATH_LOGACCESS
-#define _PATH_LOGACCESS "/etc/login.access"
-#endif /* _PATH_LOGACCESS */
-
-#ifndef _PATH_HEQUIV
-#define _PATH_HEQUIV "/etc/hosts.equiv"
-#endif
-
-#ifndef _PATH_FBTAB
-#define _PATH_FBTAB "/etc/fbtab"
-#endif /* _PATH_FBTAB */
-
-#ifndef _PATH_LOGINDEVPERM
-#define _PATH_LOGINDEVPERM "/etc/logindevperm"
-#endif /* _PATH_LOGINDEVPERM */
-
-#ifndef _PATH_CHPASS
-#define _PATH_CHPASS "/usr/bin/passwd"
-#endif /* _PATH_CHPASS */
-
-#if defined(__hpux)
-#define __FALLBACK_MAILDIR__ "/usr/mail"
-#else
-#define __FALLBACK_MAILDIR__ "/usr/spool/mail"
-#endif
-
-#ifndef KRB4_MAILDIR
-#ifndef _PATH_MAILDIR
-#ifdef MAILDIR
-#define _PATH_MAILDIR MAILDIR
-#else
-#define _PATH_MAILDIR __FALLBACK_MAILDIR__
-#endif
-#endif /* _PATH_MAILDIR */
-#define KRB4_MAILDIR _PATH_MAILDIR
-#endif
-
-#ifndef _PATH_LASTLOG
-#define _PATH_LASTLOG "/var/adm/lastlog"
-#endif
-
-#if defined(UTMP_FILE) && !defined(_PATH_UTMP)
-#define _PATH_UTMP UTMP_FILE
-#endif
-
-#ifndef _PATH_UTMP
-#define _PATH_UTMP "/etc/utmp"
-#endif
-
-#if defined(WTMP_FILE) && !defined(_PATH_WTMP)
-#define _PATH_WTMP WTMP_FILE
-#endif
-
-#ifndef _PATH_WTMP
-#define _PATH_WTMP "/usr/adm/wtmp"
-#endif
-
-#ifndef _PATH_ETC_DEFAULT_LOGIN
-#define _PATH_ETC_DEFAULT_LOGIN "/etc/default/login"
-#endif
-
-#ifndef _PATH_ETC_ENVIRONMENT
-#define _PATH_ETC_ENVIRONMENT "/etc/environment"
-#endif
-
-/*
- * NeXT KLUDGE ALERT!!!!!!!!!!!!!!!!!!
- * Some sort of bug in the NEXTSTEP cpp.
- */
-#ifdef NeXT
-#undef _PATH_DEFSUPATH
-#define _PATH_DEFSUPATH "/usr/sbin:/usr/ucb:/usr/bin:/bin"
-#undef _PATH_RLOGIN
-#define _PATH_RLOGIN "/usr/athena/bin/rlogin"
-#undef _PATH_RSH
-#define _PATH_RSH "/usr/athena/bin/rsh"
-#undef _PATH_LOGIN
-#define _PATH_LOGIN "/usr/athena/bin/login"
-#endif
diff --git a/crypto/kerberosIV/appl/bsd/rcmd_util.c b/crypto/kerberosIV/appl/bsd/rcmd_util.c
deleted file mode 100644
index 466900954a91..000000000000
--- a/crypto/kerberosIV/appl/bsd/rcmd_util.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "bsd_locl.h"
-
-RCSID("$Id: rcmd_util.c,v 1.15 1997/05/02 14:27:44 assar Exp $");
-
-int
-get_login_port(int kerberos, int encryption)
-{
- char *service="login";
- int port=htons(513);
-
- if(kerberos && encryption){
- service="eklogin";
- port=htons(2105);
- }
-
- if(kerberos && !encryption){
- service="klogin";
- port=htons(543);
- }
- return k_getportbyname (service, "tcp", port);
-}
-
-int
-get_shell_port(int kerberos, int encryption)
-{
- char *service="shell";
- int port=htons(514);
-
- if(kerberos && encryption){
- service="ekshell";
- port=htons(545);
- }
-
- if(kerberos && !encryption){
- service="kshell";
- port=htons(544);
- }
-
- return k_getportbyname (service, "tcp", port);
-}
-
-/*
- * On reasonable systems, `cf[gs]et[io]speed' use values of bit/s
- * directly, and the following functions are just identity functions.
- * This is however a slower way of doing those
- * should-be-but-are-not-always idenity functions.
- */
-
-static struct { int speed; int bps; } conv[] = {
-#ifdef B0
- {B0, 0},
-#endif
-#ifdef B50
- {B50, 50},
-#endif
-#ifdef B75
- {B75, 75},
-#endif
-#ifdef B110
- {B110, 110},
-#endif
-#ifdef B134
- {B134, 134},
-#endif
-#ifdef B150
- {B150, 150},
-#endif
-#ifdef B200
- {B200, 200},
-#endif
-#ifdef B300
- {B300, 300},
-#endif
-#ifdef B600
- {B600, 600},
-#endif
-#ifdef B1200
- {B1200, 1200},
-#endif
-#ifdef B1800
- {B1800, 1800},
-#endif
-#ifdef B2400
- {B2400, 2400},
-#endif
-#ifdef B4800
- {B4800, 4800},
-#endif
-#ifdef B9600
- {B9600, 9600},
-#endif
-#ifdef B19200
- {B19200, 19200},
-#endif
-#ifdef B38400
- {B38400, 38400},
-#endif
-#ifdef B57600
- {B57600, 57600},
-#endif
-#ifdef B115200
- {B115200, 115200},
-#endif
-#ifdef B153600
- {B153600, 153600},
-#endif
-#ifdef B230400
- {B230400, 230400},
-#endif
-#ifdef B307200
- {B307200, 307200},
-#endif
-#ifdef B460800
- {B460800, 460800},
-#endif
-};
-
-#define N (sizeof(conv)/sizeof(*conv))
-
-int
-speed_t2int (speed_t s)
-{
- int l, r, m;
-
- l = 0;
- r = N - 1;
- while(l <= r) {
- m = (l + r) / 2;
- if (conv[m].speed == s)
- return conv[m].bps;
- else if(conv[m].speed < s)
- l = m + 1;
- else
- r = m - 1;
- }
- return -1;
-}
-
-/*
- *
- */
-
-speed_t
-int2speed_t (int i)
-{
- int l, r, m;
-
- l = 0;
- r = N - 1;
- while(l <= r) {
- m = (l + r) / 2;
- if (conv[m].bps == i)
- return conv[m].speed;
- else if(conv[m].bps < i)
- l = m + 1;
- else
- r = m - 1;
- }
- return -1;
-}
-
-/*
- * If there are any IP options on `sock', die.
- */
-
-void
-ip_options_and_die (int sock, struct sockaddr_in *fromp)
-{
-#if defined(IP_OPTIONS) && defined(HAVE_GETSOCKOPT)
- u_char optbuf[BUFSIZ/3], *cp;
- char lbuf[BUFSIZ], *lp;
- int optsize = sizeof(optbuf), ipproto;
- struct protoent *ip;
-
- if ((ip = getprotobyname("ip")) != NULL)
- ipproto = ip->p_proto;
- else
- ipproto = IPPROTO_IP;
- if (getsockopt(sock, ipproto, IP_OPTIONS,
- (void *)optbuf, &optsize) == 0 &&
- optsize != 0) {
- lp = lbuf;
- for (cp = optbuf; optsize > 0; cp++, optsize--, lp += 3)
- snprintf(lp, sizeof(lbuf) - (lp - lbuf), " %2.2x", *cp);
- syslog(LOG_NOTICE,
- "Connection received from %s using IP options (dead):%s",
- inet_ntoa(fromp->sin_addr), lbuf);
- exit(1);
- }
-#endif
-}
-
-void
-warning(const char *fmt, ...)
-{
- char *rstar_no_warn = getenv("RSTAR_NO_WARN");
- va_list args;
-
- va_start(args, fmt);
- if (rstar_no_warn == NULL)
- rstar_no_warn = "";
- if (strncmp(rstar_no_warn, "yes", 3) != 0) {
- /* XXX */
- fprintf(stderr, "%s: warning, using standard ", __progname);
- warnx(fmt, args);
- }
- va_end(args);
-}
diff --git a/crypto/kerberosIV/appl/bsd/rcp.c b/crypto/kerberosIV/appl/bsd/rcp.c
deleted file mode 100644
index 6dfb4726680a..000000000000
--- a/crypto/kerberosIV/appl/bsd/rcp.c
+++ /dev/null
@@ -1,1019 +0,0 @@
-/*
- * Copyright (c) 1983, 1990, 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: rcp.c,v 1.43 1997/05/13 09:41:26 bg Exp $");
-
-/* Globals */
-static char dst_realm_buf[REALM_SZ];
-static char *dest_realm = NULL;
-static int use_kerberos = 1;
-
-static int doencrypt = 0;
-#define OPTIONS "dfKk:prtx"
-
-static int errs, rem;
-static struct passwd *pwd;
-static u_short port;
-static uid_t userid;
-static int pflag, iamremote, iamrecursive, targetshouldbedirectory;
-
-#define CMDNEEDS 64
-static char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */
-
-void rsource(char *name, struct stat *statp);
-
-#define SERVICE_NAME "rcmd"
-
-CREDENTIALS cred;
-MSG_DAT msg_data;
-struct sockaddr_in foreign, local;
-Key_schedule schedule;
-
-KTEXT_ST ticket;
-AUTH_DAT kdata;
-
-static void
-send_auth(char *h, char *r)
-{
- int lslen, fslen, status;
- long opts;
-
- lslen = sizeof(struct sockaddr_in);
- if (getsockname(rem, (struct sockaddr *)&local, &lslen) < 0)
- err(1, "getsockname");
- fslen = sizeof(struct sockaddr_in);
- if (getpeername(rem, (struct sockaddr *)&foreign, &fslen) < 0)
- err(1, "getpeername");
- if ((r == NULL) || (*r == '\0'))
- r = krb_realmofhost(h);
- opts = KOPT_DO_MUTUAL;
- if ((status = krb_sendauth(opts, rem, &ticket, SERVICE_NAME, h, r,
- (unsigned long)getpid(), &msg_data, &cred,
- schedule, &local,
- &foreign, "KCMDV0.1")) != KSUCCESS)
- errx(1, "krb_sendauth failure: %s", krb_get_err_text(status));
-}
-
-static void
-answer_auth(void)
-{
- int lslen, fslen, status;
- long opts;
- char inst[INST_SZ], v[9];
-
- lslen = sizeof(struct sockaddr_in);
- if (getsockname(rem, (struct sockaddr *)&local, &lslen) < 0)
- err(1, "getsockname");
- fslen = sizeof(struct sockaddr_in);
- if(getpeername(rem, (struct sockaddr *)&foreign, &fslen) < 0)
- err(1, "getperrname");
- k_getsockinst(rem, inst, sizeof(inst));
- opts = KOPT_DO_MUTUAL;
- if ((status = krb_recvauth(opts, rem, &ticket, SERVICE_NAME, inst,
- &foreign, &local,
- &kdata, "", schedule, v)) != KSUCCESS)
- errx(1, "krb_recvauth failure: %s", krb_get_err_text(status));
-}
-
-static int
-des_read(int fd, char *buf, int len)
-{
- if (doencrypt)
- return(des_enc_read(fd, buf, len, schedule,
- (iamremote? &kdata.session : &cred.session)));
- else
- return(read(fd, buf, len));
-}
-
-static int
-des_write(int fd, char *buf, int len)
-{
- if (doencrypt)
- return(des_enc_write(fd, buf, len, schedule,
- (iamremote? &kdata.session : &cred.session)));
- else
- return(write(fd, buf, len));
-}
-
-static void run_err(const char *fmt, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-
-
-static void
-run_err(const char *fmt, ...)
-{
- char errbuf[1024];
-
- va_list args;
- va_start(args, fmt);
- ++errs;
-#define RCPERR "\001rcp: "
- strcpy (errbuf, RCPERR);
- vsnprintf (errbuf + strlen(RCPERR), sizeof(errbuf) - strlen(RCPERR),
- fmt, args);
- strcat (errbuf, "\n");
- des_write (rem, errbuf, strlen(errbuf));
- if (!iamremote)
- vwarnx(fmt, args);
- va_end(args);
-}
-
-static void
-verifydir(char *cp)
-{
- struct stat stb;
-
- if (!stat(cp, &stb)) {
- if (S_ISDIR(stb.st_mode))
- return;
- errno = ENOTDIR;
- }
- run_err("%s: %s", cp, strerror(errno));
- exit(1);
-}
-
-#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))
-
-static BUF *
-allocbuf(BUF *bp, int fd, int blksize)
-{
- struct stat stb;
- size_t size;
-
- if (fstat(fd, &stb) < 0) {
- run_err("fstat: %s", strerror(errno));
- return (0);
- }
-#ifdef HAVE_ST_BLKSIZE
- size = ROUNDUP(stb.st_blksize, blksize);
-#else
- size = blksize;
-#endif
- if (size == 0)
- size = blksize;
- if (bp->cnt >= size)
- return (bp);
- if (bp->buf == NULL)
- bp->buf = malloc(size);
- else
- bp->buf = realloc(bp->buf, size);
- if (bp->buf == NULL) {
- bp->cnt = 0;
- run_err("%s", strerror(errno));
- return (0);
- }
- bp->cnt = size;
- return (bp);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "%s\n\t%s\n",
- "usage: rcp [-Kpx] [-k realm] f1 f2",
- "or: rcp [-Kprx] [-k realm] f1 ... fn directory");
- exit(1);
-}
-
-static void
-oldw(const char *s)
-{
- char *rstar_no_warn = getenv("RSTAR_NO_WARN");
- if (rstar_no_warn == 0)
- rstar_no_warn = "";
- if (strncmp(rstar_no_warn, "yes", 3) != 0)
- warnx("%s, using standard rcp", s);
-}
-
-static RETSIGTYPE
-lostconn(int signo)
-{
- if (!iamremote)
- warnx("lost connection");
- exit(1);
-}
-
-static int
-response(void)
-{
- char ch, *cp, resp, rbuf[BUFSIZ];
-
- if (des_read(rem, &resp, sizeof(resp)) != sizeof(resp))
- lostconn(0);
-
- cp = rbuf;
- switch(resp) {
- case 0: /* ok */
- return (0);
- default:
- *cp++ = resp;
- /* FALLTHROUGH */
- case 1: /* error, followed by error msg */
- case 2: /* fatal error, "" */
- do {
- if (des_read(rem, &ch, sizeof(ch)) != sizeof(ch))
- lostconn(0);
- *cp++ = ch;
- } while (cp < &rbuf[BUFSIZ] && ch != '\n');
-
- if (!iamremote)
- write(STDERR_FILENO, rbuf, cp - rbuf);
- ++errs;
- if (resp == 1)
- return (-1);
- exit(1);
- }
- /* NOTREACHED */
-}
-
-static void
-source(int argc, char **argv)
-{
- struct stat stb;
- static BUF buffer;
- BUF *bp;
- off_t i;
- int amt, fd, haderr, indx, result;
- char *last, *name, buf[BUFSIZ];
-
- for (indx = 0; indx < argc; ++indx) {
- name = argv[indx];
- if ((fd = open(name, O_RDONLY, 0)) < 0)
- goto syserr;
- if (fstat(fd, &stb)) {
-syserr: run_err("%s: %s", name, strerror(errno));
- goto next;
- }
- switch (stb.st_mode & S_IFMT) {
- case S_IFREG:
- break;
- case S_IFDIR:
- if (iamrecursive) {
- rsource(name, &stb);
- goto next;
- }
- /* FALLTHROUGH */
- default:
- run_err("%s: not a regular file", name);
- goto next;
- }
- if ((last = strrchr(name, '/')) == NULL)
- last = name;
- else
- ++last;
- if (pflag) {
- /*
- * Make it compatible with possible future
- * versions expecting microseconds.
- */
- snprintf(buf, sizeof(buf), "T%ld 0 %ld 0\n",
- (long)stb.st_mtime, (long)stb.st_atime);
- des_write(rem, buf, strlen(buf));
- if (response() < 0)
- goto next;
- }
- snprintf(buf, sizeof(buf), "C%04o %ld %s\n",
- (int)stb.st_mode & MODEMASK, (long) stb.st_size, last);
- des_write(rem, buf, strlen(buf));
- if (response() < 0)
- goto next;
- if ((bp = allocbuf(&buffer, fd, BUFSIZ)) == NULL) {
-next: close(fd);
- continue;
- }
-
- /* Keep writing after an error so that we stay sync'd up. */
- for (haderr = i = 0; i < stb.st_size; i += bp->cnt) {
- amt = bp->cnt;
- if (i + amt > stb.st_size)
- amt = stb.st_size - i;
- if (!haderr) {
- result = read(fd, bp->buf, amt);
- if (result != amt)
- haderr = result >= 0 ? EIO : errno;
- }
- if (haderr)
- des_write(rem, bp->buf, amt);
- else {
- result = des_write(rem, bp->buf, amt);
- if (result != amt)
- haderr = result >= 0 ? EIO : errno;
- }
- }
- if (close(fd) && !haderr)
- haderr = errno;
- if (!haderr)
- des_write(rem, "", 1);
- else
- run_err("%s: %s", name, strerror(haderr));
- response();
- }
-}
-
-void
-rsource(char *name, struct stat *statp)
-{
- DIR *dirp;
- struct dirent *dp;
- char *last, *vect[1], path[MaxPathLen];
-
- if (!(dirp = opendir(name))) {
- run_err("%s: %s", name, strerror(errno));
- return;
- }
- last = strrchr(name, '/');
- if (last == 0)
- last = name;
- else
- last++;
- if (pflag) {
- snprintf(path, sizeof(path), "T%ld 0 %ld 0\n",
- (long)statp->st_mtime, (long)statp->st_atime);
- des_write(rem, path, strlen(path));
- if (response() < 0) {
- closedir(dirp);
- return;
- }
- }
- snprintf(path, sizeof(path),
- "D%04o %d %s\n", (int)statp->st_mode & MODEMASK, 0, last);
- des_write(rem, path, strlen(path));
- if (response() < 0) {
- closedir(dirp);
- return;
- }
- while ((dp = readdir(dirp))) {
- if (dp->d_ino == 0)
- continue;
- if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
- continue;
- if (strlen(name) + 1 + strlen(dp->d_name) >= MaxPathLen - 1) {
- run_err("%s/%s: name too long", name, dp->d_name);
- continue;
- }
- if (snprintf(path, sizeof(path),
- "%s/%s", name, dp->d_name) >= sizeof(path)) {
- run_err("%s/%s: name too long", name, dp->d_name);
- continue;
- }
- vect[0] = path;
- source(1, vect);
- }
- closedir(dirp);
- des_write(rem, "E\n", 2);
- response();
-}
-
-static int
-kerberos(char **host, char *bp, char *locuser, char *user)
-{
- int sock = -1, err;
-again:
- if (use_kerberos) {
- rem = KSUCCESS;
- errno = 0;
- if (dest_realm == NULL)
- dest_realm = krb_realmofhost(*host);
-
-#if 0
- rem = krcmd(host, port, user, bp, 0, dest_realm);
-#else
- err = kcmd(
- &sock,
- host,
- port,
- NULL, /* locuser not used */
- user,
- bp,
- 0,
- &ticket,
- SERVICE_NAME,
- dest_realm,
- (CREDENTIALS *) NULL, /* credentials not used */
- 0, /* key schedule not used */
- (MSG_DAT *) NULL, /* MSG_DAT not used */
- (struct sockaddr_in *) NULL, /* local addr not used */
- (struct sockaddr_in *) NULL, /* foreign addr not used */
- 0L); /* authopts */
- if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
- warnx("kcmd: %s", krb_get_err_text(err));
- rem = -1;
- } else if (err < 0)
- rem = -1;
- else
- rem = sock;
-#endif
- if (rem < 0) {
- use_kerberos = 0;
- port = get_shell_port(use_kerberos, 0);
- if (errno == ECONNREFUSED)
- oldw("remote host doesn't support Kerberos");
- else if (errno == ENOENT)
- oldw("can't provide Kerberos authentication data");
- goto again;
- }
- } else {
- if (doencrypt)
- errx(1,
- "the -x option requires Kerberos authentication");
- if (geteuid() != 0) {
- errx(1, "not installed setuid root, "
- "only root may use non kerberized rcp");
- }
- rem = rcmd(host, port, locuser, user, bp, 0);
- }
- return (rem);
-}
-
-static void
-toremote(char *targ, int argc, char **argv)
-{
- int i, len;
-#ifdef IP_TOS
- int tos;
-#endif
- char *bp, *host, *src, *suser, *thost, *tuser;
-
- *targ++ = 0;
- if (*targ == 0)
- targ = ".";
-
- if ((thost = strchr(argv[argc - 1], '@'))) {
- /* user@host */
- *thost++ = 0;
- tuser = argv[argc - 1];
- if (*tuser == '\0')
- tuser = NULL;
- else if (!okname(tuser))
- exit(1);
- } else {
- thost = argv[argc - 1];
- tuser = NULL;
- }
-
- for (i = 0; i < argc - 1; i++) {
- src = colon(argv[i]);
- if (src) { /* remote to remote */
- *src++ = 0;
- if (*src == 0)
- src = ".";
- host = strchr(argv[i], '@');
- len = strlen(_PATH_RSH) + strlen(argv[i]) +
- strlen(src) + (tuser ? strlen(tuser) : 0) +
- strlen(thost) + strlen(targ) + CMDNEEDS + 20;
- if (!(bp = malloc(len)))
- err(1, " ");
- if (host) {
- *host++ = 0;
- suser = argv[i];
- if (*suser == '\0')
- suser = pwd->pw_name;
- else if (!okname(suser))
- continue;
- snprintf(bp, len,
- "%s %s -l %s -n %s %s '%s%s%s:%s'",
- _PATH_RSH, host, suser, cmd, src,
- tuser ? tuser : "", tuser ? "@" : "",
- thost, targ);
- } else
- snprintf(bp, len,
- "exec %s %s -n %s %s '%s%s%s:%s'",
- _PATH_RSH, argv[i], cmd, src,
- tuser ? tuser : "", tuser ? "@" : "",
- thost, targ);
- susystem(bp, userid);
- free(bp);
- } else { /* local to remote */
- if (rem == -1) {
- len = strlen(targ) + CMDNEEDS + 20;
- if (!(bp = malloc(len)))
- err(1, " ");
- snprintf(bp, len, "%s -t %s", cmd, targ);
- host = thost;
- if (use_kerberos)
- rem = kerberos(&host, bp,
-#ifdef __CYGWIN32__
- tuser,
-#else
- pwd->pw_name,
-#endif
- tuser ? tuser : pwd->pw_name);
- else
- rem = rcmd(&host, port,
-#ifdef __CYGWIN32__
- tuser,
-#else
- pwd->pw_name,
-#endif
- tuser ? tuser : pwd->pw_name,
- bp, 0);
- if (rem < 0)
- exit(1);
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_THROUGHPUT;
- if (setsockopt(rem, IPPROTO_IP, IP_TOS,
- (void *)&tos, sizeof(int)) < 0)
- warn("TOS (ignored)");
-#endif /* IP_TOS */
- if (doencrypt)
- send_auth(host, dest_realm);
- if (response() < 0)
- exit(1);
- free(bp);
- setuid(userid);
- }
- source(1, argv+i);
- }
- }
-}
-
-static void
-sink(int argc, char **argv)
-{
- static BUF buffer;
- struct stat stb;
- struct timeval tv[2];
- enum { YES, NO, DISPLAYED } wrerr;
- BUF *bp;
- off_t i, j;
- int amt, count, exists, first, mask, mode, ofd, omode;
- int setimes, size, targisdir, wrerrno=0;
- char ch, *cp, *np, *targ, *why, *vect[1], buf[BUFSIZ];
-
-#define atime tv[0]
-#define mtime tv[1]
-#define SCREWUP(str) { why = str; goto screwup; }
-
- setimes = targisdir = 0;
- mask = umask(0);
- if (!pflag)
- umask(mask);
- if (argc != 1) {
- run_err("ambiguous target");
- exit(1);
- }
- targ = *argv;
- if (targetshouldbedirectory)
- verifydir(targ);
- des_write(rem, "", 1);
- if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode))
- targisdir = 1;
- for (first = 1;; first = 0) {
- cp = buf;
- if (des_read(rem, cp, 1) <= 0)
- return;
- if (*cp++ == '\n')
- SCREWUP("unexpected <newline>");
- do {
- if (des_read(rem, &ch, sizeof(ch)) != sizeof(ch))
- SCREWUP("lost connection");
- *cp++ = ch;
- } while (cp < &buf[BUFSIZ - 1] && ch != '\n');
- *cp = 0;
-
- if (buf[0] == '\01' || buf[0] == '\02') {
- if (iamremote == 0)
- write(STDERR_FILENO,
- buf + 1, strlen(buf + 1));
- if (buf[0] == '\02')
- exit(1);
- ++errs;
- continue;
- }
- if (buf[0] == 'E') {
- des_write(rem, "", 1);
- return;
- }
-
- if (ch == '\n')
- *--cp = 0;
-
-#define getnum(t) (t) = 0; while (isdigit(*cp)) (t) = (t) * 10 + (*cp++ - '0');
- cp = buf;
- if (*cp == 'T') {
- setimes++;
- cp++;
- getnum(mtime.tv_sec);
- if (*cp++ != ' ')
- SCREWUP("mtime.sec not delimited");
- getnum(mtime.tv_usec);
- if (*cp++ != ' ')
- SCREWUP("mtime.usec not delimited");
- getnum(atime.tv_sec);
- if (*cp++ != ' ')
- SCREWUP("atime.sec not delimited");
- getnum(atime.tv_usec);
- if (*cp++ != '\0')
- SCREWUP("atime.usec not delimited");
- des_write(rem, "", 1);
- continue;
- }
- if (*cp != 'C' && *cp != 'D') {
- /*
- * Check for the case "rcp remote:foo\* local:bar".
- * In this case, the line "No match." can be returned
- * by the shell before the rcp command on the remote is
- * executed so the ^Aerror_message convention isn't
- * followed.
- */
- if (first) {
- run_err("%s", cp);
- exit(1);
- }
- SCREWUP("expected control record");
- }
- mode = 0;
- for (++cp; cp < buf + 5; cp++) {
- if (*cp < '0' || *cp > '7')
- SCREWUP("bad mode");
- mode = (mode << 3) | (*cp - '0');
- }
- if (*cp++ != ' ')
- SCREWUP("mode not delimited");
-
- for (size = 0; isdigit(*cp);)
- size = size * 10 + (*cp++ - '0');
- if (*cp++ != ' ')
- SCREWUP("size not delimited");
- if (targisdir) {
- static char *namebuf;
- static int cursize;
- size_t need;
-
- need = strlen(targ) + strlen(cp) + 250;
- if (need > cursize) {
- if (!(namebuf = malloc(need)))
- run_err("%s", strerror(errno));
- }
- snprintf(namebuf, need, "%s%s%s", targ,
- *targ ? "/" : "", cp);
- np = namebuf;
- } else
- np = targ;
- exists = stat(np, &stb) == 0;
- if (buf[0] == 'D') {
- int mod_flag = pflag;
- if (exists) {
- if (!S_ISDIR(stb.st_mode)) {
- errno = ENOTDIR;
- goto bad;
- }
- if (pflag)
- chmod(np, mode);
- } else {
- /* Handle copying from a read-only directory */
- mod_flag = 1;
- if (mkdir(np, mode | S_IRWXU) < 0)
- goto bad;
- }
- vect[0] = np;
- sink(1, vect);
- if (setimes) {
- struct utimbuf times;
- times.actime = atime.tv_sec;
- times.modtime = mtime.tv_sec;
- setimes = 0;
- if (utime(np, &times) < 0)
- run_err("%s: set times: %s",
- np, strerror(errno));
- }
- if (mod_flag)
- chmod(np, mode);
- continue;
- }
- omode = mode;
- mode |= S_IWRITE;
- if ((ofd = open(np, O_WRONLY|O_CREAT, mode)) < 0) {
-bad: run_err("%s: %s", np, strerror(errno));
- continue;
- }
- des_write(rem, "", 1);
- if ((bp = allocbuf(&buffer, ofd, BUFSIZ)) == NULL) {
- close(ofd);
- continue;
- }
- cp = bp->buf;
- wrerr = NO;
- for (count = i = 0; i < size; i += BUFSIZ) {
- amt = BUFSIZ;
- if (i + amt > size)
- amt = size - i;
- count += amt;
- do {
- j = des_read(rem, cp, amt);
- if (j <= 0) {
- run_err("%s", j ? strerror(errno) :
- "dropped connection");
- exit(1);
- }
- amt -= j;
- cp += j;
- } while (amt > 0);
- if (count == bp->cnt) {
- /* Keep reading so we stay sync'd up. */
- if (wrerr == NO) {
- j = write(ofd, bp->buf, count);
- if (j != count) {
- wrerr = YES;
- wrerrno = j >= 0 ? EIO : errno;
- }
- }
- count = 0;
- cp = bp->buf;
- }
- }
- if (count != 0 && wrerr == NO &&
- (j = write(ofd, bp->buf, count)) != count) {
- wrerr = YES;
- wrerrno = j >= 0 ? EIO : errno;
- }
- if (ftruncate(ofd, size)) {
- run_err("%s: truncate: %s", np, strerror(errno));
- wrerr = DISPLAYED;
- }
- if (pflag) {
- if (exists || omode != mode)
-#ifdef HAVE_FCHMOD
- if (fchmod(ofd, omode))
-#else
- if (chmod(np, omode))
-#endif
- run_err("%s: set mode: %s",
- np, strerror(errno));
- } else {
- if (!exists && omode != mode)
-#ifdef HAVE_FCHMOD
- if (fchmod(ofd, omode & ~mask))
-#else
- if (chmod(np, omode & ~mask))
-#endif
- run_err("%s: set mode: %s",
- np, strerror(errno));
- }
- close(ofd);
- response();
- if (setimes && wrerr == NO) {
- struct utimbuf times;
- times.actime = atime.tv_sec;
- times.modtime = mtime.tv_sec;
- setimes = 0;
- if (utime(np, &times) < 0) {
- run_err("%s: set times: %s",
- np, strerror(errno));
- wrerr = DISPLAYED;
- }
- }
- switch(wrerr) {
- case YES:
- run_err("%s: %s", np, strerror(wrerrno));
- break;
- case NO:
- des_write(rem, "", 1);
- break;
- case DISPLAYED:
- break;
- }
- }
-screwup:
- run_err("protocol error: %s", why);
- exit(1);
-}
-
-static void
-tolocal(int argc, char **argv)
-{
- int i, len;
-#ifdef IP_TOS
- int tos;
-#endif
- char *bp, *host, *src, *suser;
-
- for (i = 0; i < argc - 1; i++) {
- if (!(src = colon(argv[i]))) { /* Local to local. */
- len = strlen(_PATH_CP) + strlen(argv[i]) +
- strlen(argv[argc - 1]) + 20;
- if (!(bp = malloc(len)))
- err(1, " ");
- snprintf(bp, len, "exec %s%s%s %s %s", _PATH_CP,
- iamrecursive ? " -r" : "", pflag ? " -p" : "",
- argv[i], argv[argc - 1]);
- if (susystem(bp, userid))
- ++errs;
- free(bp);
- continue;
- }
- *src++ = 0;
- if (*src == 0)
- src = ".";
- if ((host = strchr(argv[i], '@')) == NULL) {
-#ifdef __CYGWIN32__
- errx (1, "Sorry, you need to specify the username");
-#else
- host = argv[i];
- suser = pwd->pw_name;
-#endif
- } else {
- *host++ = 0;
- suser = argv[i];
- if (*suser == '\0')
-#ifdef __CYGWIN32__
- errx (1, "Sorry, you need to specify the username");
-#else
- suser = pwd->pw_name;
-#endif
- else if (!okname(suser))
- continue;
- }
- len = strlen(src) + CMDNEEDS + 20;
- if ((bp = malloc(len)) == NULL)
- err(1, " ");
- snprintf(bp, len, "%s -f %s", cmd, src);
- rem =
- use_kerberos ?
- kerberos(&host, bp,
-#ifndef __CYGWIN32__
- pwd->pw_name,
-#else
- suser,
-#endif
- suser) :
- rcmd(&host, port,
-#ifndef __CYGWIN32__
- pwd->pw_name,
-#else
- suser,
-#endif
- suser, bp, 0);
- free(bp);
- if (rem < 0) {
- ++errs;
- continue;
- }
- seteuid(userid);
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_THROUGHPUT;
- if (setsockopt(rem, IPPROTO_IP, IP_TOS, (void *)&tos,
- sizeof(int)) < 0)
- warn("TOS (ignored)");
-#endif /* IP_TOS */
- if (doencrypt)
- send_auth(host, dest_realm);
- sink(1, argv + argc - 1);
- seteuid(0);
- close(rem);
- rem = -1;
- }
-}
-
-
-int
-main(int argc, char **argv)
-{
- int ch, fflag, tflag;
- char *targ;
-
- set_progname(argv[0]);
- fflag = tflag = 0;
- while ((ch = getopt(argc, argv, OPTIONS)) != EOF)
- switch(ch) { /* User-visible flags. */
- case 'K':
- use_kerberos = 0;
- break;
- case 'k':
- dest_realm = dst_realm_buf;
- strncpy(dst_realm_buf, optarg, REALM_SZ);
- break;
- case 'x':
- doencrypt = 1;
- LEFT_JUSTIFIED = 1;
- break;
- case 'p':
- pflag = 1;
- break;
- case 'r':
- iamrecursive = 1;
- break;
- /* Server options. */
- case 'd':
- targetshouldbedirectory = 1;
- break;
- case 'f': /* "from" */
- iamremote = 1;
- fflag = 1;
- break;
- case 't': /* "to" */
- iamremote = 1;
- tflag = 1;
- break;
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-
- /* Rcp implements encrypted file transfer without using the
- * kshell service, pass 0 for no encryption */
- port = get_shell_port(use_kerberos, 0);
-
-#ifndef __CYGWIN32__
- if ((pwd = k_getpwuid(userid = getuid())) == NULL)
- errx(1, "unknown user %d", (int)userid);
-#endif
-
- rem = STDIN_FILENO; /* XXX */
-
- if (fflag) { /* Follow "protocol", send data. */
- if (doencrypt)
- answer_auth();
- response();
- setuid(userid);
- if (k_hasafs()) {
- /* Sometimes we will need cell specific tokens
- * to be able to read and write files, thus,
- * the token stuff done in rshd might not
- * suffice.
- */
- char cell[64];
- if (k_afs_cell_of_file(pwd->pw_dir,
- cell, sizeof(cell)) == 0)
- k_afsklog(cell, 0);
- k_afsklog(0, 0);
- }
- source(argc, argv);
- exit(errs);
- }
-
- if (tflag) { /* Receive data. */
- if (doencrypt)
- answer_auth();
- setuid(userid);
- if (k_hasafs()) {
- char cell[64];
- if (k_afs_cell_of_file(pwd->pw_dir,
- cell, sizeof(cell)) == 0)
- k_afsklog(cell, 0);
- k_afsklog(0, 0);
- }
- sink(argc, argv);
- exit(errs);
- }
-
- if (argc < 2)
- usage();
- if (argc > 2)
- targetshouldbedirectory = 1;
-
- rem = -1;
- /* Command to be executed on remote system using "rsh". */
- snprintf(cmd, sizeof(cmd),
- "rcp%s%s%s%s", iamrecursive ? " -r" : "",
- (doencrypt && use_kerberos ? " -x" : ""),
- pflag ? " -p" : "", targetshouldbedirectory ? " -d" : "");
-
- signal(SIGPIPE, lostconn);
-
- if ((targ = colon(argv[argc - 1]))) /* Dest is remote host. */
- toremote(targ, argc, argv);
- else {
- tolocal(argc, argv); /* Dest is local host. */
- if (targetshouldbedirectory)
- verifydir(argv[argc - 1]);
- }
- exit(errs);
-}
diff --git a/crypto/kerberosIV/appl/bsd/rcp_util.c b/crypto/kerberosIV/appl/bsd/rcp_util.c
deleted file mode 100644
index 6f0c5f06ea06..000000000000
--- a/crypto/kerberosIV/appl/bsd/rcp_util.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: rcp_util.c,v 1.7 1996/11/17 20:23:05 assar Exp $");
-
-char *
-colon(char *cp)
-{
- if (*cp == ':') /* Leading colon is part of file name. */
- return (0);
-
- for (; *cp; ++cp) {
- if (*cp == ':')
- return (cp);
- if (*cp == '/')
- return (0);
- }
- return (0);
-}
-
-int
-okname(char *cp0)
-{
- int c;
- char *cp;
-
- cp = cp0;
- do {
- c = *cp;
- if (c & 0200)
- goto bad;
- if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-')
- goto bad;
- } while (*++cp);
- return (1);
-
-bad: warnx("%s: invalid user name", cp0);
- return (0);
-}
-
-int
-susystem(char *s, int userid)
-{
- RETSIGTYPE (*istat)(), (*qstat)();
- int status;
- pid_t pid;
-
- pid = fork();
- switch (pid) {
- case -1:
- return (127);
-
- case 0:
- setuid(userid);
- execl(_PATH_BSHELL, "sh", "-c", s, NULL);
- _exit(127);
- }
- istat = signal(SIGINT, SIG_IGN);
- qstat = signal(SIGQUIT, SIG_IGN);
- if (waitpid(pid, &status, 0) < 0)
- status = -1;
- signal(SIGINT, istat);
- signal(SIGQUIT, qstat);
- return (status);
-}
diff --git a/crypto/kerberosIV/appl/bsd/rlogin.c b/crypto/kerberosIV/appl/bsd/rlogin.c
deleted file mode 100644
index 27aa8f032d37..000000000000
--- a/crypto/kerberosIV/appl/bsd/rlogin.c
+++ /dev/null
@@ -1,707 +0,0 @@
-/*
- * Copyright (c) 1983, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * rlogin - remote login
- */
-#include "bsd_locl.h"
-
-RCSID("$Id: rlogin.c,v 1.61 1997/05/25 01:14:47 assar Exp $");
-
-CREDENTIALS cred;
-Key_schedule schedule;
-int use_kerberos = 1, doencrypt;
-char dst_realm_buf[REALM_SZ], *dest_realm = NULL;
-
-#ifndef CCEQ
-#define c2uc(x) ((unsigned char) x)
-#define CCEQ__(val, c) (c == val ? val != c2uc(_POSIX_VDISABLE) : 0)
-#define CCEQ(val, c) CCEQ__(c2uc(val), c2uc(c))
-#endif
-
-int eight, rem;
-struct termios deftty;
-
-int noescape;
-char escapechar = '~';
-
-struct winsize winsize;
-
-int parent, rcvcnt;
-char rcvbuf[8 * 1024];
-
-int child;
-
-static void
-echo(char c)
-{
- char *p;
- char buf[8];
-
- p = buf;
- c &= 0177;
- *p++ = escapechar;
- if (c < ' ') {
- *p++ = '^';
- *p++ = c + '@';
- } else if (c == 0177) {
- *p++ = '^';
- *p++ = '?';
- } else
- *p++ = c;
- *p++ = '\r';
- *p++ = '\n';
- write(STDOUT_FILENO, buf, p - buf);
-}
-
-static void
-mode(int f)
-{
- struct termios tty;
-
- switch (f) {
- case 0:
- tcsetattr(0, TCSANOW, &deftty);
- break;
- case 1:
- tcgetattr(0, &deftty);
- tty = deftty;
- /* This is loosely derived from sys/compat/tty_compat.c. */
- tty.c_lflag &= ~(ECHO|ICANON|ISIG|IEXTEN);
- tty.c_iflag &= ~ICRNL;
- tty.c_oflag &= ~OPOST;
- tty.c_cc[VMIN] = 1;
- tty.c_cc[VTIME] = 0;
- if (eight) {
- tty.c_iflag &= IXOFF;
- tty.c_cflag &= ~(CSIZE|PARENB);
- tty.c_cflag |= CS8;
- }
- tcsetattr(0, TCSANOW, &tty);
- break;
- default:
- return;
- }
-}
-
-static void
-done(int status)
-{
- int w, wstatus;
-
- mode(0);
- if (child > 0) {
- /* make sure catch_child does not snap it up */
- signal(SIGCHLD, SIG_DFL);
- if (kill(child, SIGKILL) >= 0)
- while ((w = wait(&wstatus)) > 0 && w != child);
- }
- exit(status);
-}
-
-static
-RETSIGTYPE
-catch_child(int foo)
-{
- int status;
- int pid;
-
- for (;;) {
- pid = waitpid(-1, &status, WNOHANG|WUNTRACED);
- if (pid == 0)
- return;
- /* if the child (reader) dies, just quit */
- if (pid < 0 || (pid == child && !WIFSTOPPED(status)))
- done(WTERMSIG(status) | WEXITSTATUS(status));
- }
- /* NOTREACHED */
-}
-
-/*
- * There is a race in the SunOS5 rlogind. If the slave end has not yet
- * been opened by the child when setting tty size the size is reset to
- * zero when the child opens it. Therefore we send the window update
- * twice.
- */
-
-static int tty_kludge = 1;
-
-/* Return the number of OOB bytes processed. */
-static int
-oob_real(void)
-{
- struct termios tty;
- int atmark, n, out, rcvd;
- char waste[BUFSIZ], mark;
-
- out = O_RDWR;
- rcvd = 0;
- if (recv(rem, &mark, 1, MSG_OOB) < 0) {
- return -1;
- }
- if (mark & TIOCPKT_WINDOW) {
- /* Let server know about window size changes */
- kill(parent, SIGUSR1);
- } else if (tty_kludge) {
- /* Let server know about window size changes */
- kill(parent, SIGUSR1);
- tty_kludge = 0;
- }
- if (!eight && (mark & TIOCPKT_NOSTOP)) {
- tcgetattr(0, &tty);
- tty.c_iflag &= ~IXON;
- tcsetattr(0, TCSANOW, &tty);
- }
- if (!eight && (mark & TIOCPKT_DOSTOP)) {
- tcgetattr(0, &tty);
- tty.c_iflag |= (deftty.c_iflag & IXON);
- tcsetattr(0, TCSANOW, &tty);
- }
- if (mark & TIOCPKT_FLUSHWRITE) {
-#ifdef TCOFLUSH
- tcflush(1, TCOFLUSH);
-#else
- ioctl(1, TIOCFLUSH, (char *)&out);
-#endif
- for (;;) {
- if (ioctl(rem, SIOCATMARK, &atmark) < 0) {
- warn("ioctl");
- break;
- }
- if (atmark)
- break;
- n = read(rem, waste, sizeof (waste));
- if (n <= 0)
- break;
- }
- /*
- * Don't want any pending data to be output, so clear the recv
- * buffer. If we were hanging on a write when interrupted,
- * don't want it to restart. If we were reading, restart
- * anyway.
- */
- rcvcnt = 0;
- }
-
- /* oob does not do FLUSHREAD (alas!) */
- return 1;
-}
-
-/* reader: read from remote: line -> 1 */
-static int
-reader(void)
-{
- int n, remaining;
- char *bufp;
- int kludgep = 1;
-
- bufp = rcvbuf;
- for (;;) {
- fd_set readfds, exceptfds;
- while ((remaining = rcvcnt - (bufp - rcvbuf)) > 0) {
- n = write(STDOUT_FILENO, bufp, remaining);
- if (n < 0) {
- if (errno != EINTR)
- return (-1);
- continue;
- }
- bufp += n;
- }
- bufp = rcvbuf;
- rcvcnt = 0;
-
- FD_ZERO (&readfds);
- FD_SET (rem, &readfds);
- FD_ZERO (&exceptfds);
- if (kludgep)
- FD_SET (rem, &exceptfds);
- if (select(rem+1, &readfds, 0, &exceptfds, 0) == -1) {
- if (errno == EINTR)
- continue; /* Got signal */
- else
- errx(1, "select failed mysteriously");
- }
-
- if (!FD_ISSET(rem, &exceptfds) && !FD_ISSET(rem, &readfds)) {
- warnx("select: nothing to read?");
- continue;
- }
-
- if (FD_ISSET(rem, &exceptfds)) {
- int foo = oob_real ();
- if (foo >= 1)
- continue; /* First check if there is more OOB data. */
- else if (foo < 0)
- kludgep = 0;
- }
-
- if (!FD_ISSET(rem, &readfds))
- continue; /* Nothing to read. */
-
- kludgep = 1;
-#ifndef NOENCRYPTION
- if (doencrypt)
- rcvcnt = des_enc_read(rem, rcvbuf,
- sizeof(rcvbuf),
- schedule, &cred.session);
- else
-#endif
- rcvcnt = read(rem, rcvbuf, sizeof (rcvbuf));
- if (rcvcnt == 0)
- return (0);
- if (rcvcnt < 0) {
- if (errno == EINTR)
- continue;
- warn("read");
- return (-1);
- }
- }
-}
-
-/*
- * Send the window size to the server via the magic escape
- */
-static void
-sendwindow(void)
-{
- char obuf[4 + 4 * sizeof (u_int16_t)];
- unsigned short *p;
-
- p = (u_int16_t *)(obuf + 4);
- obuf[0] = 0377;
- obuf[1] = 0377;
- obuf[2] = 's';
- obuf[3] = 's';
- *p++ = htons(winsize.ws_row);
- *p++ = htons(winsize.ws_col);
-#ifdef HAVE_WS_XPIXEL
- *p++ = htons(winsize.ws_xpixel);
-#else
- *p++ = htons(0);
-#endif
-#ifdef HAVE_WS_YPIXEL
- *p++ = htons(winsize.ws_ypixel);
-#else
- *p++ = htons(0);
-#endif
-
-#ifndef NOENCRYPTION
- if(doencrypt)
- des_enc_write(rem, obuf, sizeof(obuf), schedule,
- &cred.session);
- else
-#endif
- write(rem, obuf, sizeof(obuf));
-}
-
-static
-RETSIGTYPE
-sigwinch(int foo)
-{
- struct winsize ws;
-
- if (get_window_size(0, &ws) == 0 &&
- memcmp(&ws, &winsize, sizeof(ws))) {
- winsize = ws;
- sendwindow();
- }
-}
-
-static void
-stop(int all)
-{
- mode(0);
- signal(SIGCHLD, SIG_IGN);
- kill(all ? 0 : getpid(), SIGTSTP);
- signal(SIGCHLD, catch_child);
- mode(1);
-#ifdef SIGWINCH
- kill(SIGWINCH, getpid()); /* check for size changes, if caught */
-#endif
-}
-
-/*
- * writer: write to remote: 0 -> line.
- * ~. terminate
- * ~^Z suspend rlogin process.
- * ~<delayed-suspend char> suspend rlogin process, but leave reader alone.
- */
-static void
-writer(void)
-{
- int bol, local, n;
- char c;
-
- bol = 1; /* beginning of line */
- local = 0;
- for (;;) {
- n = read(STDIN_FILENO, &c, 1);
- if (n <= 0) {
- if (n < 0 && errno == EINTR)
- continue;
- break;
- }
- /*
- * If we're at the beginning of the line and recognize a
- * command character, then we echo locally. Otherwise,
- * characters are echo'd remotely. If the command character
- * is doubled, this acts as a force and local echo is
- * suppressed.
- */
- if (bol) {
- bol = 0;
- if (!noescape && c == escapechar) {
- local = 1;
- continue;
- }
- } else if (local) {
- local = 0;
- if (c == '.' || CCEQ(deftty.c_cc[VEOF], c)) {
- echo(c);
- break;
- }
- if (CCEQ(deftty.c_cc[VSUSP], c)) {
- bol = 1;
- echo(c);
- stop(1);
- continue;
- }
-#ifdef VDSUSP
- /* Is VDSUSP called something else on Linux?
- * Perhaps VDELAY is a better thing? */
- if (CCEQ(deftty.c_cc[VDSUSP], c)) {
- bol = 1;
- echo(c);
- stop(0);
- continue;
- }
-#endif /* VDSUSP */
- if (c != escapechar)
-#ifndef NOENCRYPTION
- if (doencrypt)
- des_enc_write(rem, &escapechar,1, schedule, &cred.session);
- else
-#endif
- write(rem, &escapechar, 1);
- }
-
- if (doencrypt) {
-#ifdef NOENCRYPTION
- if (write(rem, &c, 1) == 0) {
-#else
- if (des_enc_write(rem, &c, 1, schedule, &cred.session) == 0) {
-#endif
- warnx("line gone");
- break;
- }
- } else
- if (write(rem, &c, 1) == 0) {
- warnx("line gone");
- break;
- }
- bol = CCEQ(deftty.c_cc[VKILL], c) ||
- CCEQ(deftty.c_cc[VEOF], c) ||
- CCEQ(deftty.c_cc[VINTR], c) ||
- CCEQ(deftty.c_cc[VSUSP], c) ||
- c == '\r' || c == '\n';
- }
-}
-
-static
-RETSIGTYPE
-lostpeer(int foo)
-{
- signal(SIGPIPE, SIG_IGN);
- warnx("\aconnection closed.\r");
- done(1);
-}
-
-/*
- * This is called in the parent when the reader process gets the
- * out-of-band (urgent) request to turn on the window-changing
- * protocol. It is signalled from the child(reader).
- */
-static
-RETSIGTYPE
-sigusr1(int foo)
-{
- /*
- * Now we now daemon supports winsize hack,
- */
- sendwindow();
-#ifdef SIGWINCH
- signal(SIGWINCH, sigwinch); /* so we start to support it */
-#endif
- SIGRETURN(0);
-}
-
-static void
-doit(void)
-{
- signal(SIGINT, SIG_IGN);
- signal(SIGHUP, SIG_IGN);
- signal(SIGQUIT, SIG_IGN);
-
- signal(SIGCHLD, catch_child);
-
- /*
- * Child sends parent this signal for window size hack.
- */
- signal(SIGUSR1, sigusr1);
-
- signal(SIGPIPE, lostpeer);
-
- mode(1);
- parent = getpid();
- child = fork();
- if (child == -1) {
- warn("fork");
- done(1);
- }
- if (child == 0) {
- signal(SIGCHLD, SIG_IGN);
- signal(SIGTTOU, SIG_IGN);
- if (reader() == 0)
- errx(1, "connection closed.\r");
- sleep(1);
- errx(1, "\aconnection closed.\r");
- }
-
- writer();
- warnx("closed connection.\r");
- done(0);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "usage: rlogin [ -%s]%s[-e char] [ -l username ] host\n",
- "8DEKLdx", " [-k realm] ");
- exit(1);
-}
-
-static u_int
-getescape(char *p)
-{
- long val;
- int len;
-
- if ((len = strlen(p)) == 1) /* use any single char, including '\' */
- return ((u_int)*p);
- /* otherwise, \nnn */
- if (*p == '\\' && len >= 2 && len <= 4) {
- val = strtol(++p, NULL, 8);
- for (;;) {
- if (!*++p)
- return ((u_int)val);
- if (*p < '0' || *p > '8')
- break;
- }
- }
- warnx("illegal option value -- e");
- usage();
- return 0;
-}
-
-int
-main(int argc, char **argv)
-{
- struct passwd *pw;
- int sv_port, user_port = 0;
- int argoff, ch, dflag, Dflag, one, uid;
- char *host, *user, term[1024];
-
- argoff = dflag = Dflag = 0;
- one = 1;
- host = user = NULL;
-
- set_progname(argv[0]);
-
- /* handle "rlogin host flags" */
- if (argc > 2 && argv[1][0] != '-') {
- host = argv[1];
- argoff = 1;
- }
-
-#define OPTIONS "8DEKLde:k:l:xp:"
- while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != EOF)
- switch(ch) {
- case '8':
- eight = 1;
- break;
- case 'D':
- Dflag = 1;
- break;
- case 'E':
- noescape = 1;
- break;
- case 'K':
- use_kerberos = 0;
- break;
- case 'd':
- dflag = 1;
- break;
- case 'e':
- noescape = 0;
- escapechar = getescape(optarg);
- break;
- case 'k':
- dest_realm = dst_realm_buf;
- strncpy(dest_realm, optarg, REALM_SZ);
- break;
- case 'l':
- user = optarg;
- break;
- case 'x':
- doencrypt = 1;
- break;
- case 'p':
- user_port = htons(atoi(optarg));
- break;
- case '?':
- default:
- usage();
- }
- optind += argoff;
- argc -= optind;
- argv += optind;
-
- /* if haven't gotten a host yet, do so */
- if (!host && !(host = *argv++))
- usage();
-
- if (*argv)
- usage();
-
- if (!(pw = k_getpwuid(uid = getuid())))
- errx(1, "unknown user id.");
- if (!user)
- user = pw->pw_name;
-
-
- if (user_port)
- sv_port = user_port;
- else
- sv_port = get_login_port(use_kerberos, doencrypt);
-
- {
- char *p = getenv("TERM");
- struct termios tty;
- int i;
-
- if (p == NULL)
- p = "network";
-
- if (tcgetattr(0, &tty) == 0
- && (i = speed_t2int (cfgetospeed(&tty))) > 0)
- snprintf (term, sizeof(term),
- "%s/%d",
- p, i);
- else
- snprintf (term, sizeof(term),
- "%s",
- p);
- }
-
- get_window_size(0, &winsize);
-
- try_connect:
- if (use_kerberos) {
- struct hostent *hp;
-
- /* Fully qualify hostname (needed for krb_realmofhost). */
- hp = gethostbyname(host);
- if (hp != NULL && !(host = strdup(hp->h_name))) {
- errno = ENOMEM;
- err(1, NULL);
- }
-
- rem = KSUCCESS;
- errno = 0;
- if (dest_realm == NULL)
- dest_realm = krb_realmofhost(host);
-
- if (doencrypt)
- rem = krcmd_mutual(&host, sv_port, user, term, 0,
- dest_realm, &cred, schedule);
- else
- rem = krcmd(&host, sv_port, user, term, 0,
- dest_realm);
- if (rem < 0) {
- use_kerberos = 0;
- if (user_port == 0)
- sv_port = get_login_port(use_kerberos,
- doencrypt);
- if (errno == ECONNREFUSED)
- warning("remote host doesn't support Kerberos");
- if (errno == ENOENT)
- warning("can't provide Kerberos auth data");
- goto try_connect;
- }
- } else {
- if (doencrypt)
- errx(1, "the -x flag requires Kerberos authentication.");
- if (geteuid() != 0)
- errx(1, "not installed setuid root, "
- "only root may use non kerberized rlogin");
- rem = rcmd(&host, sv_port, pw->pw_name, user, term, 0);
- }
-
- if (rem < 0)
- exit(1);
-
-#ifdef HAVE_SETSOCKOPT
-#ifdef SO_DEBUG
- if (dflag &&
- setsockopt(rem, SOL_SOCKET, SO_DEBUG, (void *)&one,
- sizeof(one)) < 0)
- warn("setsockopt");
-#endif
-#ifdef TCP_NODELAY
- if (Dflag &&
- setsockopt(rem, IPPROTO_TCP, TCP_NODELAY, (void *)&one,
- sizeof(one)) < 0)
- warn("setsockopt(TCP_NODELAY)");
-#endif
-#ifdef IP_TOS
- one = IPTOS_LOWDELAY;
- if (setsockopt(rem, IPPROTO_IP, IP_TOS, (void *)&one, sizeof(int)) < 0)
- warn("setsockopt(IP_TOS)");
-#endif /* IP_TOS */
-#endif /* HAVE_SETSOCKOPT */
-
- setuid(uid);
- doit();
- return 0;
-}
diff --git a/crypto/kerberosIV/appl/bsd/rlogind.c b/crypto/kerberosIV/appl/bsd/rlogind.c
deleted file mode 100644
index c5d807749675..000000000000
--- a/crypto/kerberosIV/appl/bsd/rlogind.c
+++ /dev/null
@@ -1,934 +0,0 @@
-/*-
- * Copyright (c) 1983, 1988, 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * remote login server:
- * \0
- * remuser\0
- * locuser\0
- * terminal_type/speed\0
- * data
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: rlogind.c,v 1.100 1997/05/25 01:15:20 assar Exp $");
-
-extern int __check_rhosts_file;
-
-char *INSECURE_MESSAGE =
-"\r\n*** Connection not encrypted! Communication may be eavesdropped. ***"
-"\r\n*** Use telnet or rlogin -x instead! ***\r\n";
-
-#ifndef NOENCRYPTION
-char *SECURE_MESSAGE =
-"This rlogin session is using DES encryption for all transmissions.\r\n";
-#else
-#define SECURE_MESSAGE INSECURE_MESSAGE
-#endif
-
-AUTH_DAT *kdata;
-KTEXT ticket;
-u_char auth_buf[sizeof(AUTH_DAT)];
-u_char tick_buf[sizeof(KTEXT_ST)];
-Key_schedule schedule;
-int doencrypt, retval, use_kerberos, vacuous;
-
-#define ARGSTR "Daip:lnkvxL:"
-
-char *env[2];
-#define NMAX 30
-char lusername[NMAX+1], rusername[NMAX+1];
-static char term[64] = "TERM=";
-#define ENVSIZE (sizeof("TERM=")-1) /* skip null for concatenation */
-int keepalive = 1;
-int check_all = 0;
-int no_delay = 0;
-
-struct passwd *pwd;
-
-static const char *new_login = _PATH_LOGIN;
-
-static void doit (int, struct sockaddr_in *);
-static int control (int, char *, int);
-static void protocol (int, int);
-static RETSIGTYPE cleanup (int);
-void fatal (int, const char *, int);
-static int do_rlogin (struct sockaddr_in *);
-static void setup_term (int);
-static int do_krb_login (struct sockaddr_in *);
-static void usage (void);
-
-static int
-readstream(int p, char *ibuf, int bufsize)
-{
-#ifndef HAVE_GETMSG
- return read(p, ibuf, bufsize);
-#else
- static int flowison = -1; /* current state of flow: -1 is unknown */
- static struct strbuf strbufc, strbufd;
- static unsigned char ctlbuf[BUFSIZ];
- static int use_read = 1;
-
- int flags = 0;
- int ret;
- struct termios tsp;
-
- struct iocblk ip;
- char vstop, vstart;
- int ixon;
- int newflow;
-
- if (use_read)
- {
- ret = read(p, ibuf, bufsize);
- if (ret < 0 && errno == EBADMSG)
- use_read = 0;
- else
- return ret;
- }
-
- strbufc.maxlen = BUFSIZ;
- strbufc.buf = (char *)ctlbuf;
- strbufd.maxlen = bufsize-1;
- strbufd.len = 0;
- strbufd.buf = ibuf+1;
- ibuf[0] = 0;
-
- ret = getmsg(p, &strbufc, &strbufd, &flags);
- if (ret < 0) /* error of some sort -- probably EAGAIN */
- return(-1);
-
- if (strbufc.len <= 0 || ctlbuf[0] == M_DATA) {
- /* data message */
- if (strbufd.len > 0) { /* real data */
- return(strbufd.len + 1); /* count header char */
- } else {
- /* nothing there */
- errno = EAGAIN;
- return(-1);
- }
- }
-
- /*
- * It's a control message. Return 1, to look at the flag we set
- */
-
- switch (ctlbuf[0]) {
- case M_FLUSH:
- if (ibuf[1] & FLUSHW)
- ibuf[0] = TIOCPKT_FLUSHWRITE;
- return(1);
-
- case M_IOCTL:
- memcpy(&ip, (ibuf+1), sizeof(ip));
-
- switch (ip.ioc_cmd) {
-#ifdef TCSETS
- case TCSETS:
- case TCSETSW:
- case TCSETSF:
- memcpy(&tsp,
- (ibuf+1 + sizeof(struct iocblk)),
- sizeof(tsp));
- vstop = tsp.c_cc[VSTOP];
- vstart = tsp.c_cc[VSTART];
- ixon = tsp.c_iflag & IXON;
- break;
-#endif
- default:
- errno = EAGAIN;
- return(-1);
- }
-
- newflow = (ixon && (vstart == 021) && (vstop == 023)) ? 1 : 0;
- if (newflow != flowison) { /* it's a change */
- flowison = newflow;
- ibuf[0] = newflow ? TIOCPKT_DOSTOP : TIOCPKT_NOSTOP;
- return(1);
- }
- }
-
- /* nothing worth doing anything about */
- errno = EAGAIN;
- return(-1);
-#endif
-}
-
-#ifdef HAVE_UTMPX_H
-static int
-logout(const char *line)
-{
- struct utmpx utmpx, *utxp;
- int ret = 1;
-
- setutxent ();
- memset(&utmpx, 0, sizeof(utmpx));
- utmpx.ut_type = USER_PROCESS;
- strncpy(utmpx.ut_line, line, sizeof(utmpx.ut_line));
- utxp = getutxline(&utmpx);
- if (utxp) {
- strcpy(utxp->ut_user, "");
- utxp->ut_type = DEAD_PROCESS;
-#ifdef _STRUCT___EXIT_STATUS
- utxp->ut_exit.__e_termination = 0;
- utxp->ut_exit.__e_exit = 0;
-#elif defined(__osf__) /* XXX */
- utxp->ut_exit.ut_termination = 0;
- utxp->ut_exit.ut_exit = 0;
-#else
- utxp->ut_exit.e_termination = 0;
- utxp->ut_exit.e_exit = 0;
-#endif
- gettimeofday(&utxp->ut_tv, NULL);
- pututxline(utxp);
-#ifdef WTMPX_FILE
- updwtmpx(WTMPX_FILE, utxp);
-#else
- ret = 0;
-#endif
- }
- endutxent();
- return ret;
-}
-#else
-static int
-logout(const char *line)
-{
- FILE *fp;
- struct utmp ut;
- int rval;
-
- if (!(fp = fopen(_PATH_UTMP, "r+")))
- return(0);
- rval = 1;
- while (fread(&ut, sizeof(struct utmp), 1, fp) == 1) {
- if (!ut.ut_name[0] ||
- strncmp(ut.ut_line, line, sizeof(ut.ut_line)))
- continue;
- memset(ut.ut_name, 0, sizeof(ut.ut_name));
-#ifdef HAVE_UT_HOST
- memset(ut.ut_host, 0, sizeof(ut.ut_host));
-#endif
- time(&ut.ut_time);
- fseek(fp, (long)-sizeof(struct utmp), SEEK_CUR);
- fwrite(&ut, sizeof(struct utmp), 1, fp);
- fseek(fp, (long)0, SEEK_CUR);
- rval = 0;
- }
- fclose(fp);
- return(rval);
-}
-#endif
-
-#ifndef HAVE_LOGWTMP
-static void
-logwtmp(const char *line, const char *name, const char *host)
-{
- struct utmp ut;
- struct stat buf;
- int fd;
-
- memset (&ut, 0, sizeof(ut));
- if ((fd = open(_PATH_WTMP, O_WRONLY|O_APPEND, 0)) < 0)
- return;
- if (!fstat(fd, &buf)) {
- strncpy(ut.ut_line, line, sizeof(ut.ut_line));
- strncpy(ut.ut_name, name, sizeof(ut.ut_name));
-#ifdef HAVE_UT_HOST
- strncpy(ut.ut_host, host, sizeof(ut.ut_host));
-#endif
-#ifdef HAVE_UT_PID
- ut.ut_pid = getpid();
-#endif
-#ifdef HAVE_UT_TYPE
- if(name[0])
- ut.ut_type = USER_PROCESS;
- else
- ut.ut_type = DEAD_PROCESS;
-#endif
- time(&ut.ut_time);
- if (write(fd, &ut, sizeof(struct utmp)) !=
- sizeof(struct utmp))
- ftruncate(fd, buf.st_size);
- }
- close(fd);
-}
-#endif
-
-int
-main(int argc, char **argv)
-{
- struct sockaddr_in from;
- int ch, fromlen, on;
- int interactive = 0;
- int portnum = 0;
-
- set_progname(argv[0]);
-
- openlog("rlogind", LOG_PID | LOG_CONS, LOG_AUTH);
-
- opterr = 0;
- while ((ch = getopt(argc, argv, ARGSTR)) != EOF)
- switch (ch) {
- case 'D':
- no_delay = 1;
- break;
- case 'a':
- break;
- case 'i':
- interactive = 1;
- break;
- case 'p':
- portnum = htons(atoi(optarg));
- break;
- case 'l':
- __check_rhosts_file = 0;
- break;
- case 'n':
- keepalive = 0;
- break;
- case 'k':
- use_kerberos = 1;
- break;
- case 'v':
- vacuous = 1;
- break;
- case 'x':
- doencrypt = 1;
- break;
- case 'L':
- new_login = optarg;
- break;
- case '?':
- default:
- usage();
- break;
- }
- argc -= optind;
- argv += optind;
-
- if (use_kerberos && vacuous) {
- usage();
- fatal(STDERR_FILENO, "only one of -k and -v allowed", 0);
- }
- if (interactive) {
- if(portnum == 0)
- portnum = get_login_port (use_kerberos, doencrypt);
- mini_inetd (portnum);
- }
-
- fromlen = sizeof (from);
- if (getpeername(0, (struct sockaddr *)&from, &fromlen) < 0) {
- syslog(LOG_ERR,"Can't get peer name of remote host: %m");
- fatal(STDERR_FILENO, "Can't get peer name of remote host", 1);
- }
- on = 1;
-#ifdef HAVE_SETSOCKOPT
-#ifdef SO_KEEPALIVE
- if (keepalive &&
- setsockopt(0, SOL_SOCKET, SO_KEEPALIVE, (void *)&on,
- sizeof (on)) < 0)
- syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
-#endif
-#ifdef TCP_NODELAY
- if (no_delay &&
- setsockopt(0, IPPROTO_TCP, TCP_NODELAY, (void *)&on,
- sizeof(on)) < 0)
- syslog(LOG_WARNING, "setsockopt (TCP_NODELAY): %m");
-#endif
-
-#ifdef IP_TOS
- on = IPTOS_LOWDELAY;
- if (setsockopt(0, IPPROTO_IP, IP_TOS, (void *)&on, sizeof(int)) < 0)
- syslog(LOG_WARNING, "setsockopt (IP_TOS): %m");
-#endif
-#endif /* HAVE_SETSOCKOPT */
- doit(0, &from);
- return 0;
-}
-
-int child;
-int netf;
-char line[MaxPathLen];
-int confirmed;
-
-struct winsize win = { 0, 0, 0, 0 };
-
-
-static void
-doit(int f, struct sockaddr_in *fromp)
-{
- int master, pid, on = 1;
- int authenticated = 0;
- char hostname[2 * MaxHostNameLen + 1];
- char c;
-
- alarm(60);
- read(f, &c, 1);
-
- if (c != 0)
- exit(1);
- if (vacuous)
- fatal(f, "Remote host requires Kerberos authentication", 0);
-
- alarm(0);
- inaddr2str (fromp->sin_addr, hostname, sizeof(hostname));
-
- if (use_kerberos) {
- retval = do_krb_login(fromp);
- if (retval == 0)
- authenticated++;
- else if (retval > 0)
- fatal(f, krb_get_err_text(retval), 0);
- write(f, &c, 1);
- confirmed = 1; /* we sent the null! */
- } else {
- fromp->sin_port = ntohs((u_short)fromp->sin_port);
- if (fromp->sin_family != AF_INET ||
- fromp->sin_port >= IPPORT_RESERVED ||
- fromp->sin_port < IPPORT_RESERVED/2) {
- syslog(LOG_NOTICE, "Connection from %s on illegal port",
- inet_ntoa(fromp->sin_addr));
- fatal(f, "Permission denied", 0);
- }
- ip_options_and_die (0, fromp);
- if (do_rlogin(fromp) == 0)
- authenticated++;
- }
- if (confirmed == 0) {
- write(f, "", 1);
- confirmed = 1; /* we sent the null! */
- }
-#ifndef NOENCRYPTION
- if (doencrypt)
- des_enc_write(f, SECURE_MESSAGE,
- strlen(SECURE_MESSAGE),
- schedule, &kdata->session);
- else
-#endif
- write(f, INSECURE_MESSAGE, strlen(INSECURE_MESSAGE));
- netf = f;
-
- pid = forkpty(&master, line, NULL, NULL);
- if (pid < 0) {
- if (errno == ENOENT)
- fatal(f, "Out of ptys", 0);
- else
- fatal(f, "Forkpty", 1);
- }
- if (pid == 0) {
- if (f > 2) /* f should always be 0, but... */
- close(f);
- setup_term(0);
- if (lusername[0] == '-'){
- syslog(LOG_ERR, "tried to pass user \"%s\" to login",
- lusername);
- fatal(STDERR_FILENO, "invalid user", 0);
- }
- if (authenticated) {
- if (use_kerberos && (pwd->pw_uid == 0))
- syslog(LOG_INFO|LOG_AUTH,
- "ROOT Kerberos login from %s on %s\n",
- krb_unparse_name_long(kdata->pname,
- kdata->pinst,
- kdata->prealm),
- hostname);
-
- execl(new_login, "login", "-p",
- "-h", hostname, "-f", "--", lusername, 0);
- } else
- execl(new_login, "login", "-p",
- "-h", hostname, "--", lusername, 0);
- fatal(STDERR_FILENO, new_login, 1);
- /*NOTREACHED*/
- }
- /*
- * If encrypted, don't turn on NBIO or the des read/write
- * routines will croak.
- */
-
- if (!doencrypt)
- ioctl(f, FIONBIO, &on);
- ioctl(master, FIONBIO, &on);
- ioctl(master, TIOCPKT, &on);
- signal(SIGTSTP, SIG_IGN);
- signal(SIGCHLD, cleanup);
- setsid();
- protocol(f, master);
- signal(SIGCHLD, SIG_IGN);
- cleanup(0);
-}
-
-const char magic[2] = { 0377, 0377 };
-
-/*
- * Handle a "control" request (signaled by magic being present)
- * in the data stream. For now, we are only willing to handle
- * window size changes.
- */
-static int
-control(int master, char *cp, int n)
-{
- struct winsize w;
- char *p;
- u_int32_t tmp;
-
- if (n < 4 + 4 * sizeof (u_int16_t) || cp[2] != 's' || cp[3] != 's')
- return (0);
-#ifdef TIOCSWINSZ
- p = cp + 4;
- p += krb_get_int(p, &tmp, 2, 0);
- w.ws_row = tmp;
- p += krb_get_int(p, &tmp, 2, 0);
- w.ws_col = tmp;
-
- p += krb_get_int(p, &tmp, 2, 0);
-#ifdef HAVE_WS_XPIXEL
- w.ws_xpixel = tmp;
-#endif
- p += krb_get_int(p, &tmp, 2, 0);
-#ifdef HAVE_WS_YPIXEL
- w.ws_ypixel = tmp;
-#endif
- ioctl(master, TIOCSWINSZ, &w);
-#endif
- return p - cp;
-}
-
-static
-void
-send_oob(int fd, char c)
-{
- static char last_oob = 0xFF;
-
-#if (SunOS == 5) || defined(__hpux)
- /*
- * PSoriasis and HP-UX always send TIOCPKT_DOSTOP at startup so we
- * can avoid sending OOB data and thus not break on Linux by merging
- * TIOCPKT_DOSTOP into the first TIOCPKT_WINDOW.
- */
- static int oob_kludge = 2;
- if (oob_kludge == 2)
- {
- oob_kludge--; /* First time send nothing */
- return;
- }
- else if (oob_kludge == 1)
- {
- oob_kludge--; /* Second time merge TIOCPKT_WINDOW */
- c |= TIOCPKT_WINDOW;
- }
-#endif
-
-#define pkcontrol(c) ((c)&(TIOCPKT_FLUSHWRITE|TIOCPKT_NOSTOP|TIOCPKT_DOSTOP))
- c = pkcontrol(c);
- /* Multiple OOB data breaks on Linux, avoid it when possible. */
- if (c != last_oob)
- send(fd, &c, 1, MSG_OOB);
- last_oob = c;
-}
-
-/*
- * rlogin "protocol" machine.
- */
-static void
-protocol(int f, int master)
-{
- char pibuf[1024+1], fibuf[1024], *pbp, *fbp;
- int pcc = 0, fcc = 0;
- int cc, nfd, n;
- char cntl;
- unsigned char oob_queue = 0;
-
- /*
- * Must ignore SIGTTOU, otherwise we'll stop
- * when we try and set slave pty's window shape
- * (our controlling tty is the master pty).
- */
- signal(SIGTTOU, SIG_IGN);
-
- send_oob(f, TIOCPKT_WINDOW); /* indicate new rlogin */
-
- if (f > master)
- nfd = f + 1;
- else
- nfd = master + 1;
- if (nfd > FD_SETSIZE) {
- syslog(LOG_ERR, "select mask too small, increase FD_SETSIZE");
- fatal(f, "internal error (select mask too small)", 0);
- }
- for (;;) {
- fd_set ibits, obits, ebits, *omask;
-
- FD_ZERO(&ebits);
- FD_ZERO(&ibits);
- FD_ZERO(&obits);
- omask = (fd_set *)NULL;
- if (fcc) {
- FD_SET(master, &obits);
- omask = &obits;
- } else
- FD_SET(f, &ibits);
- if (pcc >= 0)
- if (pcc) {
- FD_SET(f, &obits);
- omask = &obits;
- } else
- FD_SET(master, &ibits);
- FD_SET(master, &ebits);
- if ((n = select(nfd, &ibits, omask, &ebits, 0)) < 0) {
- if (errno == EINTR)
- continue;
- fatal(f, "select", 1);
- }
- if (n == 0) {
- /* shouldn't happen... */
- sleep(5);
- continue;
- }
- if (FD_ISSET(master, &ebits)) {
- cc = readstream(master, &cntl, 1);
- if (cc == 1 && pkcontrol(cntl)) {
-#if 0 /* Kludge around */
- send_oob(f, cntl);
-#endif
- oob_queue = cntl;
- if (cntl & TIOCPKT_FLUSHWRITE) {
- pcc = 0;
- FD_CLR(master, &ibits);
- }
- }
- }
- if (FD_ISSET(f, &ibits)) {
-#ifndef NOENCRYPTION
- if (doencrypt)
- fcc = des_enc_read(f, fibuf,
- sizeof(fibuf),
- schedule, &kdata->session);
- else
-#endif
- fcc = read(f, fibuf, sizeof(fibuf));
- if (fcc < 0 && errno == EWOULDBLOCK)
- fcc = 0;
- else {
- char *cp;
- int left, n;
-
- if (fcc <= 0)
- break;
- fbp = fibuf;
-
- top:
- for (cp = fibuf; cp < fibuf+fcc-1; cp++)
- if (cp[0] == magic[0] &&
- cp[1] == magic[1]) {
- left = fcc - (cp-fibuf);
- n = control(master, cp, left);
- if (n) {
- left -= n;
- if (left > 0)
- memmove(cp, cp+n, left);
- fcc -= n;
- goto top; /* n^2 */
- }
- }
- FD_SET(master, &obits); /* try write */
- }
- }
-
- if (FD_ISSET(master, &obits) && fcc > 0) {
- cc = write(master, fbp, fcc);
- if (cc > 0) {
- fcc -= cc;
- fbp += cc;
- }
- }
-
- if (FD_ISSET(master, &ibits)) {
- pcc = readstream(master, pibuf, sizeof (pibuf));
- pbp = pibuf;
- if (pcc < 0 && errno == EWOULDBLOCK)
- pcc = 0;
- else if (pcc <= 0)
- break;
- else if (pibuf[0] == 0) {
- pbp++, pcc--;
- if (!doencrypt)
- FD_SET(f, &obits); /* try write */
- } else {
- if (pkcontrol(pibuf[0])) {
- oob_queue = pibuf[0];
-#if 0 /* Kludge around */
- send_oob(f, pibuf[0]);
-#endif
- }
- pcc = 0;
- }
- }
- if ((FD_ISSET(f, &obits)) && pcc > 0) {
-#ifndef NOENCRYPTION
- if (doencrypt)
- cc = des_enc_write(f, pbp, pcc, schedule, &kdata->session);
- else
-#endif
- cc = write(f, pbp, pcc);
- if (cc < 0 && errno == EWOULDBLOCK) {
- /*
- * This happens when we try write after read
- * from p, but some old kernels balk at large
- * writes even when select returns true.
- */
- if (!FD_ISSET(master, &ibits))
- sleep(5);
- continue;
- }
- if (cc > 0) {
- pcc -= cc;
- pbp += cc;
- /* Only send urg data when normal data
- * has just been sent.
- * Linux has deep problems with more
- * than one byte of OOB data.
- */
- if (oob_queue) {
- send_oob (f, oob_queue);
- oob_queue = 0;
- }
- }
- }
- }
-}
-
-static RETSIGTYPE
-cleanup(int signo)
-{
- char *p = clean_ttyname (line);
-
- if (logout(p) == 0)
- logwtmp(p, "", "");
- chmod(line, 0666);
- chown(line, 0, 0);
- *p = 'p';
- chmod(line, 0666);
- chown(line, 0, 0);
- shutdown(netf, 2);
- signal(SIGHUP, SIG_IGN);
-#ifdef HAVE_VHANGUP
- vhangup();
-#endif /* HAVE_VHANGUP */
- exit(1);
-}
-
-void
-fatal(int f, const char *msg, int syserr)
-{
- int len;
- char buf[BUFSIZ], *bp = buf;
-
- /*
- * Prepend binary one to message if we haven't sent
- * the magic null as confirmation.
- */
- if (!confirmed)
- *bp++ = '\01'; /* error indicator */
- if (syserr)
- snprintf(bp, sizeof(buf) - (bp - buf),
- "rlogind: %s: %s.\r\n",
- msg, strerror(errno));
- else
- snprintf(bp, sizeof(buf) - (bp - buf),
- "rlogind: %s.\r\n", msg);
- len = strlen(bp);
-#ifndef NOENCRYPTION
- if (doencrypt)
- des_enc_write(f, buf, bp + len - buf, schedule, &kdata->session);
- else
-#endif
- write(f, buf, bp + len - buf);
- exit(1);
-}
-
-static void
-xgetstr(char *buf, int cnt, char *errmsg)
-{
- char c;
-
- do {
- if (read(0, &c, 1) != 1)
- exit(1);
- if (--cnt < 0)
- fatal(STDOUT_FILENO, errmsg, 0);
- *buf++ = c;
- } while (c != 0);
-}
-
-static int
-do_rlogin(struct sockaddr_in *dest)
-{
- xgetstr(rusername, sizeof(rusername), "remuser too long");
- xgetstr(lusername, sizeof(lusername), "locuser too long");
- xgetstr(term+ENVSIZE, sizeof(term)-ENVSIZE, "Terminal type too long");
-
- pwd = k_getpwnam(lusername);
- if (pwd == NULL)
- return (-1);
- if (pwd->pw_uid == 0 && strcmp("root", lusername) != 0)
- {
- syslog(LOG_ALERT, "NIS attack, user %s has uid 0", lusername);
- return (-1);
- }
- return (iruserok(dest->sin_addr.s_addr,
- (pwd->pw_uid == 0),
- rusername,
- lusername));
-}
-
-static void
-setup_term(int fd)
-{
- char *cp = strchr(term+ENVSIZE, '/');
- char *speed;
- struct termios tt;
-
- tcgetattr(fd, &tt);
- if (cp) {
- int s;
-
- *cp++ = '\0';
- speed = cp;
- cp = strchr(speed, '/');
- if (cp)
- *cp++ = '\0';
- s = int2speed_t (atoi (speed));
- if (s > 0) {
- cfsetospeed (&tt, s);
- cfsetispeed (&tt, s);
- }
- }
-
- tt.c_iflag &= ~INPCK;
- tt.c_iflag |= ICRNL|IXON;
- tt.c_oflag |= OPOST|ONLCR;
-#ifdef TAB3
- tt.c_oflag |= TAB3;
-#endif /* TAB3 */
-#ifdef ONLRET
- tt.c_oflag &= ~ONLRET;
-#endif /* ONLRET */
- tt.c_lflag |= (ECHO|ECHOE|ECHOK|ISIG|ICANON);
- tt.c_cflag &= ~PARENB;
- tt.c_cflag |= CS8;
- tt.c_cc[VMIN] = 1;
- tt.c_cc[VTIME] = 0;
- tt.c_cc[VEOF] = CEOF;
- tcsetattr(fd, TCSAFLUSH, &tt);
-
- env[0] = term;
- env[1] = 0;
- environ = env;
-}
-
-#define VERSION_SIZE 9
-
-/*
- * Do the remote kerberos login to the named host with the
- * given inet address
- *
- * Return 0 on valid authorization
- * Return -1 on valid authentication, no authorization
- * Return >0 for error conditions
- */
-static int
-do_krb_login(struct sockaddr_in *dest)
-{
- int rc;
- char instance[INST_SZ], version[VERSION_SIZE];
- long authopts = 0L; /* !mutual */
- struct sockaddr_in faddr;
-
- kdata = (AUTH_DAT *) auth_buf;
- ticket = (KTEXT) tick_buf;
-
- k_getsockinst(0, instance, sizeof(instance));
-
- if (doencrypt) {
- rc = sizeof(faddr);
- if (getsockname(0, (struct sockaddr *)&faddr, &rc))
- return (-1);
- authopts = KOPT_DO_MUTUAL;
- rc = krb_recvauth(
- authopts, 0,
- ticket, "rcmd",
- instance, dest, &faddr,
- kdata, "", schedule, version);
- des_set_key(&kdata->session, schedule);
-
- } else
- rc = krb_recvauth(
- authopts, 0,
- ticket, "rcmd",
- instance, dest, (struct sockaddr_in *) 0,
- kdata, "", 0, version);
-
- if (rc != KSUCCESS)
- return (rc);
-
- xgetstr(lusername, sizeof(lusername), "locuser");
- /* get the "cmd" in the rcmd protocol */
- xgetstr(term+ENVSIZE, sizeof(term)-ENVSIZE, "Terminal type");
-
- pwd = k_getpwnam(lusername);
- if (pwd == NULL)
- return (-1);
- if (pwd->pw_uid == 0 && strcmp("root", lusername) != 0)
- {
- syslog(LOG_ALERT, "NIS attack, user %s has uid 0", lusername);
- return (-1);
- }
-
- /* returns nonzero for no access */
- if (kuserok(kdata, lusername) != 0)
- return (-1);
-
- return (0);
-
-}
-
-static void
-usage(void)
-{
- syslog(LOG_ERR,
- "usage: rlogind [-Dailn] [-p port] [-x] [-L login] [-k | -v]");
- exit(1);
-}
diff --git a/crypto/kerberosIV/appl/bsd/rsh.c b/crypto/kerberosIV/appl/bsd/rsh.c
deleted file mode 100644
index 329ebf73ffe5..000000000000
--- a/crypto/kerberosIV/appl/bsd/rsh.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*-
- * Copyright (c) 1983, 1990 The Regents of the University of California.
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID("$Id: rsh.c,v 1.35 1997/03/30 18:20:22 joda Exp $");
-
-CREDENTIALS cred;
-Key_schedule schedule;
-int use_kerberos = 1, doencrypt;
-char dst_realm_buf[REALM_SZ], *dest_realm;
-
-/*
- * rsh - remote shell
- */
-int rfd2;
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "usage: rsh [-ndKx] [-k realm] [-l login] host [command]\n");
- exit(1);
-}
-
-static char *
-copyargs(char **argv)
-{
- int cc;
- char **ap, *p;
- char *args;
-
- cc = 0;
- for (ap = argv; *ap; ++ap)
- cc += strlen(*ap) + 1;
- if (!(args = malloc(cc)))
- errx(1, "Out of memory.");
- for (p = args, ap = argv; *ap; ++ap) {
- strcpy(p, *ap);
- for (p = strcpy(p, *ap); *p; ++p);
- if (ap[1])
- *p++ = ' ';
- }
- return(args);
-}
-
-static RETSIGTYPE
-sendsig(int signo_)
-{
- char signo = signo_;
-#ifndef NOENCRYPTION
- if (doencrypt)
- des_enc_write(rfd2, &signo, 1, schedule, &cred.session);
- else
-#endif
- write(rfd2, &signo, 1);
-}
-
-static void
-talk(int nflag, sigset_t omask, int pid, int rem)
-{
- int cc, wc;
- char *bp;
- fd_set readfrom, ready, rembits;
- char buf[BUFSIZ];
-
- if (pid == 0) {
- if (nflag)
- goto done;
-
- close(rfd2);
-
- reread: errno = 0;
- if ((cc = read(0, buf, sizeof buf)) <= 0)
- goto done;
- bp = buf;
-
- rewrite: FD_ZERO(&rembits);
- FD_SET(rem, &rembits);
- if (select(16, 0, &rembits, 0, 0) < 0) {
- if (errno != EINTR)
- err(1, "select");
- goto rewrite;
- }
- if (!FD_ISSET(rem, &rembits))
- goto rewrite;
-#ifndef NOENCRYPTION
- if (doencrypt)
- wc = des_enc_write(rem, bp, cc, schedule, &cred.session);
- else
-#endif
- wc = write(rem, bp, cc);
- if (wc < 0) {
- if (errno == EWOULDBLOCK)
- goto rewrite;
- goto done;
- }
- bp += wc;
- cc -= wc;
- if (cc == 0)
- goto reread;
- goto rewrite;
- done:
- shutdown(rem, 1);
- exit(0);
- }
-
- if (sigprocmask(SIG_SETMASK, &omask, 0) != 0)
- warn("sigprocmask");
- FD_ZERO(&readfrom);
- FD_SET(rem, &readfrom);
- FD_SET(rfd2, &readfrom);
- do {
- ready = readfrom;
- if (select(16, &ready, 0, 0, 0) < 0) {
- if (errno != EINTR)
- err(1, "select");
- continue;
- }
- if (FD_ISSET(rfd2, &ready)) {
- errno = 0;
-#ifndef NOENCRYPTION
- if (doencrypt)
- cc = des_enc_read(rfd2, buf, sizeof buf,
- schedule, &cred.session);
- else
-#endif
- cc = read(rfd2, buf, sizeof buf);
- if (cc <= 0) {
- if (errno != EWOULDBLOCK)
- FD_CLR(rfd2, &readfrom);
- } else
- write(2, buf, cc);
- }
- if (FD_ISSET(rem, &ready)) {
- errno = 0;
-#ifndef NOENCRYPTION
- if (doencrypt)
- cc = des_enc_read(rem, buf, sizeof buf,
- schedule, &cred.session);
- else
-#endif
- cc = read(rem, buf, sizeof buf);
- if (cc <= 0) {
- if (errno != EWOULDBLOCK)
- FD_CLR(rem, &readfrom);
- } else
- write(1, buf, cc);
- }
- } while (FD_ISSET(rfd2, &readfrom) || FD_ISSET(rem, &readfrom));
-}
-
-int
-main(int argc, char **argv)
-{
- struct passwd *pw;
- int sv_port;
- sigset_t omask;
- int argoff, ch, dflag, nflag, nfork, one, pid, rem, uid;
- char *args, *host, *user, *local_user;
-
- argoff = dflag = nflag = nfork = 0;
- one = 1;
- host = user = NULL;
- pid = 1;
-
- set_progname(argv[0]);
-
- /* handle "rsh host flags" */
- if (!host && argc > 2 && argv[1][0] != '-') {
- host = argv[1];
- argoff = 1;
- }
-
-#define OPTIONS "+8KLde:k:l:nwx"
- while ((ch = getopt(argc - argoff, argv + argoff, OPTIONS)) != EOF)
- switch(ch) {
- case 'K':
- use_kerberos = 0;
- break;
- case 'L': /* -8Lew are ignored to allow rlogin aliases */
- case 'e':
- case 'w':
- case '8':
- break;
- case 'd':
- dflag = 1;
- break;
- case 'l':
- user = optarg;
- break;
- case 'k':
- dest_realm = dst_realm_buf;
- strncpy(dest_realm, optarg, REALM_SZ);
- break;
- case 'n':
- nflag = nfork = 1;
- break;
- case 'x':
- doencrypt = 1;
- break;
- case '?':
- default:
- usage();
- }
- optind += argoff;
-
- /* if haven't gotten a host yet, do so */
- if (!host && !(host = argv[optind++]))
- usage();
-
- /* if no further arguments, must have been called as rlogin. */
- if (!argv[optind]) {
- *argv = "rlogin";
- setuid(getuid());
- execv(_PATH_RLOGIN, argv);
- err(1, "can't exec %s", _PATH_RLOGIN);
- }
-
- argc -= optind;
- argv += optind;
-
-#ifndef __CYGWIN32__
- if (!(pw = k_getpwuid(uid = getuid())))
- errx(1, "unknown user id.");
- local_user = pw->pw_name;
- if (!user)
- user = local_user;
-#else
- if (!user)
- errx(1, "Sorry, you need to specify the username (with -l)");
- local_user = user;
-#endif
-
- /* -n must still fork but does not turn of the -n functionality */
- if (doencrypt)
- nfork = 0;
-
- args = copyargs(argv);
-
- sv_port=get_shell_port(use_kerberos, doencrypt);
-
-try_connect:
- if (use_kerberos) {
- rem = KSUCCESS;
- errno = 0;
- if (dest_realm == NULL)
- dest_realm = krb_realmofhost(host);
-
- if (doencrypt)
- rem = krcmd_mutual(&host, sv_port, user, args,
- &rfd2, dest_realm, &cred, schedule);
- else
- rem = krcmd(&host, sv_port, user, args, &rfd2,
- dest_realm);
- if (rem < 0) {
- if (errno == ECONNREFUSED)
- warning("remote host doesn't support Kerberos");
- if (errno == ENOENT)
- warning("can't provide Kerberos auth data");
- use_kerberos = 0;
- sv_port=get_shell_port(use_kerberos, doencrypt);
- goto try_connect;
- }
- } else {
- if (doencrypt)
- errx(1, "the -x flag requires Kerberos authentication.");
- if (geteuid() != 0)
- errx(1, "not installed setuid root, "
- "only root may use non kerberized rsh");
- rem = rcmd(&host, sv_port, local_user, user, args, &rfd2);
- }
-
- if (rem < 0)
- exit(1);
-
- if (rfd2 < 0)
- errx(1, "can't establish stderr.");
-#if defined(SO_DEBUG) && defined(HAVE_SETSOCKOPT)
- if (dflag) {
- if (setsockopt(rem, SOL_SOCKET, SO_DEBUG, (void *)&one,
- sizeof(one)) < 0)
- warn("setsockopt");
- if (setsockopt(rfd2, SOL_SOCKET, SO_DEBUG, (void *)&one,
- sizeof(one)) < 0)
- warn("setsockopt");
- }
-#endif
-
- setuid(uid);
- {
- sigset_t sigmsk;
- sigemptyset(&sigmsk);
- sigaddset(&sigmsk, SIGINT);
- sigaddset(&sigmsk, SIGQUIT);
- sigaddset(&sigmsk, SIGTERM);
- if (sigprocmask(SIG_BLOCK, &sigmsk, &omask) != 0)
- warn("sigprocmask");
- }
- if (signal(SIGINT, SIG_IGN) != SIG_IGN)
- signal(SIGINT, sendsig);
- if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)
- signal(SIGQUIT, sendsig);
- if (signal(SIGTERM, SIG_IGN) != SIG_IGN)
- signal(SIGTERM, sendsig);
-
- if (!nfork) {
- pid = fork();
- if (pid < 0)
- err(1, "fork");
- }
-
- if (!doencrypt) {
- ioctl(rfd2, FIONBIO, &one);
- ioctl(rem, FIONBIO, &one);
- }
-
- talk(nflag, omask, pid, rem);
-
- if (!nflag)
- kill(pid, SIGKILL);
- exit(0);
-}
diff --git a/crypto/kerberosIV/appl/bsd/rshd.c b/crypto/kerberosIV/appl/bsd/rshd.c
deleted file mode 100644
index 75ca1df454ba..000000000000
--- a/crypto/kerberosIV/appl/bsd/rshd.c
+++ /dev/null
@@ -1,635 +0,0 @@
-/*-
- * Copyright (c) 1988, 1989, 1992, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * remote shell server:
- * [port]\0
- * remuser\0
- * locuser\0
- * command\0
- * data
- */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: rshd.c,v 1.51 1997/05/13 09:42:39 bg Exp $");
-
-extern char *__rcmd_errstr; /* syslog hook from libc/net/rcmd.c. */
-extern int __check_rhosts_file;
-
-static int keepalive = 1;
-static int log_success; /* If TRUE, log all successful accesses */
-static int new_pag = 1; /* Put process in new PAG by default */
-static int no_inetd = 0;
-static int sent_null;
-
-static void doit (struct sockaddr_in *);
-static void error (const char *, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-static void usage (void);
-
-#define VERSION_SIZE 9
-#define SECURE_MESSAGE "This rsh session is using DES encryption for all transmissions.\r\n"
-#define OPTIONS "alnkvxLp:Pi"
-AUTH_DAT authbuf;
-KTEXT_ST tickbuf;
-int doencrypt, use_kerberos, vacuous;
-Key_schedule schedule;
-
-int
-main(int argc, char *argv[])
-{
- struct linger linger;
- int ch, on = 1, fromlen;
- struct sockaddr_in from;
- int portnum = 0;
-
- set_progname(argv[0]);
-
- openlog("rshd", LOG_PID | LOG_ODELAY, LOG_DAEMON);
-
- opterr = 0;
- while ((ch = getopt(argc, argv, OPTIONS)) != EOF)
- switch (ch) {
- case 'a':
- break;
- case 'l':
- __check_rhosts_file = 0;
- break;
- case 'n':
- keepalive = 0;
- break;
- case 'k':
- use_kerberos = 1;
- break;
-
- case 'v':
- vacuous = 1;
- break;
-
- case 'x':
- doencrypt = 1;
- break;
- case 'L':
- log_success = 1;
- break;
- case 'p':
- portnum = htons(atoi(optarg));
- break;
- case 'P':
- new_pag = 0;
- break;
- case 'i':
- no_inetd = 1;
- break;
- case '?':
- default:
- usage();
- break;
- }
-
- argc -= optind;
- argv += optind;
-
- if (use_kerberos && vacuous) {
- syslog(LOG_ERR, "only one of -k and -v allowed");
- exit(2);
- }
- if (doencrypt && !use_kerberos) {
- syslog(LOG_ERR, "-k is required for -x");
- exit(2);
- }
-
- if (no_inetd) {
- if(portnum == 0)
- portnum = get_shell_port (use_kerberos, doencrypt);
- mini_inetd (portnum);
- }
-
- fromlen = sizeof (from);
- if (getpeername(0, (struct sockaddr *)&from, &fromlen) < 0) {
- syslog(LOG_ERR, "getpeername: %m");
- _exit(1);
- }
-#ifdef HAVE_SETSOCKOPT
-#ifdef SO_KEEPALIVE
- if (keepalive &&
- setsockopt(0, SOL_SOCKET, SO_KEEPALIVE, (void *)&on,
- sizeof(on)) < 0)
- syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
-#endif
-#ifdef SO_LINGER
- linger.l_onoff = 1;
- linger.l_linger = 60; /* XXX */
- if (setsockopt(0, SOL_SOCKET, SO_LINGER, (void *)&linger,
- sizeof (linger)) < 0)
- syslog(LOG_WARNING, "setsockopt (SO_LINGER): %m");
-#endif
-#endif /* HAVE_SETSOCKOPT */
- doit(&from);
- /* NOTREACHED */
- return 0;
-}
-
-char username[20] = "USER=";
-char homedir[64] = "HOME=";
-char shell[64] = "SHELL=";
-char path[100] = "PATH=";
-char *envinit[] =
-{homedir, shell, path, username, 0};
-
-static void
-xgetstr(char *buf, int cnt, char *err)
-{
- char c;
-
- do {
- if (read(STDIN_FILENO, &c, 1) != 1)
- exit(1);
- *buf++ = c;
- if (--cnt == 0) {
- error("%s too long\n", err);
- exit(1);
- }
- } while (c != 0);
-}
-
-static void
-doit(struct sockaddr_in *fromp)
-{
- struct passwd *pwd;
- u_short port;
- fd_set ready, readfrom;
- int cc, nfd, pv[2], pid, s;
- int one = 1;
- const char *errorhost = "";
- char *errorstr;
- char *cp, sig, buf[BUFSIZ];
- char cmdbuf[NCARGS+1], locuser[16], remuser[16];
- char remotehost[2 * MaxHostNameLen + 1];
-
- AUTH_DAT *kdata;
- KTEXT ticket;
- char instance[INST_SZ], version[VERSION_SIZE];
- struct sockaddr_in fromaddr;
- int rc;
- long authopts;
- int pv1[2], pv2[2];
- fd_set wready, writeto;
-
- fromaddr = *fromp;
-
- signal(SIGINT, SIG_DFL);
- signal(SIGQUIT, SIG_DFL);
- signal(SIGTERM, SIG_DFL);
-#ifdef DEBUG
- { int t = open(_PATH_TTY, 2);
- if (t >= 0) {
- ioctl(t, TIOCNOTTY, (char *)0);
- close(t);
- }
- }
-#endif
- fromp->sin_port = ntohs((u_short)fromp->sin_port);
- if (fromp->sin_family != AF_INET) {
- syslog(LOG_ERR, "malformed \"from\" address (af %d)\n",
- fromp->sin_family);
- exit(1);
- }
-
-
- if (!use_kerberos) {
- ip_options_and_die (0, fromp);
- if (fromp->sin_port >= IPPORT_RESERVED ||
- fromp->sin_port < IPPORT_RESERVED/2) {
- syslog(LOG_NOTICE|LOG_AUTH,
- "Connection from %s on illegal port %u",
- inet_ntoa(fromp->sin_addr),
- fromp->sin_port);
- exit(1);
- }
- }
-
- alarm(60);
- port = 0;
- for (;;) {
- char c;
- if ((cc = read(STDIN_FILENO, &c, 1)) != 1) {
- if (cc < 0)
- syslog(LOG_NOTICE, "read: %m");
- shutdown(0, 1+1);
- exit(1);
- }
- if (c== 0)
- break;
- port = port * 10 + c - '0';
- }
-
- alarm(0);
- if (port != 0) {
- int lport = IPPORT_RESERVED - 1;
- s = rresvport(&lport);
- if (s < 0) {
- syslog(LOG_ERR, "can't get stderr port: %m");
- exit(1);
- }
- if (!use_kerberos)
- if (port >= IPPORT_RESERVED) {
- syslog(LOG_ERR, "2nd port not reserved\n");
- exit(1);
- }
- fromp->sin_port = htons(port);
- if (connect(s, (struct sockaddr *)fromp, sizeof (*fromp)) < 0) {
- syslog(LOG_INFO, "connect second port %d: %m", port);
- exit(1);
- }
- }
-
- if (vacuous) {
- error("rshd: remote host requires Kerberos authentication\n");
- exit(1);
- }
-
- errorstr = NULL;
- inaddr2str (fromp->sin_addr, remotehost, sizeof(remotehost));
-
- if (use_kerberos) {
- kdata = &authbuf;
- ticket = &tickbuf;
- authopts = 0L;
- k_getsockinst(0, instance, sizeof(instance));
- version[VERSION_SIZE - 1] = '\0';
- if (doencrypt) {
- struct sockaddr_in local_addr;
- rc = sizeof(local_addr);
- if (getsockname(0, (struct sockaddr *)&local_addr,
- &rc) < 0) {
- syslog(LOG_ERR, "getsockname: %m");
- error("rlogind: getsockname: %m");
- exit(1);
- }
- authopts = KOPT_DO_MUTUAL;
- rc = krb_recvauth(authopts, 0, ticket,
- "rcmd", instance, &fromaddr,
- &local_addr, kdata, "", schedule,
- version);
-#ifndef NOENCRYPTION
- des_set_key(&kdata->session, schedule);
-#else
- memset(schedule, 0, sizeof(schedule));
-#endif
- } else
- rc = krb_recvauth(authopts, 0, ticket, "rcmd",
- instance, &fromaddr,
- (struct sockaddr_in *) 0,
- kdata, "", 0, version);
- if (rc != KSUCCESS) {
- error("Kerberos authentication failure: %s\n",
- krb_get_err_text(rc));
- exit(1);
- }
- } else
- xgetstr(remuser, sizeof(remuser), "remuser");
-
- xgetstr(locuser, sizeof(locuser), "locuser");
- xgetstr(cmdbuf, sizeof(cmdbuf), "command");
- setpwent();
- pwd = k_getpwnam(locuser);
- if (pwd == NULL) {
- syslog(LOG_INFO|LOG_AUTH,
- "%s@%s as %s: unknown login. cmd='%.80s'",
- remuser, remotehost, locuser, cmdbuf);
- if (errorstr == NULL)
- errorstr = "Login incorrect.\n";
- goto fail;
- }
- if (pwd->pw_uid == 0 && strcmp("root", locuser) != 0)
- {
- syslog(LOG_ALERT, "NIS attack, user %s has uid 0", locuser);
- if (errorstr == NULL)
- errorstr = "Login incorrect.\n";
- goto fail;
- }
- if (chdir(pwd->pw_dir) < 0) {
- chdir("/");
-#ifdef notdef
- syslog(LOG_INFO|LOG_AUTH,
- "%s@%s as %s: no home directory. cmd='%.80s'",
- remuser, remotehost, locuser, cmdbuf);
- error("No remote directory.\n");
- exit(1);
-#endif
- }
-
- if (use_kerberos) {
- if (pwd->pw_passwd != 0 && *pwd->pw_passwd != '\0') {
- if (kuserok(kdata, locuser) != 0) {
- syslog(LOG_INFO|LOG_AUTH,
- "Kerberos rsh denied to %s",
- krb_unparse_name_long(kdata->pname,
- kdata->pinst,
- kdata->prealm));
- error("Permission denied.\n");
- exit(1);
- }
- }
- } else
-
- if (errorstr ||
- pwd->pw_passwd != 0 && *pwd->pw_passwd != '\0' &&
- iruserok(fromp->sin_addr.s_addr, pwd->pw_uid == 0,
- remuser, locuser) < 0) {
- if (__rcmd_errstr)
- syslog(LOG_INFO|LOG_AUTH,
- "%s@%s as %s: permission denied (%s). cmd='%.80s'",
- remuser, remotehost, locuser,
- __rcmd_errstr, cmdbuf);
- else
- syslog(LOG_INFO|LOG_AUTH,
- "%s@%s as %s: permission denied. cmd='%.80s'",
- remuser, remotehost, locuser, cmdbuf);
- fail:
- if (errorstr == NULL)
- errorstr = "Permission denied.\n";
- error(errorstr, errorhost);
- exit(1);
- }
-
- if (pwd->pw_uid && !access(_PATH_NOLOGIN, F_OK)) {
- error("Logins currently disabled.\n");
- exit(1);
- }
-
- write(STDERR_FILENO, "\0", 1);
- sent_null = 1;
-
- if (port) {
- if (pipe(pv) < 0) {
- error("Can't make pipe.\n");
- exit(1);
- }
- if (doencrypt) {
- if (pipe(pv1) < 0) {
- error("Can't make 2nd pipe.\n");
- exit(1);
- }
- if (pipe(pv2) < 0) {
- error("Can't make 3rd pipe.\n");
- exit(1);
- }
- }
- pid = fork();
- if (pid == -1) {
- error("Can't fork; try again.\n");
- exit(1);
- }
- if (pid) {
- if (doencrypt) {
- static char msg[] = SECURE_MESSAGE;
- close(pv1[1]);
- close(pv2[0]);
-#ifndef NOENCRYPTION
- des_enc_write(s, msg, sizeof(msg) - 1, schedule, &kdata->session);
-#else
- write(s, msg, sizeof(msg) - 1);
-#endif
- } else {
- close(0);
- close(1);
- }
- close(2);
- close(pv[1]);
-
- FD_ZERO(&readfrom);
- FD_SET(s, &readfrom);
- FD_SET(pv[0], &readfrom);
- if (pv[0] > s)
- nfd = pv[0];
- else
- nfd = s;
- if (doencrypt) {
- FD_ZERO(&writeto);
- FD_SET(pv2[1], &writeto);
- FD_SET(pv1[0], &readfrom);
- FD_SET(STDIN_FILENO, &readfrom);
-
- nfd = max(nfd, pv2[1]);
- nfd = max(nfd, pv1[0]);
- } else
- ioctl(pv[0], FIONBIO, (char *)&one);
-
- /* should set s nbio! */
- nfd++;
- do {
- ready = readfrom;
- if (doencrypt) {
- wready = writeto;
- if (select(nfd, &ready,
- &wready, 0,
- (struct timeval *) 0) < 0)
- break;
- } else
- if (select(nfd, &ready, 0,
- 0, (struct timeval *)0) < 0)
- break;
- if (FD_ISSET(s, &ready)) {
- int ret;
- if (doencrypt)
-#ifndef NOENCRYPTION
- ret = des_enc_read(s, &sig, 1, schedule, &kdata->session);
-#else
- ret = read(s, &sig, 1);
-#endif
- else
- ret = read(s, &sig, 1);
- if (ret <= 0)
- FD_CLR(s, &readfrom);
- else
- kill(-pid, sig);
- }
- if (FD_ISSET(pv[0], &ready)) {
- errno = 0;
- cc = read(pv[0], buf, sizeof(buf));
- if (cc <= 0) {
- shutdown(s, 1+1);
- FD_CLR(pv[0], &readfrom);
- } else {
- if (doencrypt)
-#ifndef NOENCRYPTION
- des_enc_write(s, buf, cc, schedule, &kdata->session);
-#else
- write(s, buf, cc);
-#endif
- else
- (void)
- write(s, buf, cc);
- }
- }
- if (doencrypt && FD_ISSET(pv1[0], &ready)) {
- errno = 0;
- cc = read(pv1[0], buf, sizeof(buf));
- if (cc <= 0) {
- shutdown(pv1[0], 1+1);
- FD_CLR(pv1[0], &readfrom);
- } else
-#ifndef NOENCRYPTION
- des_enc_write(STDOUT_FILENO, buf, cc, schedule, &kdata->session);
-#else
- write(STDOUT_FILENO, buf, cc);
-#endif
- }
-
- if (doencrypt
- && FD_ISSET(STDIN_FILENO, &ready)
- && FD_ISSET(pv2[1], &wready)) {
- errno = 0;
-#ifndef NOENCRYPTION
- cc = des_enc_read(STDIN_FILENO, buf, sizeof(buf), schedule, &kdata->session);
-#else
- cc = read(STDIN_FILENO, buf, sizeof(buf));
-#endif
- if (cc <= 0) {
- shutdown(STDIN_FILENO, 0);
- FD_CLR(STDIN_FILENO, &readfrom);
- close(pv2[1]);
- FD_CLR(pv2[1], &writeto);
- } else
- write(pv2[1], buf, cc);
- }
-
- } while (FD_ISSET(s, &readfrom) ||
- (doencrypt && FD_ISSET(pv1[0], &readfrom)) ||
- FD_ISSET(pv[0], &readfrom));
- exit(0);
- }
- setsid();
- close(s);
- close(pv[0]);
- if (doencrypt) {
- close(pv1[0]);
- close(pv2[1]);
- dup2(pv1[1], 1);
- dup2(pv2[0], 0);
- close(pv1[1]);
- close(pv2[0]);
- }
- dup2(pv[1], 2);
- close(pv[1]);
- }
- if (*pwd->pw_shell == '\0')
- pwd->pw_shell = _PATH_BSHELL;
-#ifdef HAVE_SETLOGIN
- if (setlogin(pwd->pw_name) < 0)
- syslog(LOG_ERR, "setlogin() failed: %m");
-#endif
-
-#ifdef HAVE_SETPCRED
- if (setpcred (pwd->pw_name, NULL) == -1)
- syslog(LOG_ERR, "setpcred() failure: %m");
-#endif /* HAVE_SETPCRED */
- setgid((gid_t)pwd->pw_gid);
- initgroups(pwd->pw_name, pwd->pw_gid);
- setuid((uid_t)pwd->pw_uid);
- strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
-
- /* Need to extend path to find rcp */
- strncat(path, BINDIR, sizeof(path)-1);
- strncat(path, ":", sizeof(path)-1);
- strncat(path, _PATH_DEFPATH, sizeof(path)-1);
- path[sizeof(path)-1] = '\0';
-
- strncat(shell, pwd->pw_shell, sizeof(shell)-7);
- strncat(username, pwd->pw_name, sizeof(username)-6);
- cp = strrchr(pwd->pw_shell, '/');
- if (cp)
- cp++;
- else
- cp = pwd->pw_shell;
- endpwent();
- if (log_success || pwd->pw_uid == 0) {
- if (use_kerberos)
- syslog(LOG_INFO|LOG_AUTH,
- "Kerberos shell from %s on %s as %s, cmd='%.80s'",
- krb_unparse_name_long(kdata->pname,
- kdata->pinst,
- kdata->prealm),
- remotehost, locuser, cmdbuf);
- else
- syslog(LOG_INFO|LOG_AUTH, "%s@%s as %s: cmd='%.80s'",
- remuser, remotehost, locuser, cmdbuf);
- }
- if (k_hasafs()) {
- if (new_pag)
- k_setpag(); /* Put users process in an new pag */
- k_afsklog(0, 0);
- }
- execle(pwd->pw_shell, cp, "-c", cmdbuf, 0, envinit);
- err(1, pwd->pw_shell);
-}
-
-/*
- * Report error to client. Note: can't be used until second socket has
- * connected to client, or older clients will hang waiting for that
- * connection first.
- */
-
-static void
-error(const char *fmt, ...)
-{
- va_list ap;
- int len;
- char *bp, buf[BUFSIZ];
-
- va_start(ap, fmt);
- bp = buf;
- if (sent_null == 0) {
- *bp++ = 1;
- len = 1;
- } else
- len = 0;
- len = vsnprintf (bp, sizeof(buf) - len, fmt, ap);
- write (STDERR_FILENO, buf, len);
- va_end(ap);
-}
-
-static void
-usage()
-{
-
- syslog(LOG_ERR,
- "usage: rshd [-alnkvxLPi] [-p port]");
- exit(2);
-}
diff --git a/crypto/kerberosIV/appl/bsd/stty_default.c b/crypto/kerberosIV/appl/bsd/stty_default.c
deleted file mode 100644
index b7112c1b6943..000000000000
--- a/crypto/kerberosIV/appl/bsd/stty_default.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "bsd_locl.h"
-
-RCSID("$Id: stty_default.c,v 1.6 1997/04/01 08:17:17 joda Exp $");
-
-#include <termios.h>
-
-/* HP-UX 9.0 termios doesn't define these */
-#ifndef FLUSHO
-#define FLUSHO 0
-#endif
-
-#ifndef XTABS
-#define XTABS 0
-#endif
-
-#ifndef OXTABS
-#define OXTABS XTABS
-#endif
-
-/* Ultrix... */
-#ifndef ECHOPRT
-#define ECHOPRT 0
-#endif
-
-#ifndef ECHOCTL
-#define ECHOCTL 0
-#endif
-
-#ifndef ECHOKE
-#define ECHOKE 0
-#endif
-
-#ifndef IMAXBEL
-#define IMAXBEL 0
-#endif
-
-#define Ctl(x) ((x) ^ 0100)
-
-void
-stty_default(void)
-{
- struct termios termios;
-
- /*
- * Finalize the terminal settings. Some systems default to 8 bits,
- * others to 7, so we should leave that alone.
- */
- tcgetattr(0, &termios);
-
- termios.c_iflag |= (BRKINT|IGNPAR|ICRNL|IXON|IMAXBEL);
- termios.c_iflag &= ~IXANY;
-
- termios.c_lflag |= (ISIG|IEXTEN|ICANON|ECHO|ECHOE|ECHOK|ECHOCTL|ECHOKE);
- termios.c_lflag &= ~(ECHOPRT|TOSTOP|FLUSHO);
-
- termios.c_oflag |= (OPOST|ONLCR);
- termios.c_oflag &= ~OXTABS;
-
- termios.c_cc[VINTR] = Ctl('C');
- termios.c_cc[VERASE] = Ctl('H');
- termios.c_cc[VKILL] = Ctl('U');
- termios.c_cc[VEOF] = Ctl('D');
-
- termios.c_cc[VSUSP] = Ctl('Z');
-
- tcsetattr(0, TCSANOW, &termios);
-}
diff --git a/crypto/kerberosIV/appl/bsd/su.c b/crypto/kerberosIV/appl/bsd/su.c
deleted file mode 100644
index 8c610e1d3036..000000000000
--- a/crypto/kerberosIV/appl/bsd/su.c
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * Copyright (c) 1988 The Regents of the University of California.
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "bsd_locl.h"
-
-RCSID ("$Id: su.c,v 1.59 1997/05/26 17:45:54 bg Exp $");
-
-#ifdef SYSV_SHADOW
-#include "sysv_shadow.h"
-#endif
-
-static int kerberos (char *username, char *user, int uid);
-static int chshell (char *sh);
-static char *ontty (void);
-static int koktologin (char *name, char *realm, char *toname);
-static int chshell (char *sh);
-
-/* Handle '-' option after all the getopt options */
-#define ARGSTR "Kflmi:"
-
-static int use_kerberos = 1;
-static char *root_inst = "root";
-
-int
-main (int argc, char **argv)
-{
- struct passwd *pwd;
- char *p, **g;
- struct group *gr;
- uid_t ruid;
- int asme, ch, asthem, fastlogin, prio;
- enum { UNSET, YES, NO } iscsh = UNSET;
- char *user, *shell, *avshell, *username, **np;
- char shellbuf[MaxPathLen], avshellbuf[MaxPathLen];
-
- set_progname (argv[0]);
-
- asme = asthem = fastlogin = 0;
- while ((ch = getopt (argc, argv, ARGSTR)) != EOF)
- switch ((char) ch) {
- case 'K':
- use_kerberos = 0;
- break;
- case 'f':
- fastlogin = 1;
- break;
- case 'l':
- asme = 0;
- asthem = 1;
- break;
- case 'm':
- asme = 1;
- asthem = 0;
- break;
- case 'i':
- root_inst = optarg;
- break;
- case '?':
- default:
- fprintf (stderr,
- "usage: su [-Kflm] [-i root-instance] [-] [login]\n");
- exit (1);
- }
- /* Don't handle '-' option with getopt */
- if (optind < argc && strcmp (argv[optind], "-") == 0) {
- asme = 0;
- asthem = 1;
- optind++;
- }
- argv += optind;
-
- if (use_kerberos) {
- int fd = open (KEYFILE, O_RDONLY);
-
- if (fd >= 0)
- close (fd);
- else
- use_kerberos = 0;
- }
- errno = 0;
- prio = getpriority (PRIO_PROCESS, 0);
- if (errno)
- prio = 0;
- setpriority (PRIO_PROCESS, 0, -2);
- openlog ("su", LOG_CONS, 0);
-
- /* get current login name and shell */
- ruid = getuid ();
- username = getlogin ();
- if (username == NULL || (pwd = k_getpwnam (username)) == NULL ||
- pwd->pw_uid != ruid)
- pwd = k_getpwuid (ruid);
- if (pwd == NULL)
- errx (1, "who are you?");
- username = strdup (pwd->pw_name);
- if (asme)
- if (pwd->pw_shell && *pwd->pw_shell)
- shell = strcpy (shellbuf, pwd->pw_shell);
- else {
- shell = _PATH_BSHELL;
- iscsh = NO;
- }
-
- /* get target login information, default to root */
- user = *argv ? *argv : "root";
- np = *argv ? argv : argv - 1;
-
- pwd = k_getpwnam (user);
- if (pwd == NULL)
- errx (1, "unknown login %s", user);
- if (pwd->pw_uid == 0 && strcmp ("root", user) != 0) {
- syslog (LOG_ALERT, "NIS attack, user %s has uid 0", user);
- errx (1, "unknown login %s", user);
- }
- if (!use_kerberos || kerberos (username, user, pwd->pw_uid)) {
-#ifndef PASSWD_FALLBACK
- errx (1, "won't use /etc/passwd authentication");
-#endif
- /* getpwnam() is not reentrant and kerberos might use it! */
- pwd = k_getpwnam (user);
- if (pwd == NULL)
- errx (1, "unknown login %s", user);
- /* only allow those in group zero to su to root. */
- if (pwd->pw_uid == 0 && (gr = getgrgid ((gid_t) 0)))
- for (g = gr->gr_mem;; ++g) {
- if (!*g) {
-#if 1
- /* if group 0 is empty or only
- contains root su is still ok. */
- if (gr->gr_mem[0] == 0)
- break; /* group 0 is empty */
- if (gr->gr_mem[1] == 0 &&
- strcmp (gr->gr_mem[0], "root") == 0)
- break; /* only root in group 0 */
-#endif
- errx (1, "you are not in the correct group to su %s.",
- user);
- }
- if (!strcmp (username, *g))
- break;
- }
- /* if target requires a password, verify it */
- if (ruid && *pwd->pw_passwd) {
- char prompt[128];
- char passwd[256];
-
- snprintf (prompt, sizeof(prompt), "%s's Password: ", pwd->pw_name);
- if (des_read_pw_string (passwd, sizeof (passwd),
- prompt, 0)) {
- memset (passwd, 0, sizeof (passwd));
- exit (1);
- }
- if (strcmp (pwd->pw_passwd,
- crypt (passwd, pwd->pw_passwd))) {
- memset (passwd, 0, sizeof (passwd));
- syslog (LOG_AUTH | LOG_WARNING,
- "BAD SU %s to %s%s", username,
- user, ontty ());
- errx (1, "Sorry");
- }
- memset (passwd, 0, sizeof (passwd));
- }
- }
- if (asme) {
- /* if asme and non-standard target shell, must be root */
- if (!chshell (pwd->pw_shell) && ruid)
- errx (1, "permission denied (shell '%s' not in /etc/shells).",
- pwd->pw_shell);
- } else if (pwd->pw_shell && *pwd->pw_shell) {
- shell = pwd->pw_shell;
- iscsh = UNSET;
- } else {
- shell = _PATH_BSHELL;
- iscsh = NO;
- }
-
- if ((p = strrchr (shell, '/')) != 0)
- avshell = p + 1;
- else
- avshell = shell;
-
- /* if we're forking a csh, we want to slightly muck the args */
- if (iscsh == UNSET)
- iscsh = strcmp (avshell, "csh") ? NO : YES;
-
- /* set permissions */
-
- if (setgid (pwd->pw_gid) < 0)
- err (1, "setgid");
- if (initgroups (user, pwd->pw_gid))
- errx (1, "initgroups failed.");
-
- if (setuid (pwd->pw_uid) < 0)
- err (1, "setuid");
-
- if (!asme) {
- if (asthem) {
- char *k = getenv ("KRBTKFILE");
- char *t = getenv ("TERM");
-
- environ = malloc (10 * sizeof (char *));
- environ[0] = NULL;
- setenv ("PATH", _PATH_DEFPATH, 1);
- if (t)
- setenv ("TERM", t, 1);
- if (k)
- setenv ("KRBTKFILE", k, 1);
- if (chdir (pwd->pw_dir) < 0)
- errx (1, "no directory");
- }
- if (asthem || pwd->pw_uid)
- setenv ("USER", pwd->pw_name, 1);
- setenv ("HOME", pwd->pw_dir, 1);
- setenv ("SHELL", shell, 1);
- }
- if (iscsh == YES) {
- if (fastlogin)
- *np-- = "-f";
- if (asme)
- *np-- = "-m";
- }
- if (asthem) {
- avshellbuf[0] = '-';
- strcpy (avshellbuf + 1, avshell);
- avshell = avshellbuf;
- } else if (iscsh == YES) {
- /* csh strips the first character... */
- avshellbuf[0] = '_';
- strcpy (avshellbuf + 1, avshell);
- avshell = avshellbuf;
- }
- *np = avshell;
-
- if (ruid != 0)
- syslog (LOG_NOTICE | LOG_AUTH, "%s to %s%s",
- username, user, ontty ());
-
- setpriority (PRIO_PROCESS, 0, prio);
-
- if (k_hasafs ()) {
- int code;
-
- if (k_setpag () != 0)
- warn ("setpag");
- code = k_afsklog (0, 0);
- if (code != KSUCCESS && code != KDC_PR_UNKNOWN)
- warnx ("afsklog: %s", krb_get_err_text (code));
- }
- execv (shell, np);
- warn ("execv(%s)", shell);
- if (getuid () == 0) {
- execv (_PATH_BSHELL, np);
- warn ("execv(%s)", _PATH_BSHELL);
- }
- exit (1);
-}
-
-static int
-chshell (char *sh)
-{
- char *cp;
-
- while ((cp = getusershell ()) != NULL)
- if (!strcmp (cp, sh))
- return (1);
- return (0);
-}
-
-static char *
-ontty (void)
-{
- char *p;
- static char buf[MaxPathLen + 4];
-
- buf[0] = 0;
- if ((p = ttyname (STDERR_FILENO)) != 0)
- snprintf (buf, sizeof(buf), " on %s", p);
- return (buf);
-}
-
-static int
-kerberos (char *username, char *user, int uid)
-{
- KTEXT_ST ticket;
- AUTH_DAT authdata;
- struct hostent *hp;
- int kerno;
- u_long faddr;
- char lrealm[REALM_SZ], krbtkfile[MaxPathLen];
- char hostname[MaxHostNameLen], savehost[MaxHostNameLen];
-
- if (krb_get_lrealm (lrealm, 1) != KSUCCESS)
- return (1);
- if (koktologin (username, lrealm, user) && !uid) {
-#ifndef PASSWD_FALLBACK
- warnx ("not in %s's ACL.", user);
-#endif
- return (1);
- }
- snprintf (krbtkfile, sizeof(krbtkfile),
- "%s_%s_to_%s_%u", TKT_ROOT, username, user,
- (unsigned) getpid ());
-
- setenv ("KRBTKFILE", krbtkfile, 1);
- krb_set_tkt_string (krbtkfile);
- /*
- * Little trick here -- if we are su'ing to root, we need to get a ticket
- * for "xxx.root", where xxx represents the name of the person su'ing.
- * Otherwise (non-root case), we need to get a ticket for "yyy.", where
- * yyy represents the name of the person being su'd to, and the instance
- * is null
- *
- * We should have a way to set the ticket lifetime, with a system default
- * for root.
- */
- {
- char prompt[128];
- char passw[256];
-
- snprintf (prompt, sizeof(prompt),
- "%s's Password: ",
- krb_unparse_name_long ((uid == 0 ? username : user),
- (uid == 0 ? root_inst : ""),
- lrealm));
- if (des_read_pw_string (passw, sizeof (passw), prompt, 0)) {
- memset (passw, 0, sizeof (passw));
- return (1);
- }
- if (strlen(passw) == 0)
- return (1); /* Empty passwords is not allowed */
- kerno = krb_get_pw_in_tkt ((uid == 0 ? username : user),
- (uid == 0 ? root_inst : ""), lrealm,
- KRB_TICKET_GRANTING_TICKET,
- lrealm,
- DEFAULT_TKT_LIFE,
- passw);
- memset (passw, 0, strlen (passw));
- }
-
- if (kerno != KSUCCESS) {
- if (kerno == KDC_PR_UNKNOWN) {
- warnx ("principal unknown: %s",
- krb_unparse_name_long ((uid == 0 ? username : user),
- (uid == 0 ? root_inst : ""),
- lrealm));
- return (1);
- }
- warnx ("unable to su: %s", krb_get_err_text (kerno));
- syslog (LOG_NOTICE | LOG_AUTH,
- "BAD SU: %s to %s%s: %s",
- username, user, ontty (), krb_get_err_text (kerno));
- return (1);
- }
- if (chown (krbtkfile, uid, -1) < 0) {
- warn ("chown");
- unlink (krbtkfile);
- return (1);
- }
- setpriority (PRIO_PROCESS, 0, -2);
-
- if (k_gethostname (hostname, sizeof (hostname)) == -1) {
- warn ("gethostname");
- dest_tkt ();
- return (1);
- }
- strncpy (savehost, krb_get_phost (hostname), sizeof (savehost));
- savehost[sizeof (savehost) - 1] = '\0';
-
- kerno = krb_mk_req (&ticket, "rcmd", savehost, lrealm, 33);
-
- if (kerno == KDC_PR_UNKNOWN) {
- warnx ("Warning: TGT not verified.");
- syslog (LOG_NOTICE | LOG_AUTH,
- "%s to %s%s, TGT not verified (%s); "
- "%s.%s not registered?",
- username, user, ontty (), krb_get_err_text (kerno),
- "rcmd", savehost);
-#ifdef KLOGIN_PARANOID
- /*
- * if the "VERIFY_SERVICE" doesn't exist in the KDC for this host, *
- * don't allow kerberos login, also log the error condition.
- */
- warnx ("Trying local password!");
- return (1);
-#endif
- } else if (kerno != KSUCCESS) {
- warnx ("Unable to use TGT: %s", krb_get_err_text (kerno));
- syslog (LOG_NOTICE | LOG_AUTH, "failed su: %s to %s%s: %s",
- username, user, ontty (), krb_get_err_text (kerno));
- dest_tkt ();
- return (1);
- } else {
- if (!(hp = gethostbyname (hostname))) {
- warnx ("can't get addr of %s", hostname);
- dest_tkt ();
- return (1);
- }
- memcpy (&faddr, hp->h_addr, sizeof (faddr));
-
- if ((kerno = krb_rd_req (&ticket, "rcmd", savehost, faddr,
- &authdata, "")) != KSUCCESS) {
- warnx ("unable to verify rcmd ticket: %s",
- krb_get_err_text (kerno));
- syslog (LOG_NOTICE | LOG_AUTH,
- "failed su: %s to %s%s: %s", username,
- user, ontty (), krb_get_err_text (kerno));
- dest_tkt ();
- return (1);
- }
- }
- fprintf (stderr, "Don't forget to kdestroy before exiting the shell.\n");
- return (0);
-}
-
-static int
-koktologin (char *name, char *realm, char *toname)
-{
- return krb_kuserok (name,
- strcmp (toname, "root") == 0 ? root_inst : "",
- realm,
- toname);
-}
diff --git a/crypto/kerberosIV/appl/bsd/sysv_default.c b/crypto/kerberosIV/appl/bsd/sysv_default.c
deleted file mode 100644
index cb36b849454f..000000000000
--- a/crypto/kerberosIV/appl/bsd/sysv_default.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: sysv_default.c,v 1.9 1997/03/31 01:47:59 assar Exp $");
-
-#include "sysv_default.h"
-
- /*
- * Default values for stuff that can be read from the defaults file. The
- * SunOS 5.1 documentation is incomplete and often disagrees with reality.
- */
-
-static char default_umask_value[] = "022";
-
-char *default_console = 0;
-char *default_altsh = "YES";
-char *default_passreq = "NO";
-char *default_timezone= 0;
-char *default_hz = 0;
-char *default_path = _PATH_DEFPATH;
-char *default_supath = _PATH_DEFSUPATH;
-char *default_ulimit = 0;
-char *default_timeout = "60";
-char *default_umask = default_umask_value;
-char *default_sleep = "4";
-char *default_maxtrys = "5";
-
-static struct sysv_default {
- char **valptr;
- char *prefix;
- int prefix_len;
-} defaults[] = {
- {&default_console, "CONSOLE=", sizeof("CONSOLE=") -1},
- {&default_altsh, "ALTSHELL=", sizeof("ALTSHELL=") -1},
- {&default_passreq, "PASSREQ=", sizeof("PASSREQ=") -1},
- {&default_timezone, "TIMEZONE=", sizeof("TIMEZONE=") -1},
- {&default_hz, "HZ=", sizeof("HZ=") -1},
- {&default_path, "PATH=", sizeof("PATH=") -1},
- {&default_supath, "SUPATH=", sizeof("SUPATH=") -1},
- {&default_ulimit, "ULIMIT=", sizeof("ULIMIT=") -1},
- {&default_timeout, "TIMEOUT=", sizeof("TIMEOUT=") -1},
- {&default_umask, "UMASK=", sizeof("UMASK=") -1},
- {&default_sleep, "SLEEPTIME=", sizeof("SLEEPTIME=") -1},
- {&default_maxtrys, "MAXTRYS=", sizeof("MAXTRYS=") -1},
- {0},
-};
-
-#define trim(s) { \
- char *cp = s + strlen(s); \
- while (cp > s && isspace(cp[-1])) \
- cp--; \
- *cp = 0; \
-}
-
-/* sysv_defaults - read login defaults file */
-
-void
-sysv_defaults()
-{
- struct sysv_default *dp;
- FILE *fp;
- char buf[BUFSIZ];
-
- if ((fp = fopen(_PATH_ETC_DEFAULT_LOGIN, "r"))) {
-
- /* Stupid quadratic algorithm. */
-
- while (fgets(buf, sizeof(buf), fp)) {
-
- /* Skip comments and blank lines. */
-
- if (buf[0] == '#')
- continue;
- trim(buf);
- if (buf[0] == 0)
- continue;
-
- /* Assign defaults from file. */
-
-#define STREQN(x,y,l) (x[0] == y[0] && strncmp(x,y,l) == 0)
-
- for (dp = defaults; dp->valptr; dp++) {
- if (STREQN(buf, dp->prefix, dp->prefix_len)) {
- if ((*(dp->valptr) = strdup(buf + dp->prefix_len)) == 0) {
- warnx("Insufficient memory resources - try later.");
- sleepexit(1);
- }
- break;
- }
- }
- }
- fclose(fp);
- }
-}
diff --git a/crypto/kerberosIV/appl/bsd/sysv_default.h b/crypto/kerberosIV/appl/bsd/sysv_default.h
deleted file mode 100644
index 00560594d3c9..000000000000
--- a/crypto/kerberosIV/appl/bsd/sysv_default.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
-
-/* $Id: sysv_default.h,v 1.5 1996/10/27 23:51:14 assar Exp $ */
-
-extern char *default_console;
-extern char *default_altsh;
-extern char *default_passreq;
-extern char *default_timezone;
-extern char *default_hz;
-extern char *default_path;
-extern char *default_supath;
-extern char *default_ulimit;
-extern char *default_timeout;
-extern char *default_umask;
-extern char *default_sleep;
-extern char *default_maxtrys;
-
-void sysv_defaults(void);
diff --git a/crypto/kerberosIV/appl/bsd/sysv_environ.c b/crypto/kerberosIV/appl/bsd/sysv_environ.c
deleted file mode 100644
index f5e782d0da38..000000000000
--- a/crypto/kerberosIV/appl/bsd/sysv_environ.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: sysv_environ.c,v 1.21 1997/05/14 17:34:15 joda Exp $");
-
-#ifdef HAVE_ULIMIT_H
-#include <ulimit.h>
-#endif
-
-#ifndef UL_SETFSIZE
-#define UL_SETFSIZE 2
-#endif
-
-#include "sysv_default.h"
-
-/*
- * Set
- */
-
-static void
-read_etc_environment (void)
-{
- FILE *f;
- char buf[BUFSIZ];
-
- f = fopen(_PATH_ETC_ENVIRONMENT, "r");
- if (f) {
- char *val;
-
- while (fgets (buf, sizeof(buf), f) != NULL) {
- if (buf[0] == '\n' || buf[0] == '#')
- continue;
- buf[strlen(buf) - 1] = '\0';
- val = strchr (buf, '=');
- if (val == NULL)
- continue;
- *val = '\0';
- setenv(buf, val + 1, 1);
- }
- fclose (f);
- }
-}
-
- /*
- * Environment variables that are preserved (but may still be overruled by
- * other means). Only TERM and TZ appear to survive (SunOS 5.1). These are
- * typically inherited from the ttymon process.
- */
-
-static struct preserved {
- char *name;
- char *value;
-} preserved[] = {
- {"TZ", 0},
- {"TERM", 0},
- {0},
-};
-
- /*
- * Environment variables that are not preserved and that cannot be specified
- * via commandline or stdin. Except for the LD_xxx (runtime linker) stuff,
- * the list applies to most SYSV systems. The manpage mentions only that
- * SHELL and PATH are censored. HOME, LOGNAME and MAIL are always
- * overwritten; they are in the list to make the censoring explicit.
- */
-
-static struct censored {
- char *prefix;
- int length;
-} censored[] = {
- {"SHELL=", sizeof("SHELL=") - 1},
- {"HOME=", sizeof("HOME=") - 1},
- {"LOGNAME=", sizeof("LOGNAME=") - 1},
- {"MAIL=", sizeof("MAIL=") - 1},
- {"CDPATH=", sizeof("CDPATH=") - 1},
- {"IFS=", sizeof("IFS=") - 1},
- {"PATH=", sizeof("PATH=") - 1},
- {"LD_", sizeof("LD_") - 1},
- {0},
-};
-
-/* sysv_newenv - set up final environment after logging in */
-
-void sysv_newenv(int argc, char **argv, struct passwd *pwd,
- char *term, int pflag)
-{
- unsigned umask_val;
- long limit_val;
- char buf[BUFSIZ];
- int count = 0;
- struct censored *cp;
- struct preserved *pp;
-
- /* Preserve a selection of the environment. */
-
- for (pp = preserved; pp->name; pp++)
- pp->value = getenv(pp->name);
-
- /*
- * Note: it is a bad idea to assign a static array to the global environ
- * variable. Reason is that putenv() can run into problems when it tries
- * to realloc() the environment table. Instead, we just clear environ[0]
- * and let putenv() work things out.
- */
-
- if (!pflag && environ)
- environ[0] = 0;
-
- /* Restore preserved environment variables. */
-
- for (pp = preserved; pp->name; pp++)
- if (pp->value)
- setenv(pp->name, pp->value, 1);
-
- /* The TERM definition from e.g. rlogind can override an existing one. */
-
- if (term[0])
- setenv("TERM", term, 1);
-
- /*
- * Environment definitions from the command line overrule existing ones,
- * but can be overruled by definitions from stdin. Some variables are
- * censored.
- *
- * Omission: we do not support environment definitions from stdin.
- */
-
-#define STREQN(x,y,l) (x[0] == y[0] && strncmp(x,y,l) == 0)
-
- while (argc && *argv) {
- if (strchr(*argv, '=') == 0) {
- snprintf(buf, sizeof(buf), "L%d", count++);
- setenv(buf, *argv, 1);
- } else {
- for (cp = censored; cp->prefix; cp++)
- if (STREQN(*argv, cp->prefix, cp->length))
- break;
- if (cp->prefix == 0)
- putenv(*argv);
- }
- argc--, argv++;
- }
-
- /* PATH is always reset. */
-
- setenv("PATH", pwd->pw_uid ? default_path : default_supath, 1);
-
- /* Undocumented: HOME, MAIL and LOGNAME are always reset (SunOS 5.1). */
-
- setenv("HOME", pwd->pw_dir, 1);
- {
- char *sep = "/";
- if(KRB4_MAILDIR[strlen(KRB4_MAILDIR) - 1] == '/')
- sep = "";
- k_concat(buf, sizeof(buf), KRB4_MAILDIR, sep, pwd->pw_name, NULL);
- }
- setenv("MAIL", buf, 1);
- setenv("LOGNAME", pwd->pw_name, 1);
- setenv("USER", pwd->pw_name, 1);
-
- /*
- * Variables that may be set according to specifications in the defaults
- * file. HZ and TZ are set only if they are still uninitialized.
- *
- * Extension: when ALTSHELL=YES, we set the SHELL variable even if it is
- * /bin/sh.
- */
-
- if (strcasecmp(default_altsh, "YES") == 0)
- setenv("SHELL", pwd->pw_shell, 1);
- if (default_hz)
- setenv("HZ", default_hz, 0);
- if (default_timezone)
- setenv("TZ", default_timezone, 0);
-
- /* Non-environment stuff. */
-
- if (default_umask) {
- if (sscanf(default_umask, "%o", &umask_val) == 1 && umask_val)
- umask(umask_val);
- }
-#ifdef HAVE_ULIMIT
- if (default_ulimit) {
- if (sscanf(default_ulimit, "%ld", &limit_val) == 1 && limit_val)
- if (ulimit(UL_SETFSIZE, limit_val) < 0)
- warn ("ulimit(UL_SETFSIZE, %ld)", limit_val);
- }
-#endif
- read_etc_environment();
-}
-
diff --git a/crypto/kerberosIV/appl/bsd/sysv_shadow.c b/crypto/kerberosIV/appl/bsd/sysv_shadow.c
deleted file mode 100644
index 68394414129c..000000000000
--- a/crypto/kerberosIV/appl/bsd/sysv_shadow.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: sysv_shadow.c,v 1.7 1997/03/23 04:56:05 assar Exp $");
-
-#ifdef SYSV_SHADOW
-
-#include <sysv_shadow.h>
-
-/* sysv_expire - check account and password expiration times */
-
-int
-sysv_expire(struct spwd *spwd)
-{
- long today;
-
- tzset();
- today = time(0);
-
- if (spwd->sp_expire > 0) {
- if (today > spwd->sp_expire) {
- printf("Your account has expired.\n");
- sleepexit(1);
- } else if (spwd->sp_expire - today < 14) {
- printf("Your account will expire in %d days.\n",
- (int)(spwd->sp_expire - today));
- return (0);
- }
- }
- if (spwd->sp_max > 0) {
- if (today > (spwd->sp_lstchg + spwd->sp_max)) {
- printf("Your password has expired. Choose a new one.\n");
- return (1);
- } else if (spwd->sp_warn > 0
- && (today > (spwd->sp_lstchg + spwd->sp_max - spwd->sp_warn))) {
- printf("Your password will expire in %d days.\n",
- (int)(spwd->sp_lstchg + spwd->sp_max - today));
- return (0);
- }
- }
- return (0);
-}
-
-#endif /* SYSV_SHADOW */
diff --git a/crypto/kerberosIV/appl/bsd/sysv_shadow.h b/crypto/kerberosIV/appl/bsd/sysv_shadow.h
deleted file mode 100644
index 4f07b49a0d23..000000000000
--- a/crypto/kerberosIV/appl/bsd/sysv_shadow.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* $Id: sysv_shadow.h,v 1.6 1997/03/23 04:55:51 assar Exp $ */
-
-#include <shadow.h>
-
-extern sysv_expire(struct spwd *);
diff --git a/crypto/kerberosIV/appl/bsd/tty.c b/crypto/kerberosIV/appl/bsd/tty.c
deleted file mode 100644
index 3192426a8a54..000000000000
--- a/crypto/kerberosIV/appl/bsd/tty.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "bsd_locl.h"
-
-RCSID("$Id: tty.c,v 1.2 1997/05/25 01:14:22 assar Exp $");
-
-/*
- * Clean the tty name. Return a pointer to the cleaned version.
- */
-
-char *
-clean_ttyname (char *tty)
-{
- char *res = tty;
-
- if (strncmp (res, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- res += strlen(_PATH_DEV);
- if (strncmp (res, "pty/", 4) == 0)
- res += 4;
- if (strncmp (res, "ptym/", 5) == 0)
- res += 5;
- return res;
-}
-
-/*
- * Generate a name usable as an `ut_id', typically without `tty'.
- */
-
-char *
-make_id (char *tty)
-{
- char *res = tty;
-
- if (strncmp (res, "pts/", 4) == 0)
- res += 4;
- if (strncmp (res, "tty", 3) == 0)
- res += 3;
- return res;
-}
diff --git a/crypto/kerberosIV/appl/bsd/utmp_login.c b/crypto/kerberosIV/appl/bsd/utmp_login.c
deleted file mode 100644
index da3f96a99047..000000000000
--- a/crypto/kerberosIV/appl/bsd/utmp_login.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "bsd_locl.h"
-
-RCSID("$Id: utmp_login.c,v 1.13 1997/05/20 13:46:21 assar Exp $");
-
-void
-prepare_utmp (struct utmp *utmp, char *tty, char *username, char *hostname)
-{
- char *ttyx = clean_ttyname (tty);
-
- memset(utmp, 0, sizeof(*utmp));
- utmp->ut_time = time(NULL);
- strncpy(utmp->ut_line, ttyx, sizeof(utmp->ut_line));
- strncpy(utmp->ut_name, username, sizeof(utmp->ut_name));
-
-# ifdef HAVE_UT_USER
- strncpy(utmp->ut_user, username, sizeof(utmp->ut_user));
-# endif
-
-# ifdef HAVE_UT_ADDR
- if (hostname[0]) {
- struct hostent *he;
- if ((he = gethostbyname(hostname)))
- memcpy(&utmp->ut_addr, he->h_addr_list[0],
- sizeof(utmp->ut_addr));
- }
-# endif
-
-# ifdef HAVE_UT_HOST
- strncpy(utmp->ut_host, hostname, sizeof(utmp->ut_host));
-# endif
-
-# ifdef HAVE_UT_TYPE
- utmp->ut_type = USER_PROCESS;
-# endif
-
-# ifdef HAVE_UT_PID
- utmp->ut_pid = getpid();
-# endif
-
-# ifdef HAVE_UT_ID
- strncpy(utmp->ut_id, make_id(ttyx), sizeof(utmp->ut_id));
-# endif
-}
-
-#ifdef HAVE_UTMPX_H
-void utmp_login(char *tty, char *username, char *hostname) { return; }
-#else
-
-/* update utmp and wtmp - the BSD way */
-
-void utmp_login(char *tty, char *username, char *hostname)
-{
- struct utmp utmp;
- int fd;
-
- prepare_utmp (&utmp, tty, username, hostname);
-
-#ifdef HAVE_SETUTENT
- utmpname(_PATH_UTMP);
- setutent();
- pututline(&utmp);
- endutent();
-#else
-
-#ifdef HAVE_TTYSLOT
- {
- int ttyno;
- ttyno = ttyslot();
- if (ttyno > 0 && (fd = open(_PATH_UTMP, O_WRONLY, 0)) >= 0) {
- lseek(fd, (long)(ttyno * sizeof(struct utmp)), SEEK_SET);
- write(fd, &utmp, sizeof(struct utmp));
- close(fd);
- }
- }
-#endif /* HAVE_TTYSLOT */
-#endif /* HAVE_SETUTENT */
-
- if ((fd = open(_PATH_WTMP, O_WRONLY|O_APPEND, 0)) >= 0) {
- write(fd, &utmp, sizeof(struct utmp));
- close(fd);
- }
-}
-#endif /* !HAVE_UTMPX_H */
diff --git a/crypto/kerberosIV/appl/bsd/utmpx_login.c b/crypto/kerberosIV/appl/bsd/utmpx_login.c
deleted file mode 100644
index 005eca56b30b..000000000000
--- a/crypto/kerberosIV/appl/bsd/utmpx_login.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
-
-#include "bsd_locl.h"
-
-RCSID("$Id: utmpx_login.c,v 1.20 1997/06/01 03:13:15 assar Exp $");
-
-/* utmpx_login - update utmp and wtmp after login */
-
-#ifndef HAVE_UTMPX_H
-int utmpx_login(char *line, char *user, char *host) { return 0; }
-#else
-
-static void
-utmpx_update(struct utmpx *ut, char *line, char *user, char *host)
-{
- struct timeval tmp;
- char *clean_tty = clean_ttyname(line);
-
- strncpy(ut->ut_line, clean_tty, sizeof(ut->ut_line));
-#ifdef HAVE_UT_ID
- strncpy(ut->ut_id, make_id(clean_tty), sizeof(ut->ut_id));
-#endif
- strncpy(ut->ut_user, user, sizeof(ut->ut_user));
- strncpy(ut->ut_host, host, sizeof(ut->ut_host));
-#ifdef HAVE_UT_SYSLEN
- ut->ut_syslen = strlen(host) + 1;
- if (ut->ut_syslen > sizeof(ut->ut_host))
- ut->ut_syslen = sizeof(ut->ut_host);
-#endif
- ut->ut_type = USER_PROCESS;
- gettimeofday (&tmp, 0);
- ut->ut_tv.tv_sec = tmp.tv_sec;
- ut->ut_tv.tv_usec = tmp.tv_usec;
- pututxline(ut);
-#ifdef WTMPX_FILE
- updwtmpx(WTMPX_FILE, ut);
-#elif defined(WTMP_FILE)
- {
- struct utmp utmp;
- int fd;
-
- prepare_utmp (&utmp, line, user, host);
- if ((fd = open(_PATH_WTMP, O_WRONLY|O_APPEND, 0)) >= 0) {
- write(fd, &utmp, sizeof(struct utmp));
- close(fd);
- }
- }
-#endif
-}
-
-int
-utmpx_login(char *line, char *user, char *host)
-{
- struct utmpx *ut;
- pid_t mypid = getpid();
- int ret = (-1);
-
- /*
- * SYSV4 ttymon and login use tty port names with the "/dev/" prefix
- * stripped off. Rlogind and telnetd, on the other hand, make utmpx
- * entries with device names like /dev/pts/nnn. We therefore cannot use
- * getutxline(). Return nonzero if no utmp entry was found with our own
- * process ID for a login or user process.
- */
-
- while ((ut = getutxent())) {
- /* Try to find a reusable entry */
- if (ut->ut_pid == mypid
- && ( ut->ut_type == INIT_PROCESS
- || ut->ut_type == LOGIN_PROCESS
- || ut->ut_type == USER_PROCESS)) {
- utmpx_update(ut, line, user, host);
- ret = 0;
- break;
- }
- }
- if (ret == -1) {
- /* Grow utmpx file by one record. */
- struct utmpx newut;
- memset(&newut, 0, sizeof(newut));
- newut.ut_pid = mypid;
- utmpx_update(&newut, line, user, host);
- ret = 0;
- }
- endutxent();
- return (ret);
-}
-#endif /* HAVE_UTMPX_H */
diff --git a/crypto/kerberosIV/appl/ftp/Makefile.in b/crypto/kerberosIV/appl/ftp/Makefile.in
deleted file mode 100644
index 6d0c4207ee48..000000000000
--- a/crypto/kerberosIV/appl/ftp/Makefile.in
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id: Makefile.in,v 1.9 1997/03/23 13:03:54 assar Exp $
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-@SET_MAKE@
-
-CC = @CC@
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-
-prefix = @prefix@
-
-SUBDIRS=common ftp ftpd
-
-all:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) all); done
-
-install: all
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) install); done
-
-uninstall:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) uninstall); done
-
-clean cleandir:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) clean); done
-
-distclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) distclean); done
- rm -f Makefile *~
diff --git a/crypto/kerberosIV/appl/ftp/common/Makefile.in b/crypto/kerberosIV/appl/ftp/common/Makefile.in
deleted file mode 100644
index 9ce1aa598bd1..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/Makefile.in
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id: Makefile.in,v 1.17 1997/05/18 20:00:06 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-
-prefix = @prefix@
-
-SOURCES = base64.c glob.c sockbuf.c buffer.c
-OBJECTS = $(libcommon_OBJS)
-
-libcommon_OBJS = base64.o glob.o sockbuf.o buffer.o
-
-LIBNAME = $(LIBPREFIX)common
-LIBEXT = a
-LIBPREFIX = @LIBPREFIX@
-LIB = $(LIBNAME).$(LIBEXT)
-
-all: $(LIB)
-
-.c.o:
- $(CC) -c $(CFLAGS) -I$(srcdir) -I../../../include $(DEFS) $<
-
-$(LIB): $(libcommon_OBJS)
- rm -f $@
- ar cr $@ $(libcommon_OBJS)
- -$(RANLIB) $@
-
-install:
-
-uninstall:
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-clean cleandir:
- rm -f *~ *.o libcommon.a core \#*
-
-distclean:
- rm -f Makefile
-
-$(OBJECTS): ../../../include/config.h
diff --git a/crypto/kerberosIV/appl/ftp/common/base64.c b/crypto/kerberosIV/appl/ftp/common/base64.c
deleted file mode 100644
index 648f32dfd4a5..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/base64.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: base64.c,v 1.6 1997/05/30 17:24:06 assar Exp $");
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include "base64.h"
-
-static char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static int pos(char c)
-{
- char *p;
- for(p = base64; *p; p++)
- if(*p == c)
- return p - base64;
- return -1;
-}
-
-int base64_encode(const void *data, int size, char **str)
-{
- char *s, *p;
- int i;
- int c;
- unsigned char *q;
-
- p = s = (char*)malloc(size*4/3+4);
- q = (unsigned char*)data;
- i=0;
- for(i = 0; i < size;){
- c=q[i++];
- c*=256;
- if(i < size)
- c+=q[i];
- i++;
- c*=256;
- if(i < size)
- c+=q[i];
- i++;
- p[0]=base64[(c&0x00fc0000) >> 18];
- p[1]=base64[(c&0x0003f000) >> 12];
- p[2]=base64[(c&0x00000fc0) >> 6];
- p[3]=base64[(c&0x0000003f) >> 0];
- if(i > size)
- p[3]='=';
- if(i > size+1)
- p[2]='=';
- p+=4;
- }
- *p=0;
- *str = s;
- return strlen(s);
-}
-
-int base64_decode(const char *str, void *data)
-{
- const char *p;
- unsigned char *q;
- int c;
- int x;
- int done = 0;
- q=(unsigned char*)data;
- for(p=str; *p && !done; p+=4){
- x = pos(p[0]);
- if(x >= 0)
- c = x;
- else{
- done = 3;
- break;
- }
- c*=64;
-
- x = pos(p[1]);
- if(x >= 0)
- c += x;
- else
- return -1;
- c*=64;
-
- if(p[2] == '=')
- done++;
- else{
- x = pos(p[2]);
- if(x >= 0)
- c += x;
- else
- return -1;
- }
- c*=64;
-
- if(p[3] == '=')
- done++;
- else{
- if(done)
- return -1;
- x = pos(p[3]);
- if(x >= 0)
- c += x;
- else
- return -1;
- }
- if(done < 3)
- *q++=(c&0x00ff0000)>>16;
-
- if(done < 2)
- *q++=(c&0x0000ff00)>>8;
- if(done < 1)
- *q++=(c&0x000000ff)>>0;
- }
- return q - (unsigned char*)data;
-}
diff --git a/crypto/kerberosIV/appl/ftp/common/base64.h b/crypto/kerberosIV/appl/ftp/common/base64.h
deleted file mode 100644
index fe799a2dccf0..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/base64.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: base64.h,v 1.5 1997/04/01 08:17:19 joda Exp $ */
-
-#ifndef _BASE64_H_
-#define _BASE64_H_
-
-int base64_encode(const void *data, int size, char **str);
-int base64_decode(const char *str, void *data);
-
-#endif
diff --git a/crypto/kerberosIV/appl/ftp/common/buffer.c b/crypto/kerberosIV/appl/ftp/common/buffer.c
deleted file mode 100644
index 5b7829a5da96..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/buffer.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "common.h"
-#include <stdio.h>
-#include "roken.h"
-
-RCSID("$Id: buffer.c,v 1.1 1997/05/18 19:59:24 assar Exp $");
-
-/*
- * Allocate a buffer enough to handle st->st_blksize, if
- * there is such a field, otherwise BUFSIZ.
- */
-
-void *
-alloc_buffer (void *oldbuf, size_t *sz, struct stat *st)
-{
- size_t new_sz;
-
- new_sz = BUFSIZ;
-#ifdef HAVE_ST_BLKSIZE
- if (st)
- new_sz = max(BUFSIZ, st->st_blksize);
-#endif
- if(new_sz > *sz) {
- if (oldbuf)
- free (oldbuf);
- oldbuf = malloc (new_sz);
- if (oldbuf == NULL) {
- warn ("malloc");
- *sz = 0;
- return NULL;
- }
- *sz = new_sz;
- }
- return oldbuf;
-}
-
diff --git a/crypto/kerberosIV/appl/ftp/common/common.h b/crypto/kerberosIV/appl/ftp/common/common.h
deleted file mode 100644
index 4ec3149998b0..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/common.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: common.h,v 1.9 1997/05/18 19:59:58 assar Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef __COMMON_H__
-#define __COMMON_H__
-
-#include "base64.h"
-
-void set_buffer_size(int, int);
-
-#include <stdlib.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-void *alloc_buffer (void *oldbuf, size_t *sz, struct stat *st);
-
-#endif /* __COMMON_H__ */
diff --git a/crypto/kerberosIV/appl/ftp/common/glob.c b/crypto/kerberosIV/appl/ftp/common/glob.c
deleted file mode 100644
index 8f19d7ca4dab..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/glob.c
+++ /dev/null
@@ -1,835 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Guido van Rossum.
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * glob(3) -- a superset of the one defined in POSIX 1003.2.
- *
- * The [!...] convention to negate a range is supported (SysV, Posix, ksh).
- *
- * Optional extra services, controlled by flags not defined by POSIX:
- *
- * GLOB_QUOTE:
- * Escaping convention: \ inhibits any special meaning the following
- * character might have (except \ at end of string is retained).
- * GLOB_MAGCHAR:
- * Set in gl_flags if pattern contained a globbing character.
- * GLOB_NOMAGIC:
- * Same as GLOB_NOCHECK, but it will only append pattern if it did
- * not contain any magic characters. [Used in csh style globbing]
- * GLOB_ALTDIRFUNC:
- * Use alternately specified directory access functions.
- * GLOB_TILDE:
- * expand ~user/foo to the /home/dir/of/user/foo
- * GLOB_BRACE:
- * expand {1,2}{a,b} to 1a 1b 2a 2b
- * gl_matchc:
- * Number of matches in the current invocation of glob.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#include <ctype.h>
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-#include <errno.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "glob.h"
-#include "roken.h"
-
-#define CHAR_DOLLAR '$'
-#define CHAR_DOT '.'
-#define CHAR_EOS '\0'
-#define CHAR_LBRACKET '['
-#define CHAR_NOT '!'
-#define CHAR_QUESTION '?'
-#define CHAR_QUOTE '\\'
-#define CHAR_RANGE '-'
-#define CHAR_RBRACKET ']'
-#define CHAR_SEP '/'
-#define CHAR_STAR '*'
-#define CHAR_TILDE '~'
-#define CHAR_UNDERSCORE '_'
-#define CHAR_LBRACE '{'
-#define CHAR_RBRACE '}'
-#define CHAR_SLASH '/'
-#define CHAR_COMMA ','
-
-#ifndef DEBUG
-
-#define M_QUOTE 0x8000
-#define M_PROTECT 0x4000
-#define M_MASK 0xffff
-#define M_ASCII 0x00ff
-
-typedef u_short Char;
-
-#else
-
-#define M_QUOTE 0x80
-#define M_PROTECT 0x40
-#define M_MASK 0xff
-#define M_ASCII 0x7f
-
-typedef char Char;
-
-#endif
-
-
-#define CHAR(c) ((Char)((c)&M_ASCII))
-#define META(c) ((Char)((c)|M_QUOTE))
-#define M_ALL META('*')
-#define M_END META(']')
-#define M_NOT META('!')
-#define M_ONE META('?')
-#define M_RNG META('-')
-#define M_SET META('[')
-#define ismeta(c) (((c)&M_QUOTE) != 0)
-
-
-static int compare (const void *, const void *);
-static void g_Ctoc (const Char *, char *);
-static int g_lstat (Char *, struct stat *, glob_t *);
-static DIR *g_opendir (Char *, glob_t *);
-static Char *g_strchr (Char *, int);
-#ifdef notdef
-static Char *g_strcat (Char *, const Char *);
-#endif
-static int g_stat (Char *, struct stat *, glob_t *);
-static int glob0 (const Char *, glob_t *);
-static int glob1 (Char *, glob_t *);
-static int glob2 (Char *, Char *, Char *, glob_t *);
-static int glob3 (Char *, Char *, Char *, Char *, glob_t *);
-static int globextend (const Char *, glob_t *);
-static const Char * globtilde (const Char *, Char *, glob_t *);
-static int globexp1 (const Char *, glob_t *);
-static int globexp2 (const Char *, const Char *, glob_t *, int *);
-static int match (Char *, Char *, Char *);
-#ifdef DEBUG
-static void qprintf (const char *, Char *);
-#endif
-
-int
-glob(const char *pattern,
- int flags,
- int (*errfunc)(const char *, int),
- glob_t *pglob)
-{
- const u_char *patnext;
- int c;
- Char *bufnext, *bufend, patbuf[MaxPathLen+1];
-
- patnext = (u_char *) pattern;
- if (!(flags & GLOB_APPEND)) {
- pglob->gl_pathc = 0;
- pglob->gl_pathv = NULL;
- if (!(flags & GLOB_DOOFFS))
- pglob->gl_offs = 0;
- }
- pglob->gl_flags = flags & ~GLOB_MAGCHAR;
- pglob->gl_errfunc = errfunc;
- pglob->gl_matchc = 0;
-
- bufnext = patbuf;
- bufend = bufnext + MaxPathLen;
- if (flags & GLOB_QUOTE) {
- /* Protect the quoted characters. */
- while (bufnext < bufend && (c = *patnext++) != CHAR_EOS)
- if (c == CHAR_QUOTE) {
- if ((c = *patnext++) == CHAR_EOS) {
- c = CHAR_QUOTE;
- --patnext;
- }
- *bufnext++ = c | M_PROTECT;
- }
- else
- *bufnext++ = c;
- }
- else
- while (bufnext < bufend && (c = *patnext++) != CHAR_EOS)
- *bufnext++ = c;
- *bufnext = CHAR_EOS;
-
- if (flags & GLOB_BRACE)
- return globexp1(patbuf, pglob);
- else
- return glob0(patbuf, pglob);
-}
-
-/*
- * Expand recursively a glob {} pattern. When there is no more expansion
- * invoke the standard globbing routine to glob the rest of the magic
- * characters
- */
-static int globexp1(const Char *pattern, glob_t *pglob)
-{
- const Char* ptr = pattern;
- int rv;
-
- /* Protect a single {}, for find(1), like csh */
- if (pattern[0] == CHAR_LBRACE && pattern[1] == CHAR_RBRACE && pattern[2] == CHAR_EOS)
- return glob0(pattern, pglob);
-
- while ((ptr = (const Char *) g_strchr((Char *) ptr, CHAR_LBRACE)) != NULL)
- if (!globexp2(ptr, pattern, pglob, &rv))
- return rv;
-
- return glob0(pattern, pglob);
-}
-
-
-/*
- * Recursive brace globbing helper. Tries to expand a single brace.
- * If it succeeds then it invokes globexp1 with the new pattern.
- * If it fails then it tries to glob the rest of the pattern and returns.
- */
-static int globexp2(const Char *ptr, const Char *pattern,
- glob_t *pglob, int *rv)
-{
- int i;
- Char *lm, *ls;
- const Char *pe, *pm, *pl;
- Char patbuf[MaxPathLen + 1];
-
- /* copy part up to the brace */
- for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++)
- continue;
- ls = lm;
-
- /* Find the balanced brace */
- for (i = 0, pe = ++ptr; *pe; pe++)
- if (*pe == CHAR_LBRACKET) {
- /* Ignore everything between [] */
- for (pm = pe++; *pe != CHAR_RBRACKET && *pe != CHAR_EOS; pe++)
- continue;
- if (*pe == CHAR_EOS) {
- /*
- * We could not find a matching CHAR_RBRACKET.
- * Ignore and just look for CHAR_RBRACE
- */
- pe = pm;
- }
- }
- else if (*pe == CHAR_LBRACE)
- i++;
- else if (*pe == CHAR_RBRACE) {
- if (i == 0)
- break;
- i--;
- }
-
- /* Non matching braces; just glob the pattern */
- if (i != 0 || *pe == CHAR_EOS) {
- *rv = glob0(patbuf, pglob);
- return 0;
- }
-
- for (i = 0, pl = pm = ptr; pm <= pe; pm++)
- switch (*pm) {
- case CHAR_LBRACKET:
- /* Ignore everything between [] */
- for (pl = pm++; *pm != CHAR_RBRACKET && *pm != CHAR_EOS; pm++)
- continue;
- if (*pm == CHAR_EOS) {
- /*
- * We could not find a matching CHAR_RBRACKET.
- * Ignore and just look for CHAR_RBRACE
- */
- pm = pl;
- }
- break;
-
- case CHAR_LBRACE:
- i++;
- break;
-
- case CHAR_RBRACE:
- if (i) {
- i--;
- break;
- }
- /* FALLTHROUGH */
- case CHAR_COMMA:
- if (i && *pm == CHAR_COMMA)
- break;
- else {
- /* Append the current string */
- for (lm = ls; (pl < pm); *lm++ = *pl++)
- continue;
- /*
- * Append the rest of the pattern after the
- * closing brace
- */
- for (pl = pe + 1; (*lm++ = *pl++) != CHAR_EOS;)
- continue;
-
- /* Expand the current pattern */
-#ifdef DEBUG
- qprintf("globexp2:", patbuf);
-#endif
- *rv = globexp1(patbuf, pglob);
-
- /* move after the comma, to the next string */
- pl = pm + 1;
- }
- break;
-
- default:
- break;
- }
- *rv = 0;
- return 0;
-}
-
-
-
-/*
- * expand tilde from the passwd file.
- */
-static const Char *
-globtilde(const Char *pattern, Char *patbuf, glob_t *pglob)
-{
- struct passwd *pwd;
- char *h;
- const Char *p;
- Char *b;
-
- if (*pattern != CHAR_TILDE || !(pglob->gl_flags & GLOB_TILDE))
- return pattern;
-
- /* Copy up to the end of the string or / */
- for (p = pattern + 1, h = (char *) patbuf; *p && *p != CHAR_SLASH;
- *h++ = *p++)
- continue;
-
- *h = CHAR_EOS;
-
- if (((char *) patbuf)[0] == CHAR_EOS) {
- /*
- * handle a plain ~ or ~/ by expanding $HOME
- * first and then trying the password file
- */
- if ((h = getenv("HOME")) == NULL) {
- if ((pwd = k_getpwuid(getuid())) == NULL)
- return pattern;
- else
- h = pwd->pw_dir;
- }
- }
- else {
- /*
- * Expand a ~user
- */
- if ((pwd = k_getpwnam((char*) patbuf)) == NULL)
- return pattern;
- else
- h = pwd->pw_dir;
- }
-
- /* Copy the home directory */
- for (b = patbuf; *h; *b++ = *h++)
- continue;
-
- /* Append the rest of the pattern */
- while ((*b++ = *p++) != CHAR_EOS)
- continue;
-
- return patbuf;
-}
-
-
-/*
- * The main glob() routine: compiles the pattern (optionally processing
- * quotes), calls glob1() to do the real pattern matching, and finally
- * sorts the list (unless unsorted operation is requested). Returns 0
- * if things went well, nonzero if errors occurred. It is not an error
- * to find no matches.
- */
-static int
-glob0(const Char *pattern, glob_t *pglob)
-{
- const Char *qpatnext;
- int c, err, oldpathc;
- Char *bufnext, patbuf[MaxPathLen+1];
-
- qpatnext = globtilde(pattern, patbuf, pglob);
- oldpathc = pglob->gl_pathc;
- bufnext = patbuf;
-
- /* We don't need to check for buffer overflow any more. */
- while ((c = *qpatnext++) != CHAR_EOS) {
- switch (c) {
- case CHAR_LBRACKET:
- c = *qpatnext;
- if (c == CHAR_NOT)
- ++qpatnext;
- if (*qpatnext == CHAR_EOS ||
- g_strchr((Char *) qpatnext+1, CHAR_RBRACKET) == NULL) {
- *bufnext++ = CHAR_LBRACKET;
- if (c == CHAR_NOT)
- --qpatnext;
- break;
- }
- *bufnext++ = M_SET;
- if (c == CHAR_NOT)
- *bufnext++ = M_NOT;
- c = *qpatnext++;
- do {
- *bufnext++ = CHAR(c);
- if (*qpatnext == CHAR_RANGE &&
- (c = qpatnext[1]) != CHAR_RBRACKET) {
- *bufnext++ = M_RNG;
- *bufnext++ = CHAR(c);
- qpatnext += 2;
- }
- } while ((c = *qpatnext++) != CHAR_RBRACKET);
- pglob->gl_flags |= GLOB_MAGCHAR;
- *bufnext++ = M_END;
- break;
- case CHAR_QUESTION:
- pglob->gl_flags |= GLOB_MAGCHAR;
- *bufnext++ = M_ONE;
- break;
- case CHAR_STAR:
- pglob->gl_flags |= GLOB_MAGCHAR;
- /* collapse adjacent stars to one,
- * to avoid exponential behavior
- */
- if (bufnext == patbuf || bufnext[-1] != M_ALL)
- *bufnext++ = M_ALL;
- break;
- default:
- *bufnext++ = CHAR(c);
- break;
- }
- }
- *bufnext = CHAR_EOS;
-#ifdef DEBUG
- qprintf("glob0:", patbuf);
-#endif
-
- if ((err = glob1(patbuf, pglob)) != 0)
- return(err);
-
- /*
- * If there was no match we are going to append the pattern
- * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified
- * and the pattern did not contain any magic characters
- * GLOB_NOMAGIC is there just for compatibility with csh.
- */
- if (pglob->gl_pathc == oldpathc &&
- ((pglob->gl_flags & GLOB_NOCHECK) ||
- ((pglob->gl_flags & GLOB_NOMAGIC) &&
- !(pglob->gl_flags & GLOB_MAGCHAR))))
- return(globextend(pattern, pglob));
- else if (!(pglob->gl_flags & GLOB_NOSORT))
- qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc,
- pglob->gl_pathc - oldpathc, sizeof(char *), compare);
- return(0);
-}
-
-static int
-compare(const void *p, const void *q)
-{
- return(strcmp(*(char **)p, *(char **)q));
-}
-
-static int
-glob1(Char *pattern, glob_t *pglob)
-{
- Char pathbuf[MaxPathLen+1];
-
- /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */
- if (*pattern == CHAR_EOS)
- return(0);
- return(glob2(pathbuf, pathbuf, pattern, pglob));
-}
-
-/*
- * The functions glob2 and glob3 are mutually recursive; there is one level
- * of recursion for each segment in the pattern that contains one or more
- * meta characters.
- */
-
-#ifndef S_ISLNK
-#if defined(S_IFLNK) && defined(S_IFMT)
-#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
-#else
-#define S_ISLNK(mode) 0
-#endif
-#endif
-
-static int
-glob2(Char *pathbuf, Char *pathend, Char *pattern, glob_t *pglob)
-{
- struct stat sb;
- Char *p, *q;
- int anymeta;
-
- /*
- * Loop over pattern segments until end of pattern or until
- * segment with meta character found.
- */
- for (anymeta = 0;;) {
- if (*pattern == CHAR_EOS) { /* End of pattern? */
- *pathend = CHAR_EOS;
- if (g_lstat(pathbuf, &sb, pglob))
- return(0);
-
- if (((pglob->gl_flags & GLOB_MARK) &&
- pathend[-1] != CHAR_SEP) && (S_ISDIR(sb.st_mode)
- || (S_ISLNK(sb.st_mode) &&
- (g_stat(pathbuf, &sb, pglob) == 0) &&
- S_ISDIR(sb.st_mode)))) {
- *pathend++ = CHAR_SEP;
- *pathend = CHAR_EOS;
- }
- ++pglob->gl_matchc;
- return(globextend(pathbuf, pglob));
- }
-
- /* Find end of next segment, copy tentatively to pathend. */
- q = pathend;
- p = pattern;
- while (*p != CHAR_EOS && *p != CHAR_SEP) {
- if (ismeta(*p))
- anymeta = 1;
- *q++ = *p++;
- }
-
- if (!anymeta) { /* No expansion, do next segment. */
- pathend = q;
- pattern = p;
- while (*pattern == CHAR_SEP)
- *pathend++ = *pattern++;
- } else /* Need expansion, recurse. */
- return(glob3(pathbuf, pathend, pattern, p, pglob));
- }
- /* CHAR_NOTREACHED */
-}
-
-static int
-glob3(Char *pathbuf, Char *pathend, Char *pattern, Char *restpattern,
- glob_t *pglob)
-{
- struct dirent *dp;
- DIR *dirp;
- int err;
- char buf[MaxPathLen];
-
- /*
- * The readdirfunc declaration can't be prototyped, because it is
- * assigned, below, to two functions which are prototyped in glob.h
- * and dirent.h as taking pointers to differently typed opaque
- * structures.
- */
- struct dirent *(*readdirfunc)(void *);
-
- *pathend = CHAR_EOS;
- errno = 0;
-
- if ((dirp = g_opendir(pathbuf, pglob)) == NULL) {
- /* TODO: don't call for ENOENT or ENOTDIR? */
- if (pglob->gl_errfunc) {
- g_Ctoc(pathbuf, buf);
- if (pglob->gl_errfunc(buf, errno) ||
- pglob->gl_flags & GLOB_ERR)
- return (GLOB_ABEND);
- }
- return(0);
- }
-
- err = 0;
-
- /* Search directory for matching names. */
- if (pglob->gl_flags & GLOB_ALTDIRFUNC)
- readdirfunc = pglob->gl_readdir;
- else
- readdirfunc = (struct dirent *(*)(void *))readdir;
- while ((dp = (*readdirfunc)(dirp))) {
- u_char *sc;
- Char *dc;
-
- /* Initial CHAR_DOT must be matched literally. */
- if (dp->d_name[0] == CHAR_DOT && *pattern != CHAR_DOT)
- continue;
- for (sc = (u_char *) dp->d_name, dc = pathend;
- (*dc++ = *sc++) != CHAR_EOS;)
- continue;
- if (!match(pathend, pattern, restpattern)) {
- *pathend = CHAR_EOS;
- continue;
- }
- err = glob2(pathbuf, --dc, restpattern, pglob);
- if (err)
- break;
- }
-
- if (pglob->gl_flags & GLOB_ALTDIRFUNC)
- (*pglob->gl_closedir)(dirp);
- else
- closedir(dirp);
- return(err);
-}
-
-
-/*
- * Extend the gl_pathv member of a glob_t structure to accomodate a new item,
- * add the new item, and update gl_pathc.
- *
- * This assumes the BSD realloc, which only copies the block when its size
- * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic
- * behavior.
- *
- * Return 0 if new item added, error code if memory couldn't be allocated.
- *
- * Invariant of the glob_t structure:
- * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and
- * gl_pathv points to (gl_offs + gl_pathc + 1) items.
- */
-static int
-globextend(const Char *path, glob_t *pglob)
-{
- char **pathv;
- int i;
- u_int newsize;
- char *copy;
- const Char *p;
-
- newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs);
- pathv = pglob->gl_pathv ?
- realloc(pglob->gl_pathv, newsize) :
- malloc(newsize);
- if (pathv == NULL)
- return(GLOB_NOSPACE);
-
- if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) {
- /* first time around -- clear initial gl_offs items */
- pathv += pglob->gl_offs;
- for (i = pglob->gl_offs; --i >= 0; )
- *--pathv = NULL;
- }
- pglob->gl_pathv = pathv;
-
- for (p = path; *p++;)
- continue;
- if ((copy = malloc(p - path)) != NULL) {
- g_Ctoc(path, copy);
- pathv[pglob->gl_offs + pglob->gl_pathc++] = copy;
- }
- pathv[pglob->gl_offs + pglob->gl_pathc] = NULL;
- return(copy == NULL ? GLOB_NOSPACE : 0);
-}
-
-
-/*
- * pattern matching function for filenames. Each occurrence of the *
- * pattern causes a recursion level.
- */
-static int
-match(Char *name, Char *pat, Char *patend)
-{
- int ok, negate_range;
- Char c, k;
-
- while (pat < patend) {
- c = *pat++;
- switch (c & M_MASK) {
- case M_ALL:
- if (pat == patend)
- return(1);
- do
- if (match(name, pat, patend))
- return(1);
- while (*name++ != CHAR_EOS);
- return(0);
- case M_ONE:
- if (*name++ == CHAR_EOS)
- return(0);
- break;
- case M_SET:
- ok = 0;
- if ((k = *name++) == CHAR_EOS)
- return(0);
- if ((negate_range = ((*pat & M_MASK) == M_NOT)) != CHAR_EOS)
- ++pat;
- while (((c = *pat++) & M_MASK) != M_END)
- if ((*pat & M_MASK) == M_RNG) {
- if (c <= k && k <= pat[1])
- ok = 1;
- pat += 2;
- } else if (c == k)
- ok = 1;
- if (ok == negate_range)
- return(0);
- break;
- default:
- if (*name++ != c)
- return(0);
- break;
- }
- }
- return(*name == CHAR_EOS);
-}
-
-/* Free allocated data belonging to a glob_t structure. */
-void
-globfree(glob_t *pglob)
-{
- int i;
- char **pp;
-
- if (pglob->gl_pathv != NULL) {
- pp = pglob->gl_pathv + pglob->gl_offs;
- for (i = pglob->gl_pathc; i--; ++pp)
- if (*pp)
- free(*pp);
- free(pglob->gl_pathv);
- }
-}
-
-static DIR *
-g_opendir(Char *str, glob_t *pglob)
-{
- char buf[MaxPathLen];
-
- if (!*str)
- strcpy(buf, ".");
- else
- g_Ctoc(str, buf);
-
- if (pglob->gl_flags & GLOB_ALTDIRFUNC)
- return((*pglob->gl_opendir)(buf));
-
- return(opendir(buf));
-}
-
-static int
-g_lstat(Char *fn, struct stat *sb, glob_t *pglob)
-{
- char buf[MaxPathLen];
-
- g_Ctoc(fn, buf);
- if (pglob->gl_flags & GLOB_ALTDIRFUNC)
- return((*pglob->gl_lstat)(buf, sb));
- return(lstat(buf, sb));
-}
-
-static int
-g_stat(Char *fn, struct stat *sb, glob_t *pglob)
-{
- char buf[MaxPathLen];
-
- g_Ctoc(fn, buf);
- if (pglob->gl_flags & GLOB_ALTDIRFUNC)
- return((*pglob->gl_stat)(buf, sb));
- return(stat(buf, sb));
-}
-
-static Char *
-g_strchr(Char *str, int ch)
-{
- do {
- if (*str == ch)
- return (str);
- } while (*str++);
- return (NULL);
-}
-
-#ifdef notdef
-static Char *
-g_strcat(Char *dst, const Char *src)
-{
- Char *sdst = dst;
-
- while (*dst++)
- continue;
- --dst;
- while((*dst++ = *src++) != CHAR_EOS)
- continue;
-
- return (sdst);
-}
-#endif
-
-static void
-g_Ctoc(const Char *str, char *buf)
-{
- char *dc;
-
- for (dc = buf; (*dc++ = *str++) != CHAR_EOS;)
- continue;
-}
-
-#ifdef DEBUG
-static void
-qprintf(const Char *str, Char *s)
-{
- Char *p;
-
- printf("%s:\n", str);
- for (p = s; *p; p++)
- printf("%c", CHAR(*p));
- printf("\n");
- for (p = s; *p; p++)
- printf("%c", *p & M_PROTECT ? '"' : ' ');
- printf("\n");
- for (p = s; *p; p++)
- printf("%c", ismeta(*p) ? '_' : ' ');
- printf("\n");
-}
-#endif
diff --git a/crypto/kerberosIV/appl/ftp/common/glob.h b/crypto/kerberosIV/appl/ftp/common/glob.h
deleted file mode 100644
index bece48a89cd7..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/glob.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Guido van Rossum.
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)glob.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _GLOB_H_
-#define _GLOB_H_
-
-struct stat;
-typedef struct {
- int gl_pathc; /* Count of total paths so far. */
- int gl_matchc; /* Count of paths matching pattern. */
- int gl_offs; /* Reserved at beginning of gl_pathv. */
- int gl_flags; /* Copy of flags parameter to glob. */
- char **gl_pathv; /* List of paths matching pattern. */
- /* Copy of errfunc parameter to glob. */
- int (*gl_errfunc) (const char *, int);
-
- /*
- * Alternate filesystem access methods for glob; replacement
- * versions of closedir(3), readdir(3), opendir(3), stat(2)
- * and lstat(2).
- */
- void (*gl_closedir) (void *);
- struct dirent *(*gl_readdir) (void *);
- void *(*gl_opendir) (const char *);
- int (*gl_lstat) (const char *, struct stat *);
- int (*gl_stat) (const char *, struct stat *);
-} glob_t;
-
-#define GLOB_APPEND 0x0001 /* Append to output from previous call. */
-#define GLOB_DOOFFS 0x0002 /* Use gl_offs. */
-#define GLOB_ERR 0x0004 /* Return on error. */
-#define GLOB_MARK 0x0008 /* Append / to matching directories. */
-#define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */
-#define GLOB_NOSORT 0x0020 /* Don't sort. */
-
-#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */
-#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */
-#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */
-#define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */
-#define GLOB_QUOTE 0x0400 /* Quote special chars with \. */
-#define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */
-
-#define GLOB_NOSPACE (-1) /* Malloc call failed. */
-#define GLOB_ABEND (-2) /* Unignored error. */
-
-int glob (const char *, int, int (*)(const char *, int), glob_t *);
-void globfree (glob_t *);
-
-#endif /* !_GLOB_H_ */
diff --git a/crypto/kerberosIV/appl/ftp/common/sockbuf.c b/crypto/kerberosIV/appl/ftp/common/sockbuf.c
deleted file mode 100644
index ab8c293f6548..000000000000
--- a/crypto/kerberosIV/appl/ftp/common/sockbuf.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "common.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-RCSID("$Id: sockbuf.c,v 1.2 1997/05/11 10:01:48 assar Exp $");
-
-void
-set_buffer_size(int fd, int read)
-{
-#if defined(SO_RCVBUF) && defined(SO_SNDBUF) && defined(HAVE_SETSOCKOPT)
- size_t size = 4194304;
- while(size >= 131072 &&
- setsockopt(fd, SOL_SOCKET, read ? SO_RCVBUF : SO_SNDBUF,
- (void *)&size, sizeof(size)) < 0)
- size /= 2;
-#endif
-}
-
-
diff --git a/crypto/kerberosIV/appl/ftp/ftp/Makefile.in b/crypto/kerberosIV/appl/ftp/ftp/Makefile.in
deleted file mode 100644
index 62bde3b17eab..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/Makefile.in
+++ /dev/null
@@ -1,76 +0,0 @@
-#
-# $Id: Makefile.in,v 1.24 1997/03/23 13:03:55 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-topdir = ../../..
-
-CC = @CC@
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS= @CPPFLAGS@ -I. -I$(srcdir) -I$(topdir) -I$(top_srcdir) -I$(topdir)/include -I$(top_srcdir)/include -I$(srcdir)/../common @INCLUDE_readline@
-LD_FLAGS = @LD_FLAGS@
-LIB_tgetent = @LIB_tgetent@
-LIBS = @LIBS@ @LIB_readline@
-MKINSTALLDIRS = $(top_srcdir)/mkinstalldirs
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-INCTOP = $(topdir)/include
-
-LIBTOP = $(topdir)/lib
-
-PROGS = ftp$(EXECSUFFIX)
-
-ftp_OBJS = cmds.o cmdtab.o ftp.o krb4.o main.o ruserpass.o domacro.o \
- globals.o kauth.o
-
-ftp_SOURCES = cmds.c cmdtab.c ftp.c krb4.c main.c ruserpass.c \
- domacro.c globals.c kauth.c
-
-OBJECTS = $(ftp_OBJS)
-SOURCES = $(ftp_SOURCES)
-
-all: $(PROGS)
-
-.c.o:
- $(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) $<
-
-install: all
- $(MKINSTALLDIRS) $(bindir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
-
-ftp$(EXECSUFFIX): $(ftp_OBJS) # ../common/libcommon.a
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(ftp_OBJS) -L../common -lcommon -L$(LIBTOP)/krb -lkrb -L$(LIBTOP)/des -ldes -L$(LIBTOP)/roken -lroken $(LIBS) -L$(LIBTOP)/roken -lroken
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-clean cleandir:
- rm -f *~ *.o core ftp \#*
-
-distclean:
- rm -f Makefile
-
-$(OBJECTS): ../../../include/config.h
diff --git a/crypto/kerberosIV/appl/ftp/ftp/cmds.c b/crypto/kerberosIV/appl/ftp/ftp/cmds.c
deleted file mode 100644
index 5e1980b703e1..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/cmds.c
+++ /dev/null
@@ -1,2073 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * FTP User Program -- Command Routines.
- */
-
-#include "ftp_locl.h"
-RCSID("$Id: cmds.c,v 1.23 1997/06/01 22:52:37 assar Exp $");
-
-typedef void (*sighand)(int);
-
-jmp_buf jabort;
-char *mname;
-char *home = "/";
-
-/*
- * `Another' gets another argument, and stores the new argc and argv.
- * It reverts to the top level (via main.c's intr()) on EOF/error.
- *
- * Returns false if no new arguments have been added.
- */
-int
-another(int *pargc, char ***pargv, char *prompt)
-{
- int len = strlen(line), ret;
-
- if (len >= sizeof(line) - 3) {
- printf("sorry, arguments too long\n");
- intr(0);
- }
- printf("(%s) ", prompt);
- line[len++] = ' ';
- if (fgets(&line[len], sizeof(line) - len, stdin) == NULL)
- intr(0);
- len += strlen(&line[len]);
- if (len > 0 && line[len - 1] == '\n')
- line[len - 1] = '\0';
- makeargv();
- ret = margc > *pargc;
- *pargc = margc;
- *pargv = margv;
- return (ret);
-}
-
-/*
- * Connect to peer server and
- * auto-login, if possible.
- */
-void
-setpeer(int argc, char **argv)
-{
- char *host;
- short port;
- struct servent *sp;
-
- if (connected) {
- printf("Already connected to %s, use close first.\n",
- hostname);
- code = -1;
- return;
- }
- if (argc < 2)
- another(&argc, &argv, "to");
- if (argc < 2 || argc > 3) {
- printf("usage: %s host-name [port]\n", argv[0]);
- code = -1;
- return;
- }
- sp = getservbyname("ftp", "tcp");
- if (sp == NULL)
- errx(1, "You bastard. You removed ftp/tcp from services");
- port = sp->s_port;
- if (argc > 2) {
- port = atoi(argv[2]);
- if (port <= 0) {
- printf("%s: bad port number-- %s\n", argv[1], argv[2]);
- printf ("usage: %s host-name [port]\n", argv[0]);
- code = -1;
- return;
- }
- port = htons(port);
- }
- host = hookup(argv[1], port);
- if (host) {
- int overbose;
-
- connected = 1;
- /*
- * Set up defaults for FTP.
- */
- strcpy(typename, "ascii"), type = TYPE_A;
- curtype = TYPE_A;
- strcpy(formname, "non-print"), form = FORM_N;
- strcpy(modename, "stream"), mode = MODE_S;
- strcpy(structname, "file"), stru = STRU_F;
- strcpy(bytename, "8"), bytesize = 8;
- if (autologin)
- login(argv[1]);
-
-#if (defined(unix) || defined(__unix__) || defined(__unix) || defined(_AIX) || defined(_CRAY)) && NBBY == 8
-/*
- * this ifdef is to keep someone form "porting" this to an incompatible
- * system and not checking this out. This way they have to think about it.
- */
- overbose = verbose;
- if (debug == 0)
- verbose = -1;
- if (command("SYST") == COMPLETE && overbose) {
- char *cp, c;
- cp = strchr(reply_string+4, ' ');
- if (cp == NULL)
- cp = strchr(reply_string+4, '\r');
- if (cp) {
- if (cp[-1] == '.')
- cp--;
- c = *cp;
- *cp = '\0';
- }
-
- printf("Remote system type is %s.\n",
- reply_string+4);
- if (cp)
- *cp = c;
- }
- if (!strncmp(reply_string, "215 UNIX Type: L8", 17)) {
- if (proxy)
- unix_proxy = 1;
- else
- unix_server = 1;
- /*
- * Set type to 0 (not specified by user),
- * meaning binary by default, but don't bother
- * telling server. We can use binary
- * for text files unless changed by the user.
- */
- type = 0;
- strcpy(typename, "binary");
- if (overbose)
- printf("Using %s mode to transfer files.\n",
- typename);
- } else {
- if (proxy)
- unix_proxy = 0;
- else
- unix_server = 0;
- if (overbose &&
- !strncmp(reply_string, "215 TOPS20", 10))
- printf(
-"Remember to set tenex mode when transfering binary files from this machine.\n");
- }
- verbose = overbose;
-#endif /* unix */
- }
-}
-
-struct types {
- char *t_name;
- char *t_mode;
- int t_type;
- char *t_arg;
-} types[] = {
- { "ascii", "A", TYPE_A, 0 },
- { "binary", "I", TYPE_I, 0 },
- { "image", "I", TYPE_I, 0 },
- { "ebcdic", "E", TYPE_E, 0 },
- { "tenex", "L", TYPE_L, bytename },
- { NULL }
-};
-
-/*
- * Set transfer type.
- */
-void
-settype(int argc, char **argv)
-{
- struct types *p;
- int comret;
-
- if (argc > 2) {
- char *sep;
-
- printf("usage: %s [", argv[0]);
- sep = " ";
- for (p = types; p->t_name; p++) {
- printf("%s%s", sep, p->t_name);
- sep = " | ";
- }
- printf(" ]\n");
- code = -1;
- return;
- }
- if (argc < 2) {
- printf("Using %s mode to transfer files.\n", typename);
- code = 0;
- return;
- }
- for (p = types; p->t_name; p++)
- if (strcmp(argv[1], p->t_name) == 0)
- break;
- if (p->t_name == 0) {
- printf("%s: unknown mode\n", argv[1]);
- code = -1;
- return;
- }
- if ((p->t_arg != NULL) && (*(p->t_arg) != '\0'))
- comret = command ("TYPE %s %s", p->t_mode, p->t_arg);
- else
- comret = command("TYPE %s", p->t_mode);
- if (comret == COMPLETE) {
- strcpy(typename, p->t_name);
- curtype = type = p->t_type;
- }
-}
-
-/*
- * Internal form of settype; changes current type in use with server
- * without changing our notion of the type for data transfers.
- * Used to change to and from ascii for listings.
- */
-void
-changetype(int newtype, int show)
-{
- struct types *p;
- int comret, oldverbose = verbose;
-
- if (newtype == 0)
- newtype = TYPE_I;
- if (newtype == curtype)
- return;
- if (debug == 0 && show == 0)
- verbose = 0;
- for (p = types; p->t_name; p++)
- if (newtype == p->t_type)
- break;
- if (p->t_name == 0) {
- printf("ftp: internal error: unknown type %d\n", newtype);
- return;
- }
- if (newtype == TYPE_L && bytename[0] != '\0')
- comret = command("TYPE %s %s", p->t_mode, bytename);
- else
- comret = command("TYPE %s", p->t_mode);
- if (comret == COMPLETE)
- curtype = newtype;
- verbose = oldverbose;
-}
-
-char *stype[] = {
- "type",
- "",
- 0
-};
-
-/*
- * Set binary transfer type.
- */
-/*VARARGS*/
-void
-setbinary(int argc, char **argv)
-{
-
- stype[1] = "binary";
- settype(2, stype);
-}
-
-/*
- * Set ascii transfer type.
- */
-/*VARARGS*/
-void
-setascii(int argc, char **argv)
-{
-
- stype[1] = "ascii";
- settype(2, stype);
-}
-
-/*
- * Set tenex transfer type.
- */
-/*VARARGS*/
-void
-settenex(int argc, char **argv)
-{
-
- stype[1] = "tenex";
- settype(2, stype);
-}
-
-/*
- * Set file transfer mode.
- */
-/*ARGSUSED*/
-void
-setftmode(int argc, char **argv)
-{
-
- printf("We only support %s mode, sorry.\n", modename);
- code = -1;
-}
-
-/*
- * Set file transfer format.
- */
-/*ARGSUSED*/
-void
-setform(int argc, char **argv)
-{
-
- printf("We only support %s format, sorry.\n", formname);
- code = -1;
-}
-
-/*
- * Set file transfer structure.
- */
-/*ARGSUSED*/
-void
-setstruct(int argc, char **argv)
-{
-
- printf("We only support %s structure, sorry.\n", structname);
- code = -1;
-}
-
-/*
- * Send a single file.
- */
-void
-put(int argc, char **argv)
-{
- char *cmd;
- int loc = 0;
- char *oldargv1, *oldargv2;
-
- if (argc == 2) {
- argc++;
- argv[2] = argv[1];
- loc++;
- }
- if (argc < 2 && !another(&argc, &argv, "local-file"))
- goto usage;
- if (argc < 3 && !another(&argc, &argv, "remote-file")) {
-usage:
- printf("usage: %s local-file remote-file\n", argv[0]);
- code = -1;
- return;
- }
- oldargv1 = argv[1];
- oldargv2 = argv[2];
- if (!globulize(&argv[1])) {
- code = -1;
- return;
- }
- /*
- * If "globulize" modifies argv[1], and argv[2] is a copy of
- * the old argv[1], make it a copy of the new argv[1].
- */
- if (argv[1] != oldargv1 && argv[2] == oldargv1) {
- argv[2] = argv[1];
- }
- cmd = (argv[0][0] == 'a') ? "APPE" : ((sunique) ? "STOU" : "STOR");
- if (loc && ntflag) {
- argv[2] = dotrans(argv[2]);
- }
- if (loc && mapflag) {
- argv[2] = domap(argv[2]);
- }
- sendrequest(cmd, argv[1], argv[2],
- argv[1] != oldargv1 || argv[2] != oldargv2);
-}
-
-/* ARGSUSED */
-static RETSIGTYPE
-mabort(int signo)
-{
- int ointer;
-
- printf("\n");
- fflush(stdout);
- if (mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with", mname)) {
- interactive = ointer;
- longjmp(jabort,0);
- }
- interactive = ointer;
- }
- mflag = 0;
- longjmp(jabort,0);
-}
-
-/*
- * Send multiple files.
- */
-void
-mput(int argc, char **argv)
-{
- int i;
- RETSIGTYPE (*oldintr)();
- int ointer;
- char *tp;
-
- if (argc < 2 && !another(&argc, &argv, "local-files")) {
- printf("usage: %s local-files\n", argv[0]);
- code = -1;
- return;
- }
- mname = argv[0];
- mflag = 1;
- oldintr = signal(SIGINT, mabort);
- setjmp(jabort);
- if (proxy) {
- char *cp, *tp2, tmpbuf[MaxPathLen];
-
- while ((cp = remglob(argv,0)) != NULL) {
- if (*cp == 0) {
- mflag = 0;
- continue;
- }
- if (mflag && confirm(argv[0], cp)) {
- tp = cp;
- if (mcase) {
- while (*tp && !islower(*tp)) {
- tp++;
- }
- if (!*tp) {
- tp = cp;
- tp2 = tmpbuf;
- while ((*tp2 = *tp) != '\0') {
- if (isupper(*tp2)) {
- *tp2 = 'a' + *tp2 - 'A';
- }
- tp++;
- tp2++;
- }
- }
- tp = tmpbuf;
- }
- if (ntflag) {
- tp = dotrans(tp);
- }
- if (mapflag) {
- tp = domap(tp);
- }
- sendrequest((sunique) ? "STOU" : "STOR",
- cp, tp, cp != tp || !interactive);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with","mput")) {
- mflag++;
- }
- interactive = ointer;
- }
- }
- }
- signal(SIGINT, oldintr);
- mflag = 0;
- return;
- }
- for (i = 1; i < argc; i++) {
- char **cpp;
- glob_t gl;
- int flags;
-
- if (!doglob) {
- if (mflag && confirm(argv[0], argv[i])) {
- tp = (ntflag) ? dotrans(argv[i]) : argv[i];
- tp = (mapflag) ? domap(tp) : tp;
- sendrequest((sunique) ? "STOU" : "STOR",
- argv[i], tp, tp != argv[i] || !interactive);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with","mput")) {
- mflag++;
- }
- interactive = ointer;
- }
- }
- continue;
- }
-
- memset(&gl, 0, sizeof(gl));
- flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
- if (glob(argv[i], flags, NULL, &gl) || gl.gl_pathc == 0) {
- warnx("%s: not found", argv[i]);
- globfree(&gl);
- continue;
- }
- for (cpp = gl.gl_pathv; cpp && *cpp != NULL; cpp++) {
- if (mflag && confirm(argv[0], *cpp)) {
- tp = (ntflag) ? dotrans(*cpp) : *cpp;
- tp = (mapflag) ? domap(tp) : tp;
- sendrequest((sunique) ? "STOU" : "STOR",
- *cpp, tp, *cpp != tp || !interactive);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with","mput")) {
- mflag++;
- }
- interactive = ointer;
- }
- }
- }
- globfree(&gl);
- }
- signal(SIGINT, oldintr);
- mflag = 0;
-}
-
-void
-reget(int argc, char **argv)
-{
-
- getit(argc, argv, 1, "r+w");
-}
-
-void
-get(int argc, char **argv)
-{
-
- getit(argc, argv, 0, restart_point ? "r+w" : "w" );
-}
-
-/*
- * Receive one file.
- */
-int
-getit(int argc, char **argv, int restartit, char *mode)
-{
- int loc = 0;
- char *oldargv1, *oldargv2;
-
- if (argc == 2) {
- argc++;
- argv[2] = argv[1];
- loc++;
- }
- if (argc < 2 && !another(&argc, &argv, "remote-file"))
- goto usage;
- if (argc < 3 && !another(&argc, &argv, "local-file")) {
-usage:
- printf("usage: %s remote-file [ local-file ]\n", argv[0]);
- code = -1;
- return (0);
- }
- oldargv1 = argv[1];
- oldargv2 = argv[2];
- if (!globulize(&argv[2])) {
- code = -1;
- return (0);
- }
- if (loc && mcase) {
- char *tp = argv[1], *tp2, tmpbuf[MaxPathLen];
-
- while (*tp && !islower(*tp)) {
- tp++;
- }
- if (!*tp) {
- tp = argv[2];
- tp2 = tmpbuf;
- while ((*tp2 = *tp) != '\0') {
- if (isupper(*tp2)) {
- *tp2 = 'a' + *tp2 - 'A';
- }
- tp++;
- tp2++;
- }
- argv[2] = tmpbuf;
- }
- }
- if (loc && ntflag)
- argv[2] = dotrans(argv[2]);
- if (loc && mapflag)
- argv[2] = domap(argv[2]);
- if (restartit) {
- struct stat stbuf;
- int ret;
-
- ret = stat(argv[2], &stbuf);
- if (restartit == 1) {
- if (ret < 0) {
- warn("local: %s", argv[2]);
- return (0);
- }
- restart_point = stbuf.st_size;
- } else {
- if (ret == 0) {
- int overbose;
-
- overbose = verbose;
- if (debug == 0)
- verbose = -1;
- if (command("MDTM %s", argv[1]) == COMPLETE) {
- int yy, mo, day, hour, min, sec;
- struct tm *tm;
- verbose = overbose;
- sscanf(reply_string,
- "%*s %04d%02d%02d%02d%02d%02d",
- &yy, &mo, &day, &hour, &min, &sec);
- tm = gmtime(&stbuf.st_mtime);
- tm->tm_mon++;
- if (tm->tm_year > yy%100)
- return (1);
- if ((tm->tm_year == yy%100 &&
- tm->tm_mon > mo) ||
- (tm->tm_mon == mo &&
- tm->tm_mday > day) ||
- (tm->tm_mday == day &&
- tm->tm_hour > hour) ||
- (tm->tm_hour == hour &&
- tm->tm_min > min) ||
- (tm->tm_min == min &&
- tm->tm_sec > sec))
- return (1);
- } else {
- printf("%s\n", reply_string);
- verbose = overbose;
- return (0);
- }
- }
- }
- }
-
- recvrequest("RETR", argv[2], argv[1], mode,
- argv[1] != oldargv1 || argv[2] != oldargv2);
- restart_point = 0;
- return (0);
-}
-
-/*
- * Get multiple files.
- */
-void
-mget(int argc, char **argv)
-{
- sighand oldintr;
- int ch, ointer;
- char *cp, *tp, *tp2, tmpbuf[MaxPathLen];
-
- if (argc < 2 && !another(&argc, &argv, "remote-files")) {
- printf("usage: %s remote-files\n", argv[0]);
- code = -1;
- return;
- }
- mname = argv[0];
- mflag = 1;
- oldintr = signal(SIGINT, mabort);
- setjmp(jabort);
- while ((cp = remglob(argv,proxy)) != NULL) {
- if (*cp == '\0') {
- mflag = 0;
- continue;
- }
- if (mflag && confirm(argv[0], cp)) {
- tp = cp;
- if (mcase) {
- for (tp2 = tmpbuf; (ch = *tp++);)
- *tp2++ = isupper(ch) ? tolower(ch) : ch;
- *tp2 = '\0';
- tp = tmpbuf;
- }
- if (ntflag) {
- tp = dotrans(tp);
- }
- if (mapflag) {
- tp = domap(tp);
- }
- recvrequest("RETR", tp, cp, "w",
- tp != cp || !interactive);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with","mget")) {
- mflag++;
- }
- interactive = ointer;
- }
- }
- }
- signal(SIGINT,oldintr);
- mflag = 0;
-}
-
-char *
-remglob(char **argv, int doswitch)
-{
- char temp[16];
- static char buf[MaxPathLen];
- static FILE *ftemp = NULL;
- static char **args;
- int oldverbose, oldhash;
- char *cp, *mode;
-
- if (!mflag) {
- if (!doglob) {
- args = NULL;
- }
- else {
- if (ftemp) {
- fclose(ftemp);
- ftemp = NULL;
- }
- }
- return (NULL);
- }
- if (!doglob) {
- if (args == NULL)
- args = argv;
- if ((cp = *++args) == NULL)
- args = NULL;
- return (cp);
- }
- if (ftemp == NULL) {
- strcpy(temp, _PATH_TMP_XXX);
- mktemp(temp);
- oldverbose = verbose, verbose = 0;
- oldhash = hash, hash = 0;
- if (doswitch) {
- pswitch(!proxy);
- }
- for (mode = "w"; *++argv != NULL; mode = "a")
- recvrequest ("NLST", temp, *argv, mode, 0);
- if (doswitch) {
- pswitch(!proxy);
- }
- verbose = oldverbose; hash = oldhash;
- ftemp = fopen(temp, "r");
- unlink(temp);
- if (ftemp == NULL) {
- printf("can't find list of remote files, oops\n");
- return (NULL);
- }
- }
- if (fgets(buf, sizeof (buf), ftemp) == NULL) {
- fclose(ftemp);
- ftemp = NULL;
- return (NULL);
- }
- if ((cp = strchr(buf, '\n')) != NULL)
- *cp = '\0';
- return (buf);
-}
-
-char *
-onoff(int bool)
-{
-
- return (bool ? "on" : "off");
-}
-
-/*
- * Show status.
- */
-/*ARGSUSED*/
-void
-status(int argc, char **argv)
-{
- int i;
-
- if (connected)
- printf("Connected to %s.\n", hostname);
- else
- printf("Not connected.\n");
- if (!proxy) {
- pswitch(1);
- if (connected) {
- printf("Connected for proxy commands to %s.\n", hostname);
- }
- else {
- printf("No proxy connection.\n");
- }
- pswitch(0);
- }
- sec_status();
- printf("Mode: %s; Type: %s; Form: %s; Structure: %s\n",
- modename, typename, formname, structname);
- printf("Verbose: %s; Bell: %s; Prompting: %s; Globbing: %s\n",
- onoff(verbose), onoff(bell), onoff(interactive),
- onoff(doglob));
- printf("Store unique: %s; Receive unique: %s\n", onoff(sunique),
- onoff(runique));
- printf("Case: %s; CR stripping: %s\n",onoff(mcase),onoff(crflag));
- if (ntflag) {
- printf("Ntrans: (in) %s (out) %s\n", ntin,ntout);
- }
- else {
- printf("Ntrans: off\n");
- }
- if (mapflag) {
- printf("Nmap: (in) %s (out) %s\n", mapin, mapout);
- }
- else {
- printf("Nmap: off\n");
- }
- printf("Hash mark printing: %s; Use of PORT cmds: %s\n",
- onoff(hash), onoff(sendport));
- if (macnum > 0) {
- printf("Macros:\n");
- for (i=0; i<macnum; i++) {
- printf("\t%s\n",macros[i].mac_name);
- }
- }
- code = 0;
-}
-
-/*
- * Set beep on cmd completed mode.
- */
-/*VARARGS*/
-void
-setbell(int argc, char **argv)
-{
-
- bell = !bell;
- printf("Bell mode %s.\n", onoff(bell));
- code = bell;
-}
-
-/*
- * Turn on packet tracing.
- */
-/*VARARGS*/
-void
-settrace(int argc, char **argv)
-{
-
- trace = !trace;
- printf("Packet tracing %s.\n", onoff(trace));
- code = trace;
-}
-
-/*
- * Toggle hash mark printing during transfers.
- */
-/*VARARGS*/
-void
-sethash(int argc, char **argv)
-{
-
- hash = !hash;
- printf("Hash mark printing %s", onoff(hash));
- code = hash;
- if (hash)
- printf(" (%d bytes/hash mark)", 1024);
- printf(".\n");
-}
-
-/*
- * Turn on printing of server echo's.
- */
-/*VARARGS*/
-void
-setverbose(int argc, char **argv)
-{
-
- verbose = !verbose;
- printf("Verbose mode %s.\n", onoff(verbose));
- code = verbose;
-}
-
-/*
- * Toggle PORT cmd use before each data connection.
- */
-/*VARARGS*/
-void
-setport(int argc, char **argv)
-{
-
- sendport = !sendport;
- printf("Use of PORT cmds %s.\n", onoff(sendport));
- code = sendport;
-}
-
-/*
- * Turn on interactive prompting
- * during mget, mput, and mdelete.
- */
-/*VARARGS*/
-void
-setprompt(int argc, char **argv)
-{
-
- interactive = !interactive;
- printf("Interactive mode %s.\n", onoff(interactive));
- code = interactive;
-}
-
-/*
- * Toggle metacharacter interpretation
- * on local file names.
- */
-/*VARARGS*/
-void
-setglob(int argc, char **argv)
-{
-
- doglob = !doglob;
- printf("Globbing %s.\n", onoff(doglob));
- code = doglob;
-}
-
-/*
- * Set debugging mode on/off and/or
- * set level of debugging.
- */
-/*VARARGS*/
-void
-setdebug(int argc, char **argv)
-{
- int val;
-
- if (argc > 1) {
- val = atoi(argv[1]);
- if (val < 0) {
- printf("%s: bad debugging value.\n", argv[1]);
- code = -1;
- return;
- }
- } else
- val = !debug;
- debug = val;
- if (debug)
- options |= SO_DEBUG;
- else
- options &= ~SO_DEBUG;
- printf("Debugging %s (debug=%d).\n", onoff(debug), debug);
- code = debug > 0;
-}
-
-/*
- * Set current working directory
- * on remote machine.
- */
-void
-cd(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "remote-directory")) {
- printf("usage: %s remote-directory\n", argv[0]);
- code = -1;
- return;
- }
- if (command("CWD %s", argv[1]) == ERROR && code == 500) {
- if (verbose)
- printf("CWD command not recognized, trying XCWD\n");
- command("XCWD %s", argv[1]);
- }
-}
-
-/*
- * Set current working directory
- * on local machine.
- */
-void
-lcd(int argc, char **argv)
-{
- char buf[MaxPathLen];
-
- if (argc < 2)
- argc++, argv[1] = home;
- if (argc != 2) {
- printf("usage: %s local-directory\n", argv[0]);
- code = -1;
- return;
- }
- if (!globulize(&argv[1])) {
- code = -1;
- return;
- }
- if (chdir(argv[1]) < 0) {
- warn("local: %s", argv[1]);
- code = -1;
- return;
- }
- if (getcwd(buf, sizeof(buf)) != NULL)
- printf("Local directory now %s\n", buf);
- else
- warnx("getwd: %s", buf);
- code = 0;
-}
-
-/*
- * Delete a single file.
- */
-void
-delete(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "remote-file")) {
- printf("usage: %s remote-file\n", argv[0]);
- code = -1;
- return;
- }
- command("DELE %s", argv[1]);
-}
-
-/*
- * Delete multiple files.
- */
-void
-mdelete(int argc, char **argv)
-{
- sighand oldintr;
- int ointer;
- char *cp;
-
- if (argc < 2 && !another(&argc, &argv, "remote-files")) {
- printf("usage: %s remote-files\n", argv[0]);
- code = -1;
- return;
- }
- mname = argv[0];
- mflag = 1;
- oldintr = signal(SIGINT, mabort);
- setjmp(jabort);
- while ((cp = remglob(argv,0)) != NULL) {
- if (*cp == '\0') {
- mflag = 0;
- continue;
- }
- if (mflag && confirm(argv[0], cp)) {
- command("DELE %s", cp);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with", "mdelete")) {
- mflag++;
- }
- interactive = ointer;
- }
- }
- }
- signal(SIGINT, oldintr);
- mflag = 0;
-}
-
-/*
- * Rename a remote file.
- */
-void
-renamefile(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "from-name"))
- goto usage;
- if (argc < 3 && !another(&argc, &argv, "to-name")) {
-usage:
- printf("%s from-name to-name\n", argv[0]);
- code = -1;
- return;
- }
- if (command("RNFR %s", argv[1]) == CONTINUE)
- command("RNTO %s", argv[2]);
-}
-
-/*
- * Get a directory listing
- * of remote files.
- */
-void
-ls(int argc, char **argv)
-{
- char *cmd;
-
- if (argc < 2)
- argc++, argv[1] = NULL;
- if (argc < 3)
- argc++, argv[2] = "-";
- if (argc > 3) {
- printf("usage: %s remote-directory local-file\n", argv[0]);
- code = -1;
- return;
- }
- cmd = argv[0][0] == 'n' ? "NLST" : "LIST";
- if (strcmp(argv[2], "-") && !globulize(&argv[2])) {
- code = -1;
- return;
- }
- if (strcmp(argv[2], "-") && *argv[2] != '|')
- if (!globulize(&argv[2]) || !confirm("output to local-file:", argv[2])) {
- code = -1;
- return;
- }
- recvrequest(cmd, argv[2], argv[1], "w", 0);
-}
-
-/*
- * Get a directory listing
- * of multiple remote files.
- */
-void
-mls(int argc, char **argv)
-{
- sighand oldintr;
- int ointer, i;
- char *cmd, mode[1], *dest;
-
- if (argc < 2 && !another(&argc, &argv, "remote-files"))
- goto usage;
- if (argc < 3 && !another(&argc, &argv, "local-file")) {
-usage:
- printf("usage: %s remote-files local-file\n", argv[0]);
- code = -1;
- return;
- }
- dest = argv[argc - 1];
- argv[argc - 1] = NULL;
- if (strcmp(dest, "-") && *dest != '|')
- if (!globulize(&dest) ||
- !confirm("output to local-file:", dest)) {
- code = -1;
- return;
- }
- cmd = argv[0][1] == 'l' ? "NLST" : "LIST";
- mname = argv[0];
- mflag = 1;
- oldintr = signal(SIGINT, mabort);
- setjmp(jabort);
- for (i = 1; mflag && i < argc-1; ++i) {
- *mode = (i == 1) ? 'w' : 'a';
- recvrequest(cmd, dest, argv[i], mode, 0);
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
- if (confirm("Continue with", argv[0])) {
- mflag ++;
- }
- interactive = ointer;
- }
- }
- signal(SIGINT, oldintr);
- mflag = 0;
-}
-
-/*
- * Do a shell escape
- */
-/*ARGSUSED*/
-void
-shell(int argc, char **argv)
-{
- pid_t pid;
- RETSIGTYPE (*old1)(), (*old2)();
- char shellnam[40], *shell, *namep;
- int status;
-
- old1 = signal (SIGINT, SIG_IGN);
- old2 = signal (SIGQUIT, SIG_IGN);
- if ((pid = fork()) == 0) {
- for (pid = 3; pid < 20; pid++)
- close(pid);
- signal(SIGINT, SIG_DFL);
- signal(SIGQUIT, SIG_DFL);
- shell = getenv("SHELL");
- if (shell == NULL)
- shell = _PATH_BSHELL;
- namep = strrchr(shell,'/');
- if (namep == NULL)
- namep = shell;
- strcpy(shellnam,"-");
- strcat(shellnam, ++namep);
- if (strcmp(namep, "sh") != 0)
- shellnam[0] = '+';
- if (debug) {
- printf ("%s\n", shell);
- fflush (stdout);
- }
- if (argc > 1) {
- execl(shell,shellnam,"-c",altarg,(char *)0);
- }
- else {
- execl(shell,shellnam,(char *)0);
- }
- warn("%s", shell);
- code = -1;
- exit(1);
- }
- if (pid > 0)
- while (waitpid(-1, &status, 0) != pid)
- ;
- signal(SIGINT, old1);
- signal(SIGQUIT, old2);
- if (pid == -1) {
- warn("%s", "Try again later");
- code = -1;
- }
- else {
- code = 0;
- }
-}
-
-/*
- * Send new user information (re-login)
- */
-void
-user(int argc, char **argv)
-{
- char acct[80];
- int n, aflag = 0;
- char tmp[256];
-
- if (argc < 2)
- another(&argc, &argv, "username");
- if (argc < 2 || argc > 4) {
- printf("usage: %s username [password] [account]\n", argv[0]);
- code = -1;
- return;
- }
- n = command("USER %s", argv[1]);
- if (n == CONTINUE) {
- if (argc < 3 ) {
- des_read_pw_string (tmp,
- sizeof(tmp),
- "Password: ", 0);
- argv[2] = tmp;
- argc++;
- }
- n = command("PASS %s", argv[2]);
- }
- if (n == CONTINUE) {
- if (argc < 4) {
- printf("Account: "); fflush(stdout);
- fgets(acct, sizeof(acct) - 1, stdin);
- acct[strlen(acct) - 1] = '\0';
- argv[3] = acct; argc++;
- }
- n = command("ACCT %s", argv[3]);
- aflag++;
- }
- if (n != COMPLETE) {
- fprintf(stdout, "Login failed.\n");
- return;
- }
- if (!aflag && argc == 4) {
- command("ACCT %s", argv[3]);
- }
-}
-
-/*
- * Print working directory.
- */
-/*VARARGS*/
-void
-pwd(int argc, char **argv)
-{
- int oldverbose = verbose;
-
- /*
- * If we aren't verbose, this doesn't do anything!
- */
- verbose = 1;
- if (command("PWD") == ERROR && code == 500) {
- printf("PWD command not recognized, trying XPWD\n");
- command("XPWD");
- }
- verbose = oldverbose;
-}
-
-/*
- * Make a directory.
- */
-void
-makedir(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "directory-name")) {
- printf("usage: %s directory-name\n", argv[0]);
- code = -1;
- return;
- }
- if (command("MKD %s", argv[1]) == ERROR && code == 500) {
- if (verbose)
- printf("MKD command not recognized, trying XMKD\n");
- command("XMKD %s", argv[1]);
- }
-}
-
-/*
- * Remove a directory.
- */
-void
-removedir(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "directory-name")) {
- printf("usage: %s directory-name\n", argv[0]);
- code = -1;
- return;
- }
- if (command("RMD %s", argv[1]) == ERROR && code == 500) {
- if (verbose)
- printf("RMD command not recognized, trying XRMD\n");
- command("XRMD %s", argv[1]);
- }
-}
-
-/*
- * Send a line, verbatim, to the remote machine.
- */
-void
-quote(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "command line to send")) {
- printf("usage: %s line-to-send\n", argv[0]);
- code = -1;
- return;
- }
- quote1("", argc, argv);
-}
-
-/*
- * Send a SITE command to the remote machine. The line
- * is sent verbatim to the remote machine, except that the
- * word "SITE" is added at the front.
- */
-void
-site(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "arguments to SITE command")) {
- printf("usage: %s line-to-send\n", argv[0]);
- code = -1;
- return;
- }
- quote1("SITE ", argc, argv);
-}
-
-/*
- * Turn argv[1..argc) into a space-separated string, then prepend initial text.
- * Send the result as a one-line command and get response.
- */
-void
-quote1(char *initial, int argc, char **argv)
-{
- int i, len;
- char buf[BUFSIZ]; /* must be >= sizeof(line) */
-
- strcpy(buf, initial);
- if (argc > 1) {
- len = strlen(buf);
- len += strlen(strcpy(&buf[len], argv[1]));
- for (i = 2; i < argc; i++) {
- buf[len++] = ' ';
- len += strlen(strcpy(&buf[len], argv[i]));
- }
- }
- if (command(buf) == PRELIM) {
- while (getreply(0) == PRELIM)
- continue;
- }
-}
-
-void
-do_chmod(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "mode"))
- goto usage;
- if (argc < 3 && !another(&argc, &argv, "file-name")) {
-usage:
- printf("usage: %s mode file-name\n", argv[0]);
- code = -1;
- return;
- }
- command("SITE CHMOD %s %s", argv[1], argv[2]);
-}
-
-void
-do_umask(int argc, char **argv)
-{
- int oldverbose = verbose;
-
- verbose = 1;
- command(argc == 1 ? "SITE UMASK" : "SITE UMASK %s", argv[1]);
- verbose = oldverbose;
-}
-
-void
-ftp_idle(int argc, char **argv)
-{
- int oldverbose = verbose;
-
- verbose = 1;
- command(argc == 1 ? "SITE IDLE" : "SITE IDLE %s", argv[1]);
- verbose = oldverbose;
-}
-
-/*
- * Ask the other side for help.
- */
-void
-rmthelp(int argc, char **argv)
-{
- int oldverbose = verbose;
-
- verbose = 1;
- command(argc == 1 ? "HELP" : "HELP %s", argv[1]);
- verbose = oldverbose;
-}
-
-/*
- * Terminate session and exit.
- */
-/*VARARGS*/
-void
-quit(int argc, char **argv)
-{
-
- if (connected)
- disconnect(0, 0);
- pswitch(1);
- if (connected) {
- disconnect(0, 0);
- }
- exit(0);
-}
-
-/*
- * Terminate session, but don't exit.
- */
-void
-disconnect(int argc, char **argv)
-{
-
- if (!connected)
- return;
- command("QUIT");
- if (cout) {
- fclose(cout);
- }
- cout = NULL;
- connected = 0;
- krb4_quit();
- data = -1;
- if (!proxy) {
- macnum = 0;
- }
-}
-
-int
-confirm(char *cmd, char *file)
-{
- char line[BUFSIZ];
-
- if (!interactive)
- return (1);
- printf("%s %s? ", cmd, file);
- fflush(stdout);
- if (fgets(line, sizeof line, stdin) == NULL)
- return (0);
- return (*line != 'n' && *line != 'N');
-}
-
-void
-fatal(char *msg)
-{
-
- errx(1, "%s", msg);
-}
-
-/*
- * Glob a local file name specification with
- * the expectation of a single return value.
- * Can't control multiple values being expanded
- * from the expression, we return only the first.
- */
-int
-globulize(char **cpp)
-{
- glob_t gl;
- int flags;
-
- if (!doglob)
- return (1);
-
- flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
- memset(&gl, 0, sizeof(gl));
- if (glob(*cpp, flags, NULL, &gl) ||
- gl.gl_pathc == 0) {
- warnx("%s: not found", *cpp);
- globfree(&gl);
- return (0);
- }
- *cpp = strdup(gl.gl_pathv[0]); /* XXX - wasted memory */
- globfree(&gl);
- return (1);
-}
-
-void
-account(int argc, char **argv)
-{
- char acct[50];
-
- if (argc > 1) {
- ++argv;
- --argc;
- strncpy(acct,*argv,49);
- acct[49] = '\0';
- while (argc > 1) {
- --argc;
- ++argv;
- strncat(acct,*argv, 49-strlen(acct));
- }
- }
- else {
- des_read_pw_string(acct, sizeof(acct), "Account:", 0);
- }
- command("ACCT %s", acct);
-}
-
-jmp_buf abortprox;
-
-static RETSIGTYPE
-proxabort(int sig)
-{
-
- if (!proxy) {
- pswitch(1);
- }
- if (connected) {
- proxflag = 1;
- }
- else {
- proxflag = 0;
- }
- pswitch(0);
- longjmp(abortprox,1);
-}
-
-void
-doproxy(int argc, char **argv)
-{
- struct cmd *c;
- RETSIGTYPE (*oldintr)();
-
- if (argc < 2 && !another(&argc, &argv, "command")) {
- printf("usage: %s command\n", argv[0]);
- code = -1;
- return;
- }
- c = getcmd(argv[1]);
- if (c == (struct cmd *) -1) {
- printf("?Ambiguous command\n");
- fflush(stdout);
- code = -1;
- return;
- }
- if (c == 0) {
- printf("?Invalid command\n");
- fflush(stdout);
- code = -1;
- return;
- }
- if (!c->c_proxy) {
- printf("?Invalid proxy command\n");
- fflush(stdout);
- code = -1;
- return;
- }
- if (setjmp(abortprox)) {
- code = -1;
- return;
- }
- oldintr = signal(SIGINT, proxabort);
- pswitch(1);
- if (c->c_conn && !connected) {
- printf("Not connected\n");
- fflush(stdout);
- pswitch(0);
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- (*c->c_handler)(argc-1, argv+1);
- if (connected) {
- proxflag = 1;
- }
- else {
- proxflag = 0;
- }
- pswitch(0);
- signal(SIGINT, oldintr);
-}
-
-void
-setcase(int argc, char **argv)
-{
-
- mcase = !mcase;
- printf("Case mapping %s.\n", onoff(mcase));
- code = mcase;
-}
-
-void
-setcr(int argc, char **argv)
-{
-
- crflag = !crflag;
- printf("Carriage Return stripping %s.\n", onoff(crflag));
- code = crflag;
-}
-
-void
-setntrans(int argc, char **argv)
-{
- if (argc == 1) {
- ntflag = 0;
- printf("Ntrans off.\n");
- code = ntflag;
- return;
- }
- ntflag++;
- code = ntflag;
- strncpy(ntin, argv[1], 16);
- ntin[16] = '\0';
- if (argc == 2) {
- ntout[0] = '\0';
- return;
- }
- strncpy(ntout, argv[2], 16);
- ntout[16] = '\0';
-}
-
-char *
-dotrans(char *name)
-{
- static char new[MaxPathLen];
- char *cp1, *cp2 = new;
- int i, ostop, found;
-
- for (ostop = 0; *(ntout + ostop) && ostop < 16; ostop++)
- continue;
- for (cp1 = name; *cp1; cp1++) {
- found = 0;
- for (i = 0; *(ntin + i) && i < 16; i++) {
- if (*cp1 == *(ntin + i)) {
- found++;
- if (i < ostop) {
- *cp2++ = *(ntout + i);
- }
- break;
- }
- }
- if (!found) {
- *cp2++ = *cp1;
- }
- }
- *cp2 = '\0';
- return (new);
-}
-
-void
-setnmap(int argc, char **argv)
-{
- char *cp;
-
- if (argc == 1) {
- mapflag = 0;
- printf("Nmap off.\n");
- code = mapflag;
- return;
- }
- if (argc < 3 && !another(&argc, &argv, "mapout")) {
- printf("Usage: %s [mapin mapout]\n",argv[0]);
- code = -1;
- return;
- }
- mapflag = 1;
- code = 1;
- cp = strchr(altarg, ' ');
- if (proxy) {
- while(*++cp == ' ')
- continue;
- altarg = cp;
- cp = strchr(altarg, ' ');
- }
- *cp = '\0';
- strncpy(mapin, altarg, MaxPathLen - 1);
- while (*++cp == ' ')
- continue;
- strncpy(mapout, cp, MaxPathLen - 1);
-}
-
-char *
-domap(char *name)
-{
- static char new[MaxPathLen];
- char *cp1 = name, *cp2 = mapin;
- char *tp[9], *te[9];
- int i, toks[9], toknum = 0, match = 1;
-
- for (i=0; i < 9; ++i) {
- toks[i] = 0;
- }
- while (match && *cp1 && *cp2) {
- switch (*cp2) {
- case '\\':
- if (*++cp2 != *cp1) {
- match = 0;
- }
- break;
- case '$':
- if (*(cp2+1) >= '1' && (*cp2+1) <= '9') {
- if (*cp1 != *(++cp2+1)) {
- toks[toknum = *cp2 - '1']++;
- tp[toknum] = cp1;
- while (*++cp1 && *(cp2+1)
- != *cp1);
- te[toknum] = cp1;
- }
- cp2++;
- break;
- }
- /* FALLTHROUGH */
- default:
- if (*cp2 != *cp1) {
- match = 0;
- }
- break;
- }
- if (match && *cp1) {
- cp1++;
- }
- if (match && *cp2) {
- cp2++;
- }
- }
- if (!match && *cp1) /* last token mismatch */
- {
- toks[toknum] = 0;
- }
- cp1 = new;
- *cp1 = '\0';
- cp2 = mapout;
- while (*cp2) {
- match = 0;
- switch (*cp2) {
- case '\\':
- if (*(cp2 + 1)) {
- *cp1++ = *++cp2;
- }
- break;
- case '[':
-LOOP:
- if (*++cp2 == '$' && isdigit(*(cp2+1))) {
- if (*++cp2 == '0') {
- char *cp3 = name;
-
- while (*cp3) {
- *cp1++ = *cp3++;
- }
- match = 1;
- }
- else if (toks[toknum = *cp2 - '1']) {
- char *cp3 = tp[toknum];
-
- while (cp3 != te[toknum]) {
- *cp1++ = *cp3++;
- }
- match = 1;
- }
- }
- else {
- while (*cp2 && *cp2 != ',' &&
- *cp2 != ']') {
- if (*cp2 == '\\') {
- cp2++;
- }
- else if (*cp2 == '$' &&
- isdigit(*(cp2+1))) {
- if (*++cp2 == '0') {
- char *cp3 = name;
-
- while (*cp3) {
- *cp1++ = *cp3++;
- }
- }
- else if (toks[toknum =
- *cp2 - '1']) {
- char *cp3=tp[toknum];
-
- while (cp3 !=
- te[toknum]) {
- *cp1++ = *cp3++;
- }
- }
- }
- else if (*cp2) {
- *cp1++ = *cp2++;
- }
- }
- if (!*cp2) {
- printf("nmap: unbalanced brackets\n");
- return (name);
- }
- match = 1;
- cp2--;
- }
- if (match) {
- while (*++cp2 && *cp2 != ']') {
- if (*cp2 == '\\' && *(cp2 + 1)) {
- cp2++;
- }
- }
- if (!*cp2) {
- printf("nmap: unbalanced brackets\n");
- return (name);
- }
- break;
- }
- switch (*++cp2) {
- case ',':
- goto LOOP;
- case ']':
- break;
- default:
- cp2--;
- goto LOOP;
- }
- break;
- case '$':
- if (isdigit(*(cp2 + 1))) {
- if (*++cp2 == '0') {
- char *cp3 = name;
-
- while (*cp3) {
- *cp1++ = *cp3++;
- }
- }
- else if (toks[toknum = *cp2 - '1']) {
- char *cp3 = tp[toknum];
-
- while (cp3 != te[toknum]) {
- *cp1++ = *cp3++;
- }
- }
- break;
- }
- /* intentional drop through */
- default:
- *cp1++ = *cp2;
- break;
- }
- cp2++;
- }
- *cp1 = '\0';
- if (!*new) {
- return (name);
- }
- return (new);
-}
-
-void
-setpassive(int argc, char **argv)
-{
-
- passivemode = !passivemode;
- printf("Passive mode %s.\n", onoff(passivemode));
- code = passivemode;
-}
-
-void
-setsunique(int argc, char **argv)
-{
-
- sunique = !sunique;
- printf("Store unique %s.\n", onoff(sunique));
- code = sunique;
-}
-
-void
-setrunique(int argc, char **argv)
-{
-
- runique = !runique;
- printf("Receive unique %s.\n", onoff(runique));
- code = runique;
-}
-
-/* change directory to perent directory */
-void
-cdup(int argc, char **argv)
-{
-
- if (command("CDUP") == ERROR && code == 500) {
- if (verbose)
- printf("CDUP command not recognized, trying XCUP\n");
- command("XCUP");
- }
-}
-
-/* restart transfer at specific point */
-void
-restart(int argc, char **argv)
-{
-
- if (argc != 2)
- printf("restart: offset not specified\n");
- else {
- restart_point = atol(argv[1]);
- printf("restarting at %ld. %s\n", (long)restart_point,
- "execute get, put or append to initiate transfer");
- }
-}
-
-/* show remote system type */
-void
-syst(int argc, char **argv)
-{
-
- command("SYST");
-}
-
-void
-macdef(int argc, char **argv)
-{
- char *tmp;
- int c;
-
- if (macnum == 16) {
- printf("Limit of 16 macros have already been defined\n");
- code = -1;
- return;
- }
- if (argc < 2 && !another(&argc, &argv, "macro name")) {
- printf("Usage: %s macro_name\n",argv[0]);
- code = -1;
- return;
- }
- if (interactive) {
- printf("Enter macro line by line, terminating it with a null line\n");
- }
- strncpy(macros[macnum].mac_name, argv[1], 8);
- if (macnum == 0) {
- macros[macnum].mac_start = macbuf;
- }
- else {
- macros[macnum].mac_start = macros[macnum - 1].mac_end + 1;
- }
- tmp = macros[macnum].mac_start;
- while (tmp != macbuf+4096) {
- if ((c = getchar()) == EOF) {
- printf("macdef:end of file encountered\n");
- code = -1;
- return;
- }
- if ((*tmp = c) == '\n') {
- if (tmp == macros[macnum].mac_start) {
- macros[macnum++].mac_end = tmp;
- code = 0;
- return;
- }
- if (*(tmp-1) == '\0') {
- macros[macnum++].mac_end = tmp - 1;
- code = 0;
- return;
- }
- *tmp = '\0';
- }
- tmp++;
- }
- while (1) {
- while ((c = getchar()) != '\n' && c != EOF)
- /* LOOP */;
- if (c == EOF || getchar() == '\n') {
- printf("Macro not defined - 4k buffer exceeded\n");
- code = -1;
- return;
- }
- }
-}
-
-/*
- * get size of file on remote machine
- */
-void
-sizecmd(int argc, char **argv)
-{
-
- if (argc < 2 && !another(&argc, &argv, "filename")) {
- printf("usage: %s filename\n", argv[0]);
- code = -1;
- return;
- }
- command("SIZE %s", argv[1]);
-}
-
-/*
- * get last modification time of file on remote machine
- */
-void
-modtime(int argc, char **argv)
-{
- int overbose;
-
- if (argc < 2 && !another(&argc, &argv, "filename")) {
- printf("usage: %s filename\n", argv[0]);
- code = -1;
- return;
- }
- overbose = verbose;
- if (debug == 0)
- verbose = -1;
- if (command("MDTM %s", argv[1]) == COMPLETE) {
- int yy, mo, day, hour, min, sec;
- sscanf(reply_string, "%*s %04d%02d%02d%02d%02d%02d", &yy, &mo,
- &day, &hour, &min, &sec);
- /* might want to print this in local time */
- printf("%s\t%02d/%02d/%04d %02d:%02d:%02d GMT\n", argv[1],
- mo, day, yy, hour, min, sec);
- } else
- printf("%s\n", reply_string);
- verbose = overbose;
-}
-
-/*
- * show status on reomte machine
- */
-void
-rmtstatus(int argc, char **argv)
-{
-
- command(argc > 1 ? "STAT %s" : "STAT" , argv[1]);
-}
-
-/*
- * get file if modtime is more recent than current file
- */
-void
-newer(int argc, char **argv)
-{
-
- if (getit(argc, argv, -1, "w"))
- printf("Local file \"%s\" is newer than remote file \"%s\"\n",
- argv[2], argv[1]);
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/cmdtab.c b/crypto/kerberosIV/appl/ftp/ftp/cmdtab.c
deleted file mode 100644
index 9567e3c71d3a..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/cmdtab.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "ftp_locl.h"
-
-/*
- * User FTP -- Command Tables.
- */
-
-char accounthelp[] = "send account command to remote server";
-char appendhelp[] = "append to a file";
-char asciihelp[] = "set ascii transfer type";
-char beephelp[] = "beep when command completed";
-char binaryhelp[] = "set binary transfer type";
-char casehelp[] = "toggle mget upper/lower case id mapping";
-char cdhelp[] = "change remote working directory";
-char cduphelp[] = "change remote working directory to parent directory";
-char chmodhelp[] = "change file permissions of remote file";
-char connecthelp[] = "connect to remote tftp";
-char crhelp[] = "toggle carriage return stripping on ascii gets";
-char deletehelp[] = "delete remote file";
-char debughelp[] = "toggle/set debugging mode";
-char dirhelp[] = "list contents of remote directory";
-char disconhelp[] = "terminate ftp session";
-char domachelp[] = "execute macro";
-char formhelp[] = "set file transfer format";
-char globhelp[] = "toggle metacharacter expansion of local file names";
-char hashhelp[] = "toggle printing `#' for each buffer transferred";
-char helphelp[] = "print local help information";
-char idlehelp[] = "get (set) idle timer on remote side";
-char lcdhelp[] = "change local working directory";
-char lshelp[] = "list contents of remote directory";
-char macdefhelp[] = "define a macro";
-char mdeletehelp[] = "delete multiple files";
-char mdirhelp[] = "list contents of multiple remote directories";
-char mgethelp[] = "get multiple files";
-char mkdirhelp[] = "make directory on the remote machine";
-char mlshelp[] = "list contents of multiple remote directories";
-char modtimehelp[] = "show last modification time of remote file";
-char modehelp[] = "set file transfer mode";
-char mputhelp[] = "send multiple files";
-char newerhelp[] = "get file if remote file is newer than local file ";
-char nlisthelp[] = "nlist contents of remote directory";
-char nmaphelp[] = "set templates for default file name mapping";
-char ntranshelp[] = "set translation table for default file name mapping";
-char porthelp[] = "toggle use of PORT cmd for each data connection";
-char prompthelp[] = "force interactive prompting on multiple commands";
-char proxyhelp[] = "issue command on alternate connection";
-char pwdhelp[] = "print working directory on remote machine";
-char quithelp[] = "terminate ftp session and exit";
-char quotehelp[] = "send arbitrary ftp command";
-char receivehelp[] = "receive file";
-char regethelp[] = "get file restarting at end of local file";
-char remotehelp[] = "get help from remote server";
-char renamehelp[] = "rename file";
-char restarthelp[]= "restart file transfer at bytecount";
-char rmdirhelp[] = "remove directory on the remote machine";
-char rmtstatushelp[]="show status of remote machine";
-char runiquehelp[] = "toggle store unique for local files";
-char resethelp[] = "clear queued command replies";
-char sendhelp[] = "send one file";
-char passivehelp[] = "enter passive transfer mode";
-char sitehelp[] = "send site specific command to remote server\n\t\tTry \"rhelp site\" or \"site help\" for more information";
-char shellhelp[] = "escape to the shell";
-char sizecmdhelp[] = "show size of remote file";
-char statushelp[] = "show current status";
-char structhelp[] = "set file transfer structure";
-char suniquehelp[] = "toggle store unique on remote machine";
-char systemhelp[] = "show remote system type";
-char tenexhelp[] = "set tenex file transfer type";
-char tracehelp[] = "toggle packet tracing";
-char typehelp[] = "set file transfer type";
-char umaskhelp[] = "get (set) umask on remote side";
-char userhelp[] = "send new user information";
-char verbosehelp[] = "toggle verbose mode";
-
-char prothelp[] = "set protection level";
-char kauthhelp[] = "get remote tokens";
-char klisthelp[] = "show remote tickets";
-char aklog[] = "obtain remote AFS tokens";
-
-struct cmd cmdtab[] = {
- { "!", shellhelp, 0, 0, 0, shell },
- { "$", domachelp, 1, 0, 0, domacro },
- { "account", accounthelp, 0, 1, 1, account},
- { "append", appendhelp, 1, 1, 1, put },
- { "ascii", asciihelp, 0, 1, 1, setascii },
- { "bell", beephelp, 0, 0, 0, setbell },
- { "binary", binaryhelp, 0, 1, 1, setbinary },
- { "bye", quithelp, 0, 0, 0, quit },
- { "case", casehelp, 0, 0, 1, setcase },
- { "cd", cdhelp, 0, 1, 1, cd },
- { "cdup", cduphelp, 0, 1, 1, cdup },
- { "chmod", chmodhelp, 0, 1, 1, do_chmod },
- { "close", disconhelp, 0, 1, 1, disconnect },
- { "cr", crhelp, 0, 0, 0, setcr },
- { "delete", deletehelp, 0, 1, 1, delete },
- { "debug", debughelp, 0, 0, 0, setdebug },
- { "dir", dirhelp, 1, 1, 1, ls },
- { "disconnect", disconhelp, 0, 1, 1, disconnect },
- { "form", formhelp, 0, 1, 1, setform },
- { "get", receivehelp, 1, 1, 1, get },
- { "glob", globhelp, 0, 0, 0, setglob },
- { "hash", hashhelp, 0, 0, 0, sethash },
- { "help", helphelp, 0, 0, 1, help },
- { "idle", idlehelp, 0, 1, 1, ftp_idle },
- { "image", binaryhelp, 0, 1, 1, setbinary },
- { "lcd", lcdhelp, 0, 0, 0, lcd },
- { "ls", lshelp, 1, 1, 1, ls },
- { "macdef", macdefhelp, 0, 0, 0, macdef },
- { "mdelete", mdeletehelp, 1, 1, 1, mdelete },
- { "mdir", mdirhelp, 1, 1, 1, mls },
- { "mget", mgethelp, 1, 1, 1, mget },
- { "mkdir", mkdirhelp, 0, 1, 1, makedir },
- { "mls", mlshelp, 1, 1, 1, mls },
- { "mode", modehelp, 0, 1, 1, setftmode },
- { "modtime", modtimehelp, 0, 1, 1, modtime },
- { "mput", mputhelp, 1, 1, 1, mput },
- { "newer", newerhelp, 1, 1, 1, newer },
- { "nmap", nmaphelp, 0, 0, 1, setnmap },
- { "nlist", nlisthelp, 1, 1, 1, ls },
- { "ntrans", ntranshelp, 0, 0, 1, setntrans },
- { "open", connecthelp, 0, 0, 1, setpeer },
- { "passive", passivehelp, 0, 0, 0, setpassive },
- { "prompt", prompthelp, 0, 0, 0, setprompt },
- { "proxy", proxyhelp, 0, 0, 1, doproxy },
- { "sendport", porthelp, 0, 0, 0, setport },
- { "put", sendhelp, 1, 1, 1, put },
- { "pwd", pwdhelp, 0, 1, 1, pwd },
- { "quit", quithelp, 0, 0, 0, quit },
- { "quote", quotehelp, 1, 1, 1, quote },
- { "recv", receivehelp, 1, 1, 1, get },
- { "reget", regethelp, 1, 1, 1, reget },
- { "rstatus", rmtstatushelp, 0, 1, 1, rmtstatus },
- { "rhelp", remotehelp, 0, 1, 1, rmthelp },
- { "rename", renamehelp, 0, 1, 1, renamefile },
- { "reset", resethelp, 0, 1, 1, reset },
- { "restart", restarthelp, 1, 1, 1, restart },
- { "rmdir", rmdirhelp, 0, 1, 1, removedir },
- { "runique", runiquehelp, 0, 0, 1, setrunique },
- { "send", sendhelp, 1, 1, 1, put },
- { "site", sitehelp, 0, 1, 1, site },
- { "size", sizecmdhelp, 1, 1, 1, sizecmd },
- { "status", statushelp, 0, 0, 1, status },
- { "struct", structhelp, 0, 1, 1, setstruct },
- { "system", systemhelp, 0, 1, 1, syst },
- { "sunique", suniquehelp, 0, 0, 1, setsunique },
- { "tenex", tenexhelp, 0, 1, 1, settenex },
- { "trace", tracehelp, 0, 0, 0, settrace },
- { "type", typehelp, 0, 1, 1, settype },
- { "user", userhelp, 0, 1, 1, user },
- { "umask", umaskhelp, 0, 1, 1, do_umask },
- { "verbose", verbosehelp, 0, 0, 0, setverbose },
- { "?", helphelp, 0, 0, 1, help },
-
- { "prot", prothelp, 0, 1, 0, sec_prot },
- { "kauth", kauthhelp, 0, 1, 0, kauth },
- { "klist", klisthelp, 0, 1, 0, klist },
-
- { 0 },
-};
-
-int NCMDS = (sizeof (cmdtab) / sizeof (cmdtab[0])) - 1;
diff --git a/crypto/kerberosIV/appl/ftp/ftp/domacro.c b/crypto/kerberosIV/appl/ftp/ftp/domacro.c
deleted file mode 100644
index f5a89b9f1201..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/domacro.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1985, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "ftp_locl.h"
-RCSID("$Id: domacro.c,v 1.5 1996/11/17 20:23:10 assar Exp $");
-
-void
-domacro(int argc, char **argv)
-{
- int i, j, count = 2, loopflg = 0;
- char *cp1, *cp2, line2[200];
- struct cmd *c;
-
- if (argc < 2 && !another(&argc, &argv, "macro name")) {
- printf("Usage: %s macro_name.\n", argv[0]);
- code = -1;
- return;
- }
- for (i = 0; i < macnum; ++i) {
- if (!strncmp(argv[1], macros[i].mac_name, 9)) {
- break;
- }
- }
- if (i == macnum) {
- printf("'%s' macro not found.\n", argv[1]);
- code = -1;
- return;
- }
- strcpy(line2, line);
-TOP:
- cp1 = macros[i].mac_start;
- while (cp1 != macros[i].mac_end) {
- while (isspace(*cp1)) {
- cp1++;
- }
- cp2 = line;
- while (*cp1 != '\0') {
- switch(*cp1) {
- case '\\':
- *cp2++ = *++cp1;
- break;
- case '$':
- if (isdigit(*(cp1+1))) {
- j = 0;
- while (isdigit(*++cp1)) {
- j = 10*j + *cp1 - '0';
- }
- cp1--;
- if (argc - 2 >= j) {
- strcpy(cp2, argv[j+1]);
- cp2 += strlen(argv[j+1]);
- }
- break;
- }
- if (*(cp1+1) == 'i') {
- loopflg = 1;
- cp1++;
- if (count < argc) {
- strcpy(cp2, argv[count]);
- cp2 += strlen(argv[count]);
- }
- break;
- }
- /* intentional drop through */
- default:
- *cp2++ = *cp1;
- break;
- }
- if (*cp1 != '\0') {
- cp1++;
- }
- }
- *cp2 = '\0';
- makeargv();
- c = getcmd(margv[0]);
- if (c == (struct cmd *)-1) {
- printf("?Ambiguous command\n");
- code = -1;
- }
- else if (c == 0) {
- printf("?Invalid command\n");
- code = -1;
- }
- else if (c->c_conn && !connected) {
- printf("Not connected.\n");
- code = -1;
- }
- else {
- if (verbose) {
- printf("%s\n",line);
- }
- (*c->c_handler)(margc, margv);
- if (bell && c->c_bell) {
- putchar('\007');
- }
- strcpy(line, line2);
- makeargv();
- argc = margc;
- argv = margv;
- }
- if (cp1 != macros[i].mac_end) {
- cp1++;
- }
- }
- if (loopflg && ++count < argc) {
- goto TOP;
- }
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/extern.h b/crypto/kerberosIV/appl/ftp/ftp/extern.h
deleted file mode 100644
index b830999d664b..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/extern.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*-
- * Copyright (c) 1994 The Regents of the University of California.
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)extern.h 8.3 (Berkeley) 10/9/94
- */
-
-/* $Id: extern.h,v 1.13 1997/04/20 05:46:48 assar Exp $ */
-
-#include <setjmp.h>
-#include <stdlib.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-void abort_remote (FILE *);
-void abortpt (int);
-void abortrecv (int);
-void account (int, char **);
-int another (int *, char ***, char *);
-void blkfree (char **);
-void cd (int, char **);
-void cdup (int, char **);
-void changetype (int, int);
-void cmdabort (int);
-void cmdscanner (int);
-int command (char *fmt, ...);
-int confirm (char *, char *);
-FILE *dataconn (char *);
-void delete (int, char **);
-void disconnect (int, char **);
-void do_chmod (int, char **);
-void do_umask (int, char **);
-void domacro (int, char **);
-char *domap (char *);
-void doproxy (int, char **);
-char *dotrans (char *);
-int empty (fd_set *, int);
-void fatal (char *);
-void get (int, char **);
-struct cmd *getcmd (char *);
-int getit (int, char **, int, char *);
-int getreply (int);
-int globulize (char **);
-char *gunique (char *);
-void help (int, char **);
-char *hookup (char *, int);
-void ftp_idle (int, char **);
-int initconn (void);
-void intr (int);
-void lcd (int, char **);
-int login (char *);
-RETSIGTYPE lostpeer (int);
-void ls (int, char **);
-void macdef (int, char **);
-void makeargv (void);
-void makedir (int, char **);
-void mdelete (int, char **);
-void mget (int, char **);
-void mls (int, char **);
-void modtime (int, char **);
-void mput (int, char **);
-char *onoff (int);
-void newer (int, char **);
-void proxtrans (char *, char *, char *);
-void psabort (int);
-void pswitch (int);
-void ptransfer (char *, long, struct timeval *, struct timeval *);
-void put (int, char **);
-void pwd (int, char **);
-void quit (int, char **);
-void quote (int, char **);
-void quote1 (char *, int, char **);
-void recvrequest (char *, char *, char *, char *, int);
-void reget (int, char **);
-char *remglob (char **, int);
-void removedir (int, char **);
-void renamefile (int, char **);
-void reset (int, char **);
-void restart (int, char **);
-void rmthelp (int, char **);
-void rmtstatus (int, char **);
-int ruserpass (char *, char **, char **, char **);
-void sendrequest (char *, char *, char *, int);
-void setascii (int, char **);
-void setbell (int, char **);
-void setbinary (int, char **);
-void setcase (int, char **);
-void setcr (int, char **);
-void setdebug (int, char **);
-void setform (int, char **);
-void setftmode (int, char **);
-void setglob (int, char **);
-void sethash (int, char **);
-void setnmap (int, char **);
-void setntrans (int, char **);
-void setpassive (int, char **);
-void setpeer (int, char **);
-void setport (int, char **);
-void setprompt (int, char **);
-void setrunique (int, char **);
-void setstruct (int, char **);
-void setsunique (int, char **);
-void settenex (int, char **);
-void settrace (int, char **);
-void settype (int, char **);
-void setverbose (int, char **);
-void shell (int, char **);
-void site (int, char **);
-void sizecmd (int, char **);
-char *slurpstring (void);
-void status (int, char **);
-void syst (int, char **);
-void tvsub (struct timeval *, struct timeval *, struct timeval *);
-void user (int, char **);
-
-extern jmp_buf abortprox;
-extern int abrtflag;
-extern struct cmd cmdtab[];
-extern FILE *cout;
-extern int data;
-extern char *home;
-extern jmp_buf jabort;
-extern int proxy;
-extern char reply_string[];
-extern off_t restart_point;
-extern int NCMDS;
-
-extern char username[32];
-extern char myhostname[];
-extern char *mydomain;
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ftp.c b/crypto/kerberosIV/appl/ftp/ftp/ftp.c
deleted file mode 100644
index cfabda6a5688..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/ftp.c
+++ /dev/null
@@ -1,1658 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "ftp_locl.h"
-RCSID("$Id: ftp.c,v 1.44 1997/05/18 20:00:31 assar Exp $");
-
-struct sockaddr_in hisctladdr;
-struct sockaddr_in data_addr;
-int data = -1;
-int abrtflag = 0;
-jmp_buf ptabort;
-int ptabflg;
-int ptflag = 0;
-struct sockaddr_in myctladdr;
-off_t restart_point = 0;
-
-
-FILE *cin, *cout;
-
-typedef void (*sighand)(int);
-
-char *
-hookup(char *host, int port)
-{
- struct hostent *hp = 0;
- int s, len, tos;
- static char hostnamebuf[80];
-
- memset(&hisctladdr, 0, sizeof (hisctladdr));
- if(inet_aton(host, &hisctladdr.sin_addr)){
- hisctladdr.sin_family = AF_INET;
- strncpy(hostnamebuf, host, sizeof(hostnamebuf));
- } else {
- hp = gethostbyname(host);
- if (hp == NULL) {
-#ifdef HAVE_H_ERRNO
- warnx("%s: %s", host, hstrerror(h_errno));
-#else
- warnx("%s: %s", host, "unknown error");
-#endif
- code = -1;
- return NULL;
- }
- hisctladdr.sin_family = hp->h_addrtype;
- memmove(&hisctladdr.sin_addr,
- hp->h_addr_list[0],
- sizeof(hisctladdr.sin_addr));
- strncpy(hostnamebuf, hp->h_name, sizeof(hostnamebuf));
- hostnamebuf[sizeof(hostnamebuf) - 1] = '\0';
- }
- hostname = hostnamebuf;
- s = socket(hisctladdr.sin_family, SOCK_STREAM, 0);
- if (s < 0) {
- warn("socket");
- code = -1;
- return (0);
- }
- 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));
- 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;
- }
- len = sizeof (myctladdr);
- if (getsockname(s, (struct sockaddr *)&myctladdr, &len) < 0) {
- warn("getsockname");
- code = -1;
- goto bad;
- }
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_LOWDELAY;
- if (setsockopt(s, IPPROTO_IP, IP_TOS, (char *)&tos, sizeof(int)) < 0)
- warn("setsockopt TOS (ignored)");
-#endif
- cin = fdopen(s, "r");
- cout = fdopen(s, "w");
- if (cin == NULL || cout == NULL) {
- warnx("fdopen failed.");
- if (cin)
- fclose(cin);
- if (cout)
- fclose(cout);
- code = -1;
- goto bad;
- }
- if (verbose)
- printf("Connected to %s.\n", hostname);
- if (getreply(0) > 2) { /* read startup message from server */
- if (cin)
- fclose(cin);
- if (cout)
- fclose(cout);
- code = -1;
- goto bad;
- }
-#if defined(SO_OOBINLINE) && defined(HAVE_SETSOCKOPT)
- {
- int on = 1;
-
- if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on))
- < 0 && debug) {
- warn("setsockopt");
- }
- }
-#endif /* SO_OOBINLINE */
-
- return (hostname);
-bad:
- close(s);
- return NULL;
-}
-
-int
-login(char *host)
-{
- char tmp[80];
- char defaultpass[128];
- char *user, *pass, *acct;
- int n, aflag = 0;
-
- char *myname = NULL;
- struct passwd *pw = k_getpwuid(getuid());
- if (pw != NULL)
- myname = pw->pw_name;
-
- user = pass = acct = 0;
-
- if(do_klogin(host))
- printf("\n*** Using plaintext user and password ***\n\n");
- else{
- printf("Kerberos authentication successful.\n\n");
- }
-
- if (ruserpass(host, &user, &pass, &acct) < 0) {
- code = -1;
- return (0);
- }
- while (user == NULL) {
- if (myname)
- printf("Name (%s:%s): ", host, myname);
- else
- printf("Name (%s): ", host);
- fgets(tmp, sizeof(tmp) - 1, stdin);
- tmp[strlen(tmp) - 1] = '\0';
- if (*tmp == '\0')
- user = myname;
- else
- user = tmp;
- }
- strcpy(username, user);
- n = command("USER %s", user);
- if (n == CONTINUE) {
- if(auth_complete)
- pass = myname;
- else if (pass == NULL) {
- char prompt[128];
- if(myname &&
- (!strcmp(user, "ftp") || !strcmp(user, "anonymous"))){
- snprintf(defaultpass, sizeof(defaultpass), "%s@%s", myname, mydomain);
- snprintf(prompt, sizeof(prompt), "Password (%s): ", defaultpass);
- }else{
- strcpy(defaultpass, "");
- snprintf(prompt, sizeof(prompt), "Password: ");
- }
- pass = defaultpass;
- des_read_pw_string (tmp, sizeof(tmp), prompt, 0);
- if(tmp[0])
- pass = tmp;
- }
- n = command("PASS %s", pass);
- }
- if (n == CONTINUE) {
- aflag++;
- acct = tmp;
- des_read_pw_string(acct, 128, "Account:", 0);
- n = command("ACCT %s", acct);
- }
- if (n != COMPLETE) {
- warnx("Login failed.");
- return (0);
- }
- if (!aflag && acct != NULL)
- command("ACCT %s", acct);
- if (proxy)
- return (1);
- for (n = 0; n < macnum; ++n) {
- if (!strcmp("init", macros[n].mac_name)) {
- strcpy(line, "$init");
- makeargv();
- domacro(margc, margv);
- break;
- }
- }
- sec_set_protection_level();
- return (1);
-}
-
-void
-cmdabort(int sig)
-{
-
- printf("\n");
- fflush(stdout);
- abrtflag++;
- if (ptflag)
- longjmp(ptabort,1);
-}
-
-int
-command(char *fmt, ...)
-{
- va_list ap;
- int r;
- sighand oldintr;
-
- abrtflag = 0;
- if (cout == NULL) {
- warn("No control connection for command");
- code = -1;
- return (0);
- }
- oldintr = signal(SIGINT, cmdabort);
- va_start(ap, fmt);
- if(debug){
- printf("---> ");
- if (strncmp("PASS ", fmt, 5) == 0)
- printf("PASS XXXX");
- else
- vfprintf(stdout, fmt, ap);
- va_start(ap, fmt);
- }
- if(auth_complete)
- krb4_write_enc(cout, fmt, ap);
- else
- vfprintf(cout, fmt, ap);
- va_end(ap);
- if(debug){
- printf("\n");
- fflush(stdout);
- }
- fprintf(cout, "\r\n");
- fflush(cout);
- cpend = 1;
- r = getreply(!strcmp(fmt, "QUIT"));
- if (abrtflag && oldintr != SIG_IGN)
- (*oldintr)(SIGINT);
- signal(SIGINT, oldintr);
- return (r);
-}
-
-char reply_string[BUFSIZ]; /* last line of previous reply */
-
-int
-getreply(int expecteof)
-{
- char *p;
- char *lead_string;
- int c;
- struct sigaction sa, osa;
- char buf[1024];
-
- sigemptyset(&sa.sa_mask);
- sa.sa_flags = 0;
- sa.sa_handler = cmdabort;
- sigaction(SIGINT, &sa, &osa);
-
- p = buf;
-
- while(1){
- c = getc(cin);
- switch(c){
- case EOF:
- if (expecteof) {
- sigaction(SIGINT,&osa, NULL);
- code = 221;
- return 0;
- }
- lostpeer(0);
- if (verbose) {
- printf("421 Service not available, "
- "remote server has closed connection\n");
- fflush(stdout);
- }
- code = 421;
- return (4);
- break;
- case IAC:
- c = getc(cin);
- if(c == WILL || c == WONT)
- fprintf(cout, "%c%c%c", IAC, DONT, getc(cin));
- if(c == DO || c == DONT)
- fprintf(cout, "%c%c%c", IAC, WONT, getc(cin));
- continue;
- case '\n':
- *p++ = 0;
- if(isdigit(buf[0])){
- sscanf(buf, "%d", &code);
- if(code == 631){
- krb4_read_mic(buf);
- sscanf(buf, "%d", &code);
- lead_string = "S:";
- } else if(code == 632){
- krb4_read_enc(buf);
- sscanf(buf, "%d", &code);
- lead_string = "P:";
- }else if(code == 633){
- printf("Received confidential reply!\n");
- }else if(auth_complete)
- lead_string = "!!";
- else
- lead_string = "";
- if(verbose > 0 || (verbose > -1 && code > 499))
- fprintf(stdout, "%s%s\n", lead_string, buf);
- if(buf[3] == ' '){
- strcpy(reply_string, buf);
- if (code >= 200)
- cpend = 0;
- sigaction(SIGINT, &osa, NULL);
- if (code == 421)
- lostpeer(0);
-#if 1
- if (abrtflag &&
- osa.sa_handler != cmdabort &&
- osa.sa_handler != SIG_IGN)
- osa.sa_handler(SIGINT);
-#endif
- if(code == 227){
- char *p, *q;
- pasv[0] = 0;
- p = strchr(reply_string, '(');
- if(p){
- p++;
- q = strchr(p, ')');
- if(q){
- strncpy(pasv, p, q - p);
- pasv[q - p] = 0;
- }
- }
- }
- return code / 100;
- }
- }else{
- if(verbose > 0 || (verbose > -1 && code > 499)){
- if(auth_complete)
- fprintf(stdout, "!!");
- fprintf(stdout, "%s\n", buf);
- }
- }
- p = buf;
- continue;
- default:
- *p++ = c;
- }
- }
-
-}
-
-
-#if 0
-int
-getreply(int expecteof)
-{
- int c, n;
- int dig;
- int originalcode = 0, continuation = 0;
- sighand oldintr;
- int pflag = 0;
- char *cp, *pt = pasv;
-
- oldintr = signal(SIGINT, cmdabort);
- for (;;) {
- dig = n = code = 0;
- cp = reply_string;
- while ((c = getc(cin)) != '\n') {
- if (c == IAC) { /* handle telnet commands */
- switch (c = getc(cin)) {
- case WILL:
- case WONT:
- c = getc(cin);
- fprintf(cout, "%c%c%c", IAC, DONT, c);
- fflush(cout);
- break;
- case DO:
- case DONT:
- c = getc(cin);
- fprintf(cout, "%c%c%c", IAC, WONT, c);
- fflush(cout);
- break;
- default:
- break;
- }
- continue;
- }
- dig++;
- if (c == EOF) {
- if (expecteof) {
- signal(SIGINT,oldintr);
- code = 221;
- return (0);
- }
- lostpeer(0);
- if (verbose) {
- printf("421 Service not available, remote server has closed connection\n");
- fflush(stdout);
- }
- code = 421;
- return (4);
- }
- if (c != '\r' && (verbose > 0 ||
- (verbose > -1 && n == '5' && dig > 4))) {
- if (proxflag &&
- (dig == 1 || dig == 5 && verbose == 0))
- printf("%s:",hostname);
- putchar(c);
- }
- if (dig < 4 && isdigit(c))
- code = code * 10 + (c - '0');
- if (!pflag && code == 227)
- pflag = 1;
- if (dig > 4 && pflag == 1 && isdigit(c))
- pflag = 2;
- if (pflag == 2) {
- if (c != '\r' && c != ')')
- *pt++ = c;
- else {
- *pt = '\0';
- pflag = 3;
- }
- }
- if (dig == 4 && c == '-') {
- if (continuation)
- code = 0;
- continuation++;
- }
- if (n == 0)
- n = c;
- if (cp < &reply_string[sizeof(reply_string) - 1])
- *cp++ = c;
- }
- if (verbose > 0 || verbose > -1 && n == '5') {
- putchar(c);
- fflush (stdout);
- }
- if (continuation && code != originalcode) {
- if (originalcode == 0)
- originalcode = code;
- continue;
- }
- *cp = '\0';
- if(auth_complete){
- if(code == 631)
- krb4_read_mic(reply_string);
- else
- krb4_read_enc(reply_string);
- n = code / 100 + '0';
- }
-
- if (n != '1')
- cpend = 0;
- signal(SIGINT,oldintr);
- if (code == 421 || originalcode == 421)
- lostpeer(0);
- if (abrtflag && oldintr != cmdabort && oldintr != SIG_IGN)
- (*oldintr)(SIGINT);
- return (n - '0');
- }
-}
-#endif
-
-int
-empty(fd_set *mask, int sec)
-{
- struct timeval t;
-
- t.tv_sec = (long) sec;
- t.tv_usec = 0;
- return (select(32, mask, NULL, NULL, &t));
-}
-
-jmp_buf sendabort;
-
-static RETSIGTYPE
-abortsend(int sig)
-{
-
- mflag = 0;
- abrtflag = 0;
- printf("\nsend aborted\nwaiting for remote to finish abort\n");
- fflush(stdout);
- longjmp(sendabort, 1);
-}
-
-#define HASHBYTES 1024
-
-static int
-copy_stream(FILE *from, FILE *to)
-{
- static size_t bufsize;
- static char *buf;
- int n;
- int bytes = 0;
- int werr;
- int hashbytes = HASHBYTES;
- struct stat st;
-
-#ifdef HAVE_MMAP
- void *chunk;
-
-#ifndef MAP_FAILED
-#define MAP_FAILED (-1)
-#endif
-
- if(fstat(fileno(from), &st) == 0 && S_ISREG(st.st_mode)){
- chunk = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fileno(from), 0);
- if (chunk != (void *)MAP_FAILED) {
- int res;
-
- res = sec_write(fileno(to), chunk, st.st_size);
- if (munmap(chunk, st.st_size) < 0)
- warn ("munmap");
- sec_fflush(to);
- return res;
- }
- }
-#endif
-
- buf = alloc_buffer (buf, &bufsize,
- fstat(fileno(from), &st) >= 0 ? &st : NULL);
- if (buf == NULL)
- return -1;
-
- while((n = read(fileno(from), buf, bufsize)) > 0){
- werr = sec_write(fileno(to), buf, n);
- if(werr < 0)
- break;
- bytes += werr;
- while(hash && bytes > hashbytes){
- putchar('#');
- hashbytes += HASHBYTES;
- }
- }
- sec_fflush(to);
- if(n < 0)
- warn("local");
-
- if(werr < 0){
- if(errno != EPIPE)
- warn("netout");
- bytes = -1;
- }
- return bytes;
-}
-
-void
-sendrequest(char *cmd, char *local, char *remote, int printnames)
-{
- struct stat st;
- struct timeval start, stop;
- int c, d;
- FILE *fin, *dout = 0;
- int (*closefunc) (FILE *);
- RETSIGTYPE (*oldintr)(), (*oldintp)();
- long bytes = 0, hashbytes = HASHBYTES;
- char *lmode;
-
- if (verbose && printnames) {
- if (local && *local != '-')
- printf("local: %s ", local);
- if (remote)
- printf("remote: %s\n", remote);
- }
- if (proxy) {
- proxtrans(cmd, local, remote);
- return;
- }
- if (curtype != type)
- changetype(type, 0);
- closefunc = NULL;
- oldintr = NULL;
- oldintp = NULL;
- lmode = "w";
- if (setjmp(sendabort)) {
- while (cpend) {
- getreply(0);
- }
- if (data >= 0) {
- close(data);
- data = -1;
- }
- if (oldintr)
- signal(SIGINT,oldintr);
- if (oldintp)
- signal(SIGPIPE,oldintp);
- code = -1;
- return;
- }
- oldintr = signal(SIGINT, abortsend);
- if (strcmp(local, "-") == 0)
- fin = stdin;
- else if (*local == '|') {
- oldintp = signal(SIGPIPE,SIG_IGN);
- fin = popen(local + 1, "r");
- if (fin == NULL) {
- warn("%s", local + 1);
- signal(SIGINT, oldintr);
- signal(SIGPIPE, oldintp);
- code = -1;
- return;
- }
- closefunc = pclose;
- } else {
- fin = fopen(local, "r");
- if (fin == NULL) {
- warn("local: %s", local);
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- closefunc = fclose;
- if (fstat(fileno(fin), &st) < 0 ||
- (st.st_mode&S_IFMT) != S_IFREG) {
- fprintf(stdout, "%s: not a plain file.\n", local);
- signal(SIGINT, oldintr);
- fclose(fin);
- code = -1;
- return;
- }
- }
- if (initconn()) {
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- code = -1;
- if (closefunc != NULL)
- (*closefunc)(fin);
- return;
- }
- if (setjmp(sendabort))
- goto abort;
-
- if (restart_point &&
- (strcmp(cmd, "STOR") == 0 || strcmp(cmd, "APPE") == 0)) {
- int rc;
-
- switch (curtype) {
- case TYPE_A:
- rc = fseek(fin, (long) restart_point, SEEK_SET);
- break;
- case TYPE_I:
- case TYPE_L:
- rc = lseek(fileno(fin), restart_point, SEEK_SET);
- break;
- }
- if (rc < 0) {
- warn("local: %s", local);
- restart_point = 0;
- if (closefunc != NULL)
- (*closefunc)(fin);
- return;
- }
- if (command("REST %ld", (long) restart_point)
- != CONTINUE) {
- restart_point = 0;
- if (closefunc != NULL)
- (*closefunc)(fin);
- return;
- }
- restart_point = 0;
- lmode = "r+w";
- }
- if (remote) {
- if (command("%s %s", cmd, remote) != PRELIM) {
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- if (closefunc != NULL)
- (*closefunc)(fin);
- return;
- }
- } else
- if (command("%s", cmd) != PRELIM) {
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- if (closefunc != NULL)
- (*closefunc)(fin);
- return;
- }
- dout = dataconn(lmode);
- if (dout == NULL)
- goto abort;
- set_buffer_size(fileno(dout), 0);
- gettimeofday(&start, (struct timezone *)0);
- oldintp = signal(SIGPIPE, SIG_IGN);
- switch (curtype) {
-
- case TYPE_I:
- case TYPE_L:
- errno = d = c = 0;
- bytes = copy_stream(fin, dout);
- break;
-
- case TYPE_A:
- while ((c = getc(fin)) != EOF) {
- if (c == '\n') {
- while (hash && (bytes >= hashbytes)) {
- putchar('#');
- fflush(stdout);
- hashbytes += HASHBYTES;
- }
- if (ferror(dout))
- break;
- sec_putc('\r', dout);
- bytes++;
- }
- sec_putc(c, dout);
- bytes++;
- }
- sec_fflush(dout);
- if (hash) {
- if (bytes < hashbytes)
- putchar('#');
- putchar('\n');
- fflush(stdout);
- }
- if (ferror(fin))
- warn("local: %s", local);
- if (ferror(dout)) {
- if (errno != EPIPE)
- warn("netout");
- bytes = -1;
- }
- break;
- }
- if (closefunc != NULL)
- (*closefunc)(fin);
- fclose(dout);
- gettimeofday(&stop, (struct timezone *)0);
- getreply(0);
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- if (bytes > 0)
- ptransfer("sent", bytes, &start, &stop);
- return;
-abort:
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- if (!cpend) {
- code = -1;
- return;
- }
- if (data >= 0) {
- close(data);
- data = -1;
- }
- if (dout)
- fclose(dout);
- getreply(0);
- code = -1;
- if (closefunc != NULL && fin != NULL)
- (*closefunc)(fin);
- gettimeofday(&stop, (struct timezone *)0);
- if (bytes > 0)
- ptransfer("sent", bytes, &start, &stop);
-}
-
-jmp_buf recvabort;
-
-void
-abortrecv(int sig)
-{
-
- mflag = 0;
- abrtflag = 0;
- printf("\nreceive aborted\nwaiting for remote to finish abort\n");
- fflush(stdout);
- longjmp(recvabort, 1);
-}
-
-void
-recvrequest(char *cmd, char *local, char *remote, char *lmode, int printnames)
-{
- FILE *fout, *din = 0;
- int (*closefunc) (FILE *);
- sighand oldintr, oldintp;
- int c, d, is_retr, tcrflag, bare_lfs = 0;
- static size_t bufsize;
- static char *buf;
- long bytes = 0, hashbytes = HASHBYTES;
- struct timeval start, stop;
- struct stat st;
-
- is_retr = strcmp(cmd, "RETR") == 0;
- if (is_retr && verbose && printnames) {
- if (local && *local != '-')
- printf("local: %s ", local);
- if (remote)
- printf("remote: %s\n", remote);
- }
- if (proxy && is_retr) {
- proxtrans(cmd, local, remote);
- return;
- }
- closefunc = NULL;
- oldintr = NULL;
- oldintp = NULL;
- tcrflag = !crflag && is_retr;
- if (setjmp(recvabort)) {
- while (cpend) {
- getreply(0);
- }
- if (data >= 0) {
- close(data);
- data = -1;
- }
- if (oldintr)
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- oldintr = signal(SIGINT, abortrecv);
- if (strcmp(local, "-") && *local != '|') {
- if (access(local, 2) < 0) {
- char *dir = strrchr(local, '/');
-
- if (errno != ENOENT && errno != EACCES) {
- warn("local: %s", local);
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- if (dir != NULL)
- *dir = 0;
- d = access(dir ? local : ".", 2);
- if (dir != NULL)
- *dir = '/';
- if (d < 0) {
- warn("local: %s", local);
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- if (!runique && errno == EACCES &&
- chmod(local, 0600) < 0) {
- warn("local: %s", local);
- signal(SIGINT, oldintr);
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- if (runique && errno == EACCES &&
- (local = gunique(local)) == NULL) {
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- }
- else if (runique && (local = gunique(local)) == NULL) {
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- }
- if (!is_retr) {
- if (curtype != TYPE_A)
- changetype(TYPE_A, 0);
- } else if (curtype != type)
- changetype(type, 0);
- if (initconn()) {
- signal(SIGINT, oldintr);
- code = -1;
- return;
- }
- if (setjmp(recvabort))
- goto abort;
- if (is_retr && restart_point &&
- command("REST %ld", (long) restart_point) != CONTINUE)
- return;
- if (remote) {
- if (command("%s %s", cmd, remote) != PRELIM) {
- signal(SIGINT, oldintr);
- return;
- }
- } else {
- if (command("%s", cmd) != PRELIM) {
- signal(SIGINT, oldintr);
- return;
- }
- }
- din = dataconn("r");
- if (din == NULL)
- goto abort;
- set_buffer_size(fileno(din), 1);
- if (strcmp(local, "-") == 0)
- fout = stdout;
- else if (*local == '|') {
- oldintp = signal(SIGPIPE, SIG_IGN);
- fout = popen(local + 1, "w");
- if (fout == NULL) {
- warn("%s", local+1);
- goto abort;
- }
- closefunc = pclose;
- } else {
- fout = fopen(local, lmode);
- if (fout == NULL) {
- warn("local: %s", local);
- goto abort;
- }
- closefunc = fclose;
- }
- buf = alloc_buffer (buf, &bufsize,
- fstat(fileno(fout), &st) >= 0 ? &st : NULL);
- if (buf == NULL)
- goto abort;
-
- gettimeofday(&start, (struct timezone *)0);
- switch (curtype) {
-
- case TYPE_I:
- case TYPE_L:
- if (restart_point &&
- lseek(fileno(fout), restart_point, SEEK_SET) < 0) {
- warn("local: %s", local);
- if (closefunc != NULL)
- (*closefunc)(fout);
- return;
- }
- errno = d = 0;
- while ((c = sec_read(fileno(din), buf, bufsize)) > 0) {
- if ((d = write(fileno(fout), buf, c)) != c)
- break;
- bytes += c;
- if (hash) {
- while (bytes >= hashbytes) {
- putchar('#');
- hashbytes += HASHBYTES;
- }
- fflush(stdout);
- }
- }
- if (hash && bytes > 0) {
- if (bytes < HASHBYTES)
- putchar('#');
- putchar('\n');
- fflush(stdout);
- }
- if (c < 0) {
- if (errno != EPIPE)
- warn("netin");
- bytes = -1;
- }
- if (d < c) {
- if (d < 0)
- warn("local: %s", local);
- else
- warnx("%s: short write", local);
- }
- break;
-
- case TYPE_A:
- if (restart_point) {
- int i, n, ch;
-
- if (fseek(fout, 0L, SEEK_SET) < 0)
- goto done;
- n = restart_point;
- for (i = 0; i++ < n;) {
- if ((ch = sec_getc(fout)) == EOF)
- goto done;
- if (ch == '\n')
- i++;
- }
- if (fseek(fout, 0L, SEEK_CUR) < 0) {
- done:
- warn("local: %s", local);
- if (closefunc != NULL)
- (*closefunc)(fout);
- return;
- }
- }
-
- while ((c = sec_getc(din)) != EOF) {
- if (c == '\n')
- bare_lfs++;
- while (c == '\r') {
- while (hash && (bytes >= hashbytes)) {
- putchar('#');
- fflush(stdout);
- hashbytes += HASHBYTES;
- }
- bytes++;
- if ((c = sec_getc(din)) != '\n' || tcrflag) {
- if (ferror(fout))
- goto break2;
- putc('\r', fout);
- if (c == '\0') {
- bytes++;
- goto contin2;
- }
- if (c == EOF)
- goto contin2;
- }
- }
- putc(c, fout);
- bytes++;
- contin2: ;
- }
- break2:
- if (bare_lfs) {
- printf("WARNING! %d bare linefeeds received in ASCII mode\n",
- bare_lfs);
- printf("File may not have transferred correctly.\n");
- }
- if (hash) {
- if (bytes < hashbytes)
- putchar('#');
- putchar('\n');
- fflush(stdout);
- }
- if (ferror(din)) {
- if (errno != EPIPE)
- warn("netin");
- bytes = -1;
- }
- if (ferror(fout))
- warn("local: %s", local);
- break;
- }
- if (closefunc != NULL)
- (*closefunc)(fout);
- signal(SIGINT, oldintr);
- if (oldintp)
- signal(SIGPIPE, oldintp);
- fclose(din);
- gettimeofday(&stop, (struct timezone *)0);
- getreply(0);
- if (bytes > 0 && is_retr)
- ptransfer("received", bytes, &start, &stop);
- return;
-abort:
-
- /* abort using RFC959 recommended IP,SYNC sequence */
-
- if (oldintp)
- signal(SIGPIPE, oldintr);
- signal(SIGINT, SIG_IGN);
- if (!cpend) {
- code = -1;
- signal(SIGINT, oldintr);
- return;
- }
-
- abort_remote(din);
- code = -1;
- if (data >= 0) {
- close(data);
- data = -1;
- }
- if (closefunc != NULL && fout != NULL)
- (*closefunc)(fout);
- if (din)
- fclose(din);
- gettimeofday(&stop, (struct timezone *)0);
- if (bytes > 0)
- ptransfer("received", bytes, &start, &stop);
- 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)
-{
- 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
- 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.
- */
-
- 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");
- 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);
- }
-
-noport:
- data_addr = myctladdr;
- if (sendport)
- data_addr.sin_port = 0; /* let system pick one */
- if (data != -1)
- close(data);
- data = socket(AF_INET, 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) {
- 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) {
- 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;
- }
- 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)");
-#endif
- return (0);
-bad:
- close(data), data = -1;
- if (tmpno)
- sendport = 1;
- return (1);
-}
-
-FILE *
-dataconn(char *lmode)
-{
- struct sockaddr_in from;
- int s, fromlen = sizeof (from), tos;
-
- if (passivemode)
- return (fdopen(data, lmode));
-
- s = accept(data, (struct sockaddr *) &from, &fromlen);
- if (s < 0) {
- warn("accept");
- close(data), data = -1;
- return (NULL);
- }
- 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)");
-#endif
- return (fdopen(data, lmode));
-}
-
-void
-ptransfer(char *direction, long int bytes,
- struct timeval *t0, struct timeval *t1)
-{
- struct timeval td;
- float s;
- float bs;
- int prec;
- char *unit;
-
- if (verbose) {
- td.tv_sec = t1->tv_sec - t0->tv_sec;
- td.tv_usec = t1->tv_usec - t0->tv_usec;
- if(td.tv_usec < 0){
- td.tv_sec--;
- td.tv_usec += 1000000;
- }
- s = td.tv_sec + (td.tv_usec / 1000000.);
- bs = bytes / (s?s:1);
- if(bs >= 1048576){
- bs /= 1048576;
- unit = "M";
- prec = 2;
- }else if(bs >= 1024){
- bs /= 1024;
- unit = "k";
- prec = 1;
- }else{
- unit = "";
- prec = 0;
- }
-
- printf("%ld bytes %s in %.3g seconds (%.*f %sbyte/s)\n",
- bytes, direction, s, prec, bs, unit);
- }
-}
-
-void
-psabort(int sig)
-{
-
- abrtflag++;
-}
-
-void
-pswitch(int flag)
-{
- sighand oldintr;
- static struct comvars {
- int connect;
- char name[MaxHostNameLen];
- struct sockaddr_in mctl;
- struct sockaddr_in hctl;
- FILE *in;
- FILE *out;
- int tpe;
- int curtpe;
- int cpnd;
- int sunqe;
- int runqe;
- int mcse;
- int ntflg;
- char nti[17];
- char nto[17];
- int mapflg;
- char mi[MaxPathLen];
- char mo[MaxPathLen];
- } proxstruct, tmpstruct;
- struct comvars *ip, *op;
-
- abrtflag = 0;
- oldintr = signal(SIGINT, psabort);
- if (flag) {
- if (proxy)
- return;
- ip = &tmpstruct;
- op = &proxstruct;
- proxy++;
- } else {
- if (!proxy)
- return;
- ip = &proxstruct;
- op = &tmpstruct;
- proxy = 0;
- }
- ip->connect = connected;
- connected = op->connect;
- if (hostname) {
- strncpy(ip->name, hostname, sizeof(ip->name) - 1);
- ip->name[strlen(ip->name)] = '\0';
- } else
- ip->name[0] = 0;
- hostname = op->name;
- ip->hctl = hisctladdr;
- hisctladdr = op->hctl;
- ip->mctl = myctladdr;
- myctladdr = op->mctl;
- ip->in = cin;
- cin = op->in;
- ip->out = cout;
- cout = op->out;
- ip->tpe = type;
- type = op->tpe;
- ip->curtpe = curtype;
- curtype = op->curtpe;
- ip->cpnd = cpend;
- cpend = op->cpnd;
- ip->sunqe = sunique;
- sunique = op->sunqe;
- ip->runqe = runique;
- runique = op->runqe;
- ip->mcse = mcase;
- mcase = op->mcse;
- ip->ntflg = ntflag;
- ntflag = op->ntflg;
- strncpy(ip->nti, ntin, 16);
- (ip->nti)[strlen(ip->nti)] = '\0';
- strcpy(ntin, op->nti);
- strncpy(ip->nto, ntout, 16);
- (ip->nto)[strlen(ip->nto)] = '\0';
- strcpy(ntout, op->nto);
- ip->mapflg = mapflag;
- mapflag = op->mapflg;
- strncpy(ip->mi, mapin, MaxPathLen - 1);
- (ip->mi)[strlen(ip->mi)] = '\0';
- strcpy(mapin, op->mi);
- strncpy(ip->mo, mapout, MaxPathLen - 1);
- (ip->mo)[strlen(ip->mo)] = '\0';
- strcpy(mapout, op->mo);
- signal(SIGINT, oldintr);
- if (abrtflag) {
- abrtflag = 0;
- (*oldintr)(SIGINT);
- }
-}
-
-void
-abortpt(int sig)
-{
-
- printf("\n");
- fflush(stdout);
- ptabflg++;
- mflag = 0;
- abrtflag = 0;
- longjmp(ptabort, 1);
-}
-
-void
-proxtrans(char *cmd, char *local, char *remote)
-{
- sighand oldintr;
- int secndflag = 0, prox_type, nfnd;
- char *cmd2;
- fd_set mask;
-
- if (strcmp(cmd, "RETR"))
- cmd2 = "RETR";
- else
- cmd2 = runique ? "STOU" : "STOR";
- if ((prox_type = type) == 0) {
- if (unix_server && unix_proxy)
- prox_type = TYPE_I;
- else
- prox_type = TYPE_A;
- }
- if (curtype != prox_type)
- changetype(prox_type, 1);
- if (command("PASV") != COMPLETE) {
- printf("proxy server does not support third party transfers.\n");
- return;
- }
- pswitch(0);
- if (!connected) {
- printf("No primary connection\n");
- pswitch(1);
- code = -1;
- return;
- }
- if (curtype != prox_type)
- changetype(prox_type, 1);
- if (command("PORT %s", pasv) != COMPLETE) {
- pswitch(1);
- return;
- }
- if (setjmp(ptabort))
- goto abort;
- oldintr = signal(SIGINT, abortpt);
- if (command("%s %s", cmd, remote) != PRELIM) {
- signal(SIGINT, oldintr);
- pswitch(1);
- return;
- }
- sleep(2);
- pswitch(1);
- secndflag++;
- if (command("%s %s", cmd2, local) != PRELIM)
- goto abort;
- ptflag++;
- getreply(0);
- pswitch(0);
- getreply(0);
- signal(SIGINT, oldintr);
- pswitch(1);
- ptflag = 0;
- printf("local: %s remote: %s\n", local, remote);
- return;
-abort:
- signal(SIGINT, SIG_IGN);
- ptflag = 0;
- if (strcmp(cmd, "RETR") && !proxy)
- pswitch(1);
- else if (!strcmp(cmd, "RETR") && proxy)
- pswitch(0);
- if (!cpend && !secndflag) { /* only here if cmd = "STOR" (proxy=1) */
- if (command("%s %s", cmd2, local) != PRELIM) {
- pswitch(0);
- if (cpend)
- abort_remote((FILE *) NULL);
- }
- pswitch(1);
- if (ptabflg)
- code = -1;
- signal(SIGINT, oldintr);
- return;
- }
- if (cpend)
- abort_remote((FILE *) NULL);
- pswitch(!proxy);
- if (!cpend && !secndflag) { /* only if cmd = "RETR" (proxy=1) */
- if (command("%s %s", cmd2, local) != PRELIM) {
- pswitch(0);
- if (cpend)
- abort_remote((FILE *) NULL);
- pswitch(1);
- if (ptabflg)
- code = -1;
- signal(SIGINT, oldintr);
- return;
- }
- }
- if (cpend)
- abort_remote((FILE *) NULL);
- pswitch(!proxy);
- if (cpend) {
- FD_ZERO(&mask);
- FD_SET(fileno(cin), &mask);
- if ((nfnd = empty(&mask, 10)) <= 0) {
- if (nfnd < 0) {
- warn("abort");
- }
- if (ptabflg)
- code = -1;
- lostpeer(0);
- }
- getreply(0);
- getreply(0);
- }
- if (proxy)
- pswitch(0);
- pswitch(1);
- if (ptabflg)
- code = -1;
- signal(SIGINT, oldintr);
-}
-
-void
-reset(int argc, char **argv)
-{
- fd_set mask;
- int nfnd = 1;
-
- FD_ZERO(&mask);
- while (nfnd > 0) {
- FD_SET(fileno(cin), &mask);
- if ((nfnd = empty(&mask,0)) < 0) {
- warn("reset");
- code = -1;
- lostpeer(0);
- }
- else if (nfnd) {
- getreply(0);
- }
- }
-}
-
-char *
-gunique(char *local)
-{
- static char new[MaxPathLen];
- char *cp = strrchr(local, '/');
- int d, count=0;
- char ext = '1';
-
- if (cp)
- *cp = '\0';
- d = access(cp ? local : ".", 2);
- if (cp)
- *cp = '/';
- if (d < 0) {
- warn("local: %s", local);
- return NULL;
- }
- strcpy(new, local);
- cp = new + strlen(new);
- *cp++ = '.';
- while (!d) {
- if (++count == 100) {
- printf("runique: can't find unique file name.\n");
- return NULL;
- }
- *cp++ = ext;
- *cp = '\0';
- if (ext == '9')
- ext = '0';
- else
- ext++;
- if ((d = access(new, 0)) < 0)
- break;
- if (ext != '0')
- cp--;
- else if (*(cp - 2) == '.')
- *(cp - 1) = '1';
- else {
- *(cp - 2) = *(cp - 2) + 1;
- cp--;
- }
- }
- return (new);
-}
-
-void
-abort_remote(FILE *din)
-{
- char buf[BUFSIZ];
- int nfnd;
- fd_set mask;
-
- /*
- * send IAC in urgent mode instead of DM because 4.3BSD places oob mark
- * after urgent byte rather than before as is protocol now
- */
- snprintf(buf, sizeof(buf), "%c%c%c", IAC, IP, IAC);
- if (send(fileno(cout), buf, 3, MSG_OOB) != 3)
- warn("abort");
- fprintf(cout,"%cABOR\r\n", DM);
- fflush(cout);
- FD_ZERO(&mask);
- FD_SET(fileno(cin), &mask);
- if (din) {
- FD_SET(fileno(din), &mask);
- }
- if ((nfnd = empty(&mask, 10)) <= 0) {
- if (nfnd < 0) {
- warn("abort");
- }
- if (ptabflg)
- code = -1;
- lostpeer(0);
- }
- if (din && FD_ISSET(fileno(din), &mask)) {
- while (read(fileno(din), buf, BUFSIZ) > 0)
- /* LOOP */;
- }
- if (getreply(0) == ERROR && code == 552) {
- /* 552 needed for nic style abort */
- getreply(0);
- }
- getreply(0);
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h b/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h
deleted file mode 100644
index 6ead7932ddf4..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/ftp_locl.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: ftp_locl.h,v 1.29 1997/05/20 18:40:28 bg Exp $ */
-
-#ifndef __FTP_LOCL_H__
-#define __FTP_LOCL_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <sys/cdefs.h>
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.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_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_ARPA_FTP_H
-#include <arpa/ftp.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_TELNET_H
-#include <arpa/telnet.h>
-#endif
-
-#include <errno.h>
-#include <ctype.h>
-#include <glob.h>
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#include <err.h>
-
-#ifdef SOCKS
-#include <socks.h>
-extern int LIBPREFIX(fclose) __P((FILE *));
-#endif
-
-#include "ftp_var.h"
-#include "extern.h"
-#include "common.h"
-#include "pathnames.h"
-
-#include <des.h>
-
-#include <krb.h>
-
-#include "krb4.h"
-
-#include "roken.h"
-
-#if defined(__sun__) && !defined(__svr4)
-int fclose(FILE*);
-int pclose(FILE*);
-#endif
-
-#endif /* __FTP_LOCL_H__ */
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ftp_var.h b/crypto/kerberosIV/appl/ftp/ftp/ftp_var.h
deleted file mode 100644
index ffac59a50fa9..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/ftp_var.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)ftp_var.h 8.4 (Berkeley) 10/9/94
- */
-
-/*
- * FTP global variables.
- */
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <setjmp.h>
-
-/*
- * Options and other state info.
- */
-extern int trace; /* trace packets exchanged */
-extern int hash; /* print # for each buffer transferred */
-extern int sendport; /* use PORT cmd for each data connection */
-extern int verbose; /* print messages coming back from server */
-extern int connected; /* connected to server */
-extern int fromatty; /* input is from a terminal */
-extern int interactive; /* interactively prompt on m* cmds */
-extern int debug; /* debugging level */
-extern int bell; /* ring bell on cmd completion */
-extern int doglob; /* glob local file names */
-extern int autologin; /* establish user account on connection */
-extern int proxy; /* proxy server connection active */
-extern int proxflag; /* proxy connection exists */
-extern int sunique; /* store files on server with unique name */
-extern int runique; /* store local files with unique name */
-extern int mcase; /* map upper to lower case for mget names */
-extern int ntflag; /* use ntin ntout tables for name translation */
-extern int mapflag; /* use mapin mapout templates on file names */
-extern int code; /* return/reply code for ftp command */
-extern int crflag; /* if 1, strip car. rets. on ascii gets */
-extern char pasv[64]; /* passive port for proxy data connection */
-extern int passivemode; /* passive mode enabled */
-extern char *altarg; /* argv[1] with no shell-like preprocessing */
-extern char ntin[17]; /* input translation table */
-extern char ntout[17]; /* output translation table */
-extern char mapin[MaxPathLen]; /* input map template */
-extern char mapout[MaxPathLen]; /* output map template */
-extern char typename[32]; /* name of file transfer type */
-extern int type; /* requested file transfer type */
-extern int curtype; /* current file transfer type */
-extern char structname[32]; /* name of file transfer structure */
-extern int stru; /* file transfer structure */
-extern char formname[32]; /* name of file transfer format */
-extern int form; /* file transfer format */
-extern char modename[32]; /* name of file transfer mode */
-extern int mode; /* file transfer mode */
-extern char bytename[32]; /* local byte size in ascii */
-extern int bytesize; /* local byte size in binary */
-
-extern char *hostname; /* name of host connected to */
-extern int unix_server; /* server is unix, can use binary for ascii */
-extern int unix_proxy; /* proxy is unix, can use binary for ascii */
-
-extern jmp_buf toplevel; /* non-local goto stuff for cmd scanner */
-
-extern char line[200]; /* input line buffer */
-extern char *stringbase; /* current scan point in line buffer */
-extern char argbuf[200]; /* argument storage buffer */
-extern char *argbase; /* current storage point in arg buffer */
-extern int margc; /* count of arguments on input line */
-extern char **margv; /* args parsed from input line */
-extern int margvlen; /* how large margv is currently */
-extern int cpend; /* flag: if != 0, then pending server reply */
-extern int mflag; /* flag: if != 0, then active multi command */
-
-extern int options; /* used during socket creation */
-
-/*
- * Format of command table.
- */
-struct cmd {
- char *c_name; /* name of command */
- char *c_help; /* help string */
- char c_bell; /* give bell when command completes */
- char c_conn; /* must be connected to use command */
- char c_proxy; /* proxy server may execute */
- void (*c_handler) (int, char **); /* function to call */
-};
-
-struct macel {
- char mac_name[9]; /* macro name */
- char *mac_start; /* start of macro in macbuf */
- char *mac_end; /* end of macro in macbuf */
-};
-
-extern int macnum; /* number of defined macros */
-extern struct macel macros[16];
-extern char macbuf[4096];
-
-
diff --git a/crypto/kerberosIV/appl/ftp/ftp/globals.c b/crypto/kerberosIV/appl/ftp/ftp/globals.c
deleted file mode 100644
index 7199e65c8c35..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/globals.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "ftp_locl.h"
-RCSID("$Id: globals.c,v 1.6 1996/08/26 22:46:26 assar Exp $");
-
-/*
- * Options and other state info.
- */
-int trace; /* trace packets exchanged */
-int hash; /* print # for each buffer transferred */
-int sendport; /* use PORT cmd for each data connection */
-int verbose; /* print messages coming back from server */
-int connected; /* connected to server */
-int fromatty; /* input is from a terminal */
-int interactive; /* interactively prompt on m* cmds */
-int debug; /* debugging level */
-int bell; /* ring bell on cmd completion */
-int doglob; /* glob local file names */
-int autologin; /* establish user account on connection */
-int proxy; /* proxy server connection active */
-int proxflag; /* proxy connection exists */
-int sunique; /* store files on server with unique name */
-int runique; /* store local files with unique name */
-int mcase; /* map upper to lower case for mget names */
-int ntflag; /* use ntin ntout tables for name translation */
-int mapflag; /* use mapin mapout templates on file names */
-int code; /* return/reply code for ftp command */
-int crflag; /* if 1, strip car. rets. on ascii gets */
-char pasv[64]; /* passive port for proxy data connection */
-int passivemode; /* passive mode enabled */
-char *altarg; /* argv[1] with no shell-like preprocessing */
-char ntin[17]; /* input translation table */
-char ntout[17]; /* output translation table */
-char mapin[MaxPathLen]; /* input map template */
-char mapout[MaxPathLen]; /* output map template */
-char typename[32]; /* name of file transfer type */
-int type; /* requested file transfer type */
-int curtype; /* current file transfer type */
-char structname[32]; /* name of file transfer structure */
-int stru; /* file transfer structure */
-char formname[32]; /* name of file transfer format */
-int form; /* file transfer format */
-char modename[32]; /* name of file transfer mode */
-int mode; /* file transfer mode */
-char bytename[32]; /* local byte size in ascii */
-int bytesize; /* local byte size in binary */
-
-char *hostname; /* name of host connected to */
-int unix_server; /* server is unix, can use binary for ascii */
-int unix_proxy; /* proxy is unix, can use binary for ascii */
-
-jmp_buf toplevel; /* non-local goto stuff for cmd scanner */
-
-char line[200]; /* input line buffer */
-char *stringbase; /* current scan point in line buffer */
-char argbuf[200]; /* argument storage buffer */
-char *argbase; /* current storage point in arg buffer */
-int margc; /* count of arguments on input line */
-char **margv; /* args parsed from input line */
-int margvlen; /* how large margv is currently */
-int cpend; /* flag: if != 0, then pending server reply */
-int mflag; /* flag: if != 0, then active multi command */
-
-int options; /* used during socket creation */
-
-/*
- * Format of command table.
- */
-
-int macnum; /* number of defined macros */
-struct macel macros[16];
-char macbuf[4096];
-
-char username[32];
-
-/* these are set in ruserpass */
-char myhostname[MaxHostNameLen];
-char *mydomain;
diff --git a/crypto/kerberosIV/appl/ftp/ftp/kauth.c b/crypto/kerberosIV/appl/ftp/ftp/kauth.c
deleted file mode 100644
index 8bc9b9bf28dd..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/kauth.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "ftp_locl.h"
-RCSID("$Id: kauth.c,v 1.14 1997/05/11 04:08:04 assar Exp $");
-
-void kauth(int argc, char **argv)
-{
- int ret;
- char buf[1024];
- des_cblock key;
- des_key_schedule schedule;
- KTEXT_ST tkt, tktcopy;
- char *name;
- char *p;
- int overbose;
- char passwd[100];
- int tmp;
-
- if(argc > 2){
- printf("usage: %s [principal]\n", argv[0]);
- code = -1;
- return;
- }
- if(argc == 2)
- name = argv[1];
- else
- name = username;
-
- overbose = verbose;
- verbose = 0;
-
- ret = command("SITE KAUTH %s", name);
- if(ret != CONTINUE){
- verbose = overbose;
- code = -1;
- return;
- }
- verbose = overbose;
- p = strstr(reply_string, "T=");
- if(!p){
- printf("Bad reply from server.\n");
- code = -1;
- return;
- }
- p += 2;
- tmp = base64_decode(p, &tkt.dat);
- if(tmp < 0){
- printf("Failed to decode base64 in reply.\n");
- code = -1;
- return;
- }
- tkt.length = tmp;
- tktcopy.length = tkt.length;
-
- p = strstr(reply_string, "P=");
- if(!p){
- printf("Bad reply from server.\n");
- verbose = overbose;
- code = -1;
- return;
- }
- name = p + 2;
- for(; *p && *p != ' ' && *p != '\r' && *p != '\n'; p++);
- *p = 0;
-
- snprintf(buf, sizeof(buf), "Password for %s:", name);
- if (des_read_pw_string (passwd, sizeof(passwd)-1, buf, 0))
- *passwd = '\0';
- des_string_to_key (passwd, &key);
-
- des_key_sched(&key, schedule);
-
- des_pcbc_encrypt((des_cblock*)tkt.dat, (des_cblock*)tktcopy.dat,
- tkt.length,
- schedule, &key, DES_DECRYPT);
- if (strcmp ((char*)tktcopy.dat + 8,
- KRB_TICKET_GRANTING_TICKET) != 0) {
- afs_string_to_key (passwd, krb_realmofhost(hostname), &key);
- des_key_sched (&key, schedule);
- des_pcbc_encrypt((des_cblock*)tkt.dat, (des_cblock*)tktcopy.dat,
- tkt.length,
- schedule, &key, DES_DECRYPT);
- }
- memset(key, 0, sizeof(key));
- memset(schedule, 0, sizeof(schedule));
- memset(passwd, 0, sizeof(passwd));
- base64_encode(tktcopy.dat, tktcopy.length, &p);
- memset (tktcopy.dat, 0, tktcopy.length);
- ret = command("SITE KAUTH %s %s", name, p);
- free(p);
- if(ret != COMPLETE){
- code = -1;
- return;
- }
- code = 0;
-}
-
-void klist(int argc, char **argv)
-{
- int ret;
- if(argc != 1){
- printf("usage: %s\n", argv[0]);
- code = -1;
- return;
- }
-
- ret = command("SITE KLIST");
- code = (ret == COMPLETE);
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/krb4.c b/crypto/kerberosIV/appl/ftp/ftp/krb4.c
deleted file mode 100644
index 872c5bc13f91..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/krb4.c
+++ /dev/null
@@ -1,567 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "ftp_locl.h"
-
-RCSID("$Id: krb4.c,v 1.18 1997/05/11 04:08:05 assar Exp $");
-
-static KTEXT_ST krb4_adat;
-
-static des_cblock key;
-static des_key_schedule schedule;
-
-static char *data_buffer;
-
-extern struct sockaddr_in hisctladdr, myctladdr;
-
-int auth_complete;
-
-static int command_prot;
-
-static int auth_pbsz;
-static int data_prot;
-
-static int request_data_prot;
-
-
-static struct {
- int level;
- char *name;
-} level_names[] = {
- { prot_clear, "clear" },
- { prot_safe, "safe" },
- { prot_confidential, "confidential" },
- { prot_private, "private" }
-};
-
-static char *level_to_name(int level)
-{
- int i;
- for(i = 0; i < sizeof(level_names) / sizeof(level_names[0]); i++)
- if(level_names[i].level == level)
- return level_names[i].name;
- return "unknown";
-}
-
-static int name_to_level(char *name)
-{
- int i;
- for(i = 0; i < sizeof(level_names) / sizeof(level_names[0]); i++)
- if(!strncasecmp(level_names[i].name, name, strlen(name)))
- return level_names[i].level;
- return -1;
-}
-
-void sec_status(void)
-{
- if(auth_complete){
- printf("Using KERBEROS_V4 for authentication.\n");
-
- command_prot = prot_private; /* this variable is not used */
-
- printf("Using %s command channel.\n",
- level_to_name(command_prot));
-
- printf("Using %s data channel.\n",
- level_to_name(data_prot));
- if(auth_pbsz > 0)
- printf("Protection buffer size: %d.\n", auth_pbsz);
- }else{
- printf("Not using any security mechanism.\n");
- }
-}
-
-static int
-sec_prot_internal(int level)
-{
- int ret;
- char *p;
- int s = 1048576;
-
- int old_verbose = verbose;
- verbose = 0;
-
- if(!auth_complete){
- printf("No security data exchange has taken place.\n");
- return -1;
- }
-
- if(level){
- ret = command("PBSZ %d", s);
- if(ret != COMPLETE){
- printf("Failed to set protection buffer size.\n");
- return -1;
- }
- auth_pbsz = s;
- p = strstr(reply_string, "PBSZ=");
- if(p)
- sscanf(p, "PBSZ=%d", &s);
- if(s < auth_pbsz)
- auth_pbsz = s;
- if(data_buffer)
- free(data_buffer);
- data_buffer = malloc(auth_pbsz);
- }
- verbose = old_verbose;
- ret = command("PROT %c", level["CSEP"]); /* XXX :-) */
- if(ret != COMPLETE){
- printf("Failed to set protection level.\n");
- return -1;
- }
-
- data_prot = level;
- return 0;
-}
-
-
-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(!auth_complete){
- printf("No security data exchange has taken place.\n");
- code = -1;
- return;
- }
- level = name_to_level(argv[1]);
-
- if(level == -1){
- printf("usage: %s (clear | safe | confidential | private)\n",
- argv[0]);
- code = -1;
- return;
- }
-
- if(level == prot_confidential){
- printf("Confidential protection is not defined with Kerberos.\n");
- code = -1;
- return;
- }
-
- if(sec_prot_internal(level) < 0){
- code = -1;
- return;
- }
- code = 0;
-}
-
-void
-sec_set_protection_level(void)
-{
- if(auth_complete && data_prot != request_data_prot)
- sec_prot_internal(request_data_prot);
-}
-
-
-int
-sec_request_prot(char *level)
-{
- int l = name_to_level(level);
- if(l == -1)
- return -1;
- request_data_prot = l;
- return 0;
-}
-
-
-int sec_getc(FILE *F)
-{
- if(auth_complete && data_prot)
- return krb4_getc(F);
- else
- return getc(F);
-}
-
-int sec_read(int fd, void *data, int length)
-{
- if(auth_complete && data_prot)
- return krb4_read(fd, data, length);
- else
- return read(fd, data, length);
-}
-
-static int
-krb4_recv(int fd)
-{
- int len;
- MSG_DAT m;
- int kerror;
-
- krb_net_read(fd, &len, sizeof(len));
- len = ntohl(len);
- krb_net_read(fd, data_buffer, len);
- if(data_prot == prot_safe)
- kerror = krb_rd_safe(data_buffer, len, &key,
- &hisctladdr, &myctladdr, &m);
- else
- kerror = krb_rd_priv(data_buffer, len, schedule, &key,
- &hisctladdr, &myctladdr, &m);
- if(kerror){
- return -1;
- }
- memmove(data_buffer, m.app_data, m.app_length);
- return m.app_length;
-}
-
-
-int krb4_getc(FILE *F)
-{
- static int bytes;
- static int index;
- if(bytes == 0){
- bytes = krb4_recv(fileno(F));
- index = 0;
- }
- if(bytes){
- bytes--;
- return (unsigned char)data_buffer[index++];
- }
- return EOF;
-}
-
-int krb4_read(int fd, char *data, int length)
-{
- static int left;
- static int index;
- static int eof;
- int len = left;
- int rx = 0;
-
- if(eof){
- eof = 0;
- return 0;
- }
-
- if(left){
- if(length < len)
- len = length;
- memmove(data, data_buffer + index, len);
- length -= len;
- index += len;
- rx += len;
- left -= len;
- }
-
- while(length){
- len = krb4_recv(fd);
- if(len == 0){
- if(rx)
- eof = 1;
- return rx;
- }
- if(len > length){
- left = len - length;
- len = index = length;
- }
- memmove(data, data_buffer, len);
- length -= len;
- data += len;
- rx += len;
- }
- return rx;
-}
-
-
-static int
-krb4_encode(char *from, char *to, int length)
-{
- if(data_prot == prot_safe)
- return krb_mk_safe(from, to, length, &key,
- &myctladdr, &hisctladdr);
- else
- return krb_mk_priv(from, to, length, schedule, &key,
- &myctladdr, &hisctladdr);
-}
-
-static int
-krb4_overhead(int len)
-{
- if(data_prot == prot_safe)
- return 31;
- else
- return 26;
-}
-
-static char p_buf[1024];
-static int p_index;
-
-int
-sec_putc(int c, FILE *F)
-{
- if(data_prot){
- if((c == '\n' && p_index) || p_index == sizeof(p_buf)){
- sec_write(fileno(F), p_buf, p_index);
- p_index = 0;
- }
- p_buf[p_index++] = c;
- return c;
- }
- return putc(c, F);
-}
-
-static int
-sec_send(int fd, char *from, int length)
-{
- int bytes;
- bytes = krb4_encode(from, data_buffer, length);
- bytes = htonl(bytes);
- krb_net_write(fd, &bytes, sizeof(bytes));
- krb_net_write(fd, data_buffer, ntohl(bytes));
- return length;
-}
-
-int
-sec_fflush(FILE *F)
-{
- if(data_prot){
- if(p_index){
- sec_write(fileno(F), p_buf, p_index);
- p_index = 0;
- }
- sec_send(fileno(F), NULL, 0);
- }
- fflush(F);
- return 0;
-}
-
-int
-sec_write(int fd, char *data, int length)
-{
- int len = auth_pbsz;
- int tx = 0;
-
- if(data_prot == prot_clear)
- return write(fd, data, length);
-
- len -= krb4_overhead(len);
- while(length){
- if(length < len)
- len = length;
- sec_send(fd, data, len);
- length -= len;
- data += len;
- tx += len;
- }
- return tx;
-}
-
-static int
-do_auth(char *service, char *host, int checksum)
-{
- int ret;
- CREDENTIALS cred;
- char sname[SNAME_SZ], inst[INST_SZ], realm[REALM_SZ];
- strcpy(sname, service);
- strcpy(inst, krb_get_phost(host));
- strcpy(realm, krb_realmofhost(host));
- ret = krb_mk_req(&krb4_adat, sname, inst, realm, checksum);
- if(ret)
- return ret;
- strcpy(sname, service);
- strcpy(inst, krb_get_phost(host));
- strcpy(realm, krb_realmofhost(host));
- ret = krb_get_cred(sname, inst, realm, &cred);
- memmove(&key, &cred.session, sizeof(des_cblock));
- des_key_sched(&key, schedule);
- memset(&cred, 0, sizeof(cred));
- return ret;
-}
-
-
-int
-do_klogin(char *host)
-{
- int ret;
- char *p;
- int len;
- char adat[1024];
- MSG_DAT msg_data;
- int checksum;
-
- int old_verbose = verbose;
-
- verbose = 0;
- printf("Trying KERBEROS_V4...\n");
- ret = command("AUTH KERBEROS_V4");
- if(ret != CONTINUE){
- if(code == 504){
- printf("Kerberos 4 is not supported by the server.\n");
- }else if(code == 534){
- printf("KERBEROS_V4 rejected as security mechanism.\n");
- }else if(ret == ERROR)
- printf("The server doesn't understand the FTP "
- "security extensions.\n");
- verbose = old_verbose;
- return -1;
- }
-
- checksum = getpid();
- ret = do_auth("ftp", host, checksum);
- if(ret == KDC_PR_UNKNOWN)
- ret = do_auth("rcmd", host, checksum);
- if(ret){
- printf("%s\n", krb_get_err_text(ret));
- verbose = old_verbose;
- return ret;
- }
-
- base64_encode(krb4_adat.dat, krb4_adat.length, &p);
- ret = command("ADAT %s", p);
- free(p);
-
- if(ret != COMPLETE){
- printf("Server didn't accept auth data.\n");
- verbose = old_verbose;
- return -1;
- }
-
- p = strstr(reply_string, "ADAT=");
- if(!p){
- printf("Remote host didn't send adat reply.\n");
- verbose = old_verbose;
- return -1;
- }
- p+=5;
- len = base64_decode(p, adat);
- if(len < 0){
- printf("Failed to decode base64 from server.\n");
- verbose = old_verbose;
- return -1;
- }
- ret = krb_rd_safe(adat, len, &key,
- &hisctladdr, &myctladdr, &msg_data);
- if(ret){
- printf("Error reading reply from server: %s.\n",
- krb_get_err_text(ret));
- verbose = old_verbose;
- return -1;
- }
- {
- /* the draft doesn't tell what size the return has */
- int i;
- u_int32_t cs = 0;
- for(i = 0; i < msg_data.app_length; i++)
- cs = (cs<<8) + msg_data.app_data[i];
- if(cs - checksum != 1){
- printf("Bad checksum returned from server.\n");
- verbose = old_verbose;
- return -1;
- }
- }
- auth_complete = 1;
- verbose = old_verbose;
- return 0;
-}
-
-void
-krb4_quit(void)
-{
- auth_complete = 0;
-}
-
-int krb4_write_enc(FILE *F, char *fmt, va_list ap)
-{
- int len;
- char *p;
- char buf[1024];
- char enc[1024];
-
- vsnprintf(buf, sizeof(buf), fmt, ap);
- len = krb_mk_priv(buf, enc, strlen(buf), schedule, &key,
- &myctladdr, &hisctladdr);
- base64_encode(enc, len, &p);
-
- fprintf(F, "ENC %s", p);
- free (p);
- return 0;
-}
-
-
-int krb4_read_msg(char *s, int priv)
-{
- int len;
- int ret;
- char buf[1024];
- MSG_DAT m;
- int code;
-
- len = base64_decode(s + 4, buf);
- if(priv)
- ret = krb_rd_priv(buf, len, schedule, &key,
- &hisctladdr, &myctladdr, &m);
- else
- ret = krb_rd_safe(buf, len, &key, &hisctladdr, &myctladdr, &m);
- if(ret){
- printf("%s\n", krb_get_err_text(ret));
- return -1;
- }
-
- m.app_data[m.app_length] = 0;
- if(m.app_data[3] == '-')
- code = 0;
- else
- sscanf((char*)m.app_data, "%d", &code);
- strncpy(s, (char*)m.app_data, strlen((char*)m.app_data));
-
- s[m.app_length] = 0;
- len = strlen(s);
- if(s[len-1] == '\n')
- s[len-1] = 0;
-
- return code;
-}
-
-int
-krb4_read_mic(char *s)
-{
- return krb4_read_msg(s, 0);
-}
-
-int
-krb4_read_enc(char *s)
-{
- return krb4_read_msg(s, 1);
-}
-
diff --git a/crypto/kerberosIV/appl/ftp/ftp/krb4.h b/crypto/kerberosIV/appl/ftp/ftp/krb4.h
deleted file mode 100644
index 7cf8cece104d..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/krb4.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: krb4.h,v 1.10 1997/04/01 08:17:22 joda Exp $ */
-
-#ifndef __KRB4_H__
-#define __KRB4_H__
-
-#include <stdio.h>
-#include <stdarg.h>
-
-extern int auth_complete;
-
-void sec_status(void);
-
-enum { prot_clear, prot_safe, prot_confidential, prot_private };
-
-void sec_prot(int, char**);
-
-int sec_getc(FILE *F);
-int sec_putc(int c, FILE *F);
-int sec_fflush(FILE *F);
-int sec_read(int fd, void *data, int length);
-int sec_write(int fd, char *data, int length);
-
-int krb4_getc(FILE *F);
-int krb4_read(int fd, char *data, int length);
-
-
-
-void sec_set_protection_level(void);
-int sec_request_prot(char *level);
-
-void kauth(int, char **);
-void klist(int, char **);
-
-void krb4_quit(void);
-
-int krb4_write_enc(FILE *F, char *fmt, va_list ap);
-int krb4_read_msg(char *s, int priv);
-int krb4_read_mic(char *s);
-int krb4_read_enc(char *s);
-
-int do_klogin(char *host);
-
-#endif /* __KRB4_H__ */
diff --git a/crypto/kerberosIV/appl/ftp/ftp/main.c b/crypto/kerberosIV/appl/ftp/ftp/main.c
deleted file mode 100644
index 4d1b6a543cdf..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/main.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-/*
- * FTP User Program -- Command Interface.
- */
-
-#include "ftp_locl.h"
-RCSID("$Id: main.c,v 1.20 1997/04/20 16:14:55 joda Exp $");
-
-int
-main(int argc, char **argv)
-{
- int ch, top;
- struct passwd *pw = NULL;
- char homedir[MaxPathLen];
- struct servent *sp;
-
- set_progname(argv[0]);
-
- sp = getservbyname("ftp", "tcp");
- if (sp == 0)
- errx(1, "ftp/tcp: unknown service");
- doglob = 1;
- interactive = 1;
- autologin = 1;
-
- while ((ch = getopt(argc, argv, "dgintv")) != EOF) {
- switch (ch) {
- case 'd':
- options |= SO_DEBUG;
- debug++;
- break;
-
- case 'g':
- doglob = 0;
- break;
-
- case 'i':
- interactive = 0;
- break;
-
- case 'n':
- autologin = 0;
- break;
-
- case 't':
- trace++;
- break;
-
- case 'v':
- verbose++;
- break;
-
- default:
- fprintf(stderr,
- "usage: ftp [-dgintv] [host [port]]\n");
- exit(1);
- }
- }
- argc -= optind;
- argv += optind;
-
- fromatty = isatty(fileno(stdin));
- if (fromatty)
- verbose++;
- cpend = 0; /* no pending replies */
- proxy = 0; /* proxy not active */
- passivemode = 0; /* passive mode not active */
- crflag = 1; /* strip c.r. on ascii gets */
- sendport = -1; /* not using ports */
- /*
- * Set up the home directory in case we're globbing.
- */
- pw = k_getpwuid(getuid());
- if (pw != NULL) {
- home = homedir;
- strcpy(home, pw->pw_dir);
- }
- if (argc > 0) {
- char *xargv[5];
-
- if (setjmp(toplevel))
- exit(0);
- signal(SIGINT, intr);
- signal(SIGPIPE, lostpeer);
- xargv[0] = (char*)__progname;
- xargv[1] = argv[0];
- xargv[2] = argv[1];
- xargv[3] = argv[2];
- xargv[4] = NULL;
- setpeer(argc+1, xargv);
- }
- if(setjmp(toplevel) == 0)
- top = 1;
- else
- top = 0;
- if (top) {
- signal(SIGINT, intr);
- signal(SIGPIPE, lostpeer);
- }
- for (;;) {
- cmdscanner(top);
- top = 1;
- }
-}
-
-void
-intr(int sig)
-{
-
- longjmp(toplevel, 1);
-}
-
-#ifndef SHUT_RDWR
-#define SHUT_RDWR 2
-#endif
-
-RETSIGTYPE
-lostpeer(int sig)
-{
-
- if (connected) {
- if (cout != NULL) {
- shutdown(fileno(cout), SHUT_RDWR);
- fclose(cout);
- cout = NULL;
- }
- if (data >= 0) {
- shutdown(data, SHUT_RDWR);
- close(data);
- data = -1;
- }
- connected = 0;
- }
- pswitch(1);
- if (connected) {
- if (cout != NULL) {
- shutdown(fileno(cout), SHUT_RDWR);
- fclose(cout);
- cout = NULL;
- }
- connected = 0;
- }
- proxflag = 0;
- pswitch(0);
- SIGRETURN(0);
-}
-
-/*
-char *
-tail(filename)
- char *filename;
-{
- char *s;
-
- while (*filename) {
- s = strrchr(filename, '/');
- if (s == NULL)
- break;
- if (s[1])
- return (s + 1);
- *s = '\0';
- }
- return (filename);
-}
-*/
-
-#ifndef HAVE_READLINE
-
-static char *
-readline(char *prompt)
-{
- char buf[BUFSIZ];
- printf ("%s", prompt);
- fflush (stdout);
- if(fgets(buf, sizeof(buf), stdin) == NULL)
- return NULL;
- if (buf[strlen(buf) - 1] == '\n')
- buf[strlen(buf) - 1] = '\0';
- return strdup(buf);
-}
-
-static void
-add_history(char *p)
-{
-}
-
-#else
-
-/* These should not really be here */
-
-char *readline(char *);
-void add_history(char *);
-
-#endif
-
-/*
- * Command parser.
- */
-void
-cmdscanner(int top)
-{
- struct cmd *c;
- int l;
-
- if (!top)
- putchar('\n');
- for (;;) {
- if (fromatty) {
- char *p;
- p = readline("ftp> ");
- if(p == NULL)
- quit(0, 0);
- strncpy(line, p, sizeof(line));
- line[sizeof(line) - 1] = 0;
- add_history(p);
- free(p);
- } else{
- if (fgets(line, sizeof line, stdin) == NULL)
- quit(0, 0);
- }
- /* XXX will break on long lines */
- l = strlen(line);
- if (l == 0)
- break;
- if (line[--l] == '\n') {
- if (l == 0)
- break;
- line[l] = '\0';
- } else if (l == sizeof(line) - 2) {
- printf("sorry, input line too long\n");
- while ((l = getchar()) != '\n' && l != EOF)
- /* void */;
- break;
- } /* else it was a line without a newline */
- makeargv();
- if (margc == 0) {
- continue;
- }
- c = getcmd(margv[0]);
- if (c == (struct cmd *)-1) {
- printf("?Ambiguous command\n");
- continue;
- }
- if (c == 0) {
- printf("?Invalid command\n");
- continue;
- }
- if (c->c_conn && !connected) {
- printf("Not connected.\n");
- continue;
- }
- (*c->c_handler)(margc, margv);
- if (bell && c->c_bell)
- putchar('\007');
- if (c->c_handler != help)
- break;
- }
- signal(SIGINT, intr);
- signal(SIGPIPE, lostpeer);
-}
-
-struct cmd *
-getcmd(char *name)
-{
- char *p, *q;
- struct cmd *c, *found;
- int nmatches, longest;
-
- longest = 0;
- nmatches = 0;
- found = 0;
- for (c = cmdtab; (p = c->c_name); c++) {
- for (q = name; *q == *p++; q++)
- if (*q == 0) /* exact match? */
- return (c);
- if (!*q) { /* the name was a prefix */
- if (q - name > longest) {
- longest = q - name;
- nmatches = 1;
- found = c;
- } else if (q - name == longest)
- nmatches++;
- }
- }
- if (nmatches > 1)
- return ((struct cmd *)-1);
- return (found);
-}
-
-/*
- * Slice a string up into argc/argv.
- */
-
-int slrflag;
-
-void
-makeargv(void)
-{
- char **argp;
-
- argp = margv;
- stringbase = line; /* scan from first of buffer */
- argbase = argbuf; /* store from first of buffer */
- slrflag = 0;
- for (margc = 0; ; margc++) {
- /* Expand array if necessary */
- if (margc == margvlen) {
- margv = (margvlen == 0)
- ? (char **)malloc(20 * sizeof(char *))
- : (char **)realloc(margv,
- (margvlen + 20)*sizeof(char *));
- if (margv == NULL)
- errx(1, "cannot realloc argv array");
- margvlen += 20;
- argp = margv + margc;
- }
-
- if ((*argp++ = slurpstring()) == NULL)
- break;
- }
-
-}
-
-/*
- * Parse string into argbuf;
- * implemented with FSM to
- * handle quoting and strings
- */
-char *
-slurpstring(void)
-{
- int got_one = 0;
- char *sb = stringbase;
- char *ap = argbase;
- char *tmp = argbase; /* will return this if token found */
-
- if (*sb == '!' || *sb == '$') { /* recognize ! as a token for shell */
- switch (slrflag) { /* and $ as token for macro invoke */
- case 0:
- slrflag++;
- stringbase++;
- return ((*sb == '!') ? "!" : "$");
- /* NOTREACHED */
- case 1:
- slrflag++;
- altarg = stringbase;
- break;
- default:
- break;
- }
- }
-
-S0:
- switch (*sb) {
-
- case '\0':
- goto OUT;
-
- case ' ':
- case '\t':
- sb++; goto S0;
-
- default:
- switch (slrflag) {
- case 0:
- slrflag++;
- break;
- case 1:
- slrflag++;
- altarg = sb;
- break;
- default:
- break;
- }
- goto S1;
- }
-
-S1:
- switch (*sb) {
-
- case ' ':
- case '\t':
- case '\0':
- goto OUT; /* end of token */
-
- case '\\':
- sb++; goto S2; /* slurp next character */
-
- case '"':
- sb++; goto S3; /* slurp quoted string */
-
- default:
- *ap++ = *sb++; /* add character to token */
- got_one = 1;
- goto S1;
- }
-
-S2:
- switch (*sb) {
-
- case '\0':
- goto OUT;
-
- default:
- *ap++ = *sb++;
- got_one = 1;
- goto S1;
- }
-
-S3:
- switch (*sb) {
-
- case '\0':
- goto OUT;
-
- case '"':
- sb++; goto S1;
-
- default:
- *ap++ = *sb++;
- got_one = 1;
- goto S3;
- }
-
-OUT:
- if (got_one)
- *ap++ = '\0';
- argbase = ap; /* update storage pointer */
- stringbase = sb; /* update scan pointer */
- if (got_one) {
- return (tmp);
- }
- switch (slrflag) {
- case 0:
- slrflag++;
- break;
- case 1:
- slrflag++;
- altarg = (char *) 0;
- break;
- default:
- break;
- }
- return NULL;
-}
-
-#define HELPINDENT ((int) sizeof ("directory"))
-
-/*
- * Help command.
- * Call each command handler with argc == 0 and argv[0] == name.
- */
-void
-help(int argc, char **argv)
-{
- struct cmd *c;
-
- if (argc == 1) {
- int i, j, w, k;
- int columns, width = 0, lines;
-
- printf("Commands may be abbreviated. Commands are:\n\n");
- for (c = cmdtab; c < &cmdtab[NCMDS]; c++) {
- int len = strlen(c->c_name);
-
- if (len > width)
- width = len;
- }
- width = (width + 8) &~ 7;
- columns = 80 / width;
- if (columns == 0)
- columns = 1;
- lines = (NCMDS + columns - 1) / columns;
- for (i = 0; i < lines; i++) {
- for (j = 0; j < columns; j++) {
- c = cmdtab + j * lines + i;
- if (c->c_name && (!proxy || c->c_proxy)) {
- printf("%s", c->c_name);
- }
- else if (c->c_name) {
- for (k=0; k < strlen(c->c_name); k++) {
- putchar(' ');
- }
- }
- if (c + lines >= &cmdtab[NCMDS]) {
- printf("\n");
- break;
- }
- w = strlen(c->c_name);
- while (w < width) {
- w = (w + 8) &~ 7;
- putchar('\t');
- }
- }
- }
- return;
- }
- while (--argc > 0) {
- char *arg;
- arg = *++argv;
- c = getcmd(arg);
- if (c == (struct cmd *)-1)
- printf("?Ambiguous help command %s\n", arg);
- else if (c == (struct cmd *)0)
- printf("?Invalid help command %s\n", arg);
- else
- printf("%-*s\t%s\n", HELPINDENT,
- c->c_name, c->c_help);
- }
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftp/pathnames.h b/crypto/kerberosIV/appl/ftp/ftp/pathnames.h
deleted file mode 100644
index f7c1fb391d69..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/pathnames.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)pathnames.h 8.1 (Berkeley) 6/6/93
- */
-
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-
-#define _PATH_TMP_XXX "/tmp/ftpXXXXXX"
-
-#ifndef _PATH_BSHELL
-#define _PATH_BSHELL "/bin/sh"
-#endif
diff --git a/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c b/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c
deleted file mode 100644
index 8cea6d432016..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftp/ruserpass.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Copyright (c) 1985, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 "ftp_locl.h"
-RCSID("$Id: ruserpass.c,v 1.10 1997/05/02 14:27:55 assar Exp $");
-
-static int token (void);
-static FILE *cfile;
-
-#define DEFAULT 1
-#define LOGIN 2
-#define PASSWD 3
-#define ACCOUNT 4
-#define MACDEF 5
-#define PROT 6
-#define ID 10
-#define MACH 11
-
-static char tokval[100];
-
-static struct toktab {
- char *tokstr;
- int tval;
-} toktab[]= {
- { "default", DEFAULT },
- { "login", LOGIN },
- { "password", PASSWD },
- { "passwd", PASSWD },
- { "account", ACCOUNT },
- { "machine", MACH },
- { "macdef", MACDEF },
- { "prot", PROT },
- { NULL, 0 }
-};
-
-int
-ruserpass(char *host, char **aname, char **apass, char **aacct)
-{
- char *hdir, buf[BUFSIZ], *tmp;
- int t, i, c, usedefault = 0;
- struct stat stb;
-
- if(k_gethostname(myhostname, MaxHostNameLen) < 0)
- strcpy(myhostname, "");
- if((mydomain = strchr(myhostname, '.')) == NULL)
- mydomain = myhostname;
- else
- mydomain++;
- hdir = getenv("HOME");
- if (hdir == NULL)
- hdir = ".";
- snprintf(buf, sizeof(buf), "%s/.netrc", hdir);
- cfile = fopen(buf, "r");
- if (cfile == NULL) {
- if (errno != ENOENT)
- warn("%s", buf);
- return (0);
- }
-
-next:
- while ((t = token())) switch(t) {
-
- case DEFAULT:
- usedefault = 1;
- /* FALL THROUGH */
-
- case MACH:
- if (!usedefault) {
- if (token() != ID)
- continue;
- /*
- * Allow match either for user's input host name
- * or official hostname. Also allow match of
- * incompletely-specified host in local domain.
- */
- if (strcasecmp(host, tokval) == 0)
- goto match;
- if (strcasecmp(hostname, tokval) == 0)
- goto match;
- if ((tmp = strchr(hostname, '.')) != NULL &&
- tmp++ &&
- strcasecmp(tmp, mydomain) == 0 &&
- strncasecmp(hostname, tokval, tmp-hostname) == 0 &&
- tokval[tmp - hostname] == '\0')
- goto match;
- if ((tmp = strchr(host, '.')) != NULL &&
- tmp++ &&
- strcasecmp(tmp, mydomain) == 0 &&
- strncasecmp(host, tokval, tmp - host) == 0 &&
- tokval[tmp - host] == '\0')
- goto match;
- continue;
- }
- match:
- while ((t = token()) && t != MACH && t != DEFAULT) switch(t) {
-
- case LOGIN:
- if (token())
- if (*aname == 0) {
- *aname = strdup(tokval);
- } else {
- if (strcmp(*aname, tokval))
- goto next;
- }
- break;
- case PASSWD:
- if ((*aname == NULL || strcmp(*aname, "anonymous")) &&
- fstat(fileno(cfile), &stb) >= 0 &&
- (stb.st_mode & 077) != 0) {
- warnx("Error: .netrc file is readable by others.");
- warnx("Remove password or make file unreadable by others.");
- goto bad;
- }
- if (token() && *apass == 0) {
- *apass = strdup(tokval);
- }
- break;
- case ACCOUNT:
- if (fstat(fileno(cfile), &stb) >= 0
- && (stb.st_mode & 077) != 0) {
- warnx("Error: .netrc file is readable by others.");
- warnx("Remove account or make file unreadable by others.");
- goto bad;
- }
- if (token() && *aacct == 0) {
- *aacct = strdup(tokval);
- }
- break;
- case MACDEF:
- if (proxy) {
- fclose(cfile);
- return (0);
- }
- while ((c=getc(cfile)) != EOF && c == ' ' || c == '\t');
- if (c == EOF || c == '\n') {
- printf("Missing macdef name argument.\n");
- goto bad;
- }
- if (macnum == 16) {
- printf("Limit of 16 macros have already been defined\n");
- goto bad;
- }
- tmp = macros[macnum].mac_name;
- *tmp++ = c;
- for (i=0; i < 8 && (c=getc(cfile)) != EOF &&
- !isspace(c); ++i) {
- *tmp++ = c;
- }
- if (c == EOF) {
- printf("Macro definition missing null line terminator.\n");
- goto bad;
- }
- *tmp = '\0';
- if (c != '\n') {
- while ((c=getc(cfile)) != EOF && c != '\n');
- }
- if (c == EOF) {
- printf("Macro definition missing null line terminator.\n");
- goto bad;
- }
- if (macnum == 0) {
- macros[macnum].mac_start = macbuf;
- }
- else {
- macros[macnum].mac_start = macros[macnum-1].mac_end + 1;
- }
- tmp = macros[macnum].mac_start;
- while (tmp != macbuf + 4096) {
- if ((c=getc(cfile)) == EOF) {
- printf("Macro definition missing null line terminator.\n");
- goto bad;
- }
- *tmp = c;
- if (*tmp == '\n') {
- if (*(tmp-1) == '\0') {
- macros[macnum++].mac_end = tmp - 1;
- break;
- }
- *tmp = '\0';
- }
- tmp++;
- }
- if (tmp == macbuf + 4096) {
- printf("4K macro buffer exceeded\n");
- goto bad;
- }
- break;
- case PROT:
- token();
- if(sec_request_prot(tokval) < 0)
- warnx("Unknown protection level \"%s\"", tokval);
- break;
- default:
- warnx("Unknown .netrc keyword %s", tokval);
- break;
- }
- goto done;
- }
-done:
- fclose(cfile);
- return (0);
-bad:
- fclose(cfile);
- return (-1);
-}
-
-static int
-token(void)
-{
- char *cp;
- int c;
- struct toktab *t;
-
- if (feof(cfile) || ferror(cfile))
- return (0);
- while ((c = getc(cfile)) != EOF &&
- (c == '\n' || c == '\t' || c == ' ' || c == ','))
- continue;
- if (c == EOF)
- return (0);
- cp = tokval;
- if (c == '"') {
- while ((c = getc(cfile)) != EOF && c != '"') {
- if (c == '\\')
- c = getc(cfile);
- *cp++ = c;
- }
- } else {
- *cp++ = c;
- while ((c = getc(cfile)) != EOF
- && c != '\n' && c != '\t' && c != ' ' && c != ',') {
- if (c == '\\')
- c = getc(cfile);
- *cp++ = c;
- }
- }
- *cp = 0;
- if (tokval[0] == 0)
- return (0);
- for (t = toktab; t->tokstr; t++)
- if (!strcmp(t->tokstr, tokval))
- return (t->tval);
- return (ID);
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in b/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in
deleted file mode 100644
index 55981deb7ecd..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/Makefile.in
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# $Id: Makefile.in,v 1.31 1997/05/02 17:49:27 assar Exp $
-#
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-topdir = ../../..
-
-SHELL = /bin/sh
-
-CC = @CC@
-YACC = @YACC@
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-LIBS = @LIBS@
-LIB_DBM = @LIB_DBM@
-MKINSTALLDIRS = $(top_srcdir)/mkinstalldirs
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-ATHENA = ../../..
-
-INCTOP = $(ATHENA)/include
-
-LIBTOP = $(ATHENA)/lib
-
-LIBKAFS = @KRB_KAFS_LIB@
-LIBKRB = -L$(LIBTOP)/krb -lkrb
-LIBDES = -L$(LIBTOP)/des -ldes
-LIBOTP = -L$(LIBTOP)/otp -lotp
-LIBROKEN= -L$(LIBTOP)/roken -lroken
-
-PROGS = ftpd$(EXECSUFFIX)
-
-ftpd_SOURCES = ftpd.c ftpcmd.c logwtmp.c popen.c auth.c krb4.c kauth.c
-ftpd_OBJS = ftpd.o ftpcmd.o logwtmp.o popen.o auth.o krb4.o kauth.o
-
-SOURCES = $(ftpd_SOURCES)
-OBJECTS = $(ftpd_OBJS)
-
-all: $(PROGS)
-
-.c.o:
- $(CC) -c $(CFLAGS) -I$(srcdir) -I$(srcdir)/../common -I$(INCTOP) $(DEFS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libexecdir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-ftpd$(EXECSUFFIX): $(ftpd_OBJS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(ftpd_OBJS) -L../common -lcommon $(LIBKAFS) $(LIBKRB) $(LIBOTP) $(LIBDES) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-ftpcmd.c: ftpcmd.y
- $(YACC) $(YFLAGS) $<
- chmod a-w y.tab.c
- mv -f y.tab.c ftpcmd.c
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-clean cleandir:
- rm -f *~ *.o core ftpd ftpcmd.c \#*
-
-distclean:
- rm -f Makefile
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/auth.c b/crypto/kerberosIV/appl/ftp/ftpd/auth.c
deleted file mode 100644
index 862eb6dcc639..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/auth.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: auth.c,v 1.11 1997/05/04 23:09:00 assar Exp $");
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "extern.h"
-#include "krb4.h"
-#include "auth.h"
-
-static struct at auth_types [] = {
- { "KERBEROS_V4", krb4_auth, krb4_adat, krb4_pbsz, krb4_prot, krb4_ccc,
- krb4_mic, krb4_conf, krb4_enc, krb4_read, krb4_write, krb4_userok,
- krb4_vprintf },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
-};
-
-struct at *ct;
-
-int data_protection;
-int buffer_size;
-unsigned char *data_buffer;
-int auth_complete;
-
-
-char *protection_names[] = {
- "clear", "safe",
- "confidential", "private"
-};
-
-
-void auth_init(void)
-{
-}
-
-char *ftp_command;
-int prot_level;
-
-void new_ftp_command(char *command)
-{
- ftp_command = command;
-}
-
-void delete_ftp_command(void)
-{
- if(ftp_command){
- free(ftp_command);
- ftp_command = NULL;
- }
-}
-
-int auth_ok(void)
-{
- return ct && auth_complete;
-}
-
-void auth(char *auth)
-{
- for(ct=auth_types; ct->name; ct++){
- if(!strcasecmp(auth, ct->name)){
- ct->auth(auth);
- return;
- }
- }
- reply(504, "%s is not a known security mechanism", auth);
-}
-
-void adat(char *auth)
-{
- if(ct && !auth_complete)
- ct->adat(auth);
- else
- reply(503, "You must (re)issue an AUTH first.");
-}
-
-void pbsz(int size)
-{
- int old = buffer_size;
- if(auth_ok())
- ct->pbsz(size);
- else
- reply(503, "Incomplete security data exchange.");
- if(buffer_size != old){
- if(data_buffer)
- free(data_buffer);
- data_buffer = malloc(buffer_size + 4);
- }
-}
-
-void prot(char *pl)
-{
- int p = -1;
-
- if(buffer_size == 0){
- reply(503, "No protection buffer size negotiated.");
- return;
- }
-
- if(!strcasecmp(pl, "C"))
- p = prot_clear;
-
- if(!strcasecmp(pl, "S"))
- p = prot_safe;
-
- if(!strcasecmp(pl, "E"))
- p = prot_confidential;
-
- if(!strcasecmp(pl, "P"))
- p = prot_private;
-
- if(p == -1){
- reply(504, "Unrecognized protection level.");
- return;
- }
-
- if(auth_ok()){
- if(ct->prot(p)){
- reply(536, "%s does not support %s protection.",
- ct->name, protection_names[p]);
- }else{
- data_protection = p;
- reply(200, "Data protection is %s.",
- protection_names[data_protection]);
- }
- }else{
- reply(503, "Incomplete security data exchange.");
- }
-}
-
-void ccc(void)
-{
- if(auth_ok()){
- if(!ct->ccc())
- prot_level = prot_clear;
- }else
- reply(503, "Incomplete security data exchange.");
-}
-
-void mic(char *msg)
-{
- if(auth_ok()){
- if(!ct->mic(msg))
- prot_level = prot_safe;
- }else
- reply(503, "Incomplete security data exchange.");
-}
-
-void conf(char *msg)
-{
- if(auth_ok()){
- if(!ct->conf(msg))
- prot_level = prot_confidential;
- }else
- reply(503, "Incomplete security data exchange.");
-}
-
-void enc(char *msg)
-{
- if(auth_ok()){
- if(!ct->enc(msg))
- prot_level = prot_private;
- }else
- reply(503, "Incomplete security data exchange.");
-}
-
-int auth_read(int fd, void *data, int length)
-{
- if(auth_ok() && data_protection)
- return ct->read(fd, data, length);
- else
- return read(fd, data, length);
-}
-
-int auth_write(int fd, void *data, int length)
-{
- if(auth_ok() && data_protection)
- return ct->write(fd, data, length);
- else
- return write(fd, data, length);
-}
-
-void auth_vprintf(const char *fmt, va_list ap)
-{
- if(auth_ok() && prot_level){
- ct->vprintf(fmt, ap);
- }else
- vprintf(fmt, ap);
-}
-
-void auth_printf(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- auth_vprintf(fmt, ap);
- va_end(ap);
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/auth.h b/crypto/kerberosIV/appl/ftp/ftpd/auth.h
deleted file mode 100644
index 17d9a133f719..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/auth.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: auth.h,v 1.9 1997/05/11 11:04:28 assar Exp $ */
-
-#ifndef __AUTH_H__
-#define __AUTH_H__
-
-#include <stdarg.h>
-
-struct at {
- char *name;
- int (*auth)(char*);
- int (*adat)(char*);
- int (*pbsz)(int);
- int (*prot)(int);
- int (*ccc)(void);
- int (*mic)(char*);
- int (*conf)(char*);
- int (*enc)(char*);
- int (*read)(int, void*, int);
- int (*write)(int, void*, int);
- int (*userok)(char*);
- int (*vprintf)(const char*, va_list);
-};
-
-extern struct at *ct;
-
-enum protection_levels {
- prot_clear, prot_safe, prot_confidential, prot_private
-};
-
-extern char *protection_names[];
-
-extern char *ftp_command;
-extern int prot_level;
-
-void delete_ftp_command(void);
-
-extern int data_protection;
-extern int buffer_size;
-extern unsigned char *data_buffer;
-extern int auth_complete;
-
-void auth_init(void);
-
-int auth_ok(void);
-
-void auth(char*);
-void adat(char*);
-void pbsz(int);
-void prot(char*);
-void ccc(void);
-void mic(char*);
-void conf(char*);
-void enc(char*);
-
-int auth_read(int, void*, int);
-int auth_write(int, void*, int);
-
-void auth_vprintf(const char *fmt, va_list ap)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 0)))
-#endif
-;
-void auth_printf(const char *fmt, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-
-void new_ftp_command(char *command);
-
-#endif /* __AUTH_H__ */
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/extern.h b/crypto/kerberosIV/appl/ftp/ftpd/extern.h
deleted file mode 100644
index f9b800fee0bb..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/extern.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)extern.h 8.2 (Berkeley) 4/4/94
- */
-
-#ifndef _EXTERN_H_
-#define _EXTERN_H_
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <setjmp.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-void abor(void);
-void blkfree(char **);
-char **copyblk(char **);
-void cwd(char *);
-void do_delete(char *);
-void dologout(int);
-void fatal(char *);
-int filename_check(char *);
-int ftpd_pclose(FILE *);
-FILE *ftpd_popen(char *, char *, int, int);
-char *getline(char *, int);
-void logwtmp(char *, char *, char *);
-void lreply(int, const char *, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 2, 3)))
-#endif
-;
-void makedir(char *);
-void nack(char *);
-void nreply(const char *, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-void pass(char *);
-void passive(void);
-void perror_reply(int, char *);
-void pwd(void);
-void removedir(char *);
-void renamecmd(char *, char *);
-char *renamefrom(char *);
-void reply(int, const char *, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 2, 3)))
-#endif
-;
-void retrieve(char *, char *);
-void send_file_list(char *);
-void setproctitle(const char *, ...)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
-#endif
-;
-void statcmd(void);
-void statfilecmd(char *);
-void do_store(char *, char *, int);
-void upper(char *);
-void user(char *);
-void yyerror(char *);
-
-void kauth(char *, char*);
-void klist(void);
-
-int find(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 char hostname[];
-
-extern struct sockaddr_in data_dest;
-extern int logged_in;
-extern struct passwd *pw;
-extern int guest;
-extern int logging;
-extern int type;
-extern int oobflag;
-extern off_t file_size;
-extern off_t byte_count;
-extern jmp_buf urgcatch;
-
-extern int form;
-extern int debug;
-extern int ftpd_timeout;
-extern int maxtimeout;
-extern int pdata;
-extern char hostname[], remotehost[];
-extern char proctitle[];
-extern int usedefault;
-extern int transflag;
-extern char tmpline[];
-
-#endif /* _EXTERN_H_ */
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y b/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y
deleted file mode 100644
index 9368cdb10893..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/ftpcmd.y
+++ /dev/null
@@ -1,1408 +0,0 @@
-/* $NetBSD: ftpcmd.y,v 1.6 1995/06/03 22:46:45 mycroft Exp $ */
-
-/*
- * Copyright (c) 1985, 1988, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)ftpcmd.y 8.3 (Berkeley) 4/6/94
- */
-
-/*
- * Grammar for FTP commands.
- * See RFC 959.
- */
-
-%{
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-RCSID("$Id: ftpcmd.y,v 1.35 1997/05/25 14:38:49 assar Exp $");
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_FTP_H
-#include <arpa/ftp.h>
-#endif
-
-#include <ctype.h>
-#include <errno.h>
-#include <glob.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-#include <time.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_BSD_BSD_H
-#include <bsd/bsd.h>
-#endif
-
-#include <roken.h>
-
-#ifdef SOCKS
-#include <socks.h>
-extern int LIBPREFIX(fclose) __P((FILE *));
-#endif
-
-#include "extern.h"
-#include "auth.h"
-
-off_t restart_point;
-
-static int cmd_type;
-static int cmd_form;
-static int cmd_bytesz;
-char cbuf[512];
-char *fromname;
-
-struct tab {
- char *name;
- short token;
- short state;
- short implemented; /* 1 if command is implemented */
- char *help;
-};
-
-extern struct tab cmdtab[];
-extern struct tab sitetab[];
-
-static char *copy (char *);
-static void help (struct tab *, char *);
-static struct tab *
- lookup (struct tab *, char *);
-static void sizecmd (char *);
-static void toolong (int);
-static int yylex (void);
-
-/* This is for bison */
-
-#if !defined(alloca) && !defined(HAVE_ALLOCA)
-#define alloca(x) malloc(x)
-#endif
-
-%}
-
-%union {
- int i;
- char *s;
-}
-
-%token
- A B C E F I
- L N P R S T
-
- SP CRLF COMMA
-
- USER PASS ACCT REIN QUIT PORT
- PASV TYPE STRU MODE RETR STOR
- APPE MLFL MAIL MSND MSOM MSAM
- MRSQ MRCP ALLO REST RNFR RNTO
- ABOR DELE CWD LIST NLST SITE
- STAT HELP NOOP MKD RMD PWD
- CDUP STOU SMNT SYST SIZE MDTM
-
- UMASK IDLE CHMOD
-
- AUTH ADAT PROT PBSZ CCC MIC
- CONF ENC
-
- KAUTH KLIST FIND URL
-
- LEXERR
-
-%token <s> STRING
-%token <i> NUMBER
-
-%type <i> check_login check_login_no_guest octal_number byte_size
-%type <i> struct_code mode_code type_code form_code
-%type <s> pathstring pathname password username
-
-%start cmd_list
-
-%%
-
-cmd_list
- : /* empty */
- | cmd_list cmd
- {
- fromname = (char *) 0;
- restart_point = (off_t) 0;
- }
- | cmd_list rcmd
- ;
-
-cmd
- : USER SP username CRLF
- {
- user($3);
- free($3);
- }
- | AUTH SP STRING CRLF
- {
- auth($3);
- free($3);
- }
- | ADAT SP STRING CRLF
- {
- adat($3);
- free($3);
- }
- | PBSZ SP NUMBER CRLF
- {
- pbsz($3);
- }
- | PROT SP STRING CRLF
- {
- prot($3);
- }
- | CCC CRLF
- {
- ccc();
- }
- | MIC SP STRING CRLF
- {
- mic($3);
- free($3);
- }
- | CONF SP STRING CRLF
- {
- conf($3);
- free($3);
- }
- | PASS SP password CRLF
- {
- pass($3);
- memset ($3, 0, strlen($3));
- free($3);
- }
- | PORT SP host_port CRLF
- {
- usedefault = 0;
- if (pdata >= 0) {
- close(pdata);
- pdata = -1;
- }
- reply(200, "PORT command successful.");
- }
- | PASV CRLF
- {
- passive();
- }
- | TYPE SP type_code CRLF
- {
- switch (cmd_type) {
-
- case TYPE_A:
- if (cmd_form == FORM_N) {
- reply(200, "Type set to A.");
- type = cmd_type;
- form = cmd_form;
- } else
- reply(504, "Form must be N.");
- break;
-
- case TYPE_E:
- reply(504, "Type E not implemented.");
- break;
-
- case TYPE_I:
- reply(200, "Type set to I.");
- type = cmd_type;
- break;
-
- case TYPE_L:
-#if NBBY == 8
- if (cmd_bytesz == 8) {
- reply(200,
- "Type set to L (byte size 8).");
- type = cmd_type;
- } else
- reply(504, "Byte size must be 8.");
-#else /* NBBY == 8 */
- UNIMPLEMENTED for NBBY != 8
-#endif /* NBBY == 8 */
- }
- }
- | STRU SP struct_code CRLF
- {
- switch ($3) {
-
- case STRU_F:
- reply(200, "STRU F ok.");
- break;
-
- default:
- reply(504, "Unimplemented STRU type.");
- }
- }
- | MODE SP mode_code CRLF
- {
- switch ($3) {
-
- case MODE_S:
- reply(200, "MODE S ok.");
- break;
-
- default:
- reply(502, "Unimplemented MODE type.");
- }
- }
- | ALLO SP NUMBER CRLF
- {
- reply(202, "ALLO command ignored.");
- }
- | ALLO SP NUMBER SP R SP NUMBER CRLF
- {
- reply(202, "ALLO command ignored.");
- }
- | RETR check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- retrieve((char *) 0, $4);
- if ($4 != NULL)
- free($4);
- }
- | STOR check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- do_store($4, "w", 0);
- if ($4 != NULL)
- free($4);
- }
- | APPE check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- do_store($4, "a", 0);
- if ($4 != NULL)
- free($4);
- }
- | NLST check_login CRLF
- {
- if ($2)
- send_file_list(".");
- }
- | NLST check_login SP STRING CRLF
- {
- if ($2 && $4 != NULL)
- send_file_list($4);
- if ($4 != NULL)
- free($4);
- }
- | LIST check_login CRLF
- {
-#ifdef HAVE_LS_A
- char *cmd = "/bin/ls -lA";
-#else
- char *cmd = "/bin/ls -la";
-#endif
- if ($2)
- retrieve(cmd, "");
-
- }
- | LIST check_login SP pathname CRLF
- {
-#ifdef HAVE_LS_A
- char *cmd = "/bin/ls -lA %s";
-#else
- char *cmd = "/bin/ls -la %s";
-#endif
- if ($2 && $4 != NULL)
- retrieve(cmd, $4);
- if ($4 != NULL)
- free($4);
- }
- | STAT check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- statfilecmd($4);
- if ($4 != NULL)
- free($4);
- }
- | STAT CRLF
- {
- if(oobflag){
- if (file_size != (off_t) -1)
- reply(213, "Status: %ld of %ld bytes transferred",
- byte_count, file_size);
- else
- reply(213, "Status: %ld bytes transferred", byte_count);
- }else
- statcmd();
- }
- | DELE check_login_no_guest SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- do_delete($4);
- if ($4 != NULL)
- free($4);
- }
- | RNTO check_login_no_guest SP pathname CRLF
- {
- if($2){
- if (fromname) {
- renamecmd(fromname, $4);
- free(fromname);
- fromname = (char *) 0;
- } else {
- reply(503, "Bad sequence of commands.");
- }
- }
- if ($4 != NULL)
- free($4);
- }
- | ABOR CRLF
- {
- if(oobflag){
- reply(426, "Transfer aborted. Data connection closed.");
- reply(226, "Abort successful");
- oobflag = 0;
- longjmp(urgcatch, 1);
- }else
- reply(225, "ABOR command successful.");
- }
- | CWD check_login CRLF
- {
- if ($2)
- cwd(pw->pw_dir);
- }
- | CWD check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- cwd($4);
- if ($4 != NULL)
- free($4);
- }
- | HELP CRLF
- {
- help(cmdtab, (char *) 0);
- }
- | HELP SP STRING CRLF
- {
- char *cp = $3;
-
- if (strncasecmp(cp, "SITE", 4) == 0) {
- cp = $3 + 4;
- if (*cp == ' ')
- cp++;
- if (*cp)
- help(sitetab, cp);
- else
- help(sitetab, (char *) 0);
- } else
- help(cmdtab, $3);
- }
- | NOOP CRLF
- {
- reply(200, "NOOP command successful.");
- }
- | MKD check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- makedir($4);
- if ($4 != NULL)
- free($4);
- }
- | RMD check_login_no_guest SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- removedir($4);
- if ($4 != NULL)
- free($4);
- }
- | PWD check_login CRLF
- {
- if ($2)
- pwd();
- }
- | CDUP check_login CRLF
- {
- if ($2)
- cwd("..");
- }
- | SITE SP HELP CRLF
- {
- help(sitetab, (char *) 0);
- }
- | SITE SP HELP SP STRING CRLF
- {
- help(sitetab, $5);
- }
- | SITE SP UMASK check_login CRLF
- {
- int oldmask;
-
- if ($4) {
- oldmask = umask(0);
- umask(oldmask);
- reply(200, "Current UMASK is %03o", oldmask);
- }
- }
- | SITE SP UMASK check_login_no_guest SP octal_number CRLF
- {
- int oldmask;
-
- if ($4) {
- if (($6 == -1) || ($6 > 0777)) {
- reply(501, "Bad UMASK value");
- } else {
- oldmask = umask($6);
- reply(200,
- "UMASK set to %03o (was %03o)",
- $6, oldmask);
- }
- }
- }
- | SITE SP CHMOD check_login_no_guest SP octal_number SP pathname CRLF
- {
- if ($4 && $8 != NULL) {
- if ($6 > 0777)
- reply(501,
- "CHMOD: Mode value must be between 0 and 0777");
- else if (chmod($8, $6) < 0)
- perror_reply(550, $8);
- else
- reply(200, "CHMOD command successful.");
- }
- if ($8 != NULL)
- free($8);
- }
- | SITE SP IDLE CRLF
- {
- reply(200,
- "Current IDLE time limit is %d seconds; max %d",
- ftpd_timeout, maxtimeout);
- }
- | SITE SP IDLE SP NUMBER CRLF
- {
- if ($5 < 30 || $5 > maxtimeout) {
- reply(501,
- "Maximum IDLE time must be between 30 and %d seconds",
- maxtimeout);
- } else {
- ftpd_timeout = $5;
- alarm((unsigned) ftpd_timeout);
- reply(200,
- "Maximum IDLE time set to %d seconds",
- ftpd_timeout);
- }
- }
-
- | SITE SP KAUTH check_login SP STRING CRLF
- {
- char *p;
-
- if(guest)
- reply(500, "Can't be done as guest.");
- else{
- if($4 && $6 != NULL){
- p = strpbrk($6, " \t");
- if(p){
- *p++ = 0;
- kauth($6, p + strspn(p, " \t"));
- }else
- kauth($6, NULL);
- }
- }
- if($6 != NULL)
- free($6);
- }
- | SITE SP KLIST check_login CRLF
- {
- if($4)
- klist();
- }
- | SITE SP FIND check_login SP STRING CRLF
- {
- if($4 && $6 != NULL)
- find($6);
- if($6 != NULL)
- free($6);
- }
- | SITE SP URL CRLF
- {
- reply(200, "http://www.pdc.kth.se/kth-krb/");
- }
- | STOU check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- do_store($4, "w", 1);
- if ($4 != NULL)
- free($4);
- }
- | SYST CRLF
- {
-#if defined(unix) || defined(__unix__) || defined(__unix) || defined(_AIX) || defined(_CRAY)
- reply(215, "UNIX Type: L%d", NBBY);
-#else
- reply(215, "UNKNOWN Type: L%d", NBBY);
-#endif
- }
-
- /*
- * SIZE is not in RFC959, but Postel has blessed it and
- * it will be in the updated RFC.
- *
- * Return size of file in a format suitable for
- * using with RESTART (we just count bytes).
- */
- | SIZE check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL)
- sizecmd($4);
- if ($4 != NULL)
- free($4);
- }
-
- /*
- * MDTM is not in RFC959, but Postel has blessed it and
- * it will be in the updated RFC.
- *
- * Return modification time of file as an ISO 3307
- * style time. E.g. YYYYMMDDHHMMSS or YYYYMMDDHHMMSS.xxx
- * where xxx is the fractional second (of any precision,
- * not necessarily 3 digits)
- */
- | MDTM check_login SP pathname CRLF
- {
- if ($2 && $4 != NULL) {
- struct stat stbuf;
- if (stat($4, &stbuf) < 0)
- reply(550, "%s: %s",
- $4, strerror(errno));
- else if (!S_ISREG(stbuf.st_mode)) {
- reply(550, "%s: not a plain file.", $4);
- } else {
- struct tm *t;
- t = gmtime(&stbuf.st_mtime);
- reply(213,
- "%04d%02d%02d%02d%02d%02d",
- t->tm_year + 1900,
- t->tm_mon + 1,
- t->tm_mday,
- t->tm_hour,
- t->tm_min,
- t->tm_sec);
- }
- }
- if ($4 != NULL)
- free($4);
- }
- | QUIT CRLF
- {
- reply(221, "Goodbye.");
- dologout(0);
- }
- | error CRLF
- {
- yyerrok;
- }
- ;
-rcmd
- : RNFR check_login_no_guest SP pathname CRLF
- {
- restart_point = (off_t) 0;
- if ($2 && $4) {
- fromname = renamefrom($4);
- if (fromname == (char *) 0 && $4) {
- free($4);
- }
- }
- }
- | REST SP byte_size CRLF
- {
- fromname = (char *) 0;
- restart_point = $3; /* XXX $3 is only "int" */
- reply(350, "Restarting at %ld. %s",
- (long)restart_point,
- "Send STORE or RETRIEVE to initiate transfer.");
- }
- | ENC SP STRING CRLF
- {
- enc($3);
- free($3);
- }
- ;
-
-username
- : STRING
- ;
-
-password
- : /* empty */
- {
- $$ = (char *)calloc(1, sizeof(char));
- }
- | STRING
- ;
-
-byte_size
- : NUMBER
- ;
-
-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 =
- htonl(($1 << 24) | ($3 << 16) | ($5 << 8) | $7);
- }
- ;
-
-form_code
- : N
- {
- $$ = FORM_N;
- }
- | T
- {
- $$ = FORM_T;
- }
- | C
- {
- $$ = FORM_C;
- }
- ;
-
-type_code
- : A
- {
- cmd_type = TYPE_A;
- cmd_form = FORM_N;
- }
- | A SP form_code
- {
- cmd_type = TYPE_A;
- cmd_form = $3;
- }
- | E
- {
- cmd_type = TYPE_E;
- cmd_form = FORM_N;
- }
- | E SP form_code
- {
- cmd_type = TYPE_E;
- cmd_form = $3;
- }
- | I
- {
- cmd_type = TYPE_I;
- }
- | L
- {
- cmd_type = TYPE_L;
- cmd_bytesz = NBBY;
- }
- | L SP byte_size
- {
- cmd_type = TYPE_L;
- cmd_bytesz = $3;
- }
- /* this is for a bug in the BBN ftp */
- | L byte_size
- {
- cmd_type = TYPE_L;
- cmd_bytesz = $2;
- }
- ;
-
-struct_code
- : F
- {
- $$ = STRU_F;
- }
- | R
- {
- $$ = STRU_R;
- }
- | P
- {
- $$ = STRU_P;
- }
- ;
-
-mode_code
- : S
- {
- $$ = MODE_S;
- }
- | B
- {
- $$ = MODE_B;
- }
- | C
- {
- $$ = MODE_C;
- }
- ;
-
-pathname
- : pathstring
- {
- /*
- * Problem: this production is used for all pathname
- * processing, but only gives a 550 error reply.
- * This is a valid reply in some cases but not in others.
- */
- if (logged_in && $1 && *$1 == '~') {
- glob_t gl;
- int flags =
- GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
-
- memset(&gl, 0, sizeof(gl));
- if (glob($1, flags, NULL, &gl) ||
- gl.gl_pathc == 0) {
- reply(550, "not found");
- $$ = NULL;
- } else {
- $$ = strdup(gl.gl_pathv[0]);
- }
- globfree(&gl);
- free($1);
- } else
- $$ = $1;
- }
- ;
-
-pathstring
- : STRING
- ;
-
-octal_number
- : NUMBER
- {
- int ret, dec, multby, digit;
-
- /*
- * Convert a number that was read as decimal number
- * to what it would be if it had been read as octal.
- */
- dec = $1;
- multby = 1;
- ret = 0;
- while (dec) {
- digit = dec%10;
- if (digit > 7) {
- ret = -1;
- break;
- }
- ret += digit * multby;
- multby *= 8;
- dec /= 10;
- }
- $$ = ret;
- }
- ;
-
-
-check_login_no_guest : check_login
- {
- $$ = $1 && !guest;
- if($1 && !$$)
- reply(550, "Permission denied");
- }
- ;
-
-check_login
- : /* empty */
- {
- if(auth_complete && prot_level == prot_clear){
- reply(533, "Command protection level denied for paranoid reasons.");
- $$ = 0;
- }else
- if (logged_in)
- $$ = 1;
- else {
- reply(530, "Please login with USER and PASS.");
- $$ = 0;
- }
- }
- ;
-
-%%
-
-extern jmp_buf errcatch;
-
-#define CMD 0 /* beginning of command */
-#define ARGS 1 /* expect miscellaneous arguments */
-#define STR1 2 /* expect SP followed by STRING */
-#define STR2 3 /* expect STRING */
-#define OSTR 4 /* optional SP then STRING */
-#define ZSTR1 5 /* SP then optional STRING */
-#define ZSTR2 6 /* optional STRING after SP */
-#define SITECMD 7 /* SITE command */
-#define NSTR 8 /* Number followed by a string */
-
-struct tab cmdtab[] = { /* In order defined in RFC 765 */
- { "USER", USER, STR1, 1, "<sp> username" },
- { "PASS", PASS, ZSTR1, 1, "<sp> password" },
- { "ACCT", ACCT, STR1, 0, "(specify account)" },
- { "SMNT", SMNT, ARGS, 0, "(structure mount)" },
- { "REIN", REIN, ARGS, 0, "(reinitialize server state)" },
- { "QUIT", QUIT, ARGS, 1, "(terminate service)", },
- { "PORT", PORT, ARGS, 1, "<sp> b0, b1, b2, b3, b4" },
- { "PASV", PASV, ARGS, 1, "(set server in passive mode)" },
- { "TYPE", TYPE, ARGS, 1, "<sp> [ A | E | I | L ]" },
- { "STRU", STRU, ARGS, 1, "(specify file structure)" },
- { "MODE", MODE, ARGS, 1, "(specify transfer mode)" },
- { "RETR", RETR, STR1, 1, "<sp> file-name" },
- { "STOR", STOR, STR1, 1, "<sp> file-name" },
- { "APPE", APPE, STR1, 1, "<sp> file-name" },
- { "MLFL", MLFL, OSTR, 0, "(mail file)" },
- { "MAIL", MAIL, OSTR, 0, "(mail to user)" },
- { "MSND", MSND, OSTR, 0, "(mail send to terminal)" },
- { "MSOM", MSOM, OSTR, 0, "(mail send to terminal or mailbox)" },
- { "MSAM", MSAM, OSTR, 0, "(mail send to terminal and mailbox)" },
- { "MRSQ", MRSQ, OSTR, 0, "(mail recipient scheme question)" },
- { "MRCP", MRCP, STR1, 0, "(mail recipient)" },
- { "ALLO", ALLO, ARGS, 1, "allocate storage (vacuously)" },
- { "REST", REST, ARGS, 1, "<sp> offset (restart command)" },
- { "RNFR", RNFR, STR1, 1, "<sp> file-name" },
- { "RNTO", RNTO, STR1, 1, "<sp> file-name" },
- { "ABOR", ABOR, ARGS, 1, "(abort operation)" },
- { "DELE", DELE, STR1, 1, "<sp> file-name" },
- { "CWD", CWD, OSTR, 1, "[ <sp> directory-name ]" },
- { "XCWD", CWD, OSTR, 1, "[ <sp> directory-name ]" },
- { "LIST", LIST, OSTR, 1, "[ <sp> path-name ]" },
- { "NLST", NLST, OSTR, 1, "[ <sp> path-name ]" },
- { "SITE", SITE, SITECMD, 1, "site-cmd [ <sp> arguments ]" },
- { "SYST", SYST, ARGS, 1, "(get type of operating system)" },
- { "STAT", STAT, OSTR, 1, "[ <sp> path-name ]" },
- { "HELP", HELP, OSTR, 1, "[ <sp> <string> ]" },
- { "NOOP", NOOP, ARGS, 1, "" },
- { "MKD", MKD, STR1, 1, "<sp> path-name" },
- { "XMKD", MKD, STR1, 1, "<sp> path-name" },
- { "RMD", RMD, STR1, 1, "<sp> path-name" },
- { "XRMD", RMD, STR1, 1, "<sp> path-name" },
- { "PWD", PWD, ARGS, 1, "(return current directory)" },
- { "XPWD", PWD, ARGS, 1, "(return current directory)" },
- { "CDUP", CDUP, ARGS, 1, "(change to parent directory)" },
- { "XCUP", CDUP, ARGS, 1, "(change to parent directory)" },
- { "STOU", STOU, STR1, 1, "<sp> file-name" },
- { "SIZE", SIZE, OSTR, 1, "<sp> path-name" },
- { "MDTM", MDTM, OSTR, 1, "<sp> path-name" },
-
- /* extensions from draft-ietf-cat-ftpsec-08 */
- { "AUTH", AUTH, STR1, 1, "<sp> auth-type" },
- { "ADAT", ADAT, STR1, 1, "<sp> auth-data" },
- { "PBSZ", PBSZ, ARGS, 1, "<sp> buffer-size" },
- { "PROT", PROT, STR1, 1, "<sp> prot-level" },
- { "CCC", CCC, ARGS, 1, "" },
- { "MIC", MIC, STR1, 1, "<sp> integrity command" },
- { "CONF", CONF, STR1, 1, "<sp> confidentiality command" },
- { "ENC", ENC, STR1, 1, "<sp> privacy command" },
-
- { NULL, 0, 0, 0, 0 }
-};
-
-struct tab sitetab[] = {
- { "UMASK", UMASK, ARGS, 1, "[ <sp> umask ]" },
- { "IDLE", IDLE, ARGS, 1, "[ <sp> maximum-idle-time ]" },
- { "CHMOD", CHMOD, NSTR, 1, "<sp> mode <sp> file-name" },
- { "HELP", HELP, OSTR, 1, "[ <sp> <string> ]" },
-
- { "KAUTH", KAUTH, STR1, 1, "<sp> principal [ <sp> ticket ]" },
- { "KLIST", KLIST, ARGS, 1, "(show ticket file)" },
-
- { "FIND", FIND, STR1, 1, "<sp> globexpr" },
-
- { "URL", URL, ARGS, 1, "?" },
-
- { NULL, 0, 0, 0, 0 }
-};
-
-static struct tab *
-lookup(struct tab *p, char *cmd)
-{
-
- for (; p->name != NULL; p++)
- if (strcmp(cmd, p->name) == 0)
- return (p);
- return (0);
-}
-
-#include <arpa/telnet.h>
-
-/*
- * getline - a hacked up version of fgets to ignore TELNET escape codes.
- */
-char *
-getline(char *s, int n)
-{
- int c;
- char *cs;
-
- cs = s;
-/* tmpline may contain saved command from urgent mode interruption */
- if(ftp_command){
- strncpy(s, ftp_command, n);
- if (debug)
- syslog(LOG_DEBUG, "command: %s", s);
-#ifdef XXX
- fprintf(stderr, "%s\n", s);
-#endif
- return s;
- }
- prot_level = prot_clear;
- while ((c = getc(stdin)) != EOF) {
- c &= 0377;
- if (c == IAC) {
- if ((c = getc(stdin)) != EOF) {
- c &= 0377;
- switch (c) {
- case WILL:
- case WONT:
- c = getc(stdin);
- printf("%c%c%c", IAC, DONT, 0377&c);
- fflush(stdout);
- continue;
- case DO:
- case DONT:
- c = getc(stdin);
- printf("%c%c%c", IAC, WONT, 0377&c);
- fflush(stdout);
- continue;
- case IAC:
- break;
- default:
- continue; /* ignore command */
- }
- }
- }
- *cs++ = c;
- if (--n <= 0 || c == '\n')
- break;
- }
- if (c == EOF && cs == s)
- return (NULL);
- *cs++ = '\0';
- if (debug) {
- if (!guest && strncasecmp("pass ", s, 5) == 0) {
- /* Don't syslog passwords */
- syslog(LOG_DEBUG, "command: %.5s ???", s);
- } else {
- char *cp;
- int len;
-
- /* Don't syslog trailing CR-LF */
- len = strlen(s);
- cp = s + len - 1;
- while (cp >= s && (*cp == '\n' || *cp == '\r')) {
- --cp;
- --len;
- }
- syslog(LOG_DEBUG, "command: %.*s", len, s);
- }
- }
-#ifdef XXX
- fprintf(stderr, "%s\n", s);
-#endif
- return (s);
-}
-
-static RETSIGTYPE
-toolong(int signo)
-{
-
- reply(421,
- "Timeout (%d seconds): closing control connection.",
- ftpd_timeout);
- if (logging)
- syslog(LOG_INFO, "User %s timed out after %d seconds",
- (pw ? pw -> pw_name : "unknown"), ftpd_timeout);
- dologout(1);
- SIGRETURN(0);
-}
-
-static int
-yylex(void)
-{
- static int cpos, state;
- char *cp, *cp2;
- struct tab *p;
- int n;
- char c;
-
- for (;;) {
- switch (state) {
-
- case CMD:
- signal(SIGALRM, toolong);
- alarm((unsigned) ftpd_timeout);
- if (getline(cbuf, sizeof(cbuf)-1) == NULL) {
- reply(221, "You could at least say goodbye.");
- dologout(0);
- }
- alarm(0);
-#ifdef HASSETPROCTITLE
- if (strncasecmp(cbuf, "PASS", 4) != NULL)
- setproctitle("%s: %s", proctitle, cbuf);
-#endif /* HASSETPROCTITLE */
- if ((cp = strchr(cbuf, '\r'))) {
- *cp++ = '\n';
- *cp = '\0';
- }
- if ((cp = strpbrk(cbuf, " \n")))
- cpos = cp - cbuf;
- if (cpos == 0)
- cpos = 4;
- c = cbuf[cpos];
- cbuf[cpos] = '\0';
- strupr(cbuf);
- p = lookup(cmdtab, cbuf);
- cbuf[cpos] = c;
- if (p != 0) {
- if (p->implemented == 0) {
- nack(p->name);
- longjmp(errcatch,0);
- /* NOTREACHED */
- }
- state = p->state;
- yylval.s = p->name;
- return (p->token);
- }
- break;
-
- case SITECMD:
- if (cbuf[cpos] == ' ') {
- cpos++;
- return (SP);
- }
- cp = &cbuf[cpos];
- if ((cp2 = strpbrk(cp, " \n")))
- cpos = cp2 - cbuf;
- c = cbuf[cpos];
- cbuf[cpos] = '\0';
- strupr(cp);
- p = lookup(sitetab, cp);
- cbuf[cpos] = c;
- if (p != 0) {
- if (p->implemented == 0) {
- state = CMD;
- nack(p->name);
- longjmp(errcatch,0);
- /* NOTREACHED */
- }
- state = p->state;
- yylval.s = p->name;
- return (p->token);
- }
- state = CMD;
- break;
-
- case OSTR:
- if (cbuf[cpos] == '\n') {
- state = CMD;
- return (CRLF);
- }
- /* FALLTHROUGH */
-
- case STR1:
- case ZSTR1:
- dostr1:
- if (cbuf[cpos] == ' ') {
- cpos++;
- state = state == OSTR ? STR2 : ++state;
- return (SP);
- }
- break;
-
- case ZSTR2:
- if (cbuf[cpos] == '\n') {
- state = CMD;
- return (CRLF);
- }
- /* FALLTHROUGH */
-
- case STR2:
- cp = &cbuf[cpos];
- n = strlen(cp);
- cpos += n - 1;
- /*
- * Make sure the string is nonempty and \n terminated.
- */
- if (n > 1 && cbuf[cpos] == '\n') {
- cbuf[cpos] = '\0';
- yylval.s = copy(cp);
- cbuf[cpos] = '\n';
- state = ARGS;
- return (STRING);
- }
- break;
-
- case NSTR:
- if (cbuf[cpos] == ' ') {
- cpos++;
- return (SP);
- }
- if (isdigit(cbuf[cpos])) {
- cp = &cbuf[cpos];
- while (isdigit(cbuf[++cpos]))
- ;
- c = cbuf[cpos];
- cbuf[cpos] = '\0';
- yylval.i = atoi(cp);
- cbuf[cpos] = c;
- state = STR1;
- return (NUMBER);
- }
- state = STR1;
- goto dostr1;
-
- case ARGS:
- if (isdigit(cbuf[cpos])) {
- cp = &cbuf[cpos];
- while (isdigit(cbuf[++cpos]))
- ;
- c = cbuf[cpos];
- cbuf[cpos] = '\0';
- yylval.i = atoi(cp);
- cbuf[cpos] = c;
- return (NUMBER);
- }
- switch (cbuf[cpos++]) {
-
- case '\n':
- state = CMD;
- return (CRLF);
-
- case ' ':
- return (SP);
-
- case ',':
- return (COMMA);
-
- case 'A':
- case 'a':
- return (A);
-
- case 'B':
- case 'b':
- return (B);
-
- case 'C':
- case 'c':
- return (C);
-
- case 'E':
- case 'e':
- return (E);
-
- case 'F':
- case 'f':
- return (F);
-
- case 'I':
- case 'i':
- return (I);
-
- case 'L':
- case 'l':
- return (L);
-
- case 'N':
- case 'n':
- return (N);
-
- case 'P':
- case 'p':
- return (P);
-
- case 'R':
- case 'r':
- return (R);
-
- case 'S':
- case 's':
- return (S);
-
- case 'T':
- case 't':
- return (T);
-
- }
- break;
-
- default:
- fatal("Unknown state in scanner.");
- }
- yyerror((char *) 0);
- state = CMD;
- longjmp(errcatch,0);
- }
-}
-
-static char *
-copy(char *s)
-{
- char *p;
-
- p = strdup(s);
- if (p == NULL)
- fatal("Ran out of memory.");
- return p;
-}
-
-static void
-help(struct tab *ctab, char *s)
-{
- struct tab *c;
- int width, NCMDS;
- char *type;
- char buf[1024];
-
- if (ctab == sitetab)
- type = "SITE ";
- else
- type = "";
- width = 0, NCMDS = 0;
- for (c = ctab; c->name != NULL; c++) {
- int len = strlen(c->name);
-
- if (len > width)
- width = len;
- NCMDS++;
- }
- width = (width + 8) &~ 7;
- if (s == 0) {
- int i, j, w;
- int columns, lines;
-
- lreply(214, "The following %scommands are recognized %s.",
- type, "(* =>'s unimplemented)");
- columns = 76 / width;
- if (columns == 0)
- columns = 1;
- lines = (NCMDS + columns - 1) / columns;
- for (i = 0; i < lines; i++) {
- strcpy (buf, " ");
- for (j = 0; j < columns; j++) {
- c = ctab + j * lines + i;
- snprintf (buf + strlen(buf), sizeof(buf) - strlen(buf),
- "%s%c", c->name, c->implemented ? ' ' : '*');
- if (c + lines >= &ctab[NCMDS])
- break;
- w = strlen(c->name) + 1;
- while (w < width) {
- strcat(buf, " ");
- w++;
- }
- }
- lreply(214, buf);
- }
- reply(214, "Direct comments to kth-krb-bugs@pdc.kth.se");
- return;
- }
- strupr(s);
- c = lookup(ctab, s);
- if (c == (struct tab *)0) {
- reply(502, "Unknown command %s.", s);
- return;
- }
- if (c->implemented)
- reply(214, "Syntax: %s%s %s", type, c->name, c->help);
- else
- reply(214, "%s%-*s\t%s; unimplemented.", type, width,
- c->name, c->help);
-}
-
-static void
-sizecmd(char *filename)
-{
- switch (type) {
- case TYPE_L:
- case TYPE_I: {
- struct stat stbuf;
- if (stat(filename, &stbuf) < 0 || !S_ISREG(stbuf.st_mode))
- reply(550, "%s: not a plain file.", filename);
- else
- reply(213, "%lu", (unsigned long)stbuf.st_size);
- break; }
- case TYPE_A: {
- FILE *fin;
- int c;
- off_t count;
- struct stat stbuf;
- fin = fopen(filename, "r");
- if (fin == NULL) {
- perror_reply(550, filename);
- return;
- }
- if (fstat(fileno(fin), &stbuf) < 0 || !S_ISREG(stbuf.st_mode)) {
- reply(550, "%s: not a plain file.", filename);
- fclose(fin);
- return;
- }
-
- count = 0;
- while((c=getc(fin)) != EOF) {
- if (c == '\n') /* will get expanded to \r\n */
- count++;
- count++;
- }
- fclose(fin);
-
- reply(213, "%ld", count);
- break; }
- default:
- reply(504, "SIZE not implemented for Type %c.", "?AEIL"[type]);
- }
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c b/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c
deleted file mode 100644
index e0844d560a1d..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/ftpd.c
+++ /dev/null
@@ -1,2089 +0,0 @@
-/*
- * Copyright (c) 1985, 1988, 1990, 1992, 1993, 1994
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id$");
-#endif
-
-/*
- * FTP server.
- */
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#define FTP_NAMES
-#include <arpa/ftp.h>
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_TELNET_H
-#include <arpa/telnet.h>
-#endif
-
-#include <ctype.h>
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-#include <errno.h>
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <glob.h>
-#include <limits.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-#include <time.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif
-
-#include <err.h>
-
-#include "pathnames.h"
-#include "extern.h"
-#include "common.h"
-
-#include "auth.h"
-
-#include <krb.h>
-
-#include <kafs.h>
-#include "roken.h"
-
-#ifdef OTP
-#include <otp.h>
-#endif
-
-#ifdef SOCKS
-#include <socks.h>
-extern int LIBPREFIX(fclose) __P((FILE *));
-#endif
-
-void yyparse();
-
-#ifndef LOG_FTP
-#define LOG_FTP LOG_DAEMON
-#endif
-
-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;
-
-int data;
-jmp_buf errcatch, urgcatch;
-int oobflag;
-int logged_in;
-struct passwd *pw;
-int debug;
-int ftpd_timeout = 900; /* timeout after 15 minutes of inactivity */
-int maxtimeout = 7200;/* don't allow idle time to be set beyond 2 hours */
-int logging;
-int guest;
-int dochroot;
-int type;
-int form;
-int stru; /* avoid C keyword */
-int mode;
-int usedefault = 1; /* for data transfers */
-int pdata = -1; /* for passive mode */
-int transflag;
-off_t file_size;
-off_t byte_count;
-#if !defined(CMASK) || CMASK == 0
-#undef CMASK
-#define CMASK 027
-#endif
-int defumask = CMASK; /* default umask value */
-int guest_umask = 0777; /* Paranoia for anonymous users */
-char tmpline[10240];
-char hostname[MaxHostNameLen];
-char remotehost[MaxHostNameLen];
-static char ttyline[20];
-
-#define AUTH_PLAIN (1 << 0) /* allow sending passwords */
-#define AUTH_OTP (1 << 1) /* passwords are one-time */
-#define AUTH_FTP (1 << 2) /* allow anonymous login */
-
-static int auth_level = 0; /* Only allow kerberos login by default */
-
-/*
- * Timeout intervals for retrying connections
- * to hosts that don't accept PORT cmds. This
- * is a kludge, but given the problems with TCP...
- */
-#define SWAITMAX 90 /* wait at most 90 seconds */
-#define SWAITINT 5 /* interval between retries */
-
-int swaitmax = SWAITMAX;
-int swaitint = SWAITINT;
-
-#ifdef HAVE_SETPROCTITLE
-char proctitle[BUFSIZ]; /* initial part of title */
-#endif /* HAVE_SETPROCTITLE */
-
-#define LOGCMD(cmd, file) \
- if (logging > 1) \
- syslog(LOG_INFO,"%s %s%s", cmd, \
- *(file) == '/' ? "" : curdir(), file);
-#define LOGCMD2(cmd, file1, file2) \
- if (logging > 1) \
- syslog(LOG_INFO,"%s %s%s %s%s", cmd, \
- *(file1) == '/' ? "" : curdir(), file1, \
- *(file2) == '/' ? "" : curdir(), file2);
-#define LOGBYTES(cmd, file, cnt) \
- if (logging > 1) { \
- if (cnt == (off_t)-1) \
- syslog(LOG_INFO,"%s %s%s", cmd, \
- *(file) == '/' ? "" : curdir(), file); \
- else \
- syslog(LOG_INFO, "%s %s%s = %ld bytes", \
- cmd, (*(file) == '/') ? "" : curdir(), file, (long)cnt); \
- }
-
-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 void end_login (void);
-static FILE *getdatasock (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)
-{
- static char path[MaxPathLen+1+1]; /* path + '/' + '\0' */
-
- if (getcwd(path, sizeof(path)-2) == NULL)
- return ("");
- if (path[1] != '\0') /* special case for root dir. */
- strcat(path, "/");
- /* For guest account, skip / since it's chrooted */
- return (guest ? path+1 : path);
-}
-
-#ifndef LINE_MAX
-#define LINE_MAX 1024
-#endif
-
-static int
-parse_auth_level(char *str)
-{
- char *p;
- int ret = 0;
- char *foo = NULL;
-
- for(p = strtok_r(str, ",", &foo);
- p;
- p = strtok_r(NULL, ",", &foo)) {
- if(strcmp(p, "user") == 0)
- ;
-#ifdef OTP
- else if(strcmp(p, "otp") == 0)
- ret |= AUTH_PLAIN|AUTH_OTP;
-#endif
- else if(strcmp(p, "ftp") == 0 ||
- strcmp(p, "safe") == 0)
- ret |= AUTH_FTP;
- else if(strcmp(p, "plain") == 0)
- ret |= AUTH_PLAIN;
- else if(strcmp(p, "none") == 0)
- ret |= AUTH_PLAIN|AUTH_FTP;
- else
- warnx("bad value for -a: `%s'", p);
- }
- return ret;
-}
-
-/*
- * Print usage and die.
- */
-
-static void
-usage (void)
-{
- 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);
-}
-
-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;
- char tkfile[1024];
-
- set_progname (argv[0]);
-
- /* detach from any tickets and tokens */
-
- snprintf(tkfile, sizeof(tkfile),
- "/tmp/ftp_%u", (unsigned)getpid());
- krb_set_tkt_string(tkfile);
- if(k_hasafs())
- k_setpag();
-
- 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;
- }
-
- case 'v':
- debug = 1;
- break;
-
- default:
- usage ();
- }
- }
-
- if(not_inetd)
- 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);
- }
-#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");
-#endif
- data_source.sin_port = htons(ntohs(ctrl_addr.sin_port) - 1);
- debug = 0;
-
- /* 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);
-#ifdef SIGURG
- if (signal(SIGURG, myoob) == SIG_ERR)
- syslog(LOG_ERR, "signal: %m");
-#endif
-
- auth_init();
-
- /* 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");
-#endif
-
-#ifdef F_SETOWN
- 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 */
- }
- k_gethostname(hostname, sizeof(hostname));
- reply(220, "%s FTP server (%s+%s) ready.", hostname,
- version, krb4_version);
- setjmp(errcatch);
- for (;;)
- yyparse();
- /* NOTREACHED */
-}
-
-static RETSIGTYPE
-lostconn(int signo)
-{
-
- if (debug)
- syslog(LOG_DEBUG, "lost connection");
- dologout(-1);
-}
-
-/*
- * Helper function for sgetpwnam().
- */
-static char *
-sgetsave(char *s)
-{
- char *new = strdup(s);
-
- if (new == NULL) {
- perror_reply(421, "Local resource failure: malloc");
- dologout(1);
- /* NOTREACHED */
- }
- return new;
-}
-
-/*
- * Save the result of a getpwnam. Used for USER command, since
- * the data returned must not be clobbered by any other command
- * (e.g., globbing).
- */
-static struct passwd *
-sgetpwnam(char *name)
-{
- static struct passwd save;
- struct passwd *p;
-
- if ((p = k_getpwnam(name)) == NULL)
- return (p);
- if (save.pw_name) {
- free(save.pw_name);
- free(save.pw_passwd);
- free(save.pw_gecos);
- free(save.pw_dir);
- free(save.pw_shell);
- }
- save = *p;
- save.pw_name = sgetsave(p->pw_name);
- save.pw_passwd = sgetsave(p->pw_passwd);
- save.pw_gecos = sgetsave(p->pw_gecos);
- save.pw_dir = sgetsave(p->pw_dir);
- save.pw_shell = sgetsave(p->pw_shell);
- return (&save);
-}
-
-static int login_attempts; /* number of failed login attempts */
-static int askpasswd; /* had user command, ask for passwd */
-static char curname[10]; /* current USER name */
-#ifdef OTP
-OtpContext otp_ctx;
-#endif
-
-/*
- * USER command.
- * Sets global passwd pointer pw if named account exists and is acceptable;
- * sets askpasswd if a PASS command is expected. If logged in previously,
- * need to reset state. If name is "ftp" or "anonymous", the name is not in
- * _PATH_FTPUSERS, and ftp account exists, set guest and pw, then just return.
- * If account doesn't exist, ask for passwd anyway. Otherwise, check user
- * requesting login privileges. Disallow anyone who does not have a standard
- * shell as returned by getusershell(). Disallow anyone mentioned in the file
- * _PATH_FTPUSERS to allow people such as root and uucp to be avoided.
- */
-void
-user(char *name)
-{
- char *cp, *shell;
-
- if(auth_level == 0 && !auth_complete){
- reply(530, "No login allowed without authorization.");
- return;
- }
-
- if (logged_in) {
- if (guest) {
- reply(530, "Can't change user from guest login.");
- return;
- } else if (dochroot) {
- reply(530, "Can't change user from chroot user.");
- return;
- }
- end_login();
- }
-
- guest = 0;
- if (strcmp(name, "ftp") == 0 || strcmp(name, "anonymous") == 0) {
- if ((auth_level & AUTH_FTP) == 0 ||
- checkaccess("ftp") ||
- checkaccess("anonymous"))
- reply(530, "User %s access denied.", name);
- else if ((pw = sgetpwnam("ftp")) != NULL) {
- guest = 1;
- defumask = guest_umask; /* paranoia for incoming */
- askpasswd = 1;
- reply(331, "Guest login ok, type your name as password.");
- } else
- reply(530, "User %s unknown.", name);
- if (!askpasswd && logging)
- syslog(LOG_NOTICE,
- "ANONYMOUS FTP LOGIN REFUSED FROM %s(%s)",
- remotehost, inet_ntoa(his_addr.sin_addr));
- return;
- }
- if((auth_level & AUTH_PLAIN) == 0 && !auth_complete){
- reply(530, "Only authorized and anonymous login allowed.");
- return;
- }
- if ((pw = sgetpwnam(name))) {
- if ((shell = pw->pw_shell) == NULL || *shell == 0)
- shell = _PATH_BSHELL;
- while ((cp = getusershell()) != NULL)
- if (strcmp(cp, shell) == 0)
- break;
- endusershell();
-
- if (cp == NULL || checkaccess(name)) {
- reply(530, "User %s access denied.", name);
- if (logging)
- syslog(LOG_NOTICE,
- "FTP LOGIN REFUSED FROM %s(%s), %s",
- remotehost,
- inet_ntoa(his_addr.sin_addr),
- name);
- pw = (struct passwd *) NULL;
- return;
- }
- }
- if (logging)
- strncpy(curname, name, sizeof(curname)-1);
- if(auth_ok())
- ct->userok(name);
-#ifdef OTP
- else {
- char ss[256];
-
- if (otp_challenge(&otp_ctx, name, ss, sizeof(ss)) == 0) {
- reply(331, "Password %s for %s required.",
- ss, name);
- askpasswd = 1;
- } else if ((auth_level & AUTH_OTP) == 0) {
- reply(331, "Password required for %s.", name);
- askpasswd = 1;
- } else {
- char *s;
-
- if (s = otp_error (&otp_ctx))
- lreply(530, "OTP: %s", s);
- reply(530,
- "Only authorized, anonymous and OTP "
- "login allowed.");
- }
-
- }
-#endif
- /*
- * Delay before reading passwd after first failed
- * attempt to slow down passwd-guessing programs.
- */
- if (login_attempts)
- sleep(login_attempts);
-}
-
-/*
- * Check if a user is in the file "fname"
- */
-static int
-checkuser(char *fname, char *name)
-{
- FILE *fd;
- int found = 0;
- char *p, line[BUFSIZ];
-
- if ((fd = fopen(fname, "r")) != NULL) {
- while (fgets(line, sizeof(line), fd) != NULL)
- if ((p = strchr(line, '\n')) != NULL) {
- *p = '\0';
- if (line[0] == '#')
- continue;
- if (strcmp(line, name) == 0) {
- found = 1;
- break;
- }
- }
- fclose(fd);
- }
- return (found);
-}
-
-
-/*
- * Determine whether a user has access, based on information in
- * _PATH_FTPUSERS. The users are listed one per line, with `allow'
- * or `deny' after the username. If anything other than `allow', or
- * just nothing, is given after the username, `deny' is assumed.
- *
- * If the user is not found in the file, but the pseudo-user `*' is,
- * the permission is taken from that line.
- *
- * This preserves the old semantics where if a user was listed in the
- * file he was denied, otherwise he was allowed.
- *
- * Return 1 if the user is denied, or 0 if he is allowed. */
-
-static int
-match(const char *pattern, const char *string)
-{
-#ifdef HAVE_FNMATCH
- return fnmatch(pattern, string, FNM_NOESCAPE);
-#else
- return strcmp(pattern, "*") != 0 && strcmp(pattern, string) != 0;
-#endif
-}
-
-static int
-checkaccess(char *name)
-{
-#define ALLOWED 0
-#define NOT_ALLOWED 1
- FILE *fd;
- int allowed = ALLOWED;
- char *user, *perm, line[BUFSIZ];
- char *foo;
-
- fd = fopen(_PATH_FTPUSERS, "r");
-
- if(fd == NULL)
- return allowed;
-
- while (fgets(line, sizeof(line), fd) != NULL) {
- foo = NULL;
- user = strtok_r(line, " \t\n", &foo);
- if (user == NULL || user[0] == '#')
- continue;
- perm = strtok_r(NULL, " \t\n", &foo);
- if (match(user, name) == 0){
- if(perm && strcmp(perm, "allow") == 0)
- allowed = ALLOWED;
- else
- allowed = NOT_ALLOWED;
- break;
- }
- }
- fclose(fd);
- return allowed;
-}
-#undef ALLOWED
-#undef NOT_ALLOWED
-
-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);
-
- /* open wtmp before chroot */
- logwtmp(ttyline, pw->pw_name, remotehost);
- logged_in = 1;
-
- 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;
- }
- /*
- * 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);
- }
- }
- if (guest) {
- reply(code, "Guest login ok, access restrictions apply.");
-#ifdef HAVE_SETPROCTITLE
- snprintf (proctitle, sizeof(proctitle),
- "%s: anonymous/%s",
- remotehost,
- passwd);
-#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);
-#ifdef HAVE_SETPROCTITLE
- 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;
-}
-
-/*
- * Terminate login as previous user, if any, resetting state;
- * used when USER command is given or login fails.
- */
-static void
-end_login(void)
-{
-
- seteuid((uid_t)0);
- if (logged_in)
- logwtmp(ttyline, "", "");
- pw = NULL;
- logged_in = 0;
- guest = 0;
- dochroot = 0;
-}
-
-void
-pass(char *passwd)
-{
- int rval;
-
- /* some clients insists on sending a password */
- if (logged_in && askpasswd == 0){
- reply(230, "Dumpucko!");
- return;
- }
-
- if (logged_in || askpasswd == 0) {
- reply(503, "Login with USER first.");
- return;
- }
- askpasswd = 0;
- rval = 1;
- if (!guest) { /* "ftp" is only account allowed no password */
- if (pw == NULL)
- rval = 1; /* failure below */
-#ifdef OTP
- else if (otp_verify_user (&otp_ctx, passwd) == 0)
- rval = 0;
-#endif
- else if((auth_level & AUTH_OTP) == 0) {
- char realm[REALM_SZ];
- if((rval = krb_get_lrealm(realm, 1)) == KSUCCESS)
- rval = krb_verify_user(pw->pw_name, "", realm,
- passwd, 1, NULL);
- if (rval == KSUCCESS ){
- if(k_hasafs())
- k_afsklog(0, 0);
- }else
- rval = unix_verify_user(pw->pw_name, passwd);
- }
-#ifdef OTP
- else {
- char *s;
-
- if (s = otp_error(&otp_ctx))
- lreply(530, "OTP: %s", s);
- }
-#endif
- memset (passwd, 0, strlen(passwd));
-
- /*
- * If rval == 1, the user failed the authentication
- * check above. If rval == 0, either Kerberos or
- * local authentication succeeded.
- */
- if (rval) {
- reply(530, "Login incorrect.");
- if (logging)
- syslog(LOG_NOTICE,
- "FTP LOGIN FAILED FROM %s(%s), %s",
- remotehost,
- inet_ntoa(his_addr.sin_addr),
- curname);
- pw = NULL;
- if (login_attempts++ >= 5) {
- syslog(LOG_NOTICE,
- "repeated login failures from %s(%s)",
- remotehost,
- inet_ntoa(his_addr.sin_addr));
- exit(0);
- }
- return;
- }
- }
- if(!do_login(230, passwd))
- return;
-
- /* Forget all about it... */
- end_login();
-}
-
-void
-retrieve(char *cmd, char *name)
-{
- FILE *fin = NULL, *dout;
- struct stat st;
- int (*closefunc) (FILE *);
- char line[BUFSIZ];
-
-
- if (cmd == 0) {
- fin = fopen(name, "r");
- closefunc = fclose;
- st.st_size = 0;
- if(fin == NULL){
- struct cmds {
- char *ext;
- char *cmd;
- } cmds[] = {
- {".tar", "/bin/gtar cPf - %s"},
- {".tar.gz", "/bin/gtar zcPf - %s"},
- {".tar.Z", "/bin/gtar ZcPf - %s"},
- {".gz", "/bin/gzip -c %s"},
- {".Z", "/bin/compress -c %s"},
- {NULL, NULL}
- };
- struct cmds *p;
- for(p = cmds; p->ext; p++){
- char *tail = name + strlen(name) - strlen(p->ext);
- char c = *tail;
-
- if(strcmp(tail, p->ext) == 0 &&
- (*tail = 0) == 0 &&
- access(name, R_OK) == 0){
- snprintf (line, sizeof(line), p->cmd, name);
- *tail = c;
- break;
- }
- *tail = c;
- }
- if(p->ext){
- fin = ftpd_popen(line, "r", 0, 0);
- closefunc = ftpd_pclose;
- st.st_size = -1;
- cmd = line;
- }
- }
- } else {
- snprintf(line, sizeof(line), cmd, name);
- name = line;
- fin = ftpd_popen(line, "r", 1, 0);
- closefunc = ftpd_pclose;
- st.st_size = -1;
- }
- if (fin == NULL) {
- if (errno != 0) {
- perror_reply(550, name);
- if (cmd == 0) {
- LOGCMD("get", name);
- }
- }
- return;
- }
- byte_count = -1;
- if (cmd == 0){
- if(fstat(fileno(fin), &st) < 0 || !S_ISREG(st.st_mode)) {
- reply(550, "%s: not a plain file.", name);
- goto done;
- }
- }
- if (restart_point) {
- if (type == TYPE_A) {
- off_t i, n;
- int c;
-
- n = restart_point;
- i = 0;
- while (i++ < n) {
- if ((c=getc(fin)) == EOF) {
- perror_reply(550, name);
- goto done;
- }
- if (c == '\n')
- i++;
- }
- } else if (lseek(fileno(fin), restart_point, SEEK_SET) < 0) {
- perror_reply(550, name);
- goto done;
- }
- }
- dout = dataconn(name, st.st_size, "w");
- if (dout == NULL)
- goto done;
- set_buffer_size(fileno(dout), 0);
- send_data(fin, dout);
- fclose(dout);
- data = -1;
- pdata = -1;
-done:
- if (cmd == 0)
- LOGBYTES("get", name, byte_count);
- (*closefunc)(fin);
-}
-
-/* filename sanity check */
-
-int
-filename_check(char *filename)
-{
- static const char good_chars[] = "+-=_,.";
- char *p;
-
- p = strrchr(filename, '/');
- if(p)
- filename = p + 1;
-
- p = filename;
-
- if(isalnum(*p)){
- p++;
- while(*p && (isalnum(*p) || strchr(good_chars, *p)))
- p++;
- if(*p == '\0')
- return 0;
- }
- lreply(553, "\"%s\" is an illegal filename.", filename);
- lreply(553, "The filename must start with an alphanumeric "
- "character and must only");
- reply(553, "consist of alphanumeric characters or any of the following: %s",
- good_chars);
- return 1;
-}
-
-void
-do_store(char *name, char *mode, int unique)
-{
- FILE *fout, *din;
- struct stat st;
- int (*closefunc) (FILE *);
-
- if(guest && filename_check(name))
- return;
- if (unique && stat(name, &st) == 0 &&
- (name = gunique(name)) == NULL) {
- LOGCMD(*mode == 'w' ? "put" : "append", name);
- return;
- }
-
- if (restart_point)
- mode = "r+";
- fout = fopen(name, mode);
- closefunc = fclose;
- if (fout == NULL) {
- perror_reply(553, name);
- LOGCMD(*mode == 'w' ? "put" : "append", name);
- return;
- }
- byte_count = -1;
- if (restart_point) {
- if (type == TYPE_A) {
- off_t i, n;
- int c;
-
- n = restart_point;
- i = 0;
- while (i++ < n) {
- if ((c=getc(fout)) == EOF) {
- perror_reply(550, name);
- goto done;
- }
- if (c == '\n')
- i++;
- }
- /*
- * We must do this seek to "current" position
- * because we are changing from reading to
- * writing.
- */
- if (fseek(fout, 0L, SEEK_CUR) < 0) {
- perror_reply(550, name);
- goto done;
- }
- } else if (lseek(fileno(fout), restart_point, SEEK_SET) < 0) {
- perror_reply(550, name);
- goto done;
- }
- }
- din = dataconn(name, (off_t)-1, "r");
- if (din == NULL)
- goto done;
- set_buffer_size(fileno(din), 1);
- if (receive_data(din, fout) == 0) {
- if (unique)
- reply(226, "Transfer complete (unique file name:%s).",
- name);
- else
- reply(226, "Transfer complete.");
- }
- fclose(din);
- data = -1;
- pdata = -1;
-done:
- LOGBYTES(*mode == 'w' ? "put" : "append", name, byte_count);
- (*closefunc)(fout);
-}
-
-static FILE *
-getdatasock(char *mode)
-{
- int on = 1, s, t, tries;
-
- if (data >= 0)
- return (fdopen(data, mode));
- seteuid((uid_t)0);
- s = socket(AF_INET, 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
- /* anchor socket to avoid multi-homing problems */
- data_source.sin_family = AF_INET;
- data_source.sin_addr = ctrl_addr.sin_addr;
- for (tries = 1; ; tries++) {
- if (bind(s, (struct sockaddr *)&data_source,
- sizeof(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");
-#endif
- return (fdopen(s, mode));
-bad:
- /* Return the real value of errno (close may change it) */
- t = errno;
- seteuid((uid_t)pw->pw_uid);
- close(s);
- errno = t;
- return (NULL);
-}
-
-static FILE *
-dataconn(char *name, off_t size, char *mode)
-{
- char sizebuf[32];
- FILE *file;
- int retry = 0, tos;
-
- file_size = size;
- byte_count = 0;
- if (size != (off_t) -1)
- snprintf(sizebuf, sizeof(sizebuf), " (%ld bytes)", size);
- else
- strcpy(sizebuf, "");
- if (pdata >= 0) {
- struct sockaddr_in from;
- int s, fromlen = sizeof(from);
-
- s = accept(pdata, (struct sockaddr *)&from, &fromlen);
- if (s < 0) {
- reply(425, "Can't open data connection.");
- close(pdata);
- pdata = -1;
- return (NULL);
- }
- close(pdata);
- pdata = s;
-#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
- tos = IPTOS_THROUGHPUT;
- setsockopt(s, IPPROTO_IP, IP_TOS, (void *)&tos,
- sizeof(int));
-#endif
- reply(150, "Opening %s mode data connection for '%s'%s.",
- type == TYPE_A ? "ASCII" : "BINARY", name, sizebuf);
- return (fdopen(pdata, mode));
- }
- if (data >= 0) {
- reply(125, "Using existing data connection for '%s'%s.",
- name, sizebuf);
- usedefault = 1;
- return (fdopen(data, mode));
- }
- if (usedefault)
- data_dest = his_addr;
- usedefault = 1;
- file = getdatasock(mode);
- if (file == NULL) {
- reply(425, "Can't create data socket (%s,%d): %s.",
- inet_ntoa(data_source.sin_addr),
- ntohs(data_source.sin_port), strerror(errno));
- return (NULL);
- }
- data = fileno(file);
- while (connect(data, (struct sockaddr *)&data_dest,
- sizeof(data_dest)) < 0) {
- if (errno == EADDRINUSE && retry < swaitmax) {
- sleep((unsigned) swaitint);
- retry += swaitint;
- continue;
- }
- perror_reply(425, "Can't build data connection");
- fclose(file);
- data = -1;
- return (NULL);
- }
- reply(150, "Opening %s mode data connection for '%s'%s.",
- type == TYPE_A ? "ASCII" : "BINARY", name, sizebuf);
- return (file);
-}
-
-/*
- * Tranfer the contents of "instr" to "outstr" peer using the appropriate
- * encapsulation of the data subject * to Mode, Structure, and Type.
- *
- * NB: Form isn't handled.
- */
-static void
-send_data(FILE *instr, FILE *outstr)
-{
- int c, cnt, filefd, netfd;
- static char *buf;
- static size_t bufsize;
- int i = 0;
- char s[1024];
-
- transflag++;
- if (setjmp(urgcatch)) {
- transflag = 0;
- return;
- }
- switch (type) {
-
- case TYPE_A:
- while ((c = getc(instr)) != EOF) {
- byte_count++;
- if(i > 1022){
- auth_write(fileno(outstr), s, i);
- i = 0;
- }
- if(c == '\n')
- s[i++] = '\r';
- s[i++] = c;
- }
- if(i)
- auth_write(fileno(outstr), s, i);
- auth_write(fileno(outstr), s, 0);
- fflush(outstr);
- transflag = 0;
- if (ferror(instr))
- goto file_err;
- if (ferror(outstr))
- goto data_err;
- reply(226, "Transfer complete.");
- return;
-
- case TYPE_I:
- case TYPE_L:
-#ifdef HAVE_MMAP
-#ifndef MAP_FAILED
-#define MAP_FAILED (-1)
-#endif
- {
- 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(chunk != (void *)MAP_FAILED) {
- cnt = st.st_size - restart_point;
- auth_write(fileno(outstr),
- chunk + restart_point,
- cnt);
- munmap(chunk, st.st_size);
- auth_write(fileno(outstr), NULL, 0);
- byte_count = cnt;
- transflag = 0;
- }
- }
- }
-
-#endif
- if(transflag){
- struct stat st;
-
- netfd = fileno(outstr);
- filefd = fileno(instr);
- buf = alloc_buffer (buf, &bufsize,
- fstat(filefd, &st) >= 0 ? &st : NULL);
- if (buf == NULL) {
- transflag = 0;
- perror_reply(451, "Local resource failure: malloc");
- return;
- }
- while ((cnt = read(filefd, buf, bufsize)) > 0 &&
- auth_write(netfd, buf, cnt) == cnt)
- byte_count += cnt;
- auth_write(netfd, buf, 0); /* to end an encrypted stream */
- transflag = 0;
- if (cnt != 0) {
- if (cnt < 0)
- goto file_err;
- goto data_err;
- }
- }
- reply(226, "Transfer complete.");
- return;
- default:
- transflag = 0;
- reply(550, "Unimplemented TYPE %d in send_data", type);
- return;
- }
-
-data_err:
- transflag = 0;
- perror_reply(426, "Data connection");
- return;
-
-file_err:
- transflag = 0;
- perror_reply(551, "Error on input file");
-}
-
-/*
- * Transfer data from peer to "outstr" using the appropriate encapulation of
- * the data subject to Mode, Structure, and Type.
- *
- * N.B.: Form isn't handled.
- */
-static int
-receive_data(FILE *instr, FILE *outstr)
-{
- int cnt, bare_lfs = 0;
- static char *buf;
- static size_t bufsize;
- struct stat st;
-
- transflag++;
- if (setjmp(urgcatch)) {
- transflag = 0;
- return (-1);
- }
-
- buf = alloc_buffer (buf, &bufsize,
- fstat(fileno(outstr), &st) >= 0 ? &st : NULL);
- if (buf == NULL) {
- transflag = 0;
- perror_reply(451, "Local resource failure: malloc");
- return -1;
- }
-
- switch (type) {
-
- case TYPE_I:
- case TYPE_L:
- while ((cnt = auth_read(fileno(instr), buf, bufsize)) > 0) {
- if (write(fileno(outstr), buf, cnt) != cnt)
- goto file_err;
- byte_count += cnt;
- }
- if (cnt < 0)
- goto data_err;
- transflag = 0;
- return (0);
-
- case TYPE_E:
- reply(553, "TYPE E not implemented.");
- transflag = 0;
- return (-1);
-
- case TYPE_A:
- {
- char *p, *q;
- int cr_flag = 0;
- while ((cnt = auth_read(fileno(instr),
- buf + cr_flag,
- bufsize - cr_flag)) > 0){
- byte_count += cnt;
- cnt += cr_flag;
- cr_flag = 0;
- for(p = buf, q = buf; p < buf + cnt;) {
- if(*p == '\n')
- bare_lfs++;
- if(*p == '\r')
- if(p == buf + cnt - 1){
- cr_flag = 1;
- p++;
- continue;
- }else if(p[1] == '\n'){
- *q++ = '\n';
- p += 2;
- continue;
- }
- *q++ = *p++;
- }
- fwrite(buf, q - buf, 1, outstr);
- if(cr_flag)
- buf[0] = '\r';
- }
- if(cr_flag)
- putc('\r', outstr);
- fflush(outstr);
- if (ferror(instr))
- goto data_err;
- if (ferror(outstr))
- goto file_err;
- transflag = 0;
- if (bare_lfs) {
- lreply(226, "WARNING! %d bare linefeeds received in ASCII mode\r\n"
- " File may not have transferred correctly.\r\n",
- bare_lfs);
- }
- return (0);
- }
- default:
- reply(550, "Unimplemented TYPE %d in receive_data", type);
- transflag = 0;
- return (-1);
- }
-
-data_err:
- transflag = 0;
- perror_reply(426, "Data Connection");
- return (-1);
-
-file_err:
- transflag = 0;
- perror_reply(452, "Error writing file");
- return (-1);
-}
-
-void
-statfilecmd(char *filename)
-{
- FILE *fin;
- int c;
- char line[LINE_MAX];
-
- snprintf(line, sizeof(line), "/bin/ls -la %s", filename);
- fin = ftpd_popen(line, "r", 1, 0);
- lreply(211, "status of %s:", filename);
- while ((c = getc(fin)) != EOF) {
- if (c == '\n') {
- if (ferror(stdout)){
- perror_reply(421, "control connection");
- ftpd_pclose(fin);
- dologout(1);
- /* NOTREACHED */
- }
- if (ferror(fin)) {
- perror_reply(551, filename);
- ftpd_pclose(fin);
- return;
- }
- putc('\r', stdout);
- }
- putc(c, stdout);
- }
- ftpd_pclose(fin);
- reply(211, "End of Status");
-}
-
-void
-statcmd(void)
-{
-#if 0
- struct sockaddr_in *sin;
- u_char *a, *p;
-
- lreply(211, "%s FTP server status:", hostname, version);
- printf(" %s\r\n", version);
- printf(" Connected to %s", remotehost);
- if (!isdigit(remotehost[0]))
- printf(" (%s)", inet_ntoa(his_addr.sin_addr));
- printf("\r\n");
- if (logged_in) {
- if (guest)
- printf(" Logged in anonymously\r\n");
- else
- printf(" Logged in as %s\r\n", pw->pw_name);
- } else if (askpasswd)
- printf(" Waiting for password\r\n");
- else
- printf(" Waiting for user name\r\n");
- printf(" TYPE: %s", typenames[type]);
- if (type == TYPE_A || type == TYPE_E)
- printf(", FORM: %s", formnames[form]);
- if (type == TYPE_L)
-#if NBBY == 8
- printf(" %d", NBBY);
-#else
- printf(" %d", bytesize); /* need definition! */
-#endif
- printf("; STRUcture: %s; transfer MODE: %s\r\n",
- strunames[stru], modenames[mode]);
- if (data != -1)
- printf(" Data connection open\r\n");
- else if (pdata != -1) {
- printf(" in Passive mode");
- sin = &pasv_addr;
- goto printaddr;
- } else if (usedefault == 0) {
- printf(" PORT");
- sin = &data_dest;
-printaddr:
- a = (u_char *) &sin->sin_addr;
- p = (u_char *) &sin->sin_port;
-#define UC(b) (((int) b) & 0xff)
- printf(" (%d,%d,%d,%d,%d,%d)\r\n", UC(a[0]),
- UC(a[1]), UC(a[2]), UC(a[3]), UC(p[0]), UC(p[1]));
-#undef UC
- } else
- printf(" No data connection\r\n");
-#endif
- reply(211, "End of status");
-}
-
-void
-fatal(char *s)
-{
-
- reply(451, "Error in server: %s\n", s);
- reply(221, "Closing connection due to server error.");
- dologout(0);
- /* NOTREACHED */
-}
-
-static void
-int_reply(int, char *, const char *, va_list)
-#ifdef __GNUC__
-__attribute__ ((format (printf, 3, 0)))
-#endif
-;
-
-static void
-int_reply(int n, char *c, const char *fmt, va_list ap)
-{
- char buf[10240];
- char *p;
- p=buf;
- if(n){
- snprintf(p, sizeof(buf), "%d%s", n, c);
- p+=strlen(p);
- }
- vsnprintf(p, sizeof(buf) - strlen(p), fmt, ap);
- p+=strlen(p);
- snprintf(p, sizeof(buf) - strlen(p), "\r\n");
- p+=strlen(p);
- auth_printf("%s", buf);
- fflush(stdout);
- if (debug)
- syslog(LOG_DEBUG, "<--- %s- ", buf);
-}
-
-void
-reply(int n, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- int_reply(n, " ", fmt, ap);
- delete_ftp_command();
- va_end(ap);
-}
-
-void
-lreply(int n, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- int_reply(n, "-", fmt, ap);
- va_end(ap);
-}
-
-void
-nreply(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- int_reply(0, NULL, fmt, ap);
- va_end(ap);
-}
-
-static void
-ack(char *s)
-{
-
- reply(250, "%s command successful.", s);
-}
-
-void
-nack(char *s)
-{
-
- reply(502, "%s command not implemented.", s);
-}
-
-/* ARGSUSED */
-void
-yyerror(char *s)
-{
- char *cp;
-
- if ((cp = strchr(cbuf,'\n')))
- *cp = '\0';
- reply(500, "'%s': command not understood.", cbuf);
-}
-
-void
-do_delete(char *name)
-{
- struct stat st;
-
- LOGCMD("delete", name);
- if (stat(name, &st) < 0) {
- perror_reply(550, name);
- return;
- }
- if ((st.st_mode&S_IFMT) == S_IFDIR) {
- if (rmdir(name) < 0) {
- perror_reply(550, name);
- return;
- }
- goto done;
- }
- if (unlink(name) < 0) {
- perror_reply(550, name);
- return;
- }
-done:
- ack("DELE");
-}
-
-void
-cwd(char *path)
-{
-
- if (chdir(path) < 0)
- perror_reply(550, path);
- else
- ack("CWD");
-}
-
-void
-makedir(char *name)
-{
-
- LOGCMD("mkdir", name);
- if(guest && filename_check(name))
- return;
- if (mkdir(name, 0777) < 0)
- perror_reply(550, name);
- else{
- if(guest)
- chmod(name, 0700); /* guest has umask 777 */
- reply(257, "MKD command successful.");
- }
-}
-
-void
-removedir(char *name)
-{
-
- LOGCMD("rmdir", name);
- if (rmdir(name) < 0)
- perror_reply(550, name);
- else
- ack("RMD");
-}
-
-void
-pwd(void)
-{
- char path[MaxPathLen + 1];
- char *ret;
-
- /* SunOS has a broken getcwd that does popen(pwd) (!!!), this
- * failes miserably when running chroot
- */
- ret = getcwd(path, sizeof(path));
- if (ret == NULL)
- reply(550, "%s.", strerror(errno));
- else
- reply(257, "\"%s\" is current directory.", path);
-}
-
-char *
-renamefrom(char *name)
-{
- struct stat st;
-
- if (stat(name, &st) < 0) {
- perror_reply(550, name);
- return NULL;
- }
- reply(350, "File exists, ready for destination name");
- return (name);
-}
-
-void
-renamecmd(char *from, char *to)
-{
-
- LOGCMD2("rename", from, to);
- if(guest && filename_check(to))
- return;
- if (rename(from, to) < 0)
- perror_reply(550, "rename");
- else
- ack("RNTO");
-}
-
-static void
-dolog(struct sockaddr_in *sin)
-{
- inaddr2str (sin->sin_addr, remotehost, sizeof(remotehost));
-#ifdef HAVE_SETPROCTITLE
- snprintf(proctitle, sizeof(proctitle), "%s: connected", remotehost);
- setproctitle(proctitle);
-#endif /* HAVE_SETPROCTITLE */
-
- if (logging)
- syslog(LOG_INFO, "connection from %s(%s)",
- remotehost,
- inet_ntoa(his_addr.sin_addr));
-}
-
-/*
- * Record logout in wtmp file
- * and exit with supplied status.
- */
-void
-dologout(int status)
-{
- transflag = 0;
- if (logged_in) {
- seteuid((uid_t)0);
- logwtmp(ttyline, "", "");
- dest_tkt();
- if(k_hasafs())
- k_unlog();
- }
- /* beware of flushing buffers after a SIGPIPE */
-#ifdef XXX
- exit(status);
-#else
- _exit(status);
-#endif
-}
-
-void abor(void)
-{
-}
-
-static void
-myoob(int signo)
-{
-#if 0
- char *cp;
-#endif
-
- /* only process if transfer occurring */
- if (!transflag)
- return;
-
- /* This is all XXX */
- oobflag = 1;
- /* if the command resulted in a new command,
- parse that as well */
- do{
- yyparse();
- } while(ftp_command);
- oobflag = 0;
-
-#if 0
- cp = tmpline;
- if (getline(cp, 7) == NULL) {
- reply(221, "You could at least say goodbye.");
- dologout(0);
- }
- upper(cp);
- if (strcmp(cp, "ABOR\r\n") == 0) {
- tmpline[0] = '\0';
- reply(426, "Transfer aborted. Data connection closed.");
- reply(226, "Abort successful");
- longjmp(urgcatch, 1);
- }
- if (strcmp(cp, "STAT\r\n") == 0) {
- if (file_size != (off_t) -1)
- reply(213, "Status: %ld of %ld bytes transferred",
- (long)byte_count,
- (long)file_size);
- else
- reply(213, "Status: %ld bytes transferred"
- (long)byte_count);
- }
-#endif
-}
-
-/*
- * Note: a response of 425 is not mentioned as a possible response to
- * the PASV command in RFC959. However, it has been blessed as
- * a legitimate response by Jon Postel in a telephone conversation
- * with Rick Adams on 25 Jan 89.
- */
-void
-passive(void)
-{
- int len;
- char *p, *a;
-
- pdata = socket(AF_INET, 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);
- goto pasv_error;
- }
- seteuid((uid_t)pw->pw_uid);
- len = sizeof(pasv_addr);
- if (getsockname(pdata, (struct sockaddr *) &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;
-
-#define UC(b) (((int) b) & 0xff)
-
- reply(227, "Entering Passive Mode (%d,%d,%d,%d,%d,%d)", UC(a[0]),
- UC(a[1]), UC(a[2]), UC(a[3]), UC(p[0]), UC(p[1]));
- return;
-
-pasv_error:
- close(pdata);
- pdata = -1;
- perror_reply(425, "Can't open passive connection");
- return;
-}
-
-/*
- * Generate unique name for file with basename "local".
- * The file named "local" is already known to exist.
- * Generates failure reply on error.
- */
-static char *
-gunique(char *local)
-{
- static char new[MaxPathLen];
- struct stat st;
- int count;
- char *cp;
-
- cp = strrchr(local, '/');
- if (cp)
- *cp = '\0';
- if (stat(cp ? local : ".", &st) < 0) {
- perror_reply(553, cp ? local : ".");
- return NULL;
- }
- if (cp)
- *cp = '/';
- for (count = 1; count < 100; count++) {
- snprintf (new, sizeof(new), "%s.%d", local, count);
- if (stat(new, &st) < 0)
- return (new);
- }
- reply(452, "Unique file name cannot be created.");
- return (NULL);
-}
-
-/*
- * Format and send reply containing system error number.
- */
-void
-perror_reply(int code, char *string)
-{
- reply(code, "%s: %s.", string, strerror(errno));
-}
-
-static char *onefile[] = {
- "",
- 0
-};
-
-void
-send_file_list(char *whichf)
-{
- struct stat st;
- DIR *dirp = NULL;
- struct dirent *dir;
- FILE *dout = NULL;
- char **dirlist, *dirname;
- int simple = 0;
- int freeglob = 0;
- glob_t gl;
- char buf[MaxPathLen];
-
- if (strpbrk(whichf, "~{[*?") != NULL) {
- int flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
-
- memset(&gl, 0, sizeof(gl));
- freeglob = 1;
- if (glob(whichf, flags, 0, &gl)) {
- reply(550, "not found");
- goto out;
- } else if (gl.gl_pathc == 0) {
- errno = ENOENT;
- perror_reply(550, whichf);
- goto out;
- }
- dirlist = gl.gl_pathv;
- } else {
- onefile[0] = whichf;
- dirlist = onefile;
- simple = 1;
- }
-
- if (setjmp(urgcatch)) {
- transflag = 0;
- goto out;
- }
- while ((dirname = *dirlist++)) {
- if (stat(dirname, &st) < 0) {
- /*
- * If user typed "ls -l", etc, and the client
- * used NLST, do what the user meant.
- */
- if (dirname[0] == '-' && *dirlist == NULL &&
- transflag == 0) {
- retrieve("/bin/ls %s", dirname);
- goto out;
- }
- perror_reply(550, whichf);
- if (dout != NULL) {
- fclose(dout);
- transflag = 0;
- data = -1;
- pdata = -1;
- }
- goto out;
- }
-
- if (S_ISREG(st.st_mode)) {
- if (dout == NULL) {
- dout = dataconn("file list", (off_t)-1, "w");
- if (dout == NULL)
- goto out;
- transflag++;
- }
- snprintf(buf, sizeof(buf), "%s%s\n", dirname,
- type == TYPE_A ? "\r" : "");
- auth_write(fileno(dout), buf, strlen(buf));
- byte_count += strlen(dirname) + 1;
- continue;
- } else if (!S_ISDIR(st.st_mode))
- continue;
-
- if ((dirp = opendir(dirname)) == NULL)
- continue;
-
- while ((dir = readdir(dirp)) != NULL) {
- char nbuf[MaxPathLen];
-
- if (!strcmp(dir->d_name, "."))
- continue;
- if (!strcmp(dir->d_name, ".."))
- continue;
-
- snprintf(nbuf, sizeof(nbuf), "%s/%s", dirname, dir->d_name);
-
- /*
- * We have to do a stat to insure it's
- * not a directory or special file.
- */
- if (simple || (stat(nbuf, &st) == 0 &&
- S_ISREG(st.st_mode))) {
- if (dout == NULL) {
- dout = dataconn("file list", (off_t)-1, "w");
- if (dout == NULL)
- goto out;
- transflag++;
- }
- if(strncmp(nbuf, "./", 2) == 0)
- snprintf(buf, sizeof(buf), "%s%s\n", nbuf +2,
- type == TYPE_A ? "\r" : "");
- else
- snprintf(buf, sizeof(buf), "%s%s\n", nbuf,
- type == TYPE_A ? "\r" : "");
- auth_write(fileno(dout), buf, strlen(buf));
- byte_count += strlen(nbuf) + 1;
- }
- }
- closedir(dirp);
- }
- if (dout == NULL)
- reply(550, "No files found.");
- else if (ferror(dout) != 0)
- perror_reply(550, "Data connection");
- else
- reply(226, "Transfer complete.");
-
- transflag = 0;
- if (dout != NULL){
- auth_write(fileno(dout), buf, 0); /* XXX flush */
-
- fclose(dout);
- }
- data = -1;
- pdata = -1;
-out:
- if (freeglob) {
- freeglob = 0;
- globfree(&gl);
- }
-}
-
-
-int
-find(char *pattern)
-{
- char line[1024];
- FILE *f;
-
- snprintf(line, sizeof(line),
- "/bin/locate -d %s %s",
- ftp_rooted("/etc/locatedb"),
- pattern);
- f = ftpd_popen(line, "r", 1, 1);
- if(f == NULL){
- perror_reply(550, "/bin/locate");
- return 1;
- }
- lreply(200, "Output from find.");
- while(fgets(line, sizeof(line), f)){
- if(line[strlen(line)-1] == '\n')
- line[strlen(line)-1] = 0;
- nreply("%s", line);
- }
- reply(200, "Done");
- ftpd_pclose(f);
- return 0;
-}
-
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/kauth.c b/crypto/kerberosIV/appl/ftp/ftpd/kauth.c
deleted file mode 100644
index 02d23d65683b..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/kauth.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-RCSID("$Id: kauth.c,v 1.14 1997/05/07 02:21:30 assar Exp $");
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <time.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <roken.h>
-
-#include <des.h>
-#include <krb.h>
-#include <kafs.h>
-
-#include "extern.h"
-#include "krb4.h"
-#include "auth.h"
-#include "base64.h"
-
-static KTEXT_ST cip;
-static unsigned int lifetime;
-static time_t local_time;
-
-static krb_principal pr;
-
-static int
-save_tkt(char *user, char *instance, char *realm, void *arg,
- int (*key_proc)(char*, char*, char*, void*, des_cblock*), KTEXT *cipp)
-{
- local_time = time(0);
- memmove(&cip, *cipp, sizeof(cip));
- return -1;
-}
-
-static int
-store_ticket(KTEXT cip)
-{
- char *ptr;
- des_cblock session;
- krb_principal sp;
- unsigned char kvno;
- KTEXT_ST tkt;
- int left = cip->length;
-
- int kerror;
-
- time_t kdc_time;
-
- ptr = (char *) cip->dat;
-
- /* extract session key */
- memmove(session, ptr, 8);
- ptr += 8;
- left -= 8;
-
- if (strnlen(ptr, left) == left)
- return(INTK_BADPW);
-
- /* extract server's name */
- strcpy(sp.name, ptr);
- ptr += strlen(sp.name) + 1;
- left -= strlen(sp.name) + 1;
-
- if (strnlen(ptr, left) == left)
- return(INTK_BADPW);
-
- /* extract server's instance */
- strcpy(sp.instance, ptr);
- ptr += strlen(sp.instance) + 1;
- left -= strlen(sp.instance) + 1;
-
- if (strnlen(ptr, left) == left)
- return(INTK_BADPW);
-
- /* extract server's realm */
- strcpy(sp.realm,ptr);
- ptr += strlen(sp.realm) + 1;
- left -= strlen(sp.realm) + 1;
-
- if(left < 3)
- return INTK_BADPW;
- /* extract ticket lifetime, server key version, ticket length */
- /* be sure to avoid sign extension on lifetime! */
- lifetime = (unsigned char) ptr[0];
- kvno = (unsigned char) ptr[1];
- tkt.length = (unsigned char) ptr[2];
- ptr += 3;
- left -= 3;
-
- if (tkt.length > left)
- return(INTK_BADPW);
-
- /* extract ticket itself */
- memmove(tkt.dat, ptr, tkt.length);
- ptr += tkt.length;
- left -= tkt.length;
-
- /* Here is where the time should be verified against the KDC.
- * Unfortunately everything is sent in host byte order (receiver
- * makes wrong) , and at this stage there is no way for us to know
- * which byteorder the KDC has. So we simply ignore the time,
- * there are no security risks with this, the only thing that can
- * happen is that we might receive a replayed ticket, which could
- * at most be useless.
- */
-
-#if 0
- /* check KDC time stamp */
- memmove(&kdc_time, ptr, sizeof(kdc_time));
- if (swap_bytes) swap_u_long(kdc_time);
-
- ptr += 4;
-
- if (abs((int)(local_time - kdc_time)) > CLOCK_SKEW) {
- return(RD_AP_TIME); /* XXX should probably be better
- code */
- }
-#endif
-
- /* initialize ticket cache */
-
- if (tf_create(TKT_FILE) != KSUCCESS)
- return(INTK_ERR);
-
- if (tf_put_pname(pr.name) != KSUCCESS ||
- tf_put_pinst(pr.instance) != KSUCCESS) {
- tf_close();
- return(INTK_ERR);
- }
-
-
- kerror = tf_save_cred(sp.name, sp.instance, sp.realm, session,
- lifetime, kvno, &tkt, local_time);
- tf_close();
-
- return(kerror);
-}
-
-void kauth(char *principal, char *ticket)
-{
- char *p;
- int ret;
-
- ret = krb_parse_name(principal, &pr);
- if(ret){
- reply(500, "Bad principal: %s.", krb_get_err_text(ret));
- return;
- }
- if(pr.realm[0] == 0)
- krb_get_lrealm(pr.realm, 1);
-
- if(ticket){
- cip.length = base64_decode(ticket, &cip.dat);
- if(cip.length == -1){
- reply(500, "Failed to decode data.");
- return;
- }
- ret = store_ticket(&cip);
- if(ret){
- reply(500, "Kerberos error: %s.", krb_get_err_text(ret));
- memset(&cip, 0, sizeof(cip));
- return;
- }
- if(k_hasafs())
- k_afsklog(0, 0);
- reply(200, "Tickets will be destroyed on exit.");
- return;
- }
-
- ret = krb_get_in_tkt (pr.name,
- pr.instance,
- pr.realm,
- KRB_TICKET_GRANTING_TICKET,
- pr.realm,
- DEFAULT_TKT_LIFE,
- NULL, save_tkt, NULL);
- if(ret != INTK_BADPW){
- reply(500, "Kerberos error: %s.", krb_get_err_text(ret));
- return;
- }
- base64_encode(cip.dat, cip.length, &p);
- reply(300, "P=%s T=%s", krb_unparse_name(&pr), p);
- free(p);
- memset(&cip, 0, sizeof(cip));
-}
-
-
-static char *
-short_date(int32_t dp)
-{
- char *cp;
- time_t t = (time_t)dp;
-
- if (t == (time_t)(-1L)) return "*** Never *** ";
- cp = ctime(&t) + 4;
- cp[15] = '\0';
- return (cp);
-}
-
-void klist(void)
-{
- int err;
-
- char *file = tkt_string();
-
- krb_principal pr;
-
- char buf1[128], buf2[128];
- int header = 1;
- CREDENTIALS c;
-
-
-
- err = tf_init(file, R_TKT_FIL);
- if(err != KSUCCESS){
- reply(500, "%s", krb_get_err_text(err));
- return;
- }
- tf_close();
-
- /*
- * We must find the realm of the ticket file here before calling
- * tf_init because since the realm of the ticket file is not
- * really stored in the principal section of the file, the
- * routine we use must itself call tf_init and tf_close.
- */
- err = krb_get_tf_realm(file, pr.realm);
- if(err != KSUCCESS){
- reply(500, "%s", krb_get_err_text(err));
- return;
- }
-
- err = tf_init(file, R_TKT_FIL);
- if(err != KSUCCESS){
- reply(500, "%s", krb_get_err_text(err));
- return;
- }
-
- err = tf_get_pname(pr.name);
- if(err != KSUCCESS){
- reply(500, "%s", krb_get_err_text(err));
- return;
- }
- err = tf_get_pinst(pr.instance);
- if(err != KSUCCESS){
- reply(500, "%s", krb_get_err_text(err));
- return;
- }
-
- /*
- * You may think that this is the obvious place to get the
- * realm of the ticket file, but it can't be done here as the
- * routine to do this must open the ticket file. This is why
- * it was done before tf_init.
- */
-
- lreply(200, "Principal: %s", krb_unparse_name(&pr));
- while ((err = tf_get_cred(&c)) == KSUCCESS) {
- if (header) {
- lreply(200, "%-15s %-15s %s",
- " Issued", " Expires", " Principal (kvno)");
- header = 0;
- }
- strcpy(buf1, short_date(c.issue_date));
- c.issue_date = krb_life_to_time(c.issue_date, c.lifetime);
- if (time(0) < (unsigned long) c.issue_date)
- strcpy(buf2, short_date(c.issue_date));
- else
- strcpy(buf2, ">>> Expired <<< ");
- lreply(200, "%s %s %s (%d)", buf1, buf2,
- krb_unparse_name_long(c.service, c.instance, c.realm), c.kvno);
- }
- if (header && err == EOF) {
- lreply(200, "No tickets in file.");
- }
- reply(200, "");
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/krb4.c b/crypto/kerberosIV/appl/ftp/ftpd/krb4.c
deleted file mode 100644
index 2457c61cc1fe..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/krb4.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: krb4.c,v 1.19 1997/05/11 09:00:07 assar Exp $");
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_NETINET_IN_h
-#include <netinet/in.h>
-#endif
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <krb.h>
-
-#include "base64.h"
-#include "extern.h"
-#include "auth.h"
-#include "krb4.h"
-
-#include <roken.h>
-
-static AUTH_DAT auth_dat;
-static des_key_schedule schedule;
-
-int krb4_auth(char *auth)
-{
- auth_complete = 0;
- reply(334, "Using authentication type %s; ADAT must follow", auth);
- return 0;
-}
-
-int krb4_adat(char *auth)
-{
- KTEXT_ST tkt;
- char *p;
- int kerror;
- u_int32_t cs;
- char msg[35]; /* size of encrypted block */
- int len;
-
- char inst[INST_SZ];
-
- memset(&tkt, 0, sizeof(tkt));
- len = base64_decode(auth, tkt.dat);
-
- if(len < 0){
- reply(501, "Failed to decode base64 data.");
- return -1;
- }
- tkt.length = len;
-
- k_getsockinst(0, inst, sizeof(inst));
- kerror = krb_rd_req(&tkt, "ftp", inst, 0, &auth_dat, "");
- if(kerror == RD_AP_UNDEC){
- k_getsockinst(0, inst, sizeof(inst));
- kerror = krb_rd_req(&tkt, "rcmd", inst, 0, &auth_dat, "");
- }
-
- if(kerror){
- reply(535, "Error reading request: %s.", krb_get_err_text(kerror));
- return -1;
- }
-
- des_set_key(&auth_dat.session, schedule);
-
- cs = auth_dat.checksum + 1;
- {
- unsigned char tmp[4];
- tmp[0] = (cs >> 24) & 0xff;
- tmp[1] = (cs >> 16) & 0xff;
- tmp[2] = (cs >> 8) & 0xff;
- tmp[3] = cs & 0xff;
- len = krb_mk_safe(tmp, msg, 4, &auth_dat.session,
- &ctrl_addr, &his_addr);
- }
- if(len < 0){
- reply(535, "Error creating reply: %s.", strerror(errno));
- return -1;
- }
- base64_encode(msg, len, &p);
- reply(235, "ADAT=%s", p);
- auth_complete = 1;
- free(p);
- return 0;
-}
-
-int krb4_pbsz(int size)
-{
- if(size > 1048576) /* XXX arbitrary number */
- size = 1048576;
- buffer_size = size;
- reply(200, "OK PBSZ=%d", buffer_size);
- return 0;
-}
-
-int krb4_prot(int level)
-{
- if(level == prot_confidential)
- return -1;
- return 0;
-}
-
-int krb4_ccc(void)
-{
- reply(534, "Don't event think about it.");
- return -1;
-}
-
-int krb4_mic(char *msg)
-{
- int len;
- int kerror;
- MSG_DAT m_data;
- char *tmp, *cmd;
-
- cmd = strdup(msg);
-
- len = base64_decode(msg, cmd);
- if(len < 0){
- reply(501, "Failed to decode base 64 data.");
- free(cmd);
- return -1;
- }
- kerror = krb_rd_safe(cmd, len, &auth_dat.session,
- &his_addr, &ctrl_addr, &m_data);
-
- if(kerror){
- reply(535, "Error reading request: %s.", krb_get_err_text(kerror));
- free(cmd);
- return -1;
- }
-
- tmp = malloc(strlen(msg) + 1);
- snprintf(tmp, strlen(msg) + 1, "%.*s", (int)m_data.app_length, m_data.app_data);
- if(!strstr(tmp, "\r\n"))
- strcat(tmp, "\r\n");
- new_ftp_command(tmp);
- free(cmd);
- return 0;
-}
-
-int krb4_conf(char *msg)
-{
- prot_level = prot_safe;
-
- reply(537, "Protection level not supported.");
- return -1;
-}
-
-int krb4_enc(char *msg)
-{
- int len;
- int kerror;
- MSG_DAT m_data;
- char *tmp, *cmd;
-
- cmd = strdup(msg);
-
- len = base64_decode(msg, cmd);
- if(len < 0){
- reply(501, "Failed to decode base 64 data.");
- free(cmd);
- return -1;
- }
- kerror = krb_rd_priv(cmd, len, schedule, &auth_dat.session,
- &his_addr, &ctrl_addr, &m_data);
-
- if(kerror){
- reply(535, "Error reading request: %s.", krb_get_err_text(kerror));
- free(cmd);
- return -1;
- }
-
- tmp = strdup(msg);
- snprintf(tmp, strlen(msg) + 1, "%.*s", (int)m_data.app_length, m_data.app_data);
- if(!strstr(tmp, "\r\n"))
- strcat(tmp, "\r\n");
- new_ftp_command(tmp);
- free(cmd);
- return 0;
-}
-
-int krb4_read(int fd, void *data, int length)
-{
- static int left;
- static char *extra;
- static int eof;
- int len, bytes, tx = 0;
-
- MSG_DAT m_data;
- int kerror;
-
- if(eof){ /* if we haven't reported an end-of-file, do so */
- eof = 0;
- return 0;
- }
-
- if(left){
- if(length > left)
- bytes = left;
- else
- bytes = length;
- memmove(data, extra, bytes);
- left -= bytes;
- if(left)
- memmove(extra, extra + bytes, left);
- else
- free(extra);
- length -= bytes;
- tx += bytes;
- }
-
- while(length){
- unsigned char tmp[4];
- if(krb_net_read(fd, tmp, 4) < 4){
- reply(400, "Unexpected end of file.\n");
- return -1;
- }
- len = (tmp[0] << 24) | (tmp[1] << 16) | (tmp[2] << 8) | tmp[3];
- krb_net_read(fd, data_buffer, len);
- if(data_protection == prot_safe)
- kerror = krb_rd_safe(data_buffer, len, &auth_dat.session,
- &his_addr, &ctrl_addr, &m_data);
- else
- kerror = krb_rd_priv(data_buffer, len, schedule, &auth_dat.session,
- &his_addr, &ctrl_addr, &m_data);
-
- if(kerror){
- reply(400, "Failed to read data: %s.", krb_get_err_text(kerror));
- return -1;
- }
-
- bytes = m_data.app_length;
- if(bytes == 0){
- if(tx) eof = 1;
- return tx;
- }
- if(bytes > length){
- left = bytes - length;
- bytes = length;
- extra = malloc(left);
- memmove(extra, m_data.app_data + bytes, left);
- }
- memmove((unsigned char*)data + tx, m_data.app_data, bytes);
- tx += bytes;
- length -= bytes;
- }
- return tx;
-}
-
-int krb4_write(int fd, void *data, int length)
-{
- int len, bytes, tx = 0;
-
- len = buffer_size;
- if(data_protection == prot_safe)
- len -= 31; /* always 31 bytes overhead */
- else
- len -= 26; /* at most 26 bytes */
-
- do{
- if(length < len)
- len = length;
- if(data_protection == prot_safe)
- bytes = krb_mk_safe(data, data_buffer+4, len, &auth_dat.session,
- &ctrl_addr, &his_addr);
- else
- bytes = krb_mk_priv(data, data_buffer+4, len, schedule,
- &auth_dat.session,
- &ctrl_addr, &his_addr);
- if(bytes == -1){
- reply(535, "Failed to make packet: %s.", strerror(errno));
- return -1;
- }
- data_buffer[0] = (bytes >> 24) & 0xff;
- data_buffer[1] = (bytes >> 16) & 0xff;
- data_buffer[2] = (bytes >> 8) & 0xff;
- data_buffer[3] = bytes & 0xff;
- if(krb_net_write(fd, data_buffer, bytes+4) < 0)
- return -1;
- length -= len;
- data = (unsigned char*)data + len;
- tx += len;
- }while(length);
- return tx;
-}
-
-int krb4_userok(char *name)
-{
- if(!kuserok(&auth_dat, name)){
- do_login(232, name);
- }else{
- reply(530, "User %s access denied.", name);
- }
- return 0;
-}
-
-
-int
-krb4_vprintf(const char *fmt, va_list ap)
-{
- char buf[10240];
- char *p;
- char *enc;
- int code;
- int len;
-
- vsnprintf (buf, sizeof(buf), fmt, ap);
- enc = malloc(strlen(buf) + 31);
- if(prot_level == prot_safe){
- len = krb_mk_safe((u_char*)buf, (u_char*)enc, strlen(buf), &auth_dat.session,
- &ctrl_addr, &his_addr);
- code = 631;
- }else if(prot_level == prot_private){
- len = krb_mk_priv((u_char*)buf, (u_char*)enc, strlen(buf), schedule,
- &auth_dat.session, &ctrl_addr, &his_addr);
- code = 632;
- }else{
- len = 0; /* XXX */
- code = 631;
- }
- base64_encode(enc, len, &p);
- fprintf(stdout, "%d %s\r\n", code, p);
- free(enc);
- free(p);
- return 0;
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/krb4.h b/crypto/kerberosIV/appl/ftp/ftpd/krb4.h
deleted file mode 100644
index f777dbd5c2a9..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/krb4.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: krb4.h,v 1.6 1997/04/01 08:17:29 joda Exp $ */
-
-#ifndef __KRB4_H__
-#define __KRB4_H__
-
-#include <stdarg.h>
-
-int krb4_auth(char *auth);
-int krb4_adat(char *auth);
-int krb4_pbsz(int size);
-int krb4_prot(int level);
-int krb4_ccc(void);
-int krb4_mic(char *msg);
-int krb4_conf(char *msg);
-int krb4_enc(char *msg);
-
-int krb4_read(int fd, void *data, int length);
-int krb4_write(int fd, void *data, int length);
-
-int krb4_userok(char *name);
-int krb4_vprintf(const char *fmt, va_list ap);
-
-#endif /* __KRB4_H__ */
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c b/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c
deleted file mode 100644
index 95ab216a1718..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/logwtmp.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: logwtmp.c,v 1.10 1997/05/25 15:17:56 assar Exp $");
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_UTMP_H
-#include <utmp.h>
-#endif
-#ifdef HAVE_UTMPX_H
-#include <utmpx.h>
-#endif
-#include "extern.h"
-
-#ifndef WTMP_FILE
-#ifdef _PATH_WTMP
-#define WTMP_FILE _PATH_WTMP
-#else
-#define WTMP_FILE "/var/adm/wtmp"
-#endif
-#endif
-
-void
-logwtmp(char *line, char *name, char *host)
-{
- static int init = 0;
- static int fd, fdx;
- struct timeval tv;
- struct utmp ut;
-#ifdef WTMPX_FILE
- struct utmpx utx;
-#endif
-
- memset(&ut, 0, sizeof(struct utmp));
-#ifdef HAVE_UT_TYPE
- if(name[0])
- ut.ut_type = USER_PROCESS;
- else
- ut.ut_type = DEAD_PROCESS;
-#endif
- strncpy(ut.ut_line, line, sizeof(ut.ut_line));
- strncpy(ut.ut_name, name, sizeof(ut.ut_name));
-#ifdef HAVE_UT_PID
- ut.ut_pid = getpid();
-#endif
-#ifdef HAVE_UT_HOST
- strncpy(ut.ut_host, host, sizeof(ut.ut_host));
-#endif
- ut.ut_time = time(NULL);
-
-#ifdef WTMPX_FILE
- strncpy(utx.ut_line, line, sizeof(utx.ut_line));
- strncpy(utx.ut_user, name, sizeof(utx.ut_user));
- strncpy(utx.ut_host, host, sizeof(utx.ut_host));
-#ifdef HAVE_UT_SYSLEN
- utx.ut_syslen = strlen(host) + 1;
- if (utx.ut_syslen > sizeof(utx.ut_host))
- utx.ut_syslen = sizeof(utx.ut_host);
-#endif
- gettimeofday (&tv, 0);
- utx.ut_tv.tv_sec = tv.tv_sec;
- utx.ut_tv.tv_usec = tv.tv_usec;
-
- if(name[0])
- utx.ut_type = USER_PROCESS;
- else
- utx.ut_type = DEAD_PROCESS;
-#endif
-
- if(!init){
- fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0);
-#ifdef WTMPX_FILE
- fdx = open(WTMPX_FILE, O_WRONLY|O_APPEND, 0);
-#endif
- init = 1;
- }
- if(fd >= 0) {
- write(fd, &ut, sizeof(struct utmp)); /* XXX */
-#ifdef WTMPX_FILE
- write(fdx, &utx, sizeof(struct utmpx));
-#endif
- }
-}
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/pathnames.h b/crypto/kerberosIV/appl/ftp/ftpd/pathnames.h
deleted file mode 100644
index 1bd2be1a1efa..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/pathnames.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)pathnames.h 8.1 (Berkeley) 6/4/93
- */
-
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-
-#ifndef _PATH_DEVNULL
-#define _PATH_DEVNULL "/dev/null"
-#endif
-
-#ifndef _PATH_NOLOGIN
-#define _PATH_NOLOGIN "/etc/nologin"
-#endif
-
-#ifndef _PATH_BSHELL
-#define _PATH_BSHELL "/bin/sh"
-#endif
-
-#define _PATH_FTPUSERS "/etc/ftpusers"
-#define _PATH_FTPCHROOT "/etc/ftpchroot"
-#define _PATH_FTPWELCOME "/etc/ftpwelcome"
-#define _PATH_FTPLOGINMESG "/etc/motd"
diff --git a/crypto/kerberosIV/appl/ftp/ftpd/popen.c b/crypto/kerberosIV/appl/ftp/ftpd/popen.c
deleted file mode 100644
index 58c4985a0b90..000000000000
--- a/crypto/kerberosIV/appl/ftp/ftpd/popen.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 1988, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software written by Ken Arnold and
- * published in UNIX Review, Vol. 6, No. 8.
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: popen.c,v 1.16 1997/06/01 03:14:06 assar Exp $");
-#endif
-
-#include <sys/types.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#include <sys/wait.h>
-
-#include <errno.h>
-#include <glob.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "extern.h"
-
-#include <roken.h>
-
-/*
- * Special version of popen which avoids call to shell. This ensures
- * no one may create a pipe to a hidden program as a side effect of a
- * list or dir command.
- */
-static int *pids;
-static int fds;
-
-extern int dochroot;
-
-/* return path prepended with ~ftp if that file exists, otherwise
- * return path unchanged
- */
-
-const char *
-ftp_rooted(const char *path)
-{
- static char home[MaxPathLen] = "";
- static char newpath[MaxPathLen];
- struct passwd *pwd;
-
- if(!home[0])
- if((pwd = k_getpwnam("ftp")))
- strcpy(home, pwd->pw_dir);
- snprintf(newpath, sizeof(newpath), "%s/%s", home, path);
- if(access(newpath, X_OK))
- strcpy(newpath, path);
- return newpath;
-}
-
-
-FILE *
-ftpd_popen(char *program, char *type, int do_stderr, int no_glob)
-{
- char *cp;
- FILE *iop;
- int argc, gargc, pdes[2], pid;
- char **pop, *argv[100], *gargv[1000];
- char *foo;
-
- if (strcmp(type, "r") && strcmp(type, "w"))
- return (NULL);
-
- if (!pids) {
-
- /* This function is ugly and should be rewritten, in
- * modern unices there is no such thing as a maximum
- * filedescriptor.
- */
-
- fds = getdtablesize();
- pids = (int*)calloc(fds, sizeof(int));
- if(!pids)
- return NULL;
- }
- if (pipe(pdes) < 0)
- return (NULL);
-
- /* break up string into pieces */
- for (argc = 0, cp = program;; cp = NULL) {
- foo = NULL;
- if (!(argv[argc++] = strtok_r(cp, " \t\n", &foo)))
- break;
- }
-
- gargv[0] = (char*)ftp_rooted(argv[0]);
- /* glob each piece */
- for (gargc = argc = 1; argv[argc]; argc++) {
- glob_t gl;
- int flags = GLOB_BRACE|GLOB_NOCHECK|GLOB_QUOTE|GLOB_TILDE;
-
- memset(&gl, 0, sizeof(gl));
- if (no_glob || glob(argv[argc], flags, NULL, &gl))
- gargv[gargc++] = strdup(argv[argc]);
- else
- for (pop = gl.gl_pathv; *pop; pop++)
- gargv[gargc++] = strdup(*pop);
- globfree(&gl);
- }
- gargv[gargc] = NULL;
-
- iop = NULL;
- switch(pid = fork()) {
- case -1: /* error */
- close(pdes[0]);
- close(pdes[1]);
- goto pfree;
- /* NOTREACHED */
- case 0: /* child */
- if (*type == 'r') {
- if (pdes[1] != STDOUT_FILENO) {
- dup2(pdes[1], STDOUT_FILENO);
- close(pdes[1]);
- }
- if(do_stderr)
- dup2(STDOUT_FILENO, STDERR_FILENO);
- close(pdes[0]);
- } else {
- if (pdes[0] != STDIN_FILENO) {
- dup2(pdes[0], STDIN_FILENO);
- close(pdes[0]);
- }
- close(pdes[1]);
- }
- execv(gargv[0], gargv);
- gargv[0] = argv[0];
- execv(gargv[0], gargv);
- _exit(1);
- }
- /* parent; assume fdopen can't fail... */
- if (*type == 'r') {
- iop = fdopen(pdes[0], type);
- close(pdes[1]);
- } else {
- iop = fdopen(pdes[1], type);
- close(pdes[0]);
- }
- pids[fileno(iop)] = pid;
-
-pfree:
- for (argc = 1; gargv[argc] != NULL; argc++)
- free(gargv[argc]);
-
-
- return (iop);
-}
-
-int
-ftpd_pclose(FILE *iop)
-{
- int fdes, status;
- pid_t pid;
- sigset_t sigset, osigset;
-
- /*
- * pclose returns -1 if stream is not associated with a
- * `popened' command, or, if already `pclosed'.
- */
- if (pids == 0 || pids[fdes = fileno(iop)] == 0)
- return (-1);
- fclose(iop);
- sigemptyset(&sigset);
- sigaddset(&sigset, SIGINT);
- sigaddset(&sigset, SIGQUIT);
- sigaddset(&sigset, SIGHUP);
- sigprocmask(SIG_BLOCK, &sigset, &osigset);
- while ((pid = waitpid(pids[fdes], &status, 0)) < 0 && errno == EINTR)
- continue;
- sigprocmask(SIG_SETMASK, &osigset, NULL);
- pids[fdes] = 0;
- if (pid < 0)
- return (pid);
- if (WIFEXITED(status))
- return (WEXITSTATUS(status));
- return (1);
-}
diff --git a/crypto/kerberosIV/appl/kauth/Makefile.in b/crypto/kerberosIV/appl/kauth/Makefile.in
deleted file mode 100644
index 97bfdb42edf7..000000000000
--- a/crypto/kerberosIV/appl/kauth/Makefile.in
+++ /dev/null
@@ -1,112 +0,0 @@
-# $Id: Makefile.in,v 1.33 1997/04/05 21:24:35 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-topdir = ../..
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@ -DBINDIR='"$(bindir)"'
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @LIBS@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-bindir = @bindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROG_BIN = kauth$(EXECSUFFIX) ksrvtgt
-PROG_LIBEXEC = kauthd$(EXECSUFFIX)
-PROGS = $(PROG_BIN) $(PROG_LIBEXEC)
-
-SOURCES_KAUTH = kauth.c rkinit.c
-SOURCES_KAUTHD = kauthd.c
-SOURCES_COMMON = encdata.c marshall.c
-
-OBJECTS_KAUTH = kauth.o rkinit.o
-OBJECTS_KAUTHD = kauthd.o
-OBJECTS_COMMON = marshall.o encdata.o
-
-OBJECTS = $(OBJECTS_KAUTH) $(OBJECTS_KAUTHD)
-SOURCES = $(SOURCES_KAUTH) $(SOURCES_KAUTHD) $(SOURCES_COMMON)
-
-KRB_KAFS_LIB = @KRB_KAFS_LIB@
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(bindir) $(libexecdir)
- for x in $(PROG_BIN); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
- if test -f $(bindir)/zrefresh -o -r $(bindir)/zrefresh; then \
- true; \
- else \
- $(INSTALL_PROGRAM) $(srcdir)/zrefresh $(bindir)/`echo zrefresh | sed '$(transform)'`; \
- fi
- for x in $(PROG_LIBEXEC); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x| sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROG_BIN); do \
- rm -f $(bindir)/`echo $$x| sed '$(transform)'`; \
- done
- for x in $(PROG_LIBEXEC); do \
- rm -f $(libexecdir)/`echo $$x| sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../../lib/krb -lkrb -L../../lib/des -ldes
-LIBROKEN=-L../../lib/roken -lroken
-
-kauth$(EXECSUFFIX): $(OBJECTS_KAUTH) $(OBJECTS_COMMON)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(OBJECTS_KAUTH) $(OBJECTS_COMMON) $(KRB_KAFS_LIB) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-kauthd$(EXECSUFFIX): $(OBJECTS_KAUTHD) $(OBJECTS_COMMON)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(OBJECTS_KAUTHD) $(OBJECTS_COMMON) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-ksrvtgt: ksrvtgt.in
- sed -e "s!%bindir%!$(bindir)!" $(srcdir)/ksrvtgt.in > $@
- chmod +x $@
-
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/appl/kauth/encdata.c b/crypto/kerberosIV/appl/kauth/encdata.c
deleted file mode 100644
index 800326a4fc83..000000000000
--- a/crypto/kerberosIV/appl/kauth/encdata.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kauth.h"
-
-RCSID("$Id: encdata.c,v 1.9 1997/04/01 08:17:30 joda Exp $");
-
-int
-write_encrypted (int fd, void *buf, size_t len, des_key_schedule schedule,
- des_cblock *session, struct sockaddr_in *me,
- struct sockaddr_in *him)
-{
- void *outbuf;
- int32_t outlen, l;
- int i;
- unsigned char tmp[4];
-
- outbuf = malloc(len + 30);
- if (outbuf == NULL)
- return -1;
- outlen = krb_mk_priv (buf, outbuf, len, schedule, session, me, him);
- if (outlen < 0) {
- free(outbuf);
- return -1;
- }
- l = outlen;
- for(i = 3; i >= 0; i--, l = l >> 8)
- tmp[i] = l & 0xff;
- if (krb_net_write (fd, tmp, 4) != 4 ||
- krb_net_write (fd, outbuf, outlen) != outlen) {
- free(outbuf);
- return -1;
- }
-
- free(outbuf);
- return 0;
-}
-
-
-int
-read_encrypted (int fd, void *buf, size_t len, void **ret,
- des_key_schedule schedule, des_cblock *session,
- struct sockaddr_in *him, struct sockaddr_in *me)
-{
- int status;
- int32_t l;
- MSG_DAT msg;
- unsigned char tmp[4];
-
- l = krb_net_read (fd, tmp, 4);
- if (l != 4)
- return l;
- l = (tmp[0] << 24) | (tmp[1] << 16) | (tmp[2] << 8) | tmp[3];
- if (l > len)
- return -1;
- if (krb_net_read (fd, buf, l) != l)
- return -1;
- status = krb_rd_priv (buf, l, schedule, session, him, me, &msg);
- if (status != RD_AP_OK) {
- fprintf (stderr, "read_encrypted: %s\n",
- krb_get_err_text(status));
- return -1;
- }
- *ret = msg.app_data;
- return msg.app_length;
-}
diff --git a/crypto/kerberosIV/appl/kauth/kauth.c b/crypto/kerberosIV/appl/kauth/kauth.c
deleted file mode 100644
index 84614b048e4f..000000000000
--- a/crypto/kerberosIV/appl/kauth/kauth.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/*
- * Little program that reads an srvtab or password and
- * creates a suitable ticketfile and associated AFS tokens.
- *
- * If an optional command is given the command is executed in a
- * new PAG and when the command exits the tickets are destroyed.
- */
-
-#include "kauth.h"
-
-RCSID("$Id: kauth.c,v 1.75 1997/05/02 15:09:24 assar Exp $");
-
-krb_principal princ;
-static char srvtab[MaxPathLen + 1];
-static int lifetime = DEFAULT_TKT_LIFE;
-static char remote_tktfile[MaxPathLen + 1];
-static char remoteuser[100];
-static char *cell = 0;
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "Usage: %s [-n <name>] [-r remoteuser] [-t remote ticketfile]"
- "[-l lifetime (in minutes) ] [-h hosts... ]"
- "[-f srvtab ] [-c AFS cell name ] [command ... ]\n",
- __progname);
- fprintf(stderr, "\nA fully qualified name can be given user[.instance][@realm]\nRealm is converted to uppercase!\n");
- exit(1);
-}
-
-static void
-doexec(int argc, char **argv)
-{
- int status;
- pid_t ret;
-
- switch (fork()) {
- case -1:
- err (1, "fork");
- break;
- case 0:
- /* in child */
- execvp(argv[0], argv);
- err (1, "Can't exec program ``%s''", argv[0]);
- break;
- default:
- /* in parent */
- do {
- ret = wait(&status);
- } while ((ret > 0 && !WIFEXITED(status)) || (ret < 0 && errno == EINTR));
- if (ret < 0)
- perror("wait");
- dest_tkt();
- if (k_hasafs())
- k_unlog();
- break;
- }
-}
-
-static RETSIGTYPE
-renew(int sig)
-{
- int code;
-
- signal(SIGALRM, renew);
-
- code = krb_get_svc_in_tkt(princ.name, princ.instance, princ.realm,
- KRB_TICKET_GRANTING_TICKET,
- princ.realm, lifetime, srvtab);
- if (code)
- warnx ("%s", krb_get_err_text(code));
- else if (k_hasafs())
- {
- if ((code = k_afsklog(cell, NULL)) != 0 && code != KDC_PR_UNKNOWN) {
- warnx ("%s", krb_get_err_text(code));
- }
- }
-
- alarm(krb_life_to_time(0, lifetime)/2 - 60);
- SIGRETURN(0);
-}
-
-static int
-zrefresh(void)
-{
- switch (fork()) {
- case -1:
- err (1, "Warning: Failed to fork zrefresh");
- return -1;
- case 0:
- /* Child */
- execlp("zrefresh", "zrefresh", 0);
- execl(BINDIR "/zrefresh", "zrefresh", 0);
- exit(1);
- default:
- /* Parent */
- break;
- }
- return 0;
-}
-
-static int
-key_to_key(char *user, char *instance, char *realm, void *arg,
- des_cblock *key)
-{
- memcpy(key, arg, sizeof(des_cblock));
- return 0;
-}
-
-int
-main(int argc, char **argv)
-{
- int code, more_args;
- int ret;
- int c;
- char *file;
- int pflag = 0;
- char passwd[100];
- des_cblock key;
- char **host;
- int nhost;
- char tf[MaxPathLen];
-
- set_progname (argv[0]);
-
- if ((file = getenv("KRBTKFILE")) == 0)
- file = TKT_FILE;
-
- memset(&princ, 0, sizeof(princ));
- memset(srvtab, 0, sizeof(srvtab));
- *remoteuser = '\0';
- nhost = 0;
-
- while ((c = getopt(argc, argv, "r:t:f:hl:n:c:")) != EOF)
- switch (c) {
- case 'f':
- strncpy(srvtab, optarg, sizeof(srvtab));
- break;
- case 't':
- strncpy(remote_tktfile, optarg, sizeof(remote_tktfile));
- break;
- case 'r':
- strncpy(remoteuser, optarg, sizeof(remoteuser));
- break;
- case 'l':
- lifetime = atoi(optarg);
- if (lifetime == -1)
- lifetime = 255;
- else if (lifetime < 5)
- lifetime = 1;
- else
- lifetime = krb_time_to_life(0, lifetime*60);
- if (lifetime > 255)
- lifetime = 255;
- break;
- case 'n':
- if ((code = krb_parse_name(optarg, &princ)) != 0) {
- warnx ("%s", krb_get_err_text(code));
- usage();
- }
- strupr(princ.realm);
- pflag = 1;
- break;
- case 'c':
- cell = optarg;
- break;
- case 'h':
- host = argv + optind;
- for(nhost = 0; optind < argc && *argv[optind] != '-'; ++optind)
- ++nhost;
- break;
- case '?':
- default:
- usage();
- break;
- }
-
- /* Look for kerberos name */
- if (!pflag && optind < argc && krb_parse_name(argv[optind], &princ) == 0) {
- ++optind;
- strupr(princ.realm);
- }
-
- if (princ.name[0] == '\0' && krb_get_default_principal (princ.name,
- princ.instance,
- princ.realm) < 0)
- errx (1, "Could not get default principal");
-
- if (*remoteuser == '\0')
- strcpy (remoteuser, princ.name);
-
- more_args = argc - optind;
-
- if (princ.realm[0] == '\0')
- if (krb_get_lrealm(princ.realm, 1) != KSUCCESS)
- strcpy(princ.realm, KRB_REALM);
-
- if (more_args) {
- int f;
-
- do{
- snprintf(tf, sizeof(tf),
- TKT_ROOT "%u_%u",
- (unsigned)getuid(),
- (unsigned)(getpid()*time(0)));
- f = open(tf, O_CREAT|O_EXCL|O_RDWR);
- }while(f < 0);
- close(f);
- unlink(tf);
- setenv("KRBTKFILE", tf, 1);
- krb_set_tkt_string (tf);
- }
-
- if (srvtab[0])
- {
- signal(SIGALRM, renew);
-
- code = read_service_key (princ.name, princ.instance, princ.realm, 0,
- srvtab, (char *)&key);
- if (code == KSUCCESS)
- code = krb_get_in_tkt(princ.name, princ.instance, princ.realm,
- KRB_TICKET_GRANTING_TICKET,
- princ.realm, lifetime,
- key_to_key, NULL, key);
- alarm(krb_life_to_time(0, lifetime)/2 - 60);
- }
- else {
- char prompt[128];
-
- snprintf(prompt, sizeof(prompt), "%s's Password: ", krb_unparse_name(&princ));
- if (des_read_pw_string(passwd, sizeof(passwd)-1, prompt, 0)){
- memset(passwd, 0, sizeof(passwd));
- exit(1);
- }
- des_string_to_key (passwd, &key);
- code = krb_get_in_tkt (princ.name, princ.instance, princ.realm,
- KRB_TICKET_GRANTING_TICKET,
- princ.realm, lifetime,
- key_to_key, NULL, key);
- if(code == INTK_BADPW) {
- afs_string_to_key (passwd, princ.realm, &key);
- code = krb_get_in_tkt (princ.name, princ.instance, princ.realm,
- KRB_TICKET_GRANTING_TICKET,
- princ.realm, lifetime,
- key_to_key, NULL, key);
- }
- memset(passwd, 0, sizeof(passwd));
- }
- if (code) {
- memset (key, 0, sizeof(key));
- errx (1, "%s", krb_get_err_text(code));
- }
-
- if (k_hasafs()) {
- if (more_args)
- k_setpag();
- if ((code = k_afsklog(cell, NULL)) != 0 && code != KDC_PR_UNKNOWN)
- warnx ("%s", krb_get_err_text(code));
- }
-
- for(ret = 0; nhost-- > 0; host++)
- ret += rkinit(&princ, lifetime, remoteuser, remote_tktfile, &key, *host);
-
- if (ret)
- return ret;
-
- if (more_args)
- doexec(more_args, &argv[optind]);
- else
- zrefresh();
-
- return 0;
-}
diff --git a/crypto/kerberosIV/appl/kauth/kauth.h b/crypto/kerberosIV/appl/kauth/kauth.h
deleted file mode 100644
index 2c48fcc7e327..000000000000
--- a/crypto/kerberosIV/appl/kauth/kauth.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kauth.h,v 1.18 1997/05/20 18:40:31 bg Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <signal.h>
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <errno.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif /* HAVE_SYS_RESOURCE_H */
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <err.h>
-
-#include <krb.h>
-#include <kafs.h>
-
-#include <roken.h>
-
-#define KAUTH_PORT 2120
-
-#define KAUTH_VERSION "RKINIT.0"
-
-int rkinit (krb_principal*, int, char*, char*, des_cblock*, char*);
-
-int write_encrypted (int, void*, size_t, des_key_schedule,
- des_cblock*, struct sockaddr_in*, struct sockaddr_in*);
-
-int read_encrypted (int, void*, size_t, void **, des_key_schedule,
- des_cblock*, struct sockaddr_in*, struct sockaddr_in*);
-
-unsigned pack_args (char *, krb_principal*, int, char*, char*);
-
-int unpack_args (char*, krb_principal*, int*, char*, char*);
diff --git a/crypto/kerberosIV/appl/kauth/kauthd.c b/crypto/kerberosIV/appl/kauth/kauthd.c
deleted file mode 100644
index b6a40cf9a0ac..000000000000
--- a/crypto/kerberosIV/appl/kauth/kauthd.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kauth.h"
-
-RCSID("$Id: kauthd.c,v 1.22 1997/05/18 20:37:55 assar Exp $");
-
-krb_principal princ;
-static char locuser[SNAME_SZ + 1];
-static int lifetime;
-static char tktfile[MaxPathLen + 1];
-
-struct remote_args {
- int sock;
- des_key_schedule *schedule;
- des_cblock *session;
- struct sockaddr_in *me, *her;
-};
-
-static int
-decrypt_remote_tkt (char *user, char *inst, char *realm, void *varg,
- key_proc_t key_proc, KTEXT *cipp)
-{
- char buf[BUFSIZ];
- void *ptr;
- int len;
- KTEXT cip = *cipp;
- struct remote_args *args = (struct remote_args *)varg;
-
- write_encrypted (args->sock, cip->dat, cip->length,
- *args->schedule, args->session, args->me,
- args->her);
- len = read_encrypted (args->sock, buf, sizeof(buf), &ptr, *args->schedule,
- args->session, args->her, args->me);
- memcpy(cip->dat, ptr, cip->length);
-
- return 0;
-}
-
-static int
-doit(int sock)
-{
- int status;
- KTEXT_ST ticket;
- AUTH_DAT auth;
- char instance[INST_SZ + 1];
- des_key_schedule schedule;
- struct sockaddr_in thisaddr, thataddr;
- int addrlen;
- int len;
- char buf[BUFSIZ];
- void *data;
- struct passwd *passwd;
- char version[KRB_SENDAUTH_VLEN + 1];
- char remotehost[MaxHostNameLen];
-
- addrlen = sizeof(thisaddr);
- if (getsockname (sock, (struct sockaddr *)&thisaddr, &addrlen) < 0 ||
- addrlen != sizeof(thisaddr)) {
- return 1;
- }
- addrlen = sizeof(thataddr);
- if (getpeername (sock, (struct sockaddr *)&thataddr, &addrlen) < 0 ||
- addrlen != sizeof(thataddr)) {
- return 1;
- }
-
- inaddr2str (thataddr.sin_addr, remotehost, sizeof(remotehost));
-
- k_getsockinst (sock, instance, sizeof(instance));
- status = krb_recvauth (KOPT_DO_MUTUAL, sock, &ticket, "rcmd", instance,
- &thataddr, &thisaddr, &auth, "", schedule,
- version);
- if (status != KSUCCESS ||
- strncmp(version, KAUTH_VERSION, KRB_SENDAUTH_VLEN) != 0) {
- return 1;
- }
- len = read_encrypted (sock, buf, sizeof(buf), &data, schedule,
- &auth.session, &thataddr, &thisaddr);
- if (len < 0) {
- write_encrypted (sock, "read_enc failed",
- sizeof("read_enc failed") - 1, schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
- if (unpack_args(data, &princ, &lifetime, locuser,
- tktfile)) {
- write_encrypted (sock, "unpack_args failed",
- sizeof("unpack_args failed") - 1, schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
-
- if( kuserok(&auth, locuser) != 0) {
- snprintf(buf, sizeof(buf), "%s cannot get tickets for %s",
- locuser, krb_unparse_name(&princ));
- syslog (LOG_ERR, buf);
- write_encrypted (sock, buf, strlen(buf), schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
- passwd = k_getpwnam (locuser);
- if (passwd == NULL) {
- snprintf (buf, sizeof(buf), "No user '%s'", locuser);
- syslog (LOG_ERR, buf);
- write_encrypted (sock, buf, strlen(buf), schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
- if (setgid (passwd->pw_gid) ||
- initgroups(passwd->pw_name, passwd->pw_gid) ||
- setuid(passwd->pw_uid)) {
- snprintf (buf, sizeof(buf), "Could not change user");
- syslog (LOG_ERR, buf);
- write_encrypted (sock, buf, strlen(buf), schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
- write_encrypted (sock, "ok", sizeof("ok") - 1, schedule,
- &auth.session, &thisaddr, &thataddr);
-
- if (*tktfile == 0)
- snprintf(tktfile, sizeof(tktfile), "%s%u", TKT_ROOT, (unsigned)getuid());
- krb_set_tkt_string (tktfile);
-
- {
- struct remote_args arg;
-
- arg.sock = sock;
- arg.schedule = &schedule;
- arg.session = &auth.session;
- arg.me = &thisaddr;
- arg.her = &thataddr;
-
- status = krb_get_in_tkt (princ.name, princ.instance, princ.realm,
- KRB_TICKET_GRANTING_TICKET,
- princ.realm,
- lifetime, NULL, decrypt_remote_tkt, &arg);
- }
- if (status == KSUCCESS) {
- syslog (LOG_INFO, "from %s(%s): %s -> %s",
- remotehost,
- inet_ntoa(thataddr.sin_addr),
- locuser,
- krb_unparse_name (&princ));
- write_encrypted (sock, "ok", sizeof("ok") - 1, schedule,
- &auth.session, &thisaddr, &thataddr);
- return 0;
- } else {
- snprintf (buf, sizeof(buf), "TGT failed: %s", krb_get_err_text(status));
- syslog (LOG_NOTICE, buf);
- write_encrypted (sock, buf, strlen(buf), schedule,
- &auth.session, &thisaddr, &thataddr);
- return 1;
- }
-}
-
-int
-main (int argc, char **argv)
-{
- openlog ("kauthd", LOG_ODELAY, LOG_AUTH);
-
- if(argc > 1 && strcmp(argv[1], "-i") == 0)
- mini_inetd (k_getportbyname("kauth", "tcp", htons(KAUTH_PORT)));
- return doit(STDIN_FILENO);
-}
diff --git a/crypto/kerberosIV/appl/kauth/ksrvtgt.in b/crypto/kerberosIV/appl/kauth/ksrvtgt.in
deleted file mode 100644
index 7571d2d0778b..000000000000
--- a/crypto/kerberosIV/appl/kauth/ksrvtgt.in
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /bin/sh
-# $Id$
-
-usage="Usage: `basename $0` name instance [[realm] srvtab]"
-
-if [ $# -lt 2 -o $# -gt 4 ]; then
- echo "$usage"
- exit 1
-fi
-
-srvtab="${4-${3-/etc/kerberosIV/srvtab}}"
-realm="${4+@$3}"
-
-kauth -n "$1.$2$realm" -l 5 -f "$srvtab "
diff --git a/crypto/kerberosIV/appl/kauth/marshall.c b/crypto/kerberosIV/appl/kauth/marshall.c
deleted file mode 100644
index 4f1bfeb84f6c..000000000000
--- a/crypto/kerberosIV/appl/kauth/marshall.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kauth.h"
-
-RCSID("$Id: marshall.c,v 1.7 1997/04/01 08:17:32 joda Exp $");
-
-unsigned
-pack_args (char *buf, krb_principal *pr, int lifetime,
- char *locuser, char *tktfile)
-{
- char *p;
-
- p = buf;
- strcpy (p, pr->name);
- p += strlen (pr->name) + 1;
- strcpy (p, pr->instance);
- p += strlen (pr->instance) + 1;
- strcpy (p, pr->realm);
- p += strlen (pr->realm) + 1;
- *p++ = (unsigned char)lifetime;
- strcpy(p, locuser);
- p += strlen (locuser) + 1;
- strcpy(p, tktfile);
- p += strlen(tktfile) + 1;
- return p - buf;
-}
-
-int
-unpack_args (char *buf, krb_principal *pr, int *lifetime,
- char *locuser, char *tktfile)
-{
- int len;
-
- len = strlen(buf);
- if (len > SNAME_SZ)
- return -1;
- strncpy(pr->name, buf, len + 1);
- buf += len + 1;
- len = strlen (buf);
- if (len > INST_SZ)
- return -1;
- strncpy (pr->instance, buf, len + 1);
- buf += len + 1;
- len = strlen (buf);
- if (len > REALM_SZ)
- return -1;
- strncpy (pr->realm, buf, len + 1);
- buf += len + 1;
- *lifetime = (unsigned char)*buf++;
- len = strlen(buf);
- if (len > SNAME_SZ)
- return -1;
- strncpy (locuser, buf, len + 1);
- buf += len + 1;
- len = strlen(buf);
- if (len > MaxPathLen)
- return -1;
- strncpy (tktfile, buf, len + 1);
- buf += len + 1;
- return 0;
-}
diff --git a/crypto/kerberosIV/appl/kauth/rkinit.c b/crypto/kerberosIV/appl/kauth/rkinit.c
deleted file mode 100644
index ec75d4634b3a..000000000000
--- a/crypto/kerberosIV/appl/kauth/rkinit.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kauth.h"
-
-RCSID("$Id: rkinit.c,v 1.19 1997/04/01 08:17:33 joda Exp $");
-
-static struct in_addr *
-getalladdrs (char *hostname, unsigned *count)
-{
- struct hostent *hostent;
- struct in_addr **h;
- struct in_addr *addr;
- unsigned naddr;
- unsigned maxaddr;
-
- hostent = gethostbyname (hostname);
- if (hostent == NULL) {
- warnx ("gethostbyname '%s' failed: %s\n",
- hostname,
-#ifdef HAVE_H_ERRNO
- hstrerror(h_errno)
-#else
- "unknown error"
-#endif
- );
- return NULL;
- }
- maxaddr = 1;
- naddr = 0;
- addr = malloc(sizeof(*addr) * maxaddr);
- if (addr == NULL) {
- warnx ("out of memory");
- return NULL;
- }
- for (h = (struct in_addr **)(hostent->h_addr_list);
- *h != NULL;
- h++) {
- if (naddr >= maxaddr) {
- maxaddr *= 2;
- addr = realloc (addr, sizeof(*addr) * maxaddr);
- if (addr == NULL) {
- warnx ("out of memory");
- return NULL;
- }
- }
- addr[naddr++] = **h;
- }
- addr = realloc (addr, sizeof(*addr) * naddr);
- if (addr == NULL) {
- warnx ("out of memory");
- return NULL;
- }
- *count = naddr;
- return addr;
-}
-
-static int
-doit_host (krb_principal *princ, int lifetime, char *locuser,
- char *tktfile, des_cblock *key, int s, char *hostname)
-{
- char buf[BUFSIZ];
- int inlen;
- KTEXT_ST text;
- CREDENTIALS cred;
- MSG_DAT msg;
- int status;
- des_key_schedule schedule;
- struct sockaddr_in thisaddr, thataddr;
- int addrlen;
- void *ret;
-
- addrlen = sizeof(thisaddr);
- if (getsockname (s, (struct sockaddr *)&thisaddr, &addrlen) < 0 ||
- addrlen != sizeof(thisaddr)) {
- warn ("getsockname(%s)", hostname);
- return 1;
- }
- addrlen = sizeof(thataddr);
- if (getpeername (s, (struct sockaddr *)&thataddr, &addrlen) < 0 ||
- addrlen != sizeof(thataddr)) {
- warn ("getpeername(%s)", hostname);
- return 1;
- }
-
- status = krb_sendauth (KOPT_DO_MUTUAL, s, &text, "rcmd",
- hostname, krb_realmofhost (hostname),
- getpid(), &msg, &cred, schedule,
- &thisaddr, &thataddr, KAUTH_VERSION);
- if (status != KSUCCESS) {
- warnx ("%s: %s\n", hostname, krb_get_err_text(status));
- return 1;
- }
- inlen = pack_args (buf, princ, lifetime, locuser, tktfile);
-
- if (write_encrypted(s, buf, inlen, schedule, &cred.session,
- &thisaddr, &thataddr) < 0) {
- warn ("write to %s", hostname);
- return 1;
- }
-
- inlen = read_encrypted (s, buf, sizeof(buf), &ret, schedule,
- &cred.session, &thataddr, &thisaddr);
- if (inlen < 0) {
- warn ("read from %s failed", hostname);
- return 1;
- }
-
- if (strncmp(ret, "ok", inlen) != 0) {
- warnx ("error from %s: %.*s\n",
- hostname, inlen, (char *)ret);
- return 1;
- }
-
- inlen = read_encrypted (s, buf, sizeof(buf), &ret, schedule,
- &cred.session, &thataddr, &thisaddr);
- if (inlen < 0) {
- warn ("read from %s", hostname);
- return 1;
- }
-
- {
- des_key_schedule key_s;
-
- des_key_sched(key, key_s);
- des_pcbc_encrypt(ret, ret, inlen, key_s, key, DES_DECRYPT);
- memset(key_s, 0, sizeof(key_s));
- }
- write_encrypted (s, ret, inlen, schedule, &cred.session,
- &thisaddr, &thataddr);
-
- inlen = read_encrypted (s, buf, sizeof(buf), &ret, schedule,
- &cred.session, &thataddr, &thisaddr);
- if (inlen < 0) {
- warn ("read from %s", hostname);
- return 1;
- }
-
- if (strncmp(ret, "ok", inlen) != 0) {
- warnx ("error from %s: %.*s\n",
- hostname, inlen, (char *)ret);
- return 1;
- }
- return 0;
-}
-
-int
-rkinit (krb_principal *princ, int lifetime, char *locuser,
- char *tktfile, des_cblock *key, char *hostname)
-{
- struct in_addr *addr;
- unsigned naddr;
- unsigned i;
- int port;
- int success;
-
- addr = getalladdrs (hostname, &naddr);
- if (addr == NULL)
- return 1;
- port = k_getportbyname ("kauth", "tcp", htons(KAUTH_PORT));
- success = 0;
- for (i = 0; !success && i < naddr; ++i) {
- struct sockaddr_in a;
- int s;
-
- memset(&a, 0, sizeof(a));
- a.sin_family = AF_INET;
- a.sin_port = port;
- a.sin_addr = addr[i];
-
- s = socket (AF_INET, SOCK_STREAM, 0);
- if (s < 0) {
- warn("socket");
- return 1;
- }
- if (connect(s, (struct sockaddr *)&a, sizeof(a)) < 0) {
- warn("connect(%s)", hostname);
- continue;
- }
-
- success = success || !doit_host (princ, lifetime,
- locuser, tktfile, key,
- s, hostname);
- close (s);
- }
- return !success;
-}
diff --git a/crypto/kerberosIV/appl/kauth/zrefresh b/crypto/kerberosIV/appl/kauth/zrefresh
deleted file mode 100644
index 8347a1b33c0c..000000000000
--- a/crypto/kerberosIV/appl/kauth/zrefresh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-#
-# @(#) $Id: zrefresh,v 1.3 1996/06/09 19:21:59 joda Exp $
-#
-# Substitute this script with a real zrefresh if running Zephyr. For
-# instance:
-#
-# if [ -f "$WGFILE" ] ; then
-# zctl load
-# fi
-
-exit 0
diff --git a/crypto/kerberosIV/appl/kip/Makefile.in b/crypto/kerberosIV/appl/kip/Makefile.in
deleted file mode 100644
index 690a66117d0d..000000000000
--- a/crypto/kerberosIV/appl/kip/Makefile.in
+++ /dev/null
@@ -1,96 +0,0 @@
-# $Id: Makefile.in,v 1.12 1997/03/23 13:04:03 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @LIBS@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libexecdir = @libexecdir@
-libdir = @libdir@
-bindir = @bindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROG_BIN = kip$(EXECSUFFIX)
-PROG_LIBEXEC = kipd$(EXECSUFFIX)
-PROGS = $(PROG_BIN) $(PROG_LIBEXEC)
-
-SOURCES_KIP = kip.c
-SOURCES_KIPD = kipd.c
-SOURCES_COMMON = common.c
-
-OBJECTS_KIP = kip.o common.o
-OBJECTS_KIPD = kipd.o common.o
-
-OBJECTS = $(OBJECTS_KIP) $(OBJECTS_KIPD)
-SOURCES = $(SOURCES_KIP) $(SOURCES_KIPD) $(SOURCES_COMMON)
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(bindir) $(libexecdir)
- for x in $(PROG_BIN); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- for x in $(PROG_LIBEXEC); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROG_BIN); do \
- rm -f $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- for x in $(PROG_LIBEXEC); do \
- rm -f $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../../lib/krb -lkrb -L../../lib/des -ldes
-LIBROKEN=-L../../lib/roken -lroken
-
-kip$(EXECSUFFIX): $(OBJECTS_KIP)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(OBJECTS_KIP) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-kipd$(EXECSUFFIX): $(OBJECTS_KIPD)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(OBJECTS_KIPD) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/appl/kip/common.c b/crypto/kerberosIV/appl/kip/common.c
deleted file mode 100644
index b21d03dc866c..000000000000
--- a/crypto/kerberosIV/appl/kip/common.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kip.h"
-
-RCSID("$Id: common.c,v 1.12 1997/05/02 14:28:06 assar Exp $");
-
-/*
- * Copy packets from `tundev' to `netdev' or vice versa.
- * Mode is used when reading from `tundev'
- */
-
-int
-copy_packets (int tundev, int netdev, int mtu, des_cblock *iv,
- des_key_schedule schedule)
-{
- des_cblock iv1, iv2;
- int num1 = 0, num2 = 0;
- u_char *buf;
-
- buf = malloc (mtu + 2);
- if (buf == NULL) {
- warnx("malloc(%d) failed", mtu);
- return 1;
- }
-
- memcpy (&iv1, iv, sizeof(iv1));
- memcpy (&iv2, iv, sizeof(iv2));
- for (;;) {
- fd_set fdset;
- int ret, len;
-
- FD_ZERO(&fdset);
- FD_SET(tundev, &fdset);
- FD_SET(netdev, &fdset);
-
- ret = select (max(tundev, netdev)+1, &fdset, NULL, NULL, NULL);
- if (ret < 0 && errno != EINTR) {
- warn ("select");
- return 1;
- }
- if (FD_ISSET(tundev, &fdset)) {
- ret = read (tundev, buf + 2, mtu);
- if (ret == 0)
- return 0;
- if (ret < 0) {
- if (errno == EINTR)
- continue;
- else {
- warn("read");
- return ret;
- }
- }
- buf[0] = ret >> 8;
- buf[1] = ret & 0xFF;
- ret += 2;
- des_cfb64_encrypt (buf, buf, ret, schedule,
- &iv1, &num1, DES_ENCRYPT);
- ret = krb_net_write (netdev, buf, ret);
- if (ret < 0) {
- warn("write");
- return ret;
- }
- }
- if (FD_ISSET(netdev, &fdset)) {
- ret = read (netdev, buf, 2);
- if (ret == 0)
- return 0;
- if (ret < 0) {
- if (errno == EINTR)
- continue;
- else {
- warn("read");
- return ret;
- }
- }
- des_cfb64_encrypt (buf, buf, 2, schedule,
- &iv2, &num2, DES_DECRYPT);
- len = (buf[0] << 8 ) | buf[1];
- ret = krb_net_read (netdev, buf + 2, len);
- if (ret == 0)
- return 0;
- if (ret < 0) {
- if (errno == EINTR)
- continue;
- else {
- warn("read");
- return ret;
- }
- }
- des_cfb64_encrypt (buf + 2, buf + 2, len, schedule,
- &iv2, &num2, DES_DECRYPT);
- ret = krb_net_write (tundev, buf + 2, len);
- if (ret < 0) {
- warn("write");
- return ret;
- }
- }
- }
-}
-
-/*
- * Signal handler that justs waits for the children when they die.
- */
-
-RETSIGTYPE
-childhandler (int sig)
-{
- pid_t pid;
- int status;
-
- do {
- pid = waitpid (-1, &status, WNOHANG|WUNTRACED);
- } while(pid > 0);
- signal (SIGCHLD, childhandler);
- SIGRETURN(0);
-}
-
-/*
- * Find a free tunnel device and open it.
- */
-
-int
-tunnel_open (void)
-{
- int fd;
- int i;
- char name[64];
-
- for (i = 0; i < 256; ++i) {
- snprintf (name, sizeof(name), "%s%s%d", _PATH_DEV, TUNDEV, i);
- fd = open (name, O_RDWR, 0);
- if (fd >= 0)
- break;
- if (errno == ENOENT || errno == ENODEV) {
- warn("open %s", name);
- return fd;
- }
- }
- if (fd < 0)
- warn("open %s" ,name);
- return fd;
-}
diff --git a/crypto/kerberosIV/appl/kip/kip.c b/crypto/kerberosIV/appl/kip/kip.c
deleted file mode 100644
index e324a280ec49..000000000000
--- a/crypto/kerberosIV/appl/kip/kip.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kip.h"
-
-RCSID("$Id: kip.c,v 1.15 1997/05/11 10:54:51 assar Exp $");
-
-static void
-usage()
-{
- fprintf (stderr, "Usage: %s host\n",
- __progname);
- exit (1);
-}
-
-/*
- * Establish authenticated connection
- */
-
-static int
-connect_host (char *host, des_cblock *key, des_key_schedule schedule)
-{
- CREDENTIALS cred;
- KTEXT_ST text;
- MSG_DAT msg;
- int status;
- struct sockaddr_in thisaddr, thataddr;
- int addrlen;
- struct hostent *hostent;
- int s;
- u_char b;
- char **p;
-
- hostent = gethostbyname (host);
- if (hostent == NULL) {
- warnx ("gethostbyname '%s': %s", host,
-#ifdef HAVE_H_ERRNO
- hstrerror(h_errno)
-#else
- "unknown error"
-#endif
- );
- return -1;
- }
-
- memset (&thataddr, 0, sizeof(thataddr));
- thataddr.sin_family = AF_INET;
- thataddr.sin_port = k_getportbyname ("kip", "tcp", htons(KIPPORT));
-
- for(p = hostent->h_addr_list; *p; ++p) {
- int one = 1;
-
- memcpy (&thataddr.sin_addr, *p, sizeof(thataddr.sin_addr));
-
- s = socket (AF_INET, SOCK_STREAM, 0);
- if (s < 0) {
- warn ("socket");
- return -1;
- }
-
-#if defined(TCP_NODELAY) && defined(HAVE_SETSOCKOPT)
- setsockopt (s, IPPROTO_TCP, TCP_NODELAY, (void *)&one, sizeof(one));
-#endif
-
- if (connect (s, (struct sockaddr *)&thataddr, sizeof(thataddr)) < 0) {
- warn ("connect(%s)", host);
- close (s);
- continue;
- } else {
- break;
- }
- }
- if (*p == NULL)
- return -1;
-
- addrlen = sizeof(thisaddr);
- if (getsockname (s, (struct sockaddr *)&thisaddr, &addrlen) < 0 ||
- addrlen != sizeof(thisaddr)) {
- warn ("getsockname(%s)", host);
- return -1;
- }
- status = krb_sendauth (KOPT_DO_MUTUAL, s, &text, "rcmd",
- host, krb_realmofhost (host),
- getpid(), &msg, &cred, schedule,
- &thisaddr, &thataddr, KIP_VERSION);
- if (status != KSUCCESS) {
- warnx("%s: %s", host,
- krb_get_err_text(status));
- return -1;
- }
- if (read (s, &b, sizeof(b)) != sizeof(b)) {
- warn ("read");
- return -1;
- }
- if (b) {
- char buf[BUFSIZ];
-
- read (s, buf, sizeof(buf));
- buf[BUFSIZ - 1] = '\0';
-
- warnx ("%s: %s", host, buf);
- return -1;
- }
-
- memcpy(key, &cred.session, sizeof(des_cblock));
- return s;
-}
-
-/*
- * Connect to the given host.
- */
-
-static int
-doit (char *host)
-{
- des_key_schedule schedule;
- des_cblock iv;
- int other, this;
- struct ifreq ifreq;
- int sock;
-
- other = connect_host (host, &iv, schedule);
- if (other < 0)
- return 1;
- this = tunnel_open ();
- if (this < 0)
- return 1;
- return copy_packets (this, other, TUNMTU, &iv, schedule);
-}
-
-/*
- * kip - forward IP packets over a kerberos-encrypted channel.
- *
- */
-
-int
-main(int argc, char **argv)
-{
- set_progname (argv[0]);
-
- if (argc != 2)
- usage ();
- return doit (argv[1]);
-}
diff --git a/crypto/kerberosIV/appl/kip/kip.h b/crypto/kerberosIV/appl/kip/kip.h
deleted file mode 100644
index 94e30a59c104..000000000000
--- a/crypto/kerberosIV/appl/kip/kip.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kip.h,v 1.16 1997/05/20 18:40:31 bg Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <pwd.h>
-#include <signal.h>
-#include <paths.h>
-#include <fcntl.h>
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-#include <sys/types.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/sockio.h>
-#include <net/if.h>
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#include <net/if_tun.h>
-#include <err.h>
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <krb.h>
-
-#include <roken.h>
-
-#define TUNDEV "tun"
-
-#define KIPPORT 2112
-
-#define KIP_VERSION "KIPSRV.0"
-
-int
-copy_packets (int tundev, int netdev, int mtu, des_cblock *iv,
- des_key_schedule schedule);
-
-RETSIGTYPE childhandler (int);
-
-int
-tunnel_open (void);
diff --git a/crypto/kerberosIV/appl/kip/kipd.c b/crypto/kerberosIV/appl/kip/kipd.c
deleted file mode 100644
index 6d9d33409381..000000000000
--- a/crypto/kerberosIV/appl/kip/kipd.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kip.h"
-
-RCSID("$Id: kipd.c,v 1.13 1997/05/18 20:38:01 assar Exp $");
-
-static int
-fatal (int fd, char *s)
-{
- u_char err = 1;
-
- write (fd, &err, sizeof(err));
- write (fd, s, strlen(s)+1);
- syslog(LOG_ERR, s);
- return err;
-}
-
-static int
-recv_conn (int sock, des_cblock *key, des_key_schedule schedule,
- struct sockaddr_in *retaddr)
-{
- int status;
- KTEXT_ST ticket;
- AUTH_DAT auth;
- char instance[INST_SZ + 1];
- struct sockaddr_in thisaddr, thataddr;
- int addrlen;
- char version[KRB_SENDAUTH_VLEN + 1];
- u_char ok = 0;
- struct passwd *passwd;
-
- addrlen = sizeof(thisaddr);
- if (getsockname (sock, (struct sockaddr *)&thisaddr, &addrlen) < 0 ||
- addrlen != sizeof(thisaddr)) {
- return 1;
- }
- addrlen = sizeof(thataddr);
- if (getpeername (sock, (struct sockaddr *)&thataddr, &addrlen) < 0 ||
- addrlen != sizeof(thataddr)) {
- return 1;
- }
-
- k_getsockinst (sock, instance, sizeof(instance));
- status = krb_recvauth (KOPT_DO_MUTUAL, sock, &ticket, "rcmd", instance,
- &thataddr, &thisaddr, &auth, "", schedule,
- version);
- if (status != KSUCCESS ||
- strncmp(version, KIP_VERSION, KRB_SENDAUTH_VLEN) != 0) {
- return 1;
- }
- passwd = k_getpwnam ("root");
- if (passwd == NULL)
- return fatal (sock, "Cannot find root");
- if (kuserok(&auth, "root") != 0)
- return fatal (sock, "Permission denied");
- if (write (sock, &ok, sizeof(ok)) != sizeof(ok))
- return 1;
-
- memcpy(key, &auth.session, sizeof(des_cblock));
- *retaddr = thataddr;
- return 0;
-}
-
-static int
-doit(int sock)
-{
- struct sockaddr_in thataddr;
- des_key_schedule schedule;
- des_cblock key;
- int this;
-
- if (recv_conn (sock, &key, schedule, &thataddr))
- return 1;
- this = tunnel_open ();
- if (this < 0)
- fatal (sock, "Cannot open " _PATH_DEV TUNDEV);
- return copy_packets (this, sock, TUNMTU, &key, schedule);
-}
-
-/*
- * kipd - receive forwarded IP
- */
-
-int
-main (int argc, char **argv)
-{
- set_progname (argv[0]);
-
- openlog(__progname, LOG_PID|LOG_CONS, LOG_DAEMON);
- signal (SIGCHLD, childhandler);
- return doit(0);
-}
diff --git a/crypto/kerberosIV/config.guess b/crypto/kerberosIV/config.guess
deleted file mode 100644
index 74253c33bd5c..000000000000
--- a/crypto/kerberosIV/config.guess
+++ /dev/null
@@ -1,696 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- alpha:OSF1:*:*)
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-cbm-sysv4
- exit 0;;
- amiga:NetBSD:*:*)
- echo m68k-cbm-netbsd${UNAME_RELEASE}
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-cbm-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:NetBSD:*:*)
- echo m68k-atari-netbsd${UNAME_RELEASE}
- exit 0 ;;
- atari*:OpenBSD:*:*)
- echo m68k-atari-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3*:NetBSD:*:*)
- echo m68k-sun-netbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3*:OpenBSD:*:*)
- echo m68k-sun-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:NetBSD:*:*)
- echo m68k-apple-netbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-apple-openbsd${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >dummy.c
- int main (argc, argv) int argc; char **argv; {
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- ${CC-cc} dummy.c -o dummy \
- && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i?86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:4)
- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i?86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F300:UNIX_System_V:*:*)
- FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- F301:UNIX_System_V:*:*)
- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
- exit 0 ;;
- hp3[0-9][05]:NetBSD:*:*)
- echo m68k-hp-netbsd${UNAME_RELEASE}
- exit 0 ;;
- hp3[0-9][05]:OpenBSD:*:*)
- echo m68k-hp-openbsd${UNAME_RELEASE}
- exit 0 ;;
- i?86:BSD/386:*:* | *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:NetBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo i386-pc-cygwin32
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin32
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us.
- ld_help_string=`ld --help 2>&1`
- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
- echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
- echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
- echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
- echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
- echo "powerpc-unknown-linux-gnu" ; exit 0
- elif test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux-gnu ; exit 0
- elif test "${UNAME_MACHINE}" = "sparc" ; then
- echo sparc-unknown-linux-gnu ; exit 0
- else
- # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us
- # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout.
- test ! -d /usr/lib/ldscripts/. \
- && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
- # Determine whether the default compiler is a.out or elf
- cat >dummy.c <<EOF
-main(argc, argv)
-int argc;
-char *argv[];
-{
-#ifdef __ELF__
- printf ("%s-pc-linux-gnu\n", argv[1]);
-#else
- printf ("%s-pc-linux-gnuaout\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
-# are messed up and put the nodename in both sysname and nodename.
- i?86:DYNIX/ptx:4*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i?86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i?86:LynxOS:2.*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit 0 ;;
- *:OS/2:*:*)
- echo ${UNAME_MACHINE}-pc-os2_emx
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/crypto/kerberosIV/config.sub b/crypto/kerberosIV/config.sub
deleted file mode 100644
index 75822a223e66..000000000000
--- a/crypto/kerberosIV/config.sub
+++ /dev/null
@@ -1,932 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
- echo Configuration name missing. 1>&2
- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
- echo "or $0 ALIAS" 1>&2
- echo where ALIAS is a recognized configuration type. 1>&2
- exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
- *local*)
- echo $1
- exit 0
- ;;
- *)
- ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- linux-gnu*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple)
- os=
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
- | arme[lb] | pyramid \
- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
- | alpha | we32k | ns16k | clipper | i370 | sh \
- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
- | pdp11 | mips64el | mips64orion | mips64orionel \
- | sparc | sparclet | sparclite | sparc64)
- basic_machine=$basic_machine-unknown
- ;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i[3456]86)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
- | mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigados)
- basic_machine=m68k-cbm
- os=-amigados
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
- ;;
- [ctj]90-cray)
- #basic_machine=c90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- os=-mvs
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[3456]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i[3456]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i[3456]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i[3456]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5)
- basic_machine=i586-intel
- ;;
- pentiumpro | p6)
- basic_machine=i686-intel
- ;;
- pentium-* | p5-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- k5)
- # We don't have specific support for AMD's K5 yet, so just call it a Pentium
- basic_machine=i586-amd
- ;;
- nexen)
- # We don't have specific support for Nexgen yet, so just call it a Pentium
- basic_machine=i586-nexgen
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- mips)
- basic_machine=mips-mips
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sparc)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -unixware* | svr4*)
- os=-sysv4
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -linux-gnu* | -uxpv*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -xenix)
- os=-xenix
- ;;
- -os2*)
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-ibm)
- os=-aix
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigados
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f301-fujitsu)
- os=-uxpv
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -hpux*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
diff --git a/crypto/kerberosIV/configure b/crypto/kerberosIV/configure
deleted file mode 100644
index e6fefbf0b929..000000000000
--- a/crypto/kerberosIV/configure
+++ /dev/null
@@ -1,9343 +0,0 @@
-#! /bin/sh
-
-# From configure.in Revision: 1.285
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_default_prefix=/usr/athena
-ac_help="$ac_help
- --with-socks=dir use socks in dir"
-ac_help="$ac_help
- --with-socks-lib=dir use socks-lib in dir"
-ac_help="$ac_help
- --with-socks-include=dir use socks-include in dir"
-ac_help="$ac_help
- --with-shared create shared libraries for Kerberos"
-ac_help="$ac_help
- --with-cracklib=dir use the cracklib.a in dir"
-ac_help="$ac_help
- --with-dictpath=path use this dictionary with cracklib
-"
-ac_help="$ac_help
- --with-mailspool=dir this is the mail spool directory
-"
-ac_help="$ac_help
- --enable-random-mkey use new code for master keys"
-ac_help="$ac_help
- --with-mkey=file where to put the master key"
-ac_help="$ac_help
- --without-berkeley-db if you don't want berkeley db"
-ac_help="$ac_help
- --without-afs-support if you don't want support for afs"
-ac_help="$ac_help
- --with-des-quad-checksum=kind
- default checksum to use (new, old, or guess)"
-ac_help="$ac_help
- --with-readline=dir use readline in dir"
-ac_help="$ac_help
- --with-readline-lib=dir use readline-lib in dir"
-ac_help="$ac_help
- --with-readline-include=dir use readline-include in dir"
-ac_help="$ac_help
- --with-x use the X Window System"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=lib/krb/getrealm.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-PACKAGE=krb4
-VERSION=0.9.6
-# This may be overridden using --prefix=/usr to configure
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
-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:648: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`$ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`$ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:669: 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
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$LDFLAGS" && LDFLAGS=-g
-
-
-echo $ac_n "checking for ln -s or something else""... $ac_c" 1>&6
-echo "configure:720: 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
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- touch conftestdata1
- if ln conftestdata1 conftestdata2; then
- rm -f conftestdata*
- ac_cv_prog_LN_S=ln
- else
- ac_cv_prog_LN_S=cp
- fi
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-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:745: 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
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-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:774: 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
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- ac_prog_rejected=no
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:822: 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.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext <<EOF
-#line 832 "configure"
-#include "confdefs.h"
-main(){return(0);}
-EOF
-if { (eval echo configure:836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-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:856: 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:861: 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
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:870: \"$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
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
- 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:885: 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
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:913: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 928 "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:934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 945 "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:951: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:974: 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
- echo "$ac_t""yes" 1>&6
- ISC=yes # If later tests want to check for ISC.
- cat >> confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
- if test "$GCC" = yes; then
- CC="$CC -posix"
- else
- CC="$CC -Xp"
- fi
-else
- echo "$ac_t""no" 1>&6
- ISC=
-fi
-
-for ac_prog in byacc yacc 'bison -y'
-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:999: 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
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YACC="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YACC="$ac_cv_prog_YACC"
-if test -n "$YACC"; then
- echo "$ac_t""$YACC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YACC" && break
-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:1030: 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
- if test -n "$LEX"; then
- ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_LEX="flex"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex"
-fi
-fi
-LEX="$ac_cv_prog_LEX"
-if test -n "$LEX"; then
- echo "$ac_t""$LEX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$LEXLIB"
-then
- case "$LEX" in
- flex*) ac_lib=fl ;;
- *) ac_lib=l ;;
- esac
- echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:1063: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$ac_lib $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1071 "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
- builtin and then its argument prototype would still apply. */
-char yywrap();
-
-int main() {
-yywrap()
-; return 0; }
-EOF
-if { (eval echo configure:1082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LEXLIB="-l$ac_lib"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-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:1107: 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
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# 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:1144: 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
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- for ac_prog in ginstall installbsd scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- # OSF/1 installbsd also uses dspmsg, but is usable.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-# 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:1196: 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
- if test -n "$MAKEINFO"; then
- ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MAKEINFO="makeinfo"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_MAKEINFO" && ac_cv_prog_MAKEINFO=":"
-fi
-fi
-MAKEINFO="$ac_cv_prog_MAKEINFO"
-if test -n "$MAKEINFO"; then
- echo "$ac_t""$MAKEINFO" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-echo $ac_n "checking for socks""... $ac_c" 1>&6
-echo "configure:1226: checking for socks" >&5
-# Check whether --with-socks or --without-socks was given.
-if test "${with_socks+set}" = set; then
- withval="$with_socks"
- if test "$with_socks" = "no"; then
- with_socks=
-fi
-
-fi
-
-# Check whether --with-socks-lib or --without-socks-lib was given.
-if test "${with_socks_lib+set}" = set; then
- withval="$with_socks_lib"
- if test "$withval" = "yes" -o "$withval" = "no"; then
- { echo "configure: error: No argument for --with-socks-lib" 1>&2; exit 1; }
-elif test "X$with_socks" = "X"; then
- with_socks=yes
-fi
-
-fi
-
-# Check whether --with-socks-include or --without-socks-include was given.
-if test "${with_socks_include+set}" = set; then
- withval="$with_socks_include"
- if test "$withval" = "yes" -o "$withval" = "no"; then
- { echo "configure: error: No argument for --with-socks-include" 1>&2; exit 1; }
-elif test "X$with_socks" = "X"; then
- with_socks=yes
-fi
-
-fi
-
-
-
-: << END
-@@@syms="$syms SOCKS"@@@
-END
-
-if test -n "$with_socks"; then
- cat >> confdefs.h <<\EOF
-#define SOCKS 1
-EOF
-
- if test "$with_socks" != "yes"; then
- socks_dir=$with_socks
- fi
- if test -n "$with_socks_include"; then
- trydir=$with_socks_include
- elif test "$with_socks" != "yes"; then
- trydir="$with_socks $with_socks/include"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/socks.h; then
- found=yes; res=$i; break
- fi
- else
- cat > conftest.$ac_ext <<EOF
-#line 1287 "configure"
-#include "confdefs.h"
-#include <socks.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- found=yes; res=$i; break
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- fi
- done
- if test -n "$found"; then
- socks_include=$res
- else
- { echo "configure: error: Cannot find socks.h" 1>&2; exit 1; }
- fi
- if test -n "$with_socks_lib"; then
- trydir=$with_socks_lib
- elif test "$with_socks" != "yes"; then
- trydir="$with_socks $with_socks/lib"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/libsocks5.a; then
- found=yes; res=$i; break
- fi
- else
- old_LIBS=$LIBS
- LIBS="-lsocks5 $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 1327 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- found=yes; res=$i; LIBS=$old_LIBS; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- LIBS=$old_LIBS
- fi
- done
- if test -n "$found"; then
- socks_lib=$res
- else
- { echo "configure: error: Cannot find libsocks5.a" 1>&2; exit 1; }
- fi
- echo "$ac_t""headers $socks_include, libraries $socks_lib" 1>&6
- cat >> confdefs.h <<EOF
-#define SOCKS 1
-EOF
-
- if test -n "$socks_include"; then
- SOCKSINCLUDE="-I$socks_include"
- fi
-
- if test -n "$socks_lib"; then
- SOCKSLIB="-L$socks_lib"
- fi
- SOCKSLIB="$SOCKSLIB -lsocks5"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-CFLAGS="$SOCKSINCLUDE $CFLAGS"
-LIBS="$SOCKSLIB $LIBS"
-
-# Check whether --with-shared or --without-shared was given.
-if test "${with_shared+set}" = set; then
- withval="$with_shared"
- :
-fi
-
-
-# Check whether --with-cracklib or --without-cracklib was given.
-if test "${with_cracklib+set}" = set; then
- withval="$with_cracklib"
- :
-fi
-
-
-# Check whether --with-dictpath or --without-dictpath was given.
-if test "${with_dictpath+set}" = set; then
- withval="$with_dictpath"
- :
-fi
-
-
-(test -z "$with_cracklib" && test -n "$with_dictpath") ||
-(test -n "$with_cracklib" && test -z "$with_dictpath") &&
-{ echo "configure: error: --with-cracklib requires --with-dictpath and vice versa" 1>&2; exit 1; }
-test -n "$with_cracklib" &&
-CRACKLIB="-L$with_cracklib -lcrack" &&
-echo "$ac_t""Using cracklib in $with_cracklib" 1>&6
-test -n "$with_dictpath" &&
-echo "$ac_t""Using dictpath=$with_dictpath" 1>&6 &&
-cat >> confdefs.h <<EOF
-#define DICTPATH "$with_dictpath"
-EOF
-
-
-# Check whether --with-mailspool or --without-mailspool was given.
-if test "${with_mailspool+set}" = set; then
- withval="$with_mailspool"
- :
-fi
-
-
-test -n "$with_mailspool" &&
-cat >> confdefs.h <<EOF
-#define KRB4_MAILDIR "$with_mailspool"
-EOF
-
-
-# Check whether --enable-random-mkey or --disable-random-mkey was given.
-if test "${enable_random_mkey+set}" = set; then
- enableval="$enable_random_mkey"
-
-if test "$enableval" = "yes"; then
- cat >> confdefs.h <<\EOF
-#define RANDOM_MKEY 1
-EOF
-
-fi
-
-fi
-
-
-# Check whether --with-mkey or --without-mkey was given.
-if test "${with_mkey+set}" = set; then
- withval="$with_mkey"
-
-if test -n "$withval"; then
- cat >> confdefs.h <<EOF
-#define MKEYFILE "$withval"
-EOF
-
-fi
-
-fi
-
-
-berkeley_db=db
-# Check whether --with-berkeley-db or --without-berkeley-db was given.
-if test "${with_berkeley_db+set}" = set; then
- withval="$with_berkeley_db"
-
-if test "$withval" = no; then
- berkeley_db=""
-fi
-
-fi
-
-
-afs_support=yes
-# Check whether --with-afs-support or --without-afs-support was given.
-if test "${with_afs_support+set}" = set; then
- withval="$with_afs_support"
-
-if test "$withval" = no; then
- cat >> confdefs.h <<\EOF
-#define NO_AFS 1
-EOF
-
- afs_support=no
-fi
-
-fi
-
-
-des_quad=guess
-# Check whether --with-des-quad-checksum or --without-des-quad-checksum was given.
-if test "${with_des_quad_checksum+set}" = set; then
- withval="$with_des_quad_checksum"
-
-des_quad="$withval"
-
-fi
-
-if test "$des_quad" = "new"; then
- cat >> confdefs.h <<\EOF
-#define DES_QUAD_DEFAULT DES_QUAD_NEW
-EOF
-
-elif test "$des_quad" = "old"; then
- cat >> confdefs.h <<\EOF
-#define DES_QUAD_DEFAULT DES_QUAD_OLD
-EOF
-
-else
- cat >> confdefs.h <<\EOF
-#define DES_QUAD_DEFAULT DES_QUAD_GUESS
-EOF
-
-fi
-
-
-echo $ac_n "checking for readline""... $ac_c" 1>&6
-echo "configure:1503: checking for readline" >&5
-# Check whether --with-readline or --without-readline was given.
-if test "${with_readline+set}" = set; then
- withval="$with_readline"
- if test "$with_readline" = "no"; then
- with_readline=
-fi
-
-fi
-
-# Check whether --with-readline-lib or --without-readline-lib was given.
-if test "${with_readline_lib+set}" = set; then
- withval="$with_readline_lib"
- if test "$withval" = "yes" -o "$withval" = "no"; then
- { echo "configure: error: No argument for --with-readline-lib" 1>&2; exit 1; }
-elif test "X$with_readline" = "X"; then
- with_readline=yes
-fi
-
-fi
-
-# Check whether --with-readline-include or --without-readline-include was given.
-if test "${with_readline_include+set}" = set; then
- withval="$with_readline_include"
- if test "$withval" = "yes" -o "$withval" = "no"; then
- { echo "configure: error: No argument for --with-readline-include" 1>&2; exit 1; }
-elif test "X$with_readline" = "X"; then
- with_readline=yes
-fi
-
-fi
-
-
-
-: << END
-@@@syms="$syms READLINE"@@@
-END
-
-if test -n "$with_readline"; then
- cat >> confdefs.h <<\EOF
-#define READLINE 1
-EOF
-
- if test "$with_readline" != "yes"; then
- readline_dir=$with_readline
- fi
- if test -n "$with_readline_include"; then
- trydir=$with_readline_include
- elif test "$with_readline" != "yes"; then
- trydir="$with_readline $with_readline/include"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/readline.h; then
- found=yes; res=$i; break
- fi
- else
- cat > conftest.$ac_ext <<EOF
-#line 1564 "configure"
-#include "confdefs.h"
-#include <readline.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- found=yes; res=$i; break
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- fi
- done
- if test -n "$found"; then
- readline_include=$res
- else
- { echo "configure: error: Cannot find readline.h" 1>&2; exit 1; }
- fi
- if test -n "$with_readline_lib"; then
- trydir=$with_readline_lib
- elif test "$with_readline" != "yes"; then
- trydir="$with_readline $with_readline/lib"
- else
- trydir=
- fi
- found=
- for i in $trydir ""; do
- if test -n "$i"; then
- if test -f $i/libreadline.a; then
- found=yes; res=$i; break
- fi
- else
- old_LIBS=$LIBS
- LIBS="-lreadline $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 1604 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- found=yes; res=$i; LIBS=$old_LIBS; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- LIBS=$old_LIBS
- fi
- done
- if test -n "$found"; then
- readline_lib=$res
- else
- { echo "configure: error: Cannot find libreadline.a" 1>&2; exit 1; }
- fi
- echo "$ac_t""headers $readline_include, libraries $readline_lib" 1>&6
- cat >> confdefs.h <<EOF
-#define READLINE 1
-EOF
-
- if test -n "$readline_include"; then
- READLINEINCLUDE="-I$readline_include"
- fi
-
- if test -n "$readline_lib"; then
- READLINELIB="-L$readline_lib"
- fi
- READLINELIB="$READLINELIB -lreadline"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-
-case ${with_shared} in
- yes ) with_shared=yes;;
- no ) with_shared=no;;
- * ) with_shared=no;;
-esac
-
-# NOTE: Building shared libraries may not work if you do not use gcc!
-#
-# OS $SHLIBEXT
-# HP-UX sl
-# Linux so
-# NetBSD so
-# FreeBSD so
-# OSF so
-# SunOS5 so
-# SunOS4 so.0.5
-# Irix so
-#
-# LIBEXT is the extension we should build (.a or $SHLIBEXT)
-REAL_PICFLAGS="-fpic"
-LDSHARED='$(CC) $(PICFLAGS) -shared'
-LIBPREFIX=lib
-REAL_SHLIBEXT=so
-SHLIB_VERSION=`echo $VERSION | sed 's/\([0-9.]*\).*/\1/'`
-case "${host}" in
-*-*-hpux*)
- REAL_SHLIBEXT=sl
- REAL_LD_FLAGS='-Wl,+b$(libdir)'
- if test -z "$GCC"; then
- LDSHARED="ld -b"
- REAL_PICFLAGS="+z"
- fi
- ;;
-*-*-linux*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- ;;
-*-*-*bsd*)
- REAL_SHLIBEXT=so.$SHLIB_VERSION
- LDSHARED='ld -Bshareable'
- REAL_LD_FLAGS='-Wl,-R$(libdir)'
- ;;
-*-*-osf*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- REAL_PICFLAGS=
- LDSHARED='ld -shared -expect_unresolved \*'
- ;;
-*-*-solaris2*)
- REAL_LD_FLAGS='-Wl,-R$(libdir)'
- if test -z "$GCC"; then
- LDSHARED='$(CC) -G'
- REAL_PICFLAGS="-Kpic"
- fi
- ;;
-*-*-sunos*)
- REAL_SHLIBEXT=so.$SHLIB_VERSION
- REAL_LD_FLAGS='-Wl,-L$(libdir)'
- ;;
-*-*-irix*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- REAL_PICFLAGS=
- ;;
-*-*-os2_emx*)
- LD_FLAGS='-Zexe'
- LIBPREFIX=
- EXECSUFFIX='.exe'
- RANLIB=EMXOMF
- REAL_SHLIBEXT=nobuild
- ;;
-*-*-cygwin32*)
- EXECSUFFIX='.exe'
- REAL_SHLIBEXT=nobuild
- ;;
-*) REAL_SHLIBEXT=nobuild
- REAL_PICFLAGS=
- ;;
-esac
-
-if test "${with_shared}" != "yes" ; then
- PICFLAGS=""
- SHLIBEXT="nobuild"
- LIBEXT="a"
-else
- PICFLAGS="$REAL_PICFLAGS"
- SHLIBEXT="$REAL_SHLIBEXT"
- LIBEXT="$SHLIBEXT"
- LD_FLAGS="$REAL_LD_FLAGS"
-fi
-
-
-
-
-
-if test "${with_shared}" = "yes"; then
-echo $ac_n "checking for pragma weak""... $ac_c" 1>&6
-echo "configure:1743: checking for pragma weak" >&5
-if eval "test \"`echo '$''{'ac_have_pragma_weak'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-ac_have_pragma_weak=no
-cat > conftest_foo.$ac_ext <<'EOF'
-#line 1750 "configure"
-#include "confdefs.h"
-#pragma weak foo = _foo
-int _foo = 17;
-EOF
-cat > conftest_bar.$ac_ext <<'EOF'
-#line 1756 "configure"
-#include "confdefs.h"
-extern int foo;
-
-int t() {
- return foo;
-}
-
-int main() {
- return t();
-}
-EOF
-if { (eval echo configure:1768: \"$'CC -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest_foo.$ac_ext conftest_bar.$ac_ext 1>&5'\") 1>&5; (eval $'CC -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest_foo.$ac_ext conftest_bar.$ac_ext 1>&5') 2>&5; }; then
-ac_have_pragma_weak=yes
-fi
-rm -rf conftest*
-
-fi
-
-if test "$ac_have_pragma_weak" = "yes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_PRAGMA_WEAK 1
-EOF
-fi
-echo "$ac_t""$ac_have_pragma_weak" 1>&6
-fi
-
-
-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:1785: 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 1792 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1803: \"$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 1807 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_bigendian=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_bigendian=no
-fi
-rm -f conftest*
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-if test $ac_cv_c_bigendian = unknown; then
-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 1838 "configure"
-#include "confdefs.h"
-main () {
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
-}
-EOF
-if { (eval echo configure:1851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_bigendian=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_bigendian=yes
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-if test $ac_cv_c_bigendian = yes; then
- cat >> confdefs.h <<\EOF
-#define WORDS_BIGENDIAN 1
-EOF
-
-fi
-
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1876: 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 1881 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:1930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-
-
-
-echo $ac_n "checking for NEXTSTEP""... $ac_c" 1>&6
-echo "configure:1954: 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 1959 "configure"
-#include "confdefs.h"
-#ifdef NeXT
- yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- krb_cv_sys_nextstep=yes
-else
- rm -rf conftest*
- krb_cv_sys_nextstep=no
-fi
-rm -f conftest*
-
-fi
-
-if test "$krb_cv_sys_nextstep" = "yes"; then
- CFLAGS="$CFLAGS -posix"
- LIBS="$LIBS -posix"
-fi
-echo "$ac_t""$krb_cv_sys_nextstep" 1>&6
-
-
-echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1986: 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 1991 "configure"
-#include "confdefs.h"
-#ifdef _AIX
- yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- krb_cv_sys_aix=yes
-else
- rm -rf conftest*
- krb_cv_sys_aix=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$krb_cv_sys_aix" 1>&6
-
-
-if test "$krb_cv_sys_aix" = yes ;then
- AFS_EXTRA_OBJS='$(srcdir)/afsl.exp dlfcn.o'
-
- AFS_EXTRA_LIBS=afslib.so
-
-fi
-
-#
-# AIX needs /lib/pse.exp for getmsg, but alas that file is broken in
-# AIX414
-#
-
-if test -f /lib/pse.exp ;then
- LIBS="$LIBS -Wl,-bI:/lib/pse.exp"
-fi
-
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2031: 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 2036 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-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 2061 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-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 2079 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 2100 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:2111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-
-for ac_hdr in arpa/ftp.h arpa/inet.h arpa/nameser.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2139: 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 2144 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in arpa/telnet.h bind/bitypes.h bsd/bsd.h bsdsetjmp.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2179: 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 2184 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in crypt.h dbm.h dirent.h err.h fcntl.h grp.h io.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2219: 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 2224 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in lastlog.h login.h maillock.h ndbm.h net/if.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2259: 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 2264 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in net/if_tun.h net/if_var.h netdb.h netinet/in.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2299: 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 2304 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in netinet/in6_machtypes.h netinet/in_systm.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2339: 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 2344 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in netinet/ip.h netinet/tcp.h paths.h pty.h pwd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2379: 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 2384 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in resolv.h rpcsvc/dbm.h sac.h security/pam_modules.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2419: 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 2424 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2429: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in shadow.h siad.h signal.h stropts.h sys/bitypes.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2459: 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 2464 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/category.h sys/cdefs.h sys/file.h sys/filio.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2499: 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 2504 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/ioccom.h sys/ioctl.h sys/locking.h sys/mman.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2539: 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 2544 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/param.h sys/proc.h sys/ptyio.h sys/ptyvar.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2579: 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 2584 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/resource.h sys/select.h sys/socket.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2619: 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 2624 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/sockio.h sys/stat.h sys/str_tty.h sys/stream.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2659: 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 2664 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2669: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/stropts.h sys/strtty.h sys/syscall.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2699: 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 2704 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/sysctl.h sys/termio.h sys/time.h sys/timeb.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2739: 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 2744 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/times.h sys/tty.h sys/types.h sys/uio.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2779: 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 2784 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in sys/un.h sys/utsname.h sys/wait.h syslog.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2819: 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 2824 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in termio.h termios.h tmpdir.h ttyent.h udb.h ulimit.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2859: 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 2864 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2869: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in unistd.h userpw.h usersec.h util.h utime.h utmp.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2899: 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 2904 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in utmpx.h wait.h winsock.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2939: 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 2944 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2949: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2977: 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 2982 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3012: 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 3017 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-/* NetBSD declares sys_siglist in unistd.h. */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main() {
-char *msg = *(sys_siglist + 1);
-; return 0; }
-EOF
-if { (eval echo configure:3029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_decl_sys_siglist=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_decl_sys_siglist=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_decl_sys_siglist" 1>&6
-if test $ac_cv_decl_sys_siglist = yes; then
- cat >> confdefs.h <<\EOF
-#define SYS_SIGLIST_DECLARED 1
-EOF
-
-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:3053: 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 3059 "configure"
-#include "confdefs.h"
-
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_BITYPES_H
-#include <sys/bitypes.h>
-#endif
-#ifdef HAVE_BIND_BITYPES_H
-#include <bind/bitypes.h>
-#endif
-#ifdef HAVE_NETINET_IN6_MACHTYPES_H
-#include <netinet/in6_machtypes.h>
-#endif
-
-int main() {
-$i x;
-
-; return 0; }
-EOF
-if { (eval echo configure:3081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval ac_cv_type_$i=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval ac_cv_type_$i=no
-fi
-rm -f conftest*
-fi
-
- eval ac_res=\$ac_cv_type_$i
- if test "$ac_res" = yes; then
- type=HAVE_`echo $i | tr 'a-z' 'A-Z'`
- cat >> confdefs.h <<EOF
-#define $type 1
-EOF
-
- fi
- echo "$ac_t""$ac_res" 1>&6
-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:3107: 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 3113 "configure"
-#include "confdefs.h"
-
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_BITYPES_H
-#include <sys/bitypes.h>
-#endif
-#ifdef HAVE_BIND_BITYPES_H
-#include <bind/bitypes.h>
-#endif
-#ifdef HAVE_NETINET_IN6_MACHTYPES_H
-#include <netinet/in6_machtypes.h>
-#endif
-
-int main() {
-$i x;
-
-; return 0; }
-EOF
-if { (eval echo configure:3135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval ac_cv_type_$i=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval ac_cv_type_$i=no
-fi
-rm -f conftest*
-fi
-
- eval ac_res=\$ac_cv_type_$i
- if test "$ac_res" = yes; then
- type=HAVE_`echo $i | tr 'a-z' 'A-Z'`
- cat >> confdefs.h <<EOF
-#define $type 1
-EOF
-
- fi
- echo "$ac_t""$ac_res" 1>&6
-done
-
-
-
-
-
-
-
-echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:3165: checking for socket" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_socket'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_socket\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" socket; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3178 "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-int main() {
-socket(0,0,0)
-; return 0; }
-EOF
-if { (eval echo configure:3190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_socket=\${ac_cv_funclib_socket-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_socket"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs socket"@@@
-@@@libs="$libs socket"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo socket | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_socket=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_socket=yes"
- eval "LIB_socket="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_socket=no"
- eval "LIB_socket="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_socket=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_socket"; then
- LIBS="$LIB_socket $LIBS"
-fi
-
-
-
-
-echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:3257: checking for gethostbyname" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_gethostbyname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_gethostbyname\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" nsl; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-int main() {
-gethostbyname("foo")
-; return 0; }
-EOF
-if { (eval echo configure:3282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_gethostbyname=\${ac_cv_funclib_gethostbyname-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_gethostbyname"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs gethostbyname"@@@
-@@@libs="$libs nsl"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo gethostbyname | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_gethostbyname=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_gethostbyname=yes"
- eval "LIB_gethostbyname="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_gethostbyname=no"
- eval "LIB_gethostbyname="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_gethostbyname=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_gethostbyname"; then
- LIBS="$LIB_gethostbyname $LIBS"
-fi
-
-
-
-
-
-
-echo $ac_n "checking for odm_initialize""... $ac_c" 1>&6
-echo "configure:3351: 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
-
-if eval "test \"\$ac_cv_func_odm_initialize\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" odm; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3364 "configure"
-#include "confdefs.h"
-
-int main() {
-odm_initialize()
-; return 0; }
-EOF
-if { (eval echo configure:3371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_odm_initialize=\${ac_cv_funclib_odm_initialize-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_odm_initialize"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs odm_initialize"@@@
-@@@libs="$libs odm"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo odm_initialize | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_odm_initialize=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_odm_initialize=yes"
- eval "LIB_odm_initialize="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_odm_initialize=no"
- eval "LIB_odm_initialize="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_odm_initialize=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_odm_initialize"; then
- LIBS="$LIB_odm_initialize $LIBS"
-fi
-
-
-
-
-echo $ac_n "checking for getattr""... $ac_c" 1>&6
-echo "configure:3438: checking for getattr" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_getattr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_getattr\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" cfg; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3451 "configure"
-#include "confdefs.h"
-
-int main() {
-getattr()
-; return 0; }
-EOF
-if { (eval echo configure:3458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_getattr=\${ac_cv_funclib_getattr-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_getattr"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs getattr"@@@
-@@@libs="$libs cfg"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo getattr | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_getattr=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_getattr=yes"
- eval "LIB_getattr="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_getattr=no"
- eval "LIB_getattr="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_getattr=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_getattr"; then
- LIBS="$LIB_getattr $LIBS"
-fi
-
-
-
-
-echo $ac_n "checking for setpcred""... $ac_c" 1>&6
-echo "configure:3525: checking for setpcred" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_setpcred'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_setpcred\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" s; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3538 "configure"
-#include "confdefs.h"
-
-int main() {
-setpcred()
-; return 0; }
-EOF
-if { (eval echo configure:3545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_setpcred=\${ac_cv_funclib_setpcred-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_setpcred"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs setpcred"@@@
-@@@libs="$libs s"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo setpcred | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_setpcred=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_setpcred=yes"
- eval "LIB_setpcred="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_setpcred=no"
- eval "LIB_setpcred="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_setpcred=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_setpcred"; then
- LIBS="$LIB_setpcred $LIBS"
-fi
-
-
-
-
-echo $ac_n "checking for logwtmp""... $ac_c" 1>&6
-echo "configure:3612: checking for logwtmp" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_logwtmp'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_logwtmp\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" util; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
-#include "confdefs.h"
-
-int main() {
-logwtmp()
-; return 0; }
-EOF
-if { (eval echo configure:3632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_logwtmp=\${ac_cv_funclib_logwtmp-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_logwtmp"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs logwtmp"@@@
-@@@libs="$libs util"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo logwtmp | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_logwtmp=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_logwtmp=yes"
- eval "LIB_logwtmp="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_logwtmp=no"
- eval "LIB_logwtmp="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_logwtmp=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_logwtmp"; then
- LIBS="$LIB_logwtmp $LIBS"
-fi
-
-
-
-
-
-echo $ac_n "checking for logout""... $ac_c" 1>&6
-echo "configure:3700: checking for logout" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_logout'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_logout\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" util; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3713 "configure"
-#include "confdefs.h"
-
-int main() {
-logout()
-; return 0; }
-EOF
-if { (eval echo configure:3720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_logout=\${ac_cv_funclib_logout-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_logout"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs logout"@@@
-@@@libs="$libs util"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo logout | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_logout=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_logout=yes"
- eval "LIB_logout="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_logout=no"
- eval "LIB_logout="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_logout=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_logout"; then
- LIBS="$LIB_logout $LIBS"
-fi
-
-
-
-echo $ac_n "checking for tgetent""... $ac_c" 1>&6
-echo "configure:3786: checking for tgetent" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_tgetent'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_tgetent\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" termcap; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 3799 "configure"
-#include "confdefs.h"
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:3806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_tgetent=\${ac_cv_funclib_tgetent-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_tgetent"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs tgetent"@@@
-@@@libs="$libs termcap"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo tgetent | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_tgetent=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_tgetent=yes"
- eval "LIB_tgetent="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_tgetent=no"
- eval "LIB_tgetent="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_tgetent=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-
-# If we find X, set shell vars x_includes and x_libraries to the
-# paths, otherwise set no_x=yes.
-# 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:3871: checking for X" >&5
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
- :
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=NO ac_x_libraries=NO
-rm -fr conftestdir
-if mkdir conftestdir; then
- cd conftestdir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat > Imakefile <<'EOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case "$ac_im_incroot" in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
- esac
- case "$ac_im_usrlibdir" in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
- esac
- fi
- cd ..
- rm -fr conftestdir
-fi
-
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-cat > conftest.$ac_ext <<EOF
-#line 3933 "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:3938: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- # Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done
-fi
-rm -f conftest*
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4007 "configure"
-#include "confdefs.h"
-
-int main() {
-${x_direct_test_function}()
-; return 0; }
-EOF
-if { (eval echo configure:4014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
- /usr/X11/lib \
- /usr/X11R6/lib \
- /usr/X11R5/lib \
- /usr/X11R4/lib \
- \
- /usr/lib/X11 \
- /usr/lib/X11R6 \
- /usr/lib/X11R5 \
- /usr/lib/X11R4 \
- \
- /usr/local/X11/lib \
- /usr/local/X11R6/lib \
- /usr/local/X11R5/lib \
- /usr/local/X11R4/lib \
- \
- /usr/local/lib/X11 \
- /usr/local/lib/X11R6 \
- /usr/local/lib/X11R5 \
- /usr/local/lib/X11R4 \
- \
- /usr/X386/lib \
- /usr/x386/lib \
- /usr/XFree86/lib/X11 \
- \
- /usr/lib \
- /usr/local/lib \
- /usr/unsupported/lib \
- /usr/athena/lib \
- /usr/local/x11r5/lib \
- /usr/lpp/Xamples/lib \
- /lib/usr/lib/X11 \
- \
- /usr/openwin/lib \
- /usr/openwin/share/lib \
- ; \
-do
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
-fi
-rm -f conftest*
-fi # $ac_x_libraries = NO
-
-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
-else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
- fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
- echo "$ac_t""$have_x" 1>&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
-fi
-
-if test "$no_x" = yes; then
- # Not all programs may use this symbol, but it does not hurt to define it.
- cat >> confdefs.h <<\EOF
-#define X_DISPLAY_MISSING 1
-EOF
-
- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-else
- if test -n "$x_includes"; then
- X_CFLAGS="$X_CFLAGS -I$x_includes"
- fi
-
- # It would also be nice to do this for all -L options, not just this one.
- if test -n "$x_libraries"; then
- X_LIBS="$X_LIBS -L$x_libraries"
- # For Solaris; some versions of Sun CC require a space after -R and
- # others require no space. Words are not sufficient . . . .
- 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:4120: 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 4123 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_R_nospace=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_R_nospace=no
-fi
-rm -f conftest*
- if test $ac_R_nospace = yes; then
- echo "$ac_t""no" 1>&6
- X_LIBS="$X_LIBS -R$x_libraries"
- else
- LIBS="$ac_xsave_LIBS -R $x_libraries"
- cat > conftest.$ac_ext <<EOF
-#line 4146 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_R_space=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_R_space=no
-fi
-rm -f conftest*
- if test $ac_R_space = yes; then
- echo "$ac_t""yes" 1>&6
- X_LIBS="$X_LIBS -R $x_libraries"
- else
- echo "$ac_t""neither works" 1>&6
- fi
- fi
- LIBS="$ac_xsave_LIBS"
- esac
- fi
-
- # Check for system-dependent libraries X programs must link with.
- # Do this before checking for the system-independent R6 libraries
- # (-lICE), since we may need -lsocket or whatever for X linking.
-
- if test "$ISC" = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
- else
- # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
- # 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:4185: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldnet $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4193 "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
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa();
-
-int main() {
-dnet_ntoa()
-; return 0; }
-EOF
-if { (eval echo configure:4204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-else
- echo "$ac_t""no" 1>&6
-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:4226: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldnet_stub $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4234 "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
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa();
-
-int main() {
-dnet_ntoa()
-; return 0; }
-EOF
-if { (eval echo configure:4245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
- # to get the SysV transport functions.
- # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4)
- # needs -lnsl.
- # 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:4274: 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 4279 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname(); 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 gethostbyname();
-
-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_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_gethostbyname = no; then
- echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4323: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4331 "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
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:4342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # lieder@skyler.mavd.honeywell.com says without -lsocket,
- # socket/setsockopt and other routines are undefined under SCO ODT
- # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
- # on later versions), says simon@lia.di.epfl.ch: it contains
- # gethostby* variants that don't use the nameserver (or something).
- # -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:4372: 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 4377 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char connect(); 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 connect();
-
-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_connect) || defined (__stub___connect)
-choke me
-#else
-connect();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_connect=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_connect=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_connect = no; then
- echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:4421: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4429 "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
- builtin and then its argument prototype would still apply. */
-char connect();
-
-int main() {
-connect()
-; return 0; }
-EOF
-if { (eval echo configure:4440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- 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:4464: 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 4469 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char remove(); 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 remove();
-
-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_remove) || defined (__stub___remove)
-choke me
-#else
-remove();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_remove=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_remove=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_remove = no; then
- echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:4513: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lposix $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4521 "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
- builtin and then its argument prototype would still apply. */
-char remove();
-
-int main() {
-remove()
-; return 0; }
-EOF
-if { (eval echo configure:4532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:4556: 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 4561 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shmat(); 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 shmat();
-
-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_shmat) || defined (__stub___shmat)
-choke me
-#else
-shmat();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_shmat=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_shmat=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_shmat = no; then
- echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:4605: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lipc $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4613 "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
- builtin and then its argument prototype would still apply. */
-char shmat();
-
-int main() {
-shmat()
-; return 0; }
-EOF
-if { (eval echo configure:4624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- fi
-
- # Check for libraries that X11R6 Xt/Xaw programs need.
- ac_save_LDFLAGS="$LDFLAGS"
- test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
- # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
- # check for ICE first), but we must link in the order -lSM -lICE or
- # we get undefined symbols. So assume we have SM if we have ICE.
- # These have to be linked with before -lX11, unlike the other
- # 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:4657: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lICE $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4665 "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
- builtin and then its argument prototype would still apply. */
-char IceConnectionNumber();
-
-int main() {
-IceConnectionNumber()
-; return 0; }
-EOF
-if { (eval echo configure:4676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- LDFLAGS="$ac_save_LDFLAGS"
-
-fi
-
-if test "$no_x" = "yes" ; then
- MAKE_X_PROGS_BIN=""
- MAKE_X_PROGS_LIBEXEC=""
-else
- MAKE_X_PROGS_BIN='$(X_PROGS_BIN)'
- MAKE_X_PROGS_LIBEXEC='$(X_PROGS_LIBEXEC)'
-fi
-
-save_CFLAGS="$CFLAGS"
-CFLAGS="$X_CFLAGS $CFLAGS"
-save_LIBS="$LIBS"
-LIBS="$X_PRE_LIBS $X_EXTRA_LIBS $LIBS"
-save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $X_LIBS"
-
-
-
-echo $ac_n "checking for XauReadAuth""... $ac_c" 1>&6
-echo "configure:4718: checking for XauReadAuth" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_XauReadAuth'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_XauReadAuth\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" Xau X11; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 4731 "configure"
-#include "confdefs.h"
-
-int main() {
-XauReadAuth()
-; return 0; }
-EOF
-if { (eval echo configure:4738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_XauReadAuth=\${ac_cv_funclib_XauReadAuth-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_XauReadAuth"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs XauReadAuth"@@@
-@@@libs="$libs Xau X11"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo XauReadAuth | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_XauReadAuth=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_XauReadAuth=yes"
- eval "LIB_XauReadAuth="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_XauReadAuth=no"
- eval "LIB_XauReadAuth="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_XauReadAuth=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-ac_xxx="$LIBS"
-LIBS="$LIB_XauReadAuth $LIBS"
-for ac_func in XauWriteAuth
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4802: 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 4807 "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:4830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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_XauWriteAuth" != "yes"; then
- XauWriteAuth_c=writeauth.c
- XauWriteAuth_o=writeauth.o
-fi
-LIBS="$ac_xxx"
-
-CFLAGS=$save_CFLAGS
-LIBS=$save_LIBS
-LDFLAGS=$save_LDFLAGS
-
-
-save_LIBS="$LIBS"
-
-
-echo $ac_n "checking for dbopen""... $ac_c" 1>&6
-echo "configure:4869: checking for dbopen" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_dbopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_dbopen\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" $berkeley_db; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 4882 "configure"
-#include "confdefs.h"
-
-int main() {
-dbopen()
-; return 0; }
-EOF
-if { (eval echo configure:4889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "if test -n \"$ac_lib\";then ac_cv_funclib_dbopen=$ac_lib; else ac_cv_funclib_dbopen=yes; fi";break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_dbopen=\${ac_cv_funclib_dbopen-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_dbopen"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs dbopen"@@@
-@@@libs="$libs $berkeley_db"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo dbopen | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_dbopen=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_dbopen=yes"
- eval "LIB_dbopen="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_dbopen=no"
- eval "LIB_dbopen="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_dbopen=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-LIBS="$LIB_dbopen $LIBS"
-
-
-echo $ac_n "checking for dbm_firstkey""... $ac_c" 1>&6
-echo "configure:4952: checking for dbm_firstkey" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_dbm_firstkey'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_dbm_firstkey\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" $berkeley_db gdbm ndbm; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 4965 "configure"
-#include "confdefs.h"
-
-int main() {
-dbm_firstkey()
-; return 0; }
-EOF
-if { (eval echo configure:4972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "if test -n \"$ac_lib\";then ac_cv_funclib_dbm_firstkey=$ac_lib; else ac_cv_funclib_dbm_firstkey=yes; fi";break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_dbm_firstkey=\${ac_cv_funclib_dbm_firstkey-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_dbm_firstkey"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs dbm_firstkey"@@@
-@@@libs="$libs $berkeley_db gdbm ndbm"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo dbm_firstkey | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_dbm_firstkey=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_dbm_firstkey=yes"
- eval "LIB_dbm_firstkey="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_dbm_firstkey=no"
- eval "LIB_dbm_firstkey="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_dbm_firstkey=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_dbopen"; then
- LIB_DBM="$LIB_dbopen"
-else
- LIB_DBM="$LIB_dbm_firstkey"
-fi
-LIBS="$save_LIBS"
-
-
-
-
-echo $ac_n "checking for syslog""... $ac_c" 1>&6
-echo "configure:5042: checking for syslog" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_syslog'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_syslog\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" syslog; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 5055 "configure"
-#include "confdefs.h"
-
-int main() {
-syslog()
-; return 0; }
-EOF
-if { (eval echo configure:5062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_syslog=\${ac_cv_funclib_syslog-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_syslog"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs syslog"@@@
-@@@libs="$libs syslog"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo syslog | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_syslog=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_syslog=yes"
- eval "LIB_syslog="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_syslog=no"
- eval "LIB_syslog="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_syslog=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_syslog"; then
- LIBS="$LIB_syslog $LIBS"
-fi
-
-
-echo $ac_n "checking for working snprintf""... $ac_c" 1>&6
-echo "configure:5127: 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
- ac_cv_func_snprintf_working=yes
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 5136 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <string.h>
-int main()
-{
- char foo[3];
- snprintf(foo, 2, "12");
- return strcmp(foo, "1");
-}
-EOF
-if { (eval echo configure:5148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_snprintf_working=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_snprintf_working" 1>&6
-: << END
-@@@funcs="$funcs snprintf"@@@
-END
-if test "$ac_cv_func_snprintf_working" = yes; then
- foo=HAVE_SNPRINTF
- cat >> confdefs.h <<EOF
-#define $foo 1
-EOF
-
-fi
-
-for ac_func in asnprintf asprintf vasprintf vasnprintf vsnprintf
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5177: 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 5182 "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:5205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 _getpty _scrsize _setsid _stricmp fchmod fcntl flock
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5234: 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 5239 "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:5262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 forkpty frevoke gethostname getlogin getpriority getservbyname
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5289: 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 5294 "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:5317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 getspnam getspuid gettimeofday getuid grantpt
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5344: 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 5349 "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:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 innetgr iruserok mktime ptsname rand random
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5399: 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 5404 "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:5427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 revoke setitimer setlogin setpgid setpriority
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5454: 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 5459 "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:5482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5509: 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 5514 "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:5537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 setutent swab ttyname ttyslot ulimit uname
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5564: 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 5569 "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:5592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 unlockpt vhangup yp_get_default_domain
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5619: 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 5624 "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:5647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
-
-
-
-echo $ac_n "checking for getpwnam_r""... $ac_c" 1>&6
-echo "configure:5674: 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
-
-if eval "test \"\$ac_cv_func_getpwnam_r\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" c_r; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 5687 "configure"
-#include "confdefs.h"
-
-int main() {
-getpwnam_r()
-; return 0; }
-EOF
-if { (eval echo configure:5694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_getpwnam_r=\${ac_cv_funclib_getpwnam_r-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_getpwnam_r"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs getpwnam_r"@@@
-@@@libs="$libs c_r"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo getpwnam_r | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_getpwnam_r=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_getpwnam_r=yes"
- eval "LIB_getpwnam_r="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_getpwnam_r=no"
- eval "LIB_getpwnam_r="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_getpwnam_r=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-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:5755: 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
- ac_libs="$LIBS"
- LIBS="$LIBS $LIB_getpwnam_r"
- if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 5765 "configure"
-#include "confdefs.h"
-
-#include <pwd.h>
-int main()
-{
- struct passwd pw, *pwd;
- return getpwnam_r("", &pw, NULL, 0, &pwd) < 0;
-}
-
-EOF
-if { (eval echo configure:5776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_getpwnam_r_posix=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_getpwnam_r_posix=no
-fi
-rm -fr conftest*
-fi
-
-LIBS="$ac_libs"
-fi
-
-echo "$ac_t""$ac_cv_func_getpwnam_r_posix" 1>&6
-if test "$ac_cv_func_getpwnam_r_posix" = yes; then
- cat >> confdefs.h <<\EOF
-#define POSIX_GETPWNAM_R 1
-EOF
-
-fi
-fi
-
-
-
-echo $ac_n "checking for getsockopt""... $ac_c" 1>&6
-echo "configure:5803: checking for getsockopt" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_getsockopt'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_getsockopt\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" ; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 5816 "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-int main() {
-getsockopt(0,0,0,0,0)
-; return 0; }
-EOF
-if { (eval echo configure:5828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_getsockopt=\${ac_cv_funclib_getsockopt-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_getsockopt"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs getsockopt"@@@
-@@@libs="$libs "@@@
-END
-
-eval "ac_tr_func=HAVE_`echo getsockopt | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_getsockopt=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_getsockopt=yes"
- eval "LIB_getsockopt="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_getsockopt=no"
- eval "LIB_getsockopt="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_getsockopt=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-
-
-echo $ac_n "checking for setsockopt""... $ac_c" 1>&6
-echo "configure:5890: checking for setsockopt" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_setsockopt'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_setsockopt\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" ; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 5903 "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-int main() {
-setsockopt(0,0,0,0,0)
-; return 0; }
-EOF
-if { (eval echo configure:5915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_setsockopt=\${ac_cv_funclib_setsockopt-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_setsockopt"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs setsockopt"@@@
-@@@libs="$libs "@@@
-END
-
-eval "ac_tr_func=HAVE_`echo setsockopt | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_setsockopt=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_setsockopt=yes"
- eval "LIB_setsockopt="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_setsockopt=no"
- eval "LIB_setsockopt="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_setsockopt=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-
-for ac_func in getudbnam setlim
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5978: 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 5983 "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:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
-
-
-
-
-
-echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:6035: 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
-
-if eval "test \"\$ac_cv_func_res_search\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" resolv; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 6048 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-
-int main() {
-res_search(0,0,0,0,0)
-; return 0; }
-EOF
-if { (eval echo configure:6069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_res_search=\${ac_cv_funclib_res_search-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_res_search"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs res_search"@@@
-@@@libs="$libs resolv"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo res_search | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_res_search=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_res_search=yes"
- eval "LIB_res_search="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_res_search=no"
- eval "LIB_res_search="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_res_search=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_res_search"; then
- LIBS="$LIB_res_search $LIBS"
-fi
-
-
-
-
-
-echo $ac_n "checking for dn_expand""... $ac_c" 1>&6
-echo "configure:6137: 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
-
-if eval "test \"\$ac_cv_func_dn_expand\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" resolv; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 6150 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-
-int main() {
-dn_expand(0,0,0,0,0)
-; return 0; }
-EOF
-if { (eval echo configure:6171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_dn_expand=\${ac_cv_funclib_dn_expand-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_dn_expand"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs dn_expand"@@@
-@@@libs="$libs resolv"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo dn_expand | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_dn_expand=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_dn_expand=yes"
- eval "LIB_dn_expand="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_dn_expand=no"
- eval "LIB_dn_expand="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_dn_expand=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_dn_expand"; then
- LIBS="$LIB_dn_expand $LIBS"
-fi
-
-
-
-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:6240: 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 6245 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- 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_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in getpagesize
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6279: 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 6284 "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:6307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
-
-echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6332: 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
- if test "$cross_compiling" = yes; then
- ac_cv_func_mmap_fixed_mapped=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 6340 "configure"
-#include "confdefs.h"
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
- Here is a matrix of mmap possibilities:
- mmap private not fixed
- mmap private fixed at somewhere currently unmapped
- mmap private fixed at somewhere already mapped
- mmap shared not fixed
- mmap shared fixed at somewhere currently unmapped
- mmap shared fixed at somewhere already mapped
- For private mappings, we should verify that changes cannot be read()
- back from the file, nor mmap's back from the file at a different
- address. (There have been systems where private was not correctly
- implemented like the infamous i386 svr4.0, and systems where the
- VM page cache was not coherent with the filesystem buffer cache
- like early versions of FreeBSD and possibly contemporary NetBSD.)
- For shared mappings, we should conversely verify that changes get
- propogated back to all the places they're supposed to be.
-
- Grep wants private fixed already mapped.
- The main things grep needs to know about mmap are:
- * does it exist and is it safe to write into the mmap'd area
- * how to use it (BSD variants) */
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-/* This mess was copied from the GNU getpagesize.h. */
-#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
-
-/* Assume that all systems that can run configure have sys/param.h. */
-# ifndef HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-#ifdef __cplusplus
-extern "C" { void *malloc(unsigned); }
-#else
-char *malloc();
-#endif
-
-int
-main()
-{
- char *data, *data2, *data3;
- int i, pagesize;
- int fd;
-
- pagesize = getpagesize();
-
- /*
- * First, make a file with some known garbage in it.
- */
- data = malloc(pagesize);
- if (!data)
- exit(1);
- for (i = 0; i < pagesize; ++i)
- *(data + i) = rand();
- umask(0);
- fd = creat("conftestmmap", 0600);
- if (fd < 0)
- exit(1);
- if (write(fd, data, pagesize) != pagesize)
- exit(1);
- close(fd);
-
- /*
- * Next, try to mmap the file at a fixed address which
- * already has something else allocated at it. If we can,
- * also make sure that we see the same garbage.
- */
- fd = open("conftestmmap", O_RDWR);
- if (fd < 0)
- exit(1);
- data2 = malloc(2 * pagesize);
- if (!data2)
- exit(1);
- data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
- if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
- exit(1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data2 + i))
- exit(1);
-
- /*
- * Finally, make sure that changes to the mapped area
- * do not percolate back to the file as seen by read().
- * (This is a bug on some variants of i386 svr4.0.)
- */
- for (i = 0; i < pagesize; ++i)
- *(data2 + i) = *(data2 + i) + 1;
- data3 = malloc(pagesize);
- if (!data3)
- exit(1);
- if (read(fd, data3, pagesize) != pagesize)
- exit(1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data3 + i))
- exit(1);
- close(fd);
- unlink("conftestmmap");
- exit(0);
-}
-
-EOF
-if { (eval echo configure:6480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_mmap_fixed_mapped=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_MMAP 1
-EOF
-
-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:6505: 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 6510 "configure"
-#include "confdefs.h"
-#include <alloca.h>
-int main() {
-char *p = alloca(2 * sizeof(int));
-; return 0; }
-EOF
-if { (eval echo configure:6517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_header_alloca_h=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_alloca_h=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
-if test $ac_cv_header_alloca_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA_H 1
-EOF
-
-fi
-
-echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:6538: 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 6543 "configure"
-#include "confdefs.h"
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-int main() {
-char *p = (char *) alloca(1);
-; return 0; }
-EOF
-if { (eval echo configure:6566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_func_alloca_works=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_func_alloca_works=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-fi
-
-if test $ac_cv_func_alloca_works = no; then
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
- # that cause trouble. Some versions do not even contain alloca or
- # contain a buggy version. If you still want to use their alloca,
- # use ar to extract alloca.o from them instead of compiling alloca.c.
- ALLOCA=alloca.o
- cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
-
-
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:6598: 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 6603 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "webecray" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_os_cray=yes
-else
- rm -rf conftest*
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-
-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:6628: 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 6633 "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:6656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
-
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
-done
-fi
-
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:6683: 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
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 6691 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
- exit (find_stack_direction() < 0);
-}
-EOF
-if { (eval echo configure:6710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_stack_direction=1
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_stack_direction=-1
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >> confdefs.h <<EOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-EOF
-
-fi
-
-
-#
-# Test for POSIX (broken) getlogin
-#
-
-if test "$ac_cv_func_getlogin" = yes; then
-echo $ac_n "checking if getlogin is posix""... $ac_c" 1>&6
-echo "configure:6738: 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
-
-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
-
-fi
-
-echo "$ac_t""$ac_cv_func_getlogin_posix" 1>&6
-if test "$ac_cv_func_getlogin_posix" = yes; then
- cat >> confdefs.h <<\EOF
-#define POSIX_GETLOGIN 1
-EOF
-
-fi
-fi
-
-
-
-
-echo $ac_n "checking for hstrerror""... $ac_c" 1>&6
-echo "configure:6764: checking for hstrerror" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_hstrerror'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_hstrerror\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" resolv; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 6777 "configure"
-#include "confdefs.h"
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-int main() {
-hstrerror(17)
-; return 0; }
-EOF
-if { (eval echo configure:6786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_hstrerror=\${ac_cv_funclib_hstrerror-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_hstrerror"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs hstrerror"@@@
-@@@libs="$libs resolv"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo hstrerror | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_hstrerror=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_hstrerror=yes"
- eval "LIB_hstrerror="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_hstrerror=no"
- eval "LIB_hstrerror="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_hstrerror=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-if test -n "$LIB_hstrerror"; then
- LIBS="$LIB_hstrerror $LIBS"
-fi
-
-if eval "test \"$ac_cv_func_hstrerror\" != yes"; then
-LIBOBJS="$LIBOBJS hstrerror.o"
-fi
-
-
-for ac_func in chown daemon err errx fchown getcwd getdtablesize getopt
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6857: 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 6862 "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:6885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 '[a-z]' '[A-Z]'`
-cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
-fi
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs chown daemon err errx fchown getcwd getdtablesize getopt"@@@
-END
-done
-
-for ac_func in getusershell inet_aton initgroups lstat memmove mkstemp
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6919: 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 6924 "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:6947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 '[a-z]' '[A-Z]'`
-cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
-fi
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs getusershell inet_aton initgroups lstat memmove mkstemp"@@@
-END
-done
-
-for ac_func in putenv rcmd setegid setenv seteuid strcasecmp strdup
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6981: 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 6986 "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:7009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 '[a-z]' '[A-Z]'`
-cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
-fi
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs putenv rcmd setegid setenv seteuid strcasecmp strdup"@@@
-END
-done
-
-for ac_func in strerror strftime strlwr strnlen strtok_r strupr unsetenv
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7043: 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 7048 "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:7071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 '[a-z]' '[A-Z]'`
-cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
-fi
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs strerror strftime strlwr strnlen strtok_r strupr unsetenv"@@@
-END
-done
-
-for ac_func in verr verrx vwarn vwarnx warn warnx
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7105: 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 7110 "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:7133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 '[a-z]' '[A-Z]'`
-cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.o"
-fi
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs verr verrx vwarn vwarnx warn warnx"@@@
-END
-done
-
-
-
-if test "$ac_cv_func_getcwd" = yes; then
-echo $ac_n "checking if getcwd is broken""... $ac_c" 1>&6
-echo "configure:7168: 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
-
-ac_cv_func_getcwd_broken=no
-
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 7179 "configure"
-#include "confdefs.h"
-
-#include <errno.h>
-char *getcwd(char*, int);
-
-void *popen(char *cmd, char *mode)
-{
- errno = ENOTTY;
- return 0;
-}
-
-int main()
-{
- char *ret;
- ret = getcwd(0, 1024);
- if(ret == 0 && errno == ENOTTY)
- return 0;
- return 1;
-}
-
-EOF
-if { (eval echo configure:7201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_getcwd_broken=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- :
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-if test "$ac_cv_func_getcwd_broken" = yes; then
- cat >> confdefs.h <<\EOF
-#define BROKEN_GETCWD 1
-EOF
- LIBOBJS="$LIBOBJS getcwd.o"
- echo "$ac_t""$ac_cv_func_getcwd_broken" 1>&6
-else
- echo "$ac_t""seems ok" 1>&6
-fi
-fi
-
-
-
-echo $ac_n "checking which authentication modules should be built""... $ac_c" 1>&6
-echo "configure:7230: checking which authentication modules should be built" >&5
-
-LIB_AUTH_SUBDIRS=
-
-if test "$ac_cv_header_siad_h" = yes; then
- LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS sia"
-fi
-
-if test "$ac_cv_header_security_pam_modules_h" = yes; then
- LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS pam"
-fi
-
-case "${host}" in
-*-*-irix[56]*) LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS afskauthlib" ;;
-esac
-
-echo "$ac_t""$LIB_AUTH_SUBDIRS" 1>&6
-
-
-
-echo $ac_n "checking for tunnel devices""... $ac_c" 1>&6
-echo "configure:7251: checking for tunnel devices" >&5
-
-APPL_KIP_DIR=
-
-if test "$ac_cv_header_net_if_tun_h" = "yes"; then
- APPL_KIP_DIR=kip
-fi
-
-echo "$ac_t""$ac_cv_header_net_if_tun_h" 1>&6
-
-
-
-
-echo $ac_n "checking if crypt needs a prototype""... $ac_c" 1>&6
-echo "configure:7265: 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 7270 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-int main() {
-struct foo { int foo; } xx;
-extern int crypt (struct foo*);
-crypt(&xx);
-
-; return 0; }
-EOF
-if { (eval echo configure:7287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_func_crypt_noproto=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_crypt_noproto=no"
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_crypt_noproto" 1>&6
-
-if test "$ac_cv_func_crypt_noproto" = yes; then
- cat >> confdefs.h <<\EOF
-#define NEED_CRYPT_PROTO 1
-EOF
-
-fi
-: << END
-@@@syms="$syms NEED_CRYPT_PROTO"@@@
-END
-
-
-
-
-echo $ac_n "checking if strtok_r needs a prototype""... $ac_c" 1>&6
-echo "configure:7315: 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 7320 "configure"
-#include "confdefs.h"
-
-#include <string.h>
-
-int main() {
-struct foo { int foo; } xx;
-extern int strtok_r (struct foo*);
-strtok_r(&xx);
-
-; return 0; }
-EOF
-if { (eval echo configure:7332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_func_strtok_r_noproto=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_strtok_r_noproto=no"
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_strtok_r_noproto" 1>&6
-
-if test "$ac_cv_func_strtok_r_noproto" = yes; then
- cat >> confdefs.h <<\EOF
-#define NEED_STRTOK_R_PROTO 1
-EOF
-
-fi
-: << END
-@@@syms="$syms NEED_STRTOK_R_PROTO"@@@
-END
-
-
-
-
-echo $ac_n "checking for h_errno""... $ac_c" 1>&6
-echo "configure:7360: 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 7366 "configure"
-#include "confdefs.h"
-extern int h_errno;
-int foo() { return h_errno; }
-int main() {
-foo()
-; return 0; }
-EOF
-if { (eval echo configure:7374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_var_h_errno=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_var_h_errno=no
-fi
-rm -f conftest*
-
-fi
-
-eval "ac_tr_var=HAVE_H_ERRNO"
-
-
-: << END
-@@@syms="$syms HAVE_H_ERRNO"@@@
-END
-
-
-echo "$ac_t""`eval echo \\$ac_cv_var_h_errno`" 1>&6
-if test `eval echo \\$ac_cv_var_h_errno` = yes; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-
-echo $ac_n "checking if h_errno is properly declared""... $ac_c" 1>&6
-echo "configure:7403: 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 7409 "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-extern struct { int foo; } h_errno;
-int main() {
-h_errno.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_h_errno_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_h_errno_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_H_ERRNO_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_H_ERRNO_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_h_errno_declaration" 1>&6
-if eval "test \"\$ac_cv_var_h_errno_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-fi
-
-
-
-echo $ac_n "checking for h_errlist""... $ac_c" 1>&6
-echo "configure:7457: 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 7463 "configure"
-#include "confdefs.h"
-extern int h_errlist;
-int foo() { return h_errlist; }
-int main() {
-foo()
-; return 0; }
-EOF
-if { (eval echo configure:7471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_var_h_errlist=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_var_h_errlist=no
-fi
-rm -f conftest*
-
-fi
-
-eval "ac_tr_var=HAVE_H_ERRLIST"
-
-
-: << END
-@@@syms="$syms HAVE_H_ERRLIST"@@@
-END
-
-
-echo "$ac_t""`eval echo \\$ac_cv_var_h_errlist`" 1>&6
-if test `eval echo \\$ac_cv_var_h_errlist` = yes; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-
-echo $ac_n "checking if h_errlist is properly declared""... $ac_c" 1>&6
-echo "configure:7500: 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 7506 "configure"
-#include "confdefs.h"
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-extern struct { int foo; } h_errlist;
-int main() {
-h_errlist.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_h_errlist_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_h_errlist_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_H_ERRLIST_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_H_ERRLIST_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_h_errlist_declaration" 1>&6
-if eval "test \"\$ac_cv_var_h_errlist_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-fi
-
-
-
-echo $ac_n "checking for h_nerr""... $ac_c" 1>&6
-echo "configure:7551: 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 7557 "configure"
-#include "confdefs.h"
-extern int h_nerr;
-int foo() { return h_nerr; }
-int main() {
-foo()
-; return 0; }
-EOF
-if { (eval echo configure:7565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_var_h_nerr=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_var_h_nerr=no
-fi
-rm -f conftest*
-
-fi
-
-eval "ac_tr_var=HAVE_H_NERR"
-
-
-: << END
-@@@syms="$syms HAVE_H_NERR"@@@
-END
-
-
-echo "$ac_t""`eval echo \\$ac_cv_var_h_nerr`" 1>&6
-if test `eval echo \\$ac_cv_var_h_nerr` = yes; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-
-echo $ac_n "checking if h_nerr is properly declared""... $ac_c" 1>&6
-echo "configure:7594: 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 7600 "configure"
-#include "confdefs.h"
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-extern struct { int foo; } h_nerr;
-int main() {
-h_nerr.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_h_nerr_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_h_nerr_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_H_NERR_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_H_NERR_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_h_nerr_declaration" 1>&6
-if eval "test \"\$ac_cv_var_h_nerr_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-fi
-
-
-
-echo $ac_n "checking for __progname""... $ac_c" 1>&6
-echo "configure:7645: 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 7651 "configure"
-#include "confdefs.h"
-extern int __progname;
-int foo() { return __progname; }
-int main() {
-foo()
-; return 0; }
-EOF
-if { (eval echo configure:7659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- ac_cv_var___progname=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_var___progname=no
-fi
-rm -f conftest*
-
-fi
-
-eval "ac_tr_var=HAVE___PROGNAME"
-
-
-: << END
-@@@syms="$syms HAVE___PROGNAME"@@@
-END
-
-
-echo "$ac_t""`eval echo \\$ac_cv_var___progname`" 1>&6
-if test `eval echo \\$ac_cv_var___progname` = yes; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-
-echo $ac_n "checking if __progname is properly declared""... $ac_c" 1>&6
-echo "configure:7688: 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 7694 "configure"
-#include "confdefs.h"
-#ifdef HAVE_ERR_H
-#include <err.h>
-#endif
-extern struct { int foo; } __progname;
-int main() {
-__progname.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var___progname_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var___progname_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE___PROGNAME_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE___PROGNAME_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var___progname_declaration" 1>&6
-if eval "test \"\$ac_cv_var___progname_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-fi
-
-
-
-echo $ac_n "checking if optarg is properly declared""... $ac_c" 1>&6
-echo "configure:7739: 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 7745 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-extern struct { int foo; } optarg;
-int main() {
-optarg.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7753: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_optarg_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_optarg_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_OPTARG_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_OPTARG_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_optarg_declaration" 1>&6
-if eval "test \"\$ac_cv_var_optarg_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-
-echo $ac_n "checking if optind is properly declared""... $ac_c" 1>&6
-echo "configure:7785: 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 7791 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-extern struct { int foo; } optind;
-int main() {
-optind.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_optind_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_optind_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_OPTIND_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_OPTIND_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_optind_declaration" 1>&6
-if eval "test \"\$ac_cv_var_optind_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-
-echo $ac_n "checking if opterr is properly declared""... $ac_c" 1>&6
-echo "configure:7831: 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 7837 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-extern struct { int foo; } opterr;
-int main() {
-opterr.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_opterr_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_opterr_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_OPTERR_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_OPTERR_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_opterr_declaration" 1>&6
-if eval "test \"\$ac_cv_var_opterr_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-
-echo $ac_n "checking if optopt is properly declared""... $ac_c" 1>&6
-echo "configure:7877: 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 7883 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-extern struct { int foo; } optopt;
-int main() {
-optopt.foo = 1;
-; return 0; }
-EOF
-if { (eval echo configure:7891: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_var_optopt_declaration=no"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_var_optopt_declaration=yes"
-fi
-rm -f conftest*
-
-fi
-
-
-ac_tr_var=HAVE_OPTOPT_DECLARATION
-
-
-: << END
-@@@syms="$syms HAVE_OPTOPT_DECLARATION"@@@
-END
-
-
-echo "$ac_t""$ac_cv_var_optopt_declaration" 1>&6
-if eval "test \"\$ac_cv_var_optopt_declaration\" = yes"; then
- cat >> confdefs.h <<EOF
-#define $ac_tr_var 1
-EOF
-
-fi
-
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:7923: 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 7928 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:7945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-if test "$ac_cv_type_signal" = "void" ; then
- cat >> confdefs.h <<\EOF
-#define VOID_RETSIGTYPE 1
-EOF
-
-fi
-
-cat > conftest.$ac_ext <<EOF
-#line 7971 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_user" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_USER 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 7986 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_host" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_HOST 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8001 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_addr" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_ADDR 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8016 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_type" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_TYPE 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8031 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_pid" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_PID 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8046 "configure"
-#include "confdefs.h"
-#include <utmp.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_id" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_ID 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8061 "configure"
-#include "confdefs.h"
-#include <utmpx.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ut_syslen" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_UT_SYSLEN 1
-EOF
-
-fi
-rm -f conftest*
-
-
-echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:8077: 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 8082 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-int main() {
-struct stat s; s.st_blksize;
-; return 0; }
-EOF
-if { (eval echo configure:8090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_st_blksize=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_struct_st_blksize=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_struct_st_blksize" 1>&6
-if test $ac_cv_struct_st_blksize = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ST_BLKSIZE 1
-EOF
-
-fi
-
-
-
-
-echo $ac_n "checking for struct winsize""... $ac_c" 1>&6
-echo "configure:8114: 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
-
-ac_cv_struct_winsize=no
-for i in sys/termios.h sys/ioctl.h; do
-cat > conftest.$ac_ext <<EOF
-#line 8122 "configure"
-#include "confdefs.h"
-#include <$i>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "struct[ ]*winsize" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_struct_winsize=yes; break
-fi
-rm -f conftest*
-done
-
-fi
-
-if test "$ac_cv_struct_winsize" = "yes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_STRUCT_WINSIZE 1
-EOF
-fi
-echo "$ac_t""$ac_cv_struct_winsize" 1>&6
-cat > conftest.$ac_ext <<EOF
-#line 8143 "configure"
-#include "confdefs.h"
-#include <termios.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ws_xpixel" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_WS_XPIXEL 1
-EOF
-
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 8158 "configure"
-#include "confdefs.h"
-#include <termios.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ws_ypixel" >/dev/null 2>&1; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_WS_YPIXEL 1
-EOF
-
-fi
-rm -f conftest*
-
-
-
-
-echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:8176: 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 8181 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_pid_t=yes
-else
- rm -rf conftest*
- ac_cv_type_pid_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_pid_t" 1>&6
-if test $ac_cv_type_pid_t = no; then
- cat >> confdefs.h <<\EOF
-#define pid_t int
-EOF
-
-fi
-
-echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:8209: 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 8214 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "uid_t" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_uid_t=yes
-else
- rm -rf conftest*
- ac_cv_type_uid_t=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_uid_t" 1>&6
-if test $ac_cv_type_uid_t = no; then
- cat >> confdefs.h <<\EOF
-#define uid_t int
-EOF
-
- cat >> confdefs.h <<\EOF
-#define gid_t int
-EOF
-
-fi
-
-echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:8243: 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 8248 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_off_t=yes
-else
- rm -rf conftest*
- ac_cv_type_off_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_off_t" 1>&6
-if test $ac_cv_type_off_t = no; then
- cat >> confdefs.h <<\EOF
-#define off_t long
-EOF
-
-fi
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:8276: 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 8281 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-
-
-echo $ac_n "checking for sa_len in struct sockaddr""... $ac_c" 1>&6
-echo "configure:8311: checking for sa_len in struct sockaddr" >&5
-if eval "test \"`echo '$''{'krb_cv_struct_sockaddr_sa_len'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 8317 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
-struct sockaddr sa;
-int foo = sa.sa_len;
-; return 0; }
-EOF
-if { (eval echo configure:8326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- krb_cv_struct_sockaddr_sa_len=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- krb_cv_struct_sockaddr_sa_len=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$krb_cv_struct_sockaddr_sa_len" 1>&6
-if test "$krb_cv_struct_sockaddr_sa_len" = yes; then
- cat >> confdefs.h <<\EOF
-#define SOCKADDR_HAS_SA_LEN 1
-EOF
-
-fi
-
-
-if test "$ac_cv_header_siad_h" = yes; then
-echo $ac_n "checking for ouid in struct siaentity""... $ac_c" 1>&6
-echo "configure:8350: checking for ouid in struct siaentity" >&5
-if eval "test \"`echo '$''{'krb_cv_struct_siaentity_ouid'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 8356 "configure"
-#include "confdefs.h"
-#include <siad.h>
-
-int main() {
-SIAENTITY e;
-int foo = e.ouid;
-; return 0; }
-EOF
-if { (eval echo configure:8365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- krb_cv_struct_siaentity_ouid=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- krb_cv_struct_siaentity_ouid=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$krb_cv_struct_siaentity_ouid" 1>&6
-if test "$krb_cv_struct_siaentity_ouid" = yes; then
- cat >> confdefs.h <<\EOF
-#define SIAENTITY_HAS_OUID 1
-EOF
-
-fi
-fi
-
-
-echo $ac_n "checking for working getmsg""... $ac_c" 1>&6
-echo "configure:8389: 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
- if test "$cross_compiling" = yes; then
- ac_cv_func_getmsg=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 8397 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-
-int main()
-{
- getmsg(open("/dev/null", 0), NULL, NULL, NULL);
- return 0;
-}
-
-EOF
-if { (eval echo configure:8409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_getmsg=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_getmsg=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_getmsg" 1>&6
-test "$ac_cv_func_getmsg" = "yes" &&
-cat >> confdefs.h <<\EOF
-#define HAVE_GETMSG 1
-EOF
-
-
-
-save_LIBS="$LIBS"
-LIBS="$LIB_DBM $LIBS"
-echo $ac_n "checking for berkeley db""... $ac_c" 1>&6
-echo "configure:8434: checking for berkeley db" >&5
-if eval "test \"`echo '$''{'krb_cv_lib_berkeleydb'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- krb_cv_lib_berkeleydb=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 8442 "configure"
-#include "confdefs.h"
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <ndbm.h>
-int main()
-{
- DBM *d;
-
- d = dbm_open("conftest", O_RDWR | O_CREAT, 0666);
- if(d == NULL)
- return 1;
- dbm_close(d);
- return access("conftest.db", F_OK) != 0;
-}
-EOF
-if { (eval echo configure:8459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- krb_cv_lib_berkeleydb=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- krb_cv_lib_berkeleydb=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$krb_cv_lib_berkeleydb" 1>&6
-test "$krb_cv_lib_berkeleydb" = "yes" &&
-cat >> confdefs.h <<\EOF
-#define HAVE_NEW_DB 1
-EOF
-
-LIBS="$save_LIBS"
-
-
-
-
-echo $ac_n "checking for el_init""... $ac_c" 1>&6
-echo "configure:8485: 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
-
-if eval "test \"\$ac_cv_func_el_init\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" edit; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 8498 "configure"
-#include "confdefs.h"
-
-int main() {
-el_init()
-; return 0; }
-EOF
-if { (eval echo configure:8505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_el_init=\${ac_cv_funclib_el_init-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_el_init"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs el_init"@@@
-@@@libs="$libs edit"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo el_init | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_el_init=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_el_init=yes"
- eval "LIB_el_init="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_el_init=no"
- eval "LIB_el_init="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_el_init=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-
-
-echo $ac_n "checking for readline""... $ac_c" 1>&6
-echo "configure:8567: checking for readline" >&5
-if eval "test \"`echo '$''{'ac_cv_funclib_readline'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if eval "test \"\$ac_cv_func_readline\" != yes" ; then
- ac_save_LIBS="$LIBS"
- for ac_lib in "" readline; do
- if test -n "$ac_lib"; then
- ac_lib="-l$ac_lib"
- LIBS="$ac_lib $ac_save_LIBS"
- fi
- cat > conftest.$ac_ext <<EOF
-#line 8580 "configure"
-#include "confdefs.h"
-
-int main() {
-readline()
-; return 0; }
-EOF
-if { (eval echo configure:8587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- eval "ac_cv_funclib_readline=\${ac_cv_funclib_readline-no}"
- LIBS="$ac_save_LIBS"
-fi
-
-fi
-
-
-eval "ac_res=\$ac_cv_funclib_readline"
-
-# autoheader tricks *sigh*
-: << END
-@@@funcs="$funcs readline"@@@
-@@@libs="$libs readline"@@@
-END
-
-eval "ac_tr_func=HAVE_`echo readline | tr '[a-z]' '[A-Z]'`"
-eval "ac_tr_lib=HAVE_LIB`echo $ac_res | sed -e 's/-l//' | tr '[a-z]' '[A-Z]'`"
-eval "LIB_readline=$ac_res"
-
-case "$ac_res" in
- yes)
- eval "ac_cv_func_readline=yes"
- eval "LIB_readline="
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- echo "$ac_t""yes" 1>&6
- ;;
- no)
- eval "ac_cv_func_readline=no"
- eval "LIB_readline="
- echo "$ac_t""no" 1>&6
- ;;
- *)
- eval "ac_cv_func_readline=yes"
- eval "ac_cv_lib_`echo "$ac_res" | sed 's/-l//'`=yes"
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- echo "$ac_t""yes, in $ac_res" 1>&6
- ;;
-esac
-
-
-
-if test "$with_readline"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_READLINE 1
-EOF
-
- editline_OBJS=
- LIB_readline="$READLINELIB "'$(LIB_tgetent)'
- INCLUDE_readline="$READLINEINCLUDE"
-elif test "$ac_cv_func_el_init" = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_READLINE 1
-EOF
-
-
- editline_OBJS=edit_compat.o
- LIB_readline='-L$(topdir)/lib/editline -leditline '"$LIB_el_init"' $(LIB_tgetent)'
-
- INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
-elif test "$ac_cv_func_readline" = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_READLINE 1
-EOF
-
- editline_OBJS=
- LIB_readline='-lreadline $(LIB_tgetent)'
- INCLUDE_readline=
-else
- cat >> confdefs.h <<\EOF
-#define HAVE_READLINE 1
-EOF
-
- editline_OBJS="editline.o complete.o sysunix.o"
- LIB_readline='-L$(topdir)/lib/editline -leditline $(LIB_tgetent)'
- INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
-fi
-
-
-
-
-
-cat >> confdefs.h <<\EOF
-#define AUTHENTICATION 1
-EOF
-cat >> confdefs.h <<\EOF
-#define KRB4 1
-EOF
-cat >> confdefs.h <<\EOF
-#define ENCRYPTION 1
-EOF
-cat >> confdefs.h <<\EOF
-#define DES_ENCRYPTION 1
-EOF
-cat >> confdefs.h <<\EOF
-#define DIAGNOSTICS 1
-EOF
-cat >> confdefs.h <<\EOF
-#define OLD_ENVIRON 1
-EOF
-
-# Simple test for streamspty, based on the existance of getmsg(), alas
-# this breaks on SunOS4 which have streams but BSD-like ptys
-#
-# 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:8712: checking for streamspty" >&5
-case "`uname -sr`" in
-SunOS\ 4*|OSF1*|IRIX\ 4*|HP-UX\ ?.10.*)
- krb_cv_sys_streamspty=no
- ;;
-AIX*)
- os_rel=`uname -v`.`uname -r`
- if expr "$os_rel" : "3*" >/dev/null 2>&1; then
- krb_cv_sys_streamspty=no
- else
- krb_cv_sys_streamspty="$ac_cv_func_getmsg"
- fi
- ;;
-*)
- krb_cv_sys_streamspty="$ac_cv_func_getmsg"
- ;;
-esac
-if test "$krb_cv_sys_streamspty" = yes; then
- cat >> confdefs.h <<\EOF
-#define STREAMSPTY 1
-EOF
-
-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:8738: 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
-EOF
-
- krb_ls_a=yes
-else
- krb_ls_a=no
-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:8751: 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
- if grep _version /etc/man.conf > /dev/null 2>&1; then
- krb_cv_sys_cat_suffix=0
-else
- krb_cv_sys_cat_suffix=number
-fi
-fi
-
-echo "$ac_t""$krb_cv_sys_cat_suffix" 1>&6
-if test "$krb_cv_sys_cat_suffix" = number; then
- CATSUFFIX='$$s'
-else
- CATSUFFIX=0
-fi
-
-
-
-KRB_KAFS_LIB='-L$(topdir)/lib/kafs -lkafs'
-if test "$krb_cv_sys_aix" = yes; then
- KRB_KAFS_LIB="$KRB_KAFS_LIB -lld"
-fi
-
-
-
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-for i in bin lib libexec sbin; do
- i=${i}dir
- foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
- x="\$${i}"
- eval y="$x"
- while test "x$y" != "x$x"; do
- x="$y"
- eval y="$x"
- done
- cat >> confdefs.h <<EOF
-#define $foo "$x"
-EOF
-
-done
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1 | grep '^ac_space'` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "\
-Makefile \
-include/Makefile \
-include/sys/Makefile \
- \
-util/Makefile \
-util/et/Makefile \
- \
-man/Makefile \
- \
-lib/Makefile \
-lib/des/Makefile \
-lib/krb/Makefile \
-lib/kdb/Makefile \
-lib/kadm/Makefile \
-lib/acl/Makefile \
-lib/kafs/Makefile \
-lib/roken/Makefile \
-lib/otp/Makefile \
-lib/sl/Makefile \
-lib/editline/Makefile \
-lib/auth/Makefile \
-lib/auth/pam/Makefile \
-lib/auth/sia/Makefile \
-lib/auth/afskauthlib/Makefile \
- \
-kuser/Makefile \
-server/Makefile \
-slave/Makefile \
-admin/Makefile \
-kadmin/Makefile \
- \
-appl/Makefile \
- \
-appl/afsutil/Makefile \
-appl/ftp/Makefile \
-appl/ftp/common/Makefile \
-appl/ftp/ftp/Makefile \
-appl/ftp/ftpd/Makefile \
-appl/telnet/Makefile \
-appl/telnet/libtelnet/Makefile \
-appl/telnet/telnet/Makefile \
-appl/telnet/telnetd/Makefile \
-appl/bsd/Makefile \
-appl/kauth/Makefile \
-appl/kpopper/Makefile \
-appl/movemail/Makefile \
-appl/sample/Makefile \
-appl/xnlock/Makefile \
-appl/kx/Makefile \
-appl/kip/Makefile \
-appl/otp/Makefile \
-doc/Makefile \
- include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@LN_S@%$LN_S%g
-s%@CC@%$CC%g
-s%@CPP@%$CPP%g
-s%@YACC@%$YACC%g
-s%@LEX@%$LEX%g
-s%@LEXLIB@%$LEXLIB%g
-s%@RANLIB@%$RANLIB%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SOCKSINCLUDE@%$SOCKSINCLUDE%g
-s%@SOCKSLIB@%$SOCKSLIB%g
-s%@CRACKLIB@%$CRACKLIB%g
-s%@READLINEINCLUDE@%$READLINEINCLUDE%g
-s%@READLINELIB@%$READLINELIB%g
-s%@REAL_PICFLAGS@%$REAL_PICFLAGS%g
-s%@REAL_SHLIBEXT@%$REAL_SHLIBEXT%g
-s%@REAL_LD_FLAGS@%$REAL_LD_FLAGS%g
-s%@PICFLAGS@%$PICFLAGS%g
-s%@SHLIBEXT@%$SHLIBEXT%g
-s%@LDSHARED@%$LDSHARED%g
-s%@LD_FLAGS@%$LD_FLAGS%g
-s%@LIBEXT@%$LIBEXT%g
-s%@LIBPREFIX@%$LIBPREFIX%g
-s%@EXECSUFFIX@%$EXECSUFFIX%g
-s%@AFS_EXTRA_OBJS@%$AFS_EXTRA_OBJS%g
-s%@AFS_EXTRA_LIBS@%$AFS_EXTRA_LIBS%g
-s%@ac_cv_header_sys_cdefs_h@%$ac_cv_header_sys_cdefs_h%g
-s%@ac_cv_header_err_h@%$ac_cv_header_err_h%g
-s%@LIB_socket@%$LIB_socket%g
-s%@LIB_gethostbyname@%$LIB_gethostbyname%g
-s%@LIB_odm_initialize@%$LIB_odm_initialize%g
-s%@LIB_getattr@%$LIB_getattr%g
-s%@LIB_setpcred@%$LIB_setpcred%g
-s%@LIB_logwtmp@%$LIB_logwtmp%g
-s%@LIB_logout@%$LIB_logout%g
-s%@LIB_tgetent@%$LIB_tgetent%g
-s%@X_CFLAGS@%$X_CFLAGS%g
-s%@X_PRE_LIBS@%$X_PRE_LIBS%g
-s%@X_LIBS@%$X_LIBS%g
-s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
-s%@MAKE_X_PROGS_BIN@%$MAKE_X_PROGS_BIN%g
-s%@MAKE_X_PROGS_LIBEXEC@%$MAKE_X_PROGS_LIBEXEC%g
-s%@LIB_XauReadAuth@%$LIB_XauReadAuth%g
-s%@XauWriteAuth_c@%$XauWriteAuth_c%g
-s%@XauWriteAuth_o@%$XauWriteAuth_o%g
-s%@LIB_dbopen@%$LIB_dbopen%g
-s%@LIB_dbm_firstkey@%$LIB_dbm_firstkey%g
-s%@LIB_DBM@%$LIB_DBM%g
-s%@LIB_syslog@%$LIB_syslog%g
-s%@LIB_getpwnam_r@%$LIB_getpwnam_r%g
-s%@LIB_getsockopt@%$LIB_getsockopt%g
-s%@LIB_setsockopt@%$LIB_setsockopt%g
-s%@LIB_res_search@%$LIB_res_search%g
-s%@LIB_dn_expand@%$LIB_dn_expand%g
-s%@ALLOCA@%$ALLOCA%g
-s%@LIB_hstrerror@%$LIB_hstrerror%g
-s%@LIBOBJS@%$LIBOBJS%g
-s%@LIB_AUTH_SUBDIRS@%$LIB_AUTH_SUBDIRS%g
-s%@APPL_KIP_DIR@%$APPL_KIP_DIR%g
-s%@LIB_el_init@%$LIB_el_init%g
-s%@LIB_readline@%$LIB_readline%g
-s%@INCLUDE_readline@%$INCLUDE_readline%g
-s%@editline_OBJS@%$editline_OBJS%g
-s%@CATSUFFIX@%$CATSUFFIX%g
-s%@KRB_KAFS_LIB@%$KRB_KAFS_LIB%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"\
-Makefile \
-include/Makefile \
-include/sys/Makefile \
- \
-util/Makefile \
-util/et/Makefile \
- \
-man/Makefile \
- \
-lib/Makefile \
-lib/des/Makefile \
-lib/krb/Makefile \
-lib/kdb/Makefile \
-lib/kadm/Makefile \
-lib/acl/Makefile \
-lib/kafs/Makefile \
-lib/roken/Makefile \
-lib/otp/Makefile \
-lib/sl/Makefile \
-lib/editline/Makefile \
-lib/auth/Makefile \
-lib/auth/pam/Makefile \
-lib/auth/sia/Makefile \
-lib/auth/afskauthlib/Makefile \
- \
-kuser/Makefile \
-server/Makefile \
-slave/Makefile \
-admin/Makefile \
-kadmin/Makefile \
- \
-appl/Makefile \
- \
-appl/afsutil/Makefile \
-appl/ftp/Makefile \
-appl/ftp/common/Makefile \
-appl/ftp/ftp/Makefile \
-appl/ftp/ftpd/Makefile \
-appl/telnet/Makefile \
-appl/telnet/libtelnet/Makefile \
-appl/telnet/telnet/Makefile \
-appl/telnet/telnetd/Makefile \
-appl/bsd/Makefile \
-appl/kauth/Makefile \
-appl/kpopper/Makefile \
-appl/movemail/Makefile \
-appl/sample/Makefile \
-appl/xnlock/Makefile \
-appl/kx/Makefile \
-appl/kip/Makefile \
-appl/otp/Makefile \
-doc/Makefile \
-"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="include/config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-KRB4VERSION="$PACKAGE-$VERSION"
-
-cat > include/newversion.h.in <<EOF
-char *krb4_long_version = "@(#)\$Version: $KRB4VERSION by @USER@ on @HOST@ ($host) @DATE@ \$";
-char *krb4_version = "$KRB4VERSION";
-EOF
-
-if test -f include/version.h && cmp -s include/newversion.h.in include/version.h.in; then
- echo "include/version.h is unchanged"
- rm -f include/newversion.h.in
-else
- echo "creating include/version.h"
- User=${USER-${LOGNAME}}
- Host=`(hostname || uname -n) 2>/dev/null | sed 1q`
- Date=`date`
- mv -f include/newversion.h.in include/version.h.in
- sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h
-fi
diff --git a/crypto/kerberosIV/configure.in b/crypto/kerberosIV/configure.in
deleted file mode 100644
index 9265666139fc..000000000000
--- a/crypto/kerberosIV/configure.in
+++ /dev/null
@@ -1,970 +0,0 @@
-dnl
-dnl *** PLEASE NOTE ***
-dnl *** PLEASE NOTE ***
-dnl *** PLEASE NOTE ***
-dnl
-dnl Update $VERSION before making a new release
-dnl
-
-dnl Process this file with autoconf to produce a configure script.
-dnl
-AC_REVISION($Revision: 1.285 $)
-AC_INIT(lib/krb/getrealm.c)
-AC_CONFIG_HEADER(include/config.h)
-
-dnl
-dnl definitions
-dnl
-
-PACKAGE=krb4
-AC_SUBST(PACKAGE)dnl
-VERSION=0.9.6
-AC_SUBST(VERSION)dnl
-# This may be overridden using --prefix=/usr to configure
-AC_PREFIX_DEFAULT(/usr/athena)
-
-AC_CANONICAL_HOST
-AC_PROG_MAKE_SET
-AC_ARG_PROGRAM
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$LDFLAGS" && LDFLAGS=-g
-
-dnl
-dnl check for programs
-dnl
-
-AC_KRB_PROG_LN_S
-AC_PROG_CC
-AC_PROG_CPP
-AC_ISC_POSIX
-AC_KRB_PROG_YACC
-AC_PROG_LEX
-AC_PROG_RANLIB
-AC_PROG_INSTALL
-AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, :)
-
-dnl
-dnl check for build options
-dnl
-
-AC_TEST_PACKAGE(socks,socks.h,libsocks5.a,-lsocks5)
-CFLAGS="$SOCKSINCLUDE $CFLAGS"
-LIBS="$SOCKSLIB $LIBS"
-
-dnl Check if we want to use shared libraries
-AC_ARG_WITH(shared,
-[ --with-shared create shared libraries for Kerberos])
-
-AC_ARG_WITH(cracklib,
-[ --with-cracklib=dir use the cracklib.a in dir],
-)
-
-AC_ARG_WITH(dictpath,
-[ --with-dictpath=path use this dictionary with cracklib]
-)
-
-(test -z "$with_cracklib" && test -n "$with_dictpath") ||
-(test -n "$with_cracklib" && test -z "$with_dictpath") &&
-AC_MSG_ERROR(--with-cracklib requires --with-dictpath and vice versa)
-test -n "$with_cracklib" &&
-CRACKLIB="-L$with_cracklib -lcrack" &&
-AC_MSG_RESULT(Using cracklib in $with_cracklib)
-AC_SUBST(CRACKLIB)dnl
-test -n "$with_dictpath" &&
-AC_MSG_RESULT(Using dictpath=$with_dictpath) &&
-AC_DEFINE_UNQUOTED(DICTPATH,"$with_dictpath")
-
-AC_ARG_WITH(mailspool,
-[ --with-mailspool=dir this is the mail spool directory]
-)
-
-test -n "$with_mailspool" &&
-AC_DEFINE_UNQUOTED(KRB4_MAILDIR, "$with_mailspool")
-
-AC_ARG_ENABLE(random-mkey,
-[ --enable-random-mkey use new code for master keys],[
-if test "$enableval" = "yes"; then
- AC_DEFINE(RANDOM_MKEY,1)
-fi
-])
-
-AC_ARG_WITH(mkey,
-[ --with-mkey=file where to put the master key],[
-if test -n "$withval"; then
- AC_DEFINE_UNQUOTED(MKEYFILE,"$withval")
-fi
-])
-
-berkeley_db=db
-AC_ARG_WITH(berkeley-db,
-[ --without-berkeley-db if you don't want berkeley db],[
-if test "$withval" = no; then
- berkeley_db=""
-fi
-])
-
-afs_support=yes
-AC_ARG_WITH(afs-support,
-[ --without-afs-support if you don't want support for afs],[
-if test "$withval" = no; then
- AC_DEFINE(NO_AFS)
- afs_support=no
-fi
-])
-
-des_quad=guess
-AC_ARG_WITH(des-quad-checksum,
-[ --with-des-quad-checksum=kind
- default checksum to use (new, old, or guess)],[
-des_quad="$withval"
-])
-if test "$des_quad" = "new"; then
- AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_NEW)
-elif test "$des_quad" = "old"; then
- AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_OLD)
-else
- AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_GUESS)
-fi
-
-AC_TEST_PACKAGE(readline,readline.h,libreadline.a,-lreadline)
-
-dnl
-dnl Shared library stuff has to be different everywhere
-dnl
-
-AC_SUBST(CFLAGS)dnl
-AC_SUBST(LDFLAGS)dnl
-
-case ${with_shared} in
- yes ) with_shared=yes;;
- no ) with_shared=no;;
- * ) with_shared=no;;
-esac
-
-# NOTE: Building shared libraries may not work if you do not use gcc!
-#
-# OS $SHLIBEXT
-# HP-UX sl
-# Linux so
-# NetBSD so
-# FreeBSD so
-# OSF so
-# SunOS5 so
-# SunOS4 so.0.5
-# Irix so
-#
-# LIBEXT is the extension we should build (.a or $SHLIBEXT)
-REAL_PICFLAGS="-fpic"
-LDSHARED='$(CC) $(PICFLAGS) -shared'
-LIBPREFIX=lib
-REAL_SHLIBEXT=so
-changequote({,})dnl
-SHLIB_VERSION=`echo $VERSION | sed 's/\([0-9.]*\).*/\1/'`
-changequote([,])dnl
-case "${host}" in
-*-*-hpux*)
- REAL_SHLIBEXT=sl
- REAL_LD_FLAGS='-Wl,+b$(libdir)'
- if test -z "$GCC"; then
- LDSHARED="ld -b"
- REAL_PICFLAGS="+z"
- fi
- ;;
-*-*-linux*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- ;;
-*-*-*bsd*)
- REAL_SHLIBEXT=so.$SHLIB_VERSION
- LDSHARED='ld -Bshareable'
- REAL_LD_FLAGS='-Wl,-R$(libdir)'
- ;;
-*-*-osf*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- REAL_PICFLAGS=
- LDSHARED='ld -shared -expect_unresolved \*'
- ;;
-*-*-solaris2*)
- REAL_LD_FLAGS='-Wl,-R$(libdir)'
- if test -z "$GCC"; then
- LDSHARED='$(CC) -G'
- REAL_PICFLAGS="-Kpic"
- fi
- ;;
-*-*-sunos*)
- REAL_SHLIBEXT=so.$SHLIB_VERSION
- REAL_LD_FLAGS='-Wl,-L$(libdir)'
- ;;
-*-*-irix*)
- REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
- REAL_PICFLAGS=
- ;;
-*-*-os2_emx*)
- LD_FLAGS='-Zexe'
- LIBPREFIX=
- EXECSUFFIX='.exe'
- RANLIB=EMXOMF
- REAL_SHLIBEXT=nobuild
- ;;
-*-*-cygwin32*)
- EXECSUFFIX='.exe'
- REAL_SHLIBEXT=nobuild
- ;;
-*) REAL_SHLIBEXT=nobuild
- REAL_PICFLAGS=
- ;;
-esac
-
-if test "${with_shared}" != "yes" ; then
- PICFLAGS=""
- SHLIBEXT="nobuild"
- LIBEXT="a"
-else
- PICFLAGS="$REAL_PICFLAGS"
- SHLIBEXT="$REAL_SHLIBEXT"
- LIBEXT="$SHLIBEXT"
- LD_FLAGS="$REAL_LD_FLAGS"
-fi
-
-AC_SUBST(REAL_PICFLAGS) dnl
-AC_SUBST(REAL_SHLIBEXT) dnl
-AC_SUBST(REAL_LD_FLAGS) dnl
-
-AC_SUBST(PICFLAGS) dnl
-AC_SUBST(SHLIBEXT) dnl
-AC_SUBST(LDSHARED) dnl
-AC_SUBST(LD_FLAGS) dnl
-AC_SUBST(LIBEXT) dnl
-AC_SUBST(LIBPREFIX) dnl
-AC_SUBST(EXECSUFFIX) dnl
-
-dnl
-dnl Check if we need to use weak-stuff
-dnl
-
-AC_HAVE_PRAGMA_WEAK
-
-dnl
-dnl Check for endian-ness, this breaks cross compilation
-dnl
-AC_C_BIGENDIAN
-
-dnl
-dnl Check for constness
-dnl
-AC_C_CONST
-
-dnl
-dnl Check for strange operating systems that you need to handle differently
-dnl
-
-AC_KRB_SYS_NEXTSTEP
-AC_KRB_SYS_AIX
-
-if test "$krb_cv_sys_aix" = yes ;then
- AFS_EXTRA_OBJS='$(srcdir)/afsl.exp dlfcn.o'
- AC_SUBST(AFS_EXTRA_OBJS)
- AFS_EXTRA_LIBS=afslib.so
- AC_SUBST(AFS_EXTRA_LIBS)
-fi
-
-#
-# AIX needs /lib/pse.exp for getmsg, but alas that file is broken in
-# AIX414
-#
-
-if test -f /lib/pse.exp ;then
- LIBS="$LIBS -Wl,-bI:/lib/pse.exp"
-fi
-
-dnl
-dnl Various checks for headers and their contents
-dnl
-
-AC_HEADER_STDC
-
-AC_CHECK_HEADERS(arpa/ftp.h arpa/inet.h arpa/nameser.h)
-AC_CHECK_HEADERS(arpa/telnet.h bind/bitypes.h bsd/bsd.h bsdsetjmp.h)
-AC_CHECK_HEADERS(crypt.h dbm.h dirent.h err.h fcntl.h grp.h io.h)
-AC_CHECK_HEADERS(lastlog.h login.h maillock.h ndbm.h net/if.h)
-AC_CHECK_HEADERS(net/if_tun.h net/if_var.h netdb.h netinet/in.h)
-AC_CHECK_HEADERS(netinet/in6_machtypes.h netinet/in_systm.h)
-AC_CHECK_HEADERS(netinet/ip.h netinet/tcp.h paths.h pty.h pwd.h)
-AC_CHECK_HEADERS(resolv.h rpcsvc/dbm.h sac.h security/pam_modules.h)
-AC_CHECK_HEADERS(shadow.h siad.h signal.h stropts.h sys/bitypes.h)
-AC_CHECK_HEADERS(sys/category.h sys/cdefs.h sys/file.h sys/filio.h)
-AC_CHECK_HEADERS(sys/ioccom.h sys/ioctl.h sys/locking.h sys/mman.h)
-AC_CHECK_HEADERS(sys/param.h sys/proc.h sys/ptyio.h sys/ptyvar.h)
-AC_CHECK_HEADERS(sys/resource.h sys/select.h sys/socket.h)
-AC_CHECK_HEADERS(sys/sockio.h sys/stat.h sys/str_tty.h sys/stream.h)
-AC_CHECK_HEADERS(sys/stropts.h sys/strtty.h sys/syscall.h)
-AC_CHECK_HEADERS(sys/sysctl.h sys/termio.h sys/time.h sys/timeb.h)
-AC_CHECK_HEADERS(sys/times.h sys/tty.h sys/types.h sys/uio.h)
-AC_CHECK_HEADERS(sys/un.h sys/utsname.h sys/wait.h syslog.h)
-AC_CHECK_HEADERS(termio.h termios.h tmpdir.h ttyent.h udb.h ulimit.h)
-AC_CHECK_HEADERS(unistd.h userpw.h usersec.h util.h utime.h utmp.h)
-AC_CHECK_HEADERS(utmpx.h wait.h winsock.h)
-
-AC_HEADER_TIME
-AC_DECL_SYS_SIGLIST
-AC_SUBST(ac_cv_header_sys_cdefs_h)dnl
-AC_SUBST(ac_cv_header_err_h)dnl
-
-AC_GROK_TYPES(int8_t int16_t int32_t int64_t)
-AC_GROK_TYPES(u_int8_t u_int16_t u_int32_t u_int64_t)
-
-dnl
-dnl Various checks for libraries and their contents
-dnl
-
-dnl
-dnl System V is have misplaced the socket routines, should really be in libc
-dnl
-
-AC_FIND_FUNC(socket, socket,
-[#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif],
-[0,0,0])
-AC_FIND_FUNC(gethostbyname, nsl,
-[#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif],
-"foo")
-
-dnl
-dnl Horror AIX needs -lodm -lcfg to link login
-dnl
-
-AC_FIND_FUNC(odm_initialize, odm)
-AC_FIND_FUNC(getattr, cfg)
-AC_FIND_FUNC(setpcred, s)
-AC_FIND_FUNC(logwtmp, util)
-
-AC_FIND_FUNC(logout, util)
-AC_FIND_FUNC_NO_LIBS(tgetent, termcap)
-
-dnl
-dnl See if there is any X11 present
-dnl
-AC_PATH_XTRA
-if test "$no_x" = "yes" ; then
- MAKE_X_PROGS_BIN=""
- MAKE_X_PROGS_LIBEXEC=""
-else
- MAKE_X_PROGS_BIN='$(X_PROGS_BIN)'
- MAKE_X_PROGS_LIBEXEC='$(X_PROGS_LIBEXEC)'
-fi
-AC_SUBST(MAKE_X_PROGS_BIN)dnl
-AC_SUBST(MAKE_X_PROGS_LIBEXEC)dnl
-
-save_CFLAGS="$CFLAGS"
-CFLAGS="$X_CFLAGS $CFLAGS"
-save_LIBS="$LIBS"
-dnl LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS $LIBS"
-LIBS="$X_PRE_LIBS $X_EXTRA_LIBS $LIBS"
-save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $X_LIBS"
-
-AC_FIND_FUNC_NO_LIBS(XauReadAuth, Xau X11)
-ac_xxx="$LIBS"
-LIBS="$LIB_XauReadAuth $LIBS"
-AC_CHECK_FUNCS(XauWriteAuth)
-if test "$ac_cv_func_XauWriteAuth" != "yes"; then
- XauWriteAuth_c=writeauth.c
- XauWriteAuth_o=writeauth.o
-fi
-AC_SUBST(XauWriteAuth_c)dnl
-AC_SUBST(XauWriteAuth_o)dnl
-LIBS="$ac_xxx"
-
-CFLAGS=$save_CFLAGS
-LIBS=$save_LIBS
-LDFLAGS=$save_LDFLAGS
-
-dnl
-dnl Look for berkeley db, gdbm, and ndbm in that order.
-dnl
-
-save_LIBS="$LIBS"
-AC_FIND_FUNC_NO_LIBS(dbopen, $berkeley_db)
-LIBS="$LIB_dbopen $LIBS"
-AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm)
-if test -n "$LIB_dbopen"; then
- LIB_DBM="$LIB_dbopen"
-else
- LIB_DBM="$LIB_dbm_firstkey"
-fi
-AC_SUBST(LIB_DBM)dnl
-LIBS="$save_LIBS"
-
-AC_FIND_FUNC(syslog, syslog)
-
-AC_CACHE_CHECK(for working snprintf,ac_cv_func_snprintf_working,
-ac_cv_func_snprintf_working=yes
-AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-int main()
-{
-changequote(`,')dnl
- char foo[3];
-changequote([,])dnl
- snprintf(foo, 2, "12");
- return strcmp(foo, "1");
-}],:,ac_cv_func_snprintf_working=no,:))
-: << END
-@@@funcs="$funcs snprintf"@@@
-END
-if test "$ac_cv_func_snprintf_working" = yes; then
- foo=HAVE_SNPRINTF
- AC_DEFINE_UNQUOTED($foo)
-fi
-
-AC_CHECK_FUNCS(asnprintf asprintf vasprintf vasnprintf vsnprintf)
-
-
-AC_CHECK_FUNCS(_getpty _scrsize _setsid _stricmp fchmod fcntl flock)
-AC_CHECK_FUNCS(forkpty frevoke gethostname getlogin getpriority getservbyname)
-AC_CHECK_FUNCS(getspnam getspuid gettimeofday getuid grantpt)
-AC_CHECK_FUNCS(innetgr iruserok mktime ptsname rand random)
-AC_CHECK_FUNCS(revoke setitimer setlogin setpgid setpriority)
-AC_CHECK_FUNCS(setproctitle setregid setresgid setresuid setreuid setsid)
-AC_CHECK_FUNCS(setutent swab ttyname ttyslot ulimit uname)
-AC_CHECK_FUNCS(unlockpt vhangup yp_get_default_domain)
-AC_FIND_FUNC_NO_LIBS(getpwnam_r,c_r)
-if test "$ac_cv_func_getpwnam_r" = yes; then
- AC_CACHE_CHECK(if getpwnam_r is posix,ac_cv_func_getpwnam_r_posix,
- ac_libs="$LIBS"
- LIBS="$LIBS $LIB_getpwnam_r"
- AC_TRY_RUN([
-#include <pwd.h>
-int main()
-{
- struct passwd pw, *pwd;
- return getpwnam_r("", &pw, NULL, 0, &pwd) < 0;
-}
-],ac_cv_func_getpwnam_r_posix=yes,ac_cv_func_getpwnam_r_posix=no,:)
-LIBS="$ac_libs")
-if test "$ac_cv_func_getpwnam_r_posix" = yes; then
- AC_DEFINE(POSIX_GETPWNAM_R)
-fi
-fi
-
-AC_FIND_FUNC_NO_LIBS(getsockopt, ,
-[#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif],
-[0,0,0,0,0])
-AC_FIND_FUNC_NO_LIBS(setsockopt, ,
-[#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif],
-[0,0,0,0,0])
-
-dnl Cray stuff
-AC_CHECK_FUNCS(getudbnam setlim)
-
-AC_FIND_FUNC(res_search, resolv,
-[
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-],
-[0,0,0,0,0])
-
-AC_FIND_FUNC(dn_expand, resolv,
-[
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-],
-[0,0,0,0,0])
-
-
-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)
-fi
-fi
-
-AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
-[#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif],
-17)
-
-AC_BROKEN(chown daemon err errx fchown getcwd getdtablesize getopt)
-AC_BROKEN(getusershell inet_aton initgroups lstat memmove mkstemp)
-AC_BROKEN(putenv rcmd setegid setenv seteuid strcasecmp strdup)
-AC_BROKEN(strerror strftime strlwr strnlen strtok_r strupr unsetenv)
-AC_BROKEN(verr verrx vwarn vwarnx warn warnx)
-
-AC_KRB_FUNC_GETCWD_BROKEN
-
-dnl
-dnl Figure what authentication modules should be built
-dnl
-
-AC_MSG_CHECKING(which authentication modules should be built)
-
-LIB_AUTH_SUBDIRS=
-
-if test "$ac_cv_header_siad_h" = yes; then
- LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS sia"
-fi
-
-if test "$ac_cv_header_security_pam_modules_h" = yes; then
- LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS pam"
-fi
-
-case "${host}" in
-changequote(,)dnl
-*-*-irix[56]*) LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS afskauthlib" ;;
-changequote([,])dnl
-esac
-
-AC_MSG_RESULT($LIB_AUTH_SUBDIRS)
-
-AC_SUBST(LIB_AUTH_SUBDIRS)dnl
-
-dnl
-dnl Figure out if we have tunnels
-dnl
-
-AC_MSG_CHECKING(for tunnel devices)
-
-APPL_KIP_DIR=
-
-if test "$ac_cv_header_net_if_tun_h" = "yes"; then
- APPL_KIP_DIR=kip
-fi
-
-AC_MSG_RESULT($ac_cv_header_net_if_tun_h)
-
-AC_SUBST(APPL_KIP_DIR)dnl
-
-dnl
-dnl Checks for prototypes and declarations
-dnl
-
-AC_NEED_PROTO([
-#ifdef HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-],
-crypt)
-
-AC_NEED_PROTO([
-#include <string.h>
-],
-strtok_r)
-
-AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif],
-h_errno)
-
-AC_CHECK_VAR([#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif],
-h_errlist)
-
-AC_CHECK_VAR([#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif],
-h_nerr)
-
-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)
-
-dnl
-dnl According to ANSI you are explicitly allowed to cast to void,
-dnl but the standard fails to say what should happen. Some compilers
-dnl think this is illegal:
-dnl
-dnl void foo(void)
-dnl {
-dnl return (void)0;
-dnl }
-dnl
-dnl Thus explicitly test for void
-dnl
-AC_TYPE_SIGNAL
-if test "$ac_cv_type_signal" = "void" ; then
- AC_DEFINE(VOID_RETSIGTYPE, 1)
-fi
-
-dnl
-dnl Check for fields in struct utmp
-dnl
-AC_EGREP_HEADER(ut_user, utmp.h, AC_DEFINE(HAVE_UT_USER))
-AC_EGREP_HEADER(ut_host, utmp.h, AC_DEFINE(HAVE_UT_HOST))
-AC_EGREP_HEADER(ut_addr, utmp.h, AC_DEFINE(HAVE_UT_ADDR))
-AC_EGREP_HEADER(ut_type, utmp.h, AC_DEFINE(HAVE_UT_TYPE))
-AC_EGREP_HEADER(ut_pid, utmp.h, AC_DEFINE(HAVE_UT_PID))
-AC_EGREP_HEADER(ut_id, utmp.h, AC_DEFINE(HAVE_UT_ID))
-AC_EGREP_HEADER(ut_syslen, utmpx.h, AC_DEFINE(HAVE_UT_SYSLEN))
-
-AC_STRUCT_ST_BLKSIZE
-
-dnl
-dnl Check for struct winsize
-dnl
-
-AC_KRB_STRUCT_WINSIZE
-
-dnl
-dnl Check for some common types
-dnl
-
-AC_TYPE_PID_T
-AC_TYPE_UID_T
-AC_TYPE_OFF_T
-AC_TYPE_SIZE_T
-
-dnl
-dnl Check for sa_len in sys/socket.h
-dnl
-
-AC_MSG_CHECKING(for sa_len in struct sockaddr)
-AC_CACHE_VAL(krb_cv_struct_sockaddr_sa_len, [
-AC_TRY_COMPILE(
-[#include <sys/types.h>
-#include <sys/socket.h>],
-[struct sockaddr sa;
-int foo = sa.sa_len;],
-krb_cv_struct_sockaddr_sa_len=yes,
-krb_cv_struct_sockaddr_sa_len=no)
-])
-AC_MSG_RESULT($krb_cv_struct_sockaddr_sa_len)
-if test "$krb_cv_struct_sockaddr_sa_len" = yes; then
- AC_DEFINE(SOCKADDR_HAS_SA_LEN)
-fi
-
-dnl
-dnl Check for ouid in sys/siad.h
-dnl
-
-if test "$ac_cv_header_siad_h" = yes; then
-AC_MSG_CHECKING(for ouid in struct siaentity)
-AC_CACHE_VAL(krb_cv_struct_siaentity_ouid, [
-AC_TRY_COMPILE(
-[#include <siad.h>
-],
-[SIAENTITY e;
-int foo = e.ouid;],
-krb_cv_struct_siaentity_ouid=yes,
-krb_cv_struct_siaentity_ouid=no)
-])
-AC_MSG_RESULT($krb_cv_struct_siaentity_ouid)
-if test "$krb_cv_struct_siaentity_ouid" = yes; then
- AC_DEFINE(SIAENTITY_HAS_OUID)
-fi
-fi
-
-dnl
-dnl you can link with getmsg on AIX 3.2 but you cannot run the program
-dnl
-
-AC_CACHE_CHECK(for working getmsg, ac_cv_func_getmsg,
-AC_TRY_RUN(
-[
-#include <stdio.h>
-
-int main()
-{
- getmsg(open("/dev/null", 0), NULL, NULL, NULL);
- return 0;
-}
-], ac_cv_func_getmsg=yes, ac_cv_func_getmsg=no, ac_cv_func_getmsg=no))
-test "$ac_cv_func_getmsg" = "yes" &&
-AC_DEFINE(HAVE_GETMSG)
-
-dnl
-dnl Test if we are using berkeley db
-dnl
-
-save_LIBS="$LIBS"
-LIBS="$LIB_DBM $LIBS"
-AC_CACHE_CHECK(for berkeley db, krb_cv_lib_berkeleydb,
-AC_TRY_RUN(
-[
-#include <unistd.h>
-#include <fcntl.h>
-#include <ndbm.h>
-int main()
-{
- DBM *d;
-
- d = dbm_open("conftest", O_RDWR | O_CREAT, 0666);
- if(d == NULL)
- return 1;
- dbm_close(d);
- return access("conftest.db", F_OK) != 0;
-}], krb_cv_lib_berkeleydb=yes, krb_cv_lib_berkeleydb=no,
-krb_cv_lib_berkeleydb=no))
-test "$krb_cv_lib_berkeleydb" = "yes" &&
-AC_DEFINE(HAVE_NEW_DB)
-LIBS="$save_LIBS"
-
-dnl
-dnl Tests for editline
-dnl
-
-AC_FIND_FUNC_NO_LIBS(el_init, edit)
-AC_FIND_FUNC_NO_LIBS(readline, readline)
-
-if test "$with_readline"; then
- AC_DEFINE(HAVE_READLINE, 1)
- editline_OBJS=
- LIB_readline="$READLINELIB "'$(LIB_tgetent)'
- INCLUDE_readline="$READLINEINCLUDE"
-elif test "$ac_cv_func_el_init" = yes; then
- AC_DEFINE(HAVE_READLINE, 1)
-
- editline_OBJS=edit_compat.o
- LIB_readline='-L$(topdir)/lib/editline -leditline '"$LIB_el_init"' $(LIB_tgetent)'
-
- INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
-elif test "$ac_cv_func_readline" = yes; then
- AC_DEFINE(HAVE_READLINE, 1)
- editline_OBJS=
- LIB_readline='-lreadline $(LIB_tgetent)'
- INCLUDE_readline=
-else
- AC_DEFINE(HAVE_READLINE, 1)
- editline_OBJS="editline.o complete.o sysunix.o"
- LIB_readline='-L$(topdir)/lib/editline -leditline $(LIB_tgetent)'
- INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
-fi
-AC_SUBST(LIB_readline)
-AC_SUBST(INCLUDE_readline)
-AC_SUBST(editline_OBJS)
-
-dnl telnet muck --------------------------------------------------
-
-AC_DEFINE(AUTHENTICATION)dnl
-AC_DEFINE(KRB4)dnl
-AC_DEFINE(ENCRYPTION)dnl
-AC_DEFINE(DES_ENCRYPTION)dnl
-AC_DEFINE(DIAGNOSTICS)dnl
-AC_DEFINE(OLD_ENVIRON)dnl
-
-# Simple test for streamspty, based on the existance of getmsg(), alas
-# this breaks on SunOS4 which have streams but BSD-like ptys
-#
-# And also something wierd has happend with dec-osf1, fallback to bsd-ptys
-
-AC_MSG_CHECKING(for streamspty)
-case "`uname -sr`" in
-SunOS\ 4*|OSF1*|IRIX\ 4*|HP-UX\ ?.10.*)
- krb_cv_sys_streamspty=no
- ;;
-AIX*)
- os_rel=`uname -v`.`uname -r`
- if expr "$os_rel" : "3*" >/dev/null 2>&1; then
- krb_cv_sys_streamspty=no
- else
- krb_cv_sys_streamspty="$ac_cv_func_getmsg"
- fi
- ;;
-*)
- krb_cv_sys_streamspty="$ac_cv_func_getmsg"
- ;;
-esac
-if test "$krb_cv_sys_streamspty" = yes; then
- AC_DEFINE(STREAMSPTY)
-fi
-dnl AC_SUBST(STREAMSPTY)
-AC_MSG_RESULT($krb_cv_sys_streamspty)
-
-AC_MSG_CHECKING([if /bin/ls takes -A])
-if /bin/ls -A > /dev/null 2>&1 ;then
- AC_DEFINE(HAVE_LS_A)
- krb_ls_a=yes
-else
- krb_ls_a=no
-fi
-AC_MSG_RESULT($krb_ls_a)
-
-dnl ------------------------------------------------------------
-AC_CACHE_CHECK(for suffix of preformatted manual pages, krb_cv_sys_cat_suffix,
-if grep _version /etc/man.conf > /dev/null 2>&1; then
- krb_cv_sys_cat_suffix=0
-else
- krb_cv_sys_cat_suffix=number
-fi)
-if test "$krb_cv_sys_cat_suffix" = number; then
- CATSUFFIX='$$s'
-else
- CATSUFFIX=0
-fi
-AC_SUBST(CATSUFFIX)
-
-dnl ------------------------------------------------------------
-
-KRB_KAFS_LIB='-L$(topdir)/lib/kafs -lkafs'
-if test "$krb_cv_sys_aix" = yes; then
- KRB_KAFS_LIB="$KRB_KAFS_LIB -lld"
-fi
-AC_SUBST(KRB_KAFS_LIB)dnl
-
-dnl ------------------------------------------------------------
-
-
-dnl This is done by AC_OUTPUT but we need the result here.
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-for i in bin lib libexec sbin; do
- i=${i}dir
- foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
- x="\$${i}"
- eval y="$x"
- while test "x$y" != "x$x"; do
- x="$y"
- eval y="$x"
- done
- AC_DEFINE_UNQUOTED($foo,"$x")
-done
-
-dnl
-dnl We are all set to emit the Makefiles and config.h
-dnl
-AC_OUTPUT( \
-Makefile \
-include/Makefile \
-include/sys/Makefile \
- \
-util/Makefile \
-util/et/Makefile \
- \
-man/Makefile \
- \
-lib/Makefile \
-lib/des/Makefile \
-lib/krb/Makefile \
-lib/kdb/Makefile \
-lib/kadm/Makefile \
-lib/acl/Makefile \
-lib/kafs/Makefile \
-lib/roken/Makefile \
-lib/otp/Makefile \
-lib/sl/Makefile \
-lib/editline/Makefile \
-lib/auth/Makefile \
-lib/auth/pam/Makefile \
-lib/auth/sia/Makefile \
-lib/auth/afskauthlib/Makefile \
- \
-kuser/Makefile \
-server/Makefile \
-slave/Makefile \
-admin/Makefile \
-kadmin/Makefile \
- \
-appl/Makefile \
- \
-appl/afsutil/Makefile \
-appl/ftp/Makefile \
-appl/ftp/common/Makefile \
-appl/ftp/ftp/Makefile \
-appl/ftp/ftpd/Makefile \
-appl/telnet/Makefile \
-appl/telnet/libtelnet/Makefile \
-appl/telnet/telnet/Makefile \
-appl/telnet/telnetd/Makefile \
-appl/bsd/Makefile \
-appl/kauth/Makefile \
-appl/kpopper/Makefile \
-appl/movemail/Makefile \
-appl/sample/Makefile \
-appl/xnlock/Makefile \
-appl/kx/Makefile \
-appl/kip/Makefile \
-appl/otp/Makefile \
-doc/Makefile \
-) dnl end of AC_OUTPUT
-
-dnl
-dnl This is the release version name-number[beta]
-dnl Update before making a new release
-dnl
-KRB4VERSION="$PACKAGE-$VERSION"
-
-cat > include/newversion.h.in <<EOF
-char *krb4_long_version = "@(#)\$Version: $KRB4VERSION by @USER@ on @HOST@ ($host) @DATE@ \$";
-char *krb4_version = "$KRB4VERSION";
-EOF
-
-if test -f include/version.h && cmp -s include/newversion.h.in include/version.h.in; then
- echo "include/version.h is unchanged"
- rm -f include/newversion.h.in
-else
- echo "creating include/version.h"
- User=${USER-${LOGNAME}}
- Host=`(hostname || uname -n) 2>/dev/null | sed 1q`
- Date=`date`
- mv -f include/newversion.h.in include/version.h.in
- sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h
-fi
diff --git a/crypto/kerberosIV/doc/Makefile.in b/crypto/kerberosIV/doc/Makefile.in
deleted file mode 100644
index 5071e8e7a3f4..000000000000
--- a/crypto/kerberosIV/doc/Makefile.in
+++ /dev/null
@@ -1,65 +0,0 @@
-# $Id: Makefile.in,v 1.10 1997/05/06 03:05:55 joda Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = $(INSTALL)
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-MAKEINFO = @MAKEINFO@
-TEXI2DVI = texi2dvi
-TEXI2HTML = texi2html
-
-prefix = @prefix@
-infodir = @infodir@
-
-all: info
-
-install: all installdirs
- if test -f kth-krb.info; then \
- $(INSTALL_DATA) kth-krb.info $(infodir)/kth-krb.info; \
- else \
- $(INSTALL_DATA) $(srcdir)/kth-krb.info $(infodir)/kth-krb.info; \
- fi
- if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- install-info --dir-file=$(infodir)/dir $(infodir)/kth-krb.info; \
- else \
- true; \
- fi
-
-uninstall:
- rm -f $(infodir)/kth-krb.info
-
-installdirs:
- $(MKINSTALLDIRS) $(infodir)
-
-info: kth-krb.info
-
-kth-krb.info: kth-krb.texi
- $(MAKEINFO) -I$(srcdir) -o $@ $(srcdir)/kth-krb.texi
-
-dvi: kth-krb.dvi
-
-kth-krb.dvi: kth-krb.texi
- $(TEXI2DVI) $(srcdir)/kth-krb.texi
-
-html: kth-krb.html
-
-kth-krb.html: kth-krb.texi
- $(TEXI2HTML) $(srcdir)/kth-krb.texi
-
-clean:
- rm -f *.aux *.cp *.cps *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr
-
-distclean: clean
-
-mostlyclean: clean
-
-maintainer-clean: clean
- rm -f kth-krb.info
-
-check:
-
-.PHONY: install all installdirs uninstall info dvi html clean check distclean mostlyclean maintainer-clean
diff --git a/crypto/kerberosIV/doc/ack.texi b/crypto/kerberosIV/doc/ack.texi
deleted file mode 100644
index 388f6444bb87..000000000000
--- a/crypto/kerberosIV/doc/ack.texi
+++ /dev/null
@@ -1,80 +0,0 @@
-@node Acknowledgments, Index, Resolving frequent problems, Top
-@comment node-name, next, previous, up
-@appendix Acknowledgments
-
-People from the MIT Athena project wrote the original code that this is
-based on. @w{Kerberos 4} @w{patch-level 9} was stripped of both the
-encryption functions and the calls to them. This was exported from the
-US as the ``Bones'' release. Eric Young put back the calls and hooked
-in his libdes, thereby creating the ``eBones'' release.
-@cindex Bones
-@cindex eBones
-
-The ``rcmd'' programs where initially developed at the University of
-California at Berkeley and then hacked on by the FreeBSD and NetBSD
-projects.
-
-Berkeley also wrote @code{ftp}, @code{ftpd}, @code{telnet}, and
-@code{telnetd}. The authentication and encryption code of @code{telnet}
-and @code{telnetd} was added by David Borman (then of Cray Research,
-Inc). The encryption code was removed when this was exported and then
-added back by Juha Eskelinen, @code{<esc@@magic.fi>}.
-
-The @code{popper} was also a Berkeley program initially.
-
-The @code{login} has the same origins but has received code written by
-Wietse Venema at Eindhoven University of Technology, The Netherlands.
-
-@code{movemail} was (at least partially) written by Jonathan Kamens,
-@code{<jik@@security.ov.com>}, and is Copyright @copyright{} 1986, 1991,
-1992, 1993, 1994 Free Software Foundation, Inc.
-
-@code{xnlock} was originally written by Dan Heller in 1985 for sunview.
-The X version was written by him in 1990.
-
-Some of the functions in @file{libroken} also come from Berkeley by the
-way of NetBSD/FreeBSD.
-
-The code to handle the dynamic loading of the AFS module for AIX is
-copyright @copyright{} 1992 HELIOS Software GmbH 30159 Hannover,
-Germany.
-
-@code{editline} was written by Simmule Turner and Rich Salz.
-
-Bugfixes and code has been contributed by:
-@table @asis
-@item Derrick J Brashear
-@code{<shadow@@dementia.org>}
-@item Anders Gertz
-@code{<gertz@@lysator.liu.se>}
-@item Dejan Ilic
-@code{<svedja@@lysator.liu.se>}
-@item Kent Engström
-@code{<kent@@lysator.liu.se>}
-@item Simon Josefsson
-@code{<jas@@pdc.kth.se>}
-@item Robert Malmgren
-@code{<rom@@incolumitas.se>}
-@item Fredrik Ljungberg
-@code{<flag@@it.kth.se>}
-@item Lars Malinowsky
-@code{<lama@@pdc.kth.se>}
-@item Fabien Coelho
-@code{<coelho@@cri.ensmp.fr>}
-@item and we hope that those not mentioned here will forgive us.
-@end table
-
-Ian Marsh @code{<ianm@@sics.se>} removed the worst abuses of the English
-language from this text.
-
-Ilja Hallberg @code{<iha@@incolumitas.se>} is still promising to help us
-finish the documentation.
-
-This work was supported in part by SUNET and the Centre for Parallel
-Computers at KTH.
-
-The port to Windows 95/NT was supported by the Computer Council at KTH
-and done by Jörgen Karlsson @code{<d93-jka@@nada.kth.se>}.
-
-All the bugs were introduced by ourselves.
-
diff --git a/crypto/kerberosIV/doc/index.texi b/crypto/kerberosIV/doc/index.texi
deleted file mode 100644
index ebe5d911ce0c..000000000000
--- a/crypto/kerberosIV/doc/index.texi
+++ /dev/null
@@ -1,6 +0,0 @@
-@node Index, , Acknowledgments, Top
-@comment node-name, next, previous, up
-@unnumbered Index
-
-@printindex cp
-
diff --git a/crypto/kerberosIV/doc/install.texi b/crypto/kerberosIV/doc/install.texi
deleted file mode 100644
index 240c04e2e2a8..000000000000
--- a/crypto/kerberosIV/doc/install.texi
+++ /dev/null
@@ -1,368 +0,0 @@
-@node Installing programs, How to set up a realm, What is Kerberos?, Top
-@chapter Installing programs
-
-You have a choise to either build the distribution from source code or
-to install binaries, if they are available for your machine.
-
-@c XXX
-
-We recommend building from sources, but using pre-compiled binaries
-might be easier. If there are no binaries available for your machine or
-you want to do some specific configuration, you will have to compile
-from source.
-
-@menu
-* Installing from source::
-* Installing a binary distribution::
-* Finishing the installation::
-* Authentication modules::
-@end menu
-
-@node Installing from source, Installing a binary distribution, Installing programs, Installing programs
-@comment node-name, next, previous, up
-@section Installing from source
-
-To build this software un-tar the distribution and run the
-@code{configure} script.
-
-To compile successfully, you will need an ANSI C compiler, such as
-@code{gcc}. Other compilers might also work, but setting the ``ANSI
-compliance'' too high, might break in parts of the code, not to mention
-the standard include files.
-
-To build in a separate build tree, run @code{configure} in the directory
-where the tree should reside. You will need a Make that understands
-VPATH correctly. GNU Make works fine.
-
-After building everything (which will take anywhere from a few minutes
-to a long time), you can install everything in @file{/usr/athena} with
-@kbd{make install} (running as root). It is possible to install in some
-other place, but it isn't recommended. To do this you will have to run
-@code{configure} with @samp{--prefix=/my/path}.
-
-If you need to change the default behavior, configure understands the
-following options:
-
-@table @asis
-@item @kbd{--with-shared}
-Create shared versions of the Kerberos libraries. Not really
-recommended and might not work on all systems.
-
-@item @kbd{--with-cracklib=}@var{dir}
-Use cracklib for password quality control in
-@pindex kadmind
-@code{kadmind}. This option requires
-@cindex cracklib
-cracklib with the patch from
-@code{ftp://ftp.pdc.kth.se/pub/krb/src/cracklib.patch}.
-
-@item @kbd{--with-dictpath=}@var{dictpath}
-This is the dictionary that cracklib should use.
-
-@item @kbd{--with-socks=}@var{dir}
-@cindex firewall
-@cindex socks
-If you have to traverse a firewall and it uses the SocksV5 protocol
-(@cite{RFC 1928}), you can build with socks-support. Point @var{dir} to
-the directory where you have socks5 installed. For more information
-about socks see @kbd{http://www.socks.nec.com/}.
-
-@item @kbd{--with-readline=}@var{dir}
-@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,
-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.
-
-@item @kbd{--with-mailspool=}@var{dir}
-The configuration process tries to determine where your machine stores
-its incoming mail. This is typically @file{/usr/spool/mail} or
-@file{/var/mail}. If it does not work or you store your mail in some
-unusual directory, this option can be used to specify where the mail
-spool directory is located. This directory is only accessed by
-@pindex popper
-@code{popper}, and the mail check in
-@pindex login
-@code{login}.
-
-@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{--without-berkeley-db}
-If you have
-@cindex Berkeley DB
-Berkeley DB installed, it is preferred over
-@c XXX
-dbm. If you already are running Kerberos this option might be useful,
-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).
-@end table
-
-@node Installing a binary distribution, Finishing the installation, Installing from source, Installing programs
-@comment node-name, next, previous, up
-@section Installing a binary distribution
-
-The binary distribution is supposed to be installed in
-@file{/usr/athena}, installing in some other place may work but is not
-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
-@section Finishing the installation
-
-@pindex su
-The only program that needs to be installed setuid to root is @code{su}.
-
-If
-@pindex rlogin
-@pindex rsh
-@code{rlogin} and @code{rsh} are setuid to root they will fall back to
-non-kerberised protocols if the kerberised ones fail for some
-reason. The old protocols use reserved ports as security, and therefore
-the programs have to be setuid to root. If you don't need this
-functionality consider turning off the setuid bit.
-
-@pindex login
-@code{login} does not have to be setuid, as it is always run by root
-(users should use @code{su} rather than @code{login}). It will print a
-helpful message when not setuid to root and run by a user.
-
-The programs intended to be run by users are located in
-@file{/usr/athena/bin}. Inform your users to include
-@file{/usr/athena/bin} in their paths, or copy or symlink the binaries
-to some good place. The programs that you will want to use are:
-@code{kauth}/@code{kinit},
-@pindex kauth
-@pindex kinit
-@code{klist}, @code{kdestroy}, @code{kpasswd}, @code{ftp},
-@pindex klist
-@pindex kdestroy
-@pindex kpasswd
-@pindex ftp
-@code{telnet}, @code{rcp}, @code{rsh}, @code{rlogin}, @code{su},
-@pindex telnet
-@pindex rcp
-@pindex rsh
-@pindex rlogin
-@pindex su
-@pindex xnlock
-@pindex afslog
-@pindex pagsh
-@pindex rxtelnet
-@pindex tenletxr
-@pindex rxterm
-@code{rxtelnet}, @code{tenletxr}, @code{rxterm}, and
-@code{xnlock}. If you are using AFS, @code{afslog} and @code{pagsh}
-might also be useful. Administrators will want to use @code{kadmin} and
-@code{ksrvutil}, which are located in @file{/usr/athena/sbin}.
-@pindex kadmin
-@pindex ksrvutil
-
-@code{telnetd} and @code{rlogind} assume that @code{login} is located in
-@file{/usr/athena/bin} (or whatever path you used as
-@samp{--prefix}). If for some reason you want to move @code{login}, you
-will have to specify the new location with the @samp{-L} switch when
-configuring
-@pindex telnetd
-telnetd
-and
-@pindex rlogind
-rlogind
-in @file{inetd.conf}.
-
-It should be possible to replace the system's default @code{login} with
-the kerberised @code{login}. However some systems assume that login
-performs some serious amount of magic that our login might not do (although
-we've tried to do our best). So before replacing it on every machine,
-try and see what happens. Another thing to try is to use one of the
-authentication modules (@xref{Authentication modules}) supplied.
-
-The @code{login} program that we use was in an earlier life the standard
-login program from NetBSD. In order to use it with a lot of weird
-systems, it has been ``enhanced'' with features from many other logins
-(Solaris, SunOS, IRIX, AIX, and others). Some of these features are
-actually useful and you might want to use them even on other systems.
-
-@table @file
-@item /etc/fbtab
-@pindex fbtab
-@itemx /etc/logindevperm
-@pindex logindevperm
-Allows you to chown some devices when a user logs in on a certain
-terminal. Commonly used to change the ownership of @file{/dev/mouse},
-@file{/dev/kbd}, and other devices when someone logs in on
-@file{/dev/console}.
-
-@file{/etc/fbtab} is the SunOS file name and it is tried first. If
-there is no such file then the Solaris file name
-@file{/etc/logindevperm} is tried.
-@item /etc/environment
-@pindex environment
-This file specifies what environment variables should be set when a user
-logs in. (AIX-style)
-@item /etc/default/login
-@pindex default/login
-Almost the same as @file{/etc/environment}, but the System V style.
-@item /etc/login.access
-@pindex login.access
-Can be used to control who is allowed to login from where and on what
-ttys. (From Wietse Venema)
-@end table
-
-@menu
-* Authentication modules::
-@end menu
-
-@node Authentication modules, , Finishing the installation, 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}).
-
-@menu
-* Digital SIA::
-* IRIX::
-* PAM::
-@end menu
-
-@node Digital SIA, IRIX, Authentication modules, Authentication modules
-@subsection Digital SIA
-
-To install the SIA module you will have to do the following:
-
-@itemize @bullet
-
-@item
-Make sure @file{libsia_krb4.so} is available in
-@file{/usr/athena/lib}. If @file{/usr/athena} is not on local disk, you
-might want to put it in @file{/usr/shlib} or someplace else. If you do,
-you'll have to edit @file{krb4_matrix.conf} to reflect the new location
-(you will also have to do this if you installed in some other directory
-than @file{/usr/athena}).
-@item
-Copy (your possibly edited) @file{krb4_matrix.conf} to @file{/etc/sia}.
-@item
-Apply @file{security.patch} to @file{/sbin/init.d/security}.
-@item
-Turn on KRB4 security by issuing @kbd{rcmgr set SECURITY KRB4} and
-@kbd{rcmgr set KRB4_MATRIX_CONF krb4_matrix.conf}.
-@item
-Digital thinks you should reboot your machine, but that really shouldn't
-be necessary. It's usually sufficient just to run
-@kbd{/sbin/init.d/security start}.
-@end itemize
-
-Users with local passwords (like @samp{root}) should be able to login
-safely.
-
-When using Digital's xdm the @samp{KRBTKFILE} environment variable isn't
-passed along as it should (since xdm zaps the environment). Instead you
-have to set @samp{KRBTKFILE} to the correct value in
-@file{/usr/lib/X11/xdm/Xsession}. Add a line similar to
-@example
-KRBTKFILE=/tmp/tkt`id -u`_`ps -o ppid= -p $$`; export KRBTKFILE
-@end example
-
-There is currently no support for changing passwords. Use @file{kpasswd}
-instead.
-
-@subsubheading Notes to users with Enhanced security
-
-Digital's @samp{ENHANCED} (C2) security, and Kerberos solves two
-different problems. C2 deals with local security, adds better control of
-who can do what, auditing, and similar things. Kerberos deals with
-network security.
-
-To make C2 security work with Kerberos you will have to do the
-following.
-
-@itemize @bullet
-@item
-Replace all occurencies of @file{krb4_matrix.conf} with
-@file{krb4+c2_matrix.conf} in the directions above.
-@item
-You must enable ``vouching'' in the @samp{default} database. This will
-make the OSFC2 module trust other SIA modules, so you can login without
-giving your C2 password. To do this use @samp{edauth} to edit the
-default entry @kbd{/usr/tcb/bin/edauth -dd default}, and add a
-@samp{d_accept_alternate_vouching} capability, if not already present.
-@item
-For each user that does @emph{not} have a local C2 password, you should
-set the password expiration field to zero. You can do this for each
-user, or in the @samp{default} table. To to this use @samp{edauth} to
-set (or change) the @samp{u_exp} capability to @samp{u_exp#0}.
-@item
-You should make sure that you use Digital's login rather than the one
-distributed by us. The easiest way to do this is to replace
-@file{/usr/athena/bin/login} with @file{/bin/login}.
-@end itemize
-
-At present @samp{su} does not accept the vouching flag, so it will not
-work as expected.
-
-Also, kerberised ftp will not work with C2 passwords. You can solve this
-by using both Digital's ftpd and our on different ports.
-
-@strong{Remember}, if you do these changes you will get a system that
-most certainly does @emph{not} fulfill the requirements of a C2
-system. If C2 is what you want, for instance if someone else is forcing
-you to use it, you're out of luck. If you use enhanced security because
-you want a system that is more secure than it would otherwise be, you
-probably got an even more secure system. Passwords will not be sent in
-the clear, for instance.
-
-@node IRIX, PAM, Digital SIA, Authentication modules
-@subsection IRIX
-
-The IRIX support is a module that is compatible with Transarc's
-@file{afskauthlib.so}. It should work with all programs that use this
-library, this should include @file{login} and @file{xdm}.
-
-The interface is not very documented but it seems that you have to copy
-@file{libkafs.so}, @file{libkrb.so}, and @file{libdes.so} to
-@file{/usr/lib}, or build your @file{afskauthlib.so} statically.
-
-The @file{afskauthlib.so} itself is able to reside in
-@file{/usr/vice/etc}, @file{/usr/afsws/lib}, or the current directory
-(wherever that is).
-
-Appart from this it should ``just work'', there are no configuration
-files.
-
-@node PAM, , IRIX, Authentication modules
-@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.
-
-To use this module you should:
-
-@itemize @bullet
-@item
-Make sure @file{pam_krb4.so} is available in @file{/usr/athena/lib}. You
-might actually want it on local disk, so @file{/lib/security} might be a
-better place if @file{/usr/athena} is not local.
-@item
-Look at @file{pam.conf.add} for examples of what to add to
-@file{/etc/pam.conf}.
-@end itemize
-
-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
-features, and it is also more in line with other PAM modules.
diff --git a/crypto/kerberosIV/doc/intro.texi b/crypto/kerberosIV/doc/intro.texi
deleted file mode 100644
index 830ca1ad6d59..000000000000
--- a/crypto/kerberosIV/doc/intro.texi
+++ /dev/null
@@ -1,69 +0,0 @@
-@node Introduction, What is Kerberos?, Top, Top
-@comment node-name, next, previous, up
-@chapter Introduction
-
-This is an attempt at documenting the Kerberos 4 distribution from
-Kungliga Tekniska Högskolan (the Royal Institute of Technology in
-Stockholm, Sweden). This distribution is based on eBones, but has been
-improved in many ways. It is more portable, and several new features
-have been added. It currently runs on the following systems:
-
-@itemize @bullet
-@item
-AIX 4.1, 4.2
-@item
-BSD/OS 2.0, 2.1
-@item
-Digital UNIX 3.2, 4.0
-@item
-HP-UX 9, 10
-@item
-IRIX 4.0, 5.2, 5.3, 6.1, 6.2, 6.3, 6.4
-@item
-Linux 1.3, 2.0
-@item
-NetBSD 1.2
-@item
-FreeBSD 2.2
-@item
-SunOS 4.1
-@item
-SunOS 5.4/5.5 (aka Solaris 2.4/2.5)
-@item
-Ultrix 4.4
-@item
-Cray UNICOS 9.
-@item
-Fujitsu UXP/V 4.1.
-@end itemize
-
-Some part compile and work on:
-
-@itemize @bullet
-@item
-OS/2 with EMX
-@item
-Windows 95/NT with gnu-win32 (with the proper amount of magic the
-libraries should compile with Microsoft C as well)
-@end itemize
-
-It should work on anything that is almost POSIX, has an ANSI C
-compiler, a dbm library (for the server side), and BSD Sockets.
-
-A web-page is available at @kbd{http://www.pdc.kth.se/kth-krb/}.
-
-@heading Bug reports
-
-If you cannot build the programs or they do not behave as you think they
-should, please send us a bug report. The bug report should be sent to
-@code{<kth-krb-bugs@@nada.kth.se>}. Please include information on what
-machine and operating system (including version) you are running, what
-you are trying to do, what happens, what you think should have happened,
-an example for us to repeat, the output you get when trying the example,
-and a patch for the problem if you have one. Please make any patches
-with @code{diff -u} or @code{diff -c}. The more detailed the bug report
-is, the easier it will be for us to reproduce, understand, and fix it.
-
-Suggestions, comments and other non bug reports are welcome. Send them
-to @code{<kth-krb@@nada.kth.se>}.
-
diff --git a/crypto/kerberosIV/doc/kth-krb.texi b/crypto/kerberosIV/doc/kth-krb.texi
deleted file mode 100644
index 8b26349baa0a..000000000000
--- a/crypto/kerberosIV/doc/kth-krb.texi
+++ /dev/null
@@ -1,300 +0,0 @@
-\input texinfo @c -*- texinfo -*-
-@c %**start of header
-@c $Id: kth-krb.texi,v 1.71 1997/05/25 21:31:00 assar Exp $
-@setfilename kth-krb.info
-@settitle KTH-KRB
-@iftex
-@afourpaper
-@end iftex
-@c some sensible characters, please?
-@tex
-\input latin1.tex
-@end tex
-@setchapternewpage on
-@syncodeindex pg cp
-@c %**end of header
-
-@dircategory Kerberos
-@direntry
-* Kth-krb: (kth-krb). The Kerberos IV distribution from KTH
-@end direntry
-
-@c title page
-@titlepage
-@title KTH-KRB
-@subtitle Kerberos 4 from KTH
-@subtitle Edition -1.0, for version 0.9.5
-@subtitle 1997
-@author Johan Danielsson
-@author Assar Westerlund
-@author last updated $Date: 1997/05/25 21:31:00 $
-
-@def@copynext{@vskip 20pt plus 1fil@penalty-1000}
-@def@copyrightstart{}
-@def@copyrightend{}
-@page
-@copyrightstart
-Copyright (c) 1995, 1996, 1997 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. 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
- 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.
-
-@copynext
-
-Copyright (C) 1995 Eric Young (eay@@mincom.oz.au)
-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 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. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by Eric Young (eay@@mincom.oz.au)
-
-THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 AUTHOR 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.
-
-@copynext
-
-Copyright (c) 1983, 1990 The Regents of the University of California.
-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. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-
-4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
-
-@copynext
-
-Copyright (C) 1990 by the Massachusetts Institute of Technology
-
-Export of this software from the United States of America is assumed
-to require a specific license from the United States Government.
-It is the responsibility of any person or organization contemplating
-export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
-@copynext
-
-Copyright 1987, 1989 by the Student Information Processing Board
- of the Massachusetts Institute of Technology
-
-Permission to use, copy, modify, and distribute this software
-and its documentation for any purpose and without fee is
-hereby granted, provided that the above copyright notice
-appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation,
-and that the names of M.I.T. and the M.I.T. S.I.P.B. not be
-used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-M.I.T. and the M.I.T. S.I.P.B. make no representations about
-the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-@copynext
-
-Copyright 1992 Simmule Turner and Rich Salz. All rights reserved.
-
-This software is not subject to any license of the American Telephone
-and Telegraph Company or of the Regents of the University of California.
-
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it freely, subject
-to the following restrictions:
-
-1. The authors are not responsible for the consequences of use of this
- software, no matter how awful, even if they arise from flaws in it.
-
-2. The origin of this software must not be misrepresented, either by
- explicit claim or by omission. Since few users ever read sources,
- credits must appear in the documentation.
-
-3. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original software. Since few users
- ever read sources, credits must appear in the documentation.
-
-4. This notice may not be removed or altered.
-
-@copyrightend
-@end titlepage
-
-@c Less filling! Tastes great!
-@iftex
-@parindent=0pt
-@global@parskip 6pt plus 1pt
-@global@chapheadingskip = 15pt plus 4pt minus 2pt
-@global@secheadingskip = 12pt plus 3pt minus 2pt
-@global@subsecheadingskip = 9pt plus 2pt minus 2pt
-@end iftex
-@ifinfo
-@paragraphindent 0
-@end ifinfo
-
-@ifinfo
-@node Top, Introduction, (dir), (dir)
-@top KTH-krb
-@end ifinfo
-
-@menu
-* Introduction::
-* What is Kerberos?::
-* Installing programs::
-* How to set up a realm::
-* One-Time Passwords::
-* Resolving frequent problems::
-* Acknowledgments::
-* Index::
-
- --- The Detailed Node Listing ---
-
-Installing programs
-
-* Installing from source::
-* Installing a binary distribution::
-* Finishing the installation::
-* Authentication modules::
-
-Finishing the installation
-
-* Authentication modules::
-
-Authentication modules
-
-* Digital SIA::
-* IRIX::
-* PAM::
-
-How to set up a realm
-
-* How to set up the kerberos server::
-* Install the client programs::
-* Install the kerberised services::
-* Install a slave kerberos server::
-* Cross-realm functionality ::
-
-How to set up the kerberos server
-
-* Choose a realm name::
-* Choose a kerberos server::
-* Install the configuration files::
-* Install the /etc/services::
-* Install the kerberos server::
-* Set up the server::
-* Add a few important principals::
-* Start the server::
-* Try to get tickets::
-* Create initial ACL for the admin server::
-* Start the admin server::
-* Add users to the database::
-* Automate the startup of the servers::
-
-One-Time Passwords
-
-* What are one time passwords?::
-* When to use one time passwords?::
-* Configuring OTPs::
-
-Resolving frequent problems
-
-* Problems compiling Kerberos::
-* Common error messages::
-@end menu
-
-@include intro.texi
-@include whatis.texi
-@include install.texi
-@include setup.texi
-@include otp.texi
-@include problems.texi
-@include ack.texi
-@include index.texi
-
-@c @shortcontents
-@contents
-
-@bye
diff --git a/crypto/kerberosIV/doc/latin1.tex b/crypto/kerberosIV/doc/latin1.tex
deleted file mode 100644
index e683dd271dc1..000000000000
--- a/crypto/kerberosIV/doc/latin1.tex
+++ /dev/null
@@ -1,95 +0,0 @@
-% ISO Latin 1 (ISO 8859/1) encoding for Computer Modern fonts.
-% Jan Michael Rynning <jmr@nada.kth.se> 1990-10-12
-\def\inmathmode#1{\relax\ifmmode#1\else$#1$\fi}
-\global\catcode`\^^a0=\active \global\let^^a0=~ % no-break space
-\global\catcode`\^^a1=\active \global\def^^a1{!`} % inverted exclamation mark
-\global\catcode`\^^a2=\active \global\def^^a2{{\rm\rlap/c}} % cent sign
-\global\catcode`\^^a3=\active \global\def^^a3{{\it\$}} % pound sign
-% currency sign, yen sign, broken bar
-\global\catcode`\^^a7=\active \global\let^^a7=\S % section sign
-\global\catcode`\^^a8=\active \global\def^^a8{\"{}} % diaeresis
-\global\catcode`\^^a9=\active \global\let^^a9=\copyright % copyright sign
-% feminine ordinal indicator, left angle quotation mark
-\global\catcode`\^^ac=\active \global\def^^ac{\inmathmode\neg}% not sign
-\global\catcode`\^^ad=\active \global\let^^ad=\- % soft hyphen
-% registered trade mark sign
-\global\catcode`\^^af=\active \global\def^^af{\={}} % macron
-% ...
-\global\catcode`\^^b1=\active \global\def^^b1{\inmathmode\pm} % plus minus
-\global\catcode`\^^b2=\active \global\def^^b2{\inmathmode{{^2}}}
-\global\catcode`\^^b3=\active \global\def^^b3{\inmathmode{{^3}}}
-\global\catcode`\^^b4=\active \global\def^^b4{\'{}} % acute accent
-\global\catcode`\^^b5=\active \global\def^^b5{\inmathmode\mu} % mu
-\global\catcode`\^^b6=\active \global\let^^b6=\P % pilcroy
-\global\catcode`\^^b7=\active \global\def^^b7{\inmathmode{{\cdot}}}
-\global\catcode`\^^b8=\active \global\def^^b8{\c{}} % cedilla
-\global\catcode`\^^b9=\active \global\def^^b9{\inmathmode{{^1}}}
-% ...
-\global\catcode`\^^bc=\active \global\def^^bc{\inmathmode{{1\over4}}}
-\global\catcode`\^^bd=\active \global\def^^bd{\inmathmode{{1\over2}}}
-\global\catcode`\^^be=\active \global\def^^be{\inmathmode{{3\over4}}}
-\global\catcode`\^^bf=\active \global\def^^bf{?`} % inverted question mark
-\global\catcode`\^^c0=\active \global\def^^c0{\`A}
-\global\catcode`\^^c1=\active \global\def^^c1{\'A}
-\global\catcode`\^^c2=\active \global\def^^c2{\^A}
-\global\catcode`\^^c3=\active \global\def^^c3{\~A}
-\global\catcode`\^^c4=\active \global\def^^c4{\"A} % capital a with diaeresis
-\global\catcode`\^^c5=\active \global\let^^c5=\AA % capital a with ring above
-\global\catcode`\^^c6=\active \global\let^^c6=\AE
-\global\catcode`\^^c7=\active \global\def^^c7{\c C}
-\global\catcode`\^^c8=\active \global\def^^c8{\`E}
-\global\catcode`\^^c9=\active \global\def^^c9{\'E}
-\global\catcode`\^^ca=\active \global\def^^ca{\^E}
-\global\catcode`\^^cb=\active \global\def^^cb{\"E}
-\global\catcode`\^^cc=\active \global\def^^cc{\`I}
-\global\catcode`\^^cd=\active \global\def^^cd{\'I}
-\global\catcode`\^^ce=\active \global\def^^ce{\^I}
-\global\catcode`\^^cf=\active \global\def^^cf{\"I}
-% capital eth
-\global\catcode`\^^d1=\active \global\def^^d1{\~N}
-\global\catcode`\^^d2=\active \global\def^^d2{\`O}
-\global\catcode`\^^d3=\active \global\def^^d3{\'O}
-\global\catcode`\^^d4=\active \global\def^^d4{\^O}
-\global\catcode`\^^d5=\active \global\def^^d5{\~O}
-\global\catcode`\^^d6=\active \global\def^^d6{\"O} % capital o with diaeresis
-\global\catcode`\^^d7=\active \global\def^^d7{\inmathmode\times}% multiplication sign
-\global\catcode`\^^d8=\active \global\let^^d8=\O
-\global\catcode`\^^d9=\active \global\def^^d9{\`U}
-\global\catcode`\^^da=\active \global\def^^da{\'U}
-\global\catcode`\^^db=\active \global\def^^db{\^U}
-\global\catcode`\^^dc=\active \global\def^^dc{\"U}
-\global\catcode`\^^dd=\active \global\def^^dd{\'Y}
-% capital thorn
-\global\catcode`\^^df=\active \global\def^^df{\ss}
-\global\catcode`\^^e0=\active \global\def^^e0{\`a}
-\global\catcode`\^^e1=\active \global\def^^e1{\'a}
-\global\catcode`\^^e2=\active \global\def^^e2{\^a}
-\global\catcode`\^^e3=\active \global\def^^e3{\~a}
-\global\catcode`\^^e4=\active \global\def^^e4{\"a} % small a with diaeresis
-\global\catcode`\^^e5=\active \global\let^^e5=\aa % small a with ring above
-\global\catcode`\^^e6=\active \global\let^^e6=\ae
-\global\catcode`\^^e7=\active \global\def^^e7{\c c}
-\global\catcode`\^^e8=\active \global\def^^e8{\`e}
-\global\catcode`\^^e9=\active \global\def^^e9{\'e}
-\global\catcode`\^^ea=\active \global\def^^ea{\^e}
-\global\catcode`\^^eb=\active \global\def^^eb{\"e}
-\global\catcode`\^^ec=\active \global\def^^ec{\`\i}
-\global\catcode`\^^ed=\active \global\def^^ed{\'\i}
-\global\catcode`\^^ee=\active \global\def^^ee{\^\i}
-\global\catcode`\^^ef=\active \global\def^^ef{\"\i}
-% small eth
-\global\catcode`\^^f1=\active \global\def^^f1{\~n}
-\global\catcode`\^^f2=\active \global\def^^f2{\`o}
-\global\catcode`\^^f3=\active \global\def^^f3{\'o}
-\global\catcode`\^^f4=\active \global\def^^f4{\^o}
-\global\catcode`\^^f5=\active \global\def^^f5{\~o}
-\global\catcode`\^^f6=\active \global\def^^f6{\"o} % small o with diaeresis
-\global\catcode`\^^f7=\active \global\def^^f7{\inmathmode\div}% division sign
-\global\catcode`\^^f8=\active \global\let^^f8=\o
-\global\catcode`\^^f9=\active \global\def^^f9{\`u}
-\global\catcode`\^^fa=\active \global\def^^fa{\'u}
-\global\catcode`\^^fb=\active \global\def^^fb{\^u}
-\global\catcode`\^^fc=\active \global\def^^fc{\"u}
-\global\catcode`\^^fd=\active \global\def^^fd{\'y}
-% capital thorn
-\global\catcode`\^^ff=\active \global\def^^ff{\"y}
diff --git a/crypto/kerberosIV/doc/otp.texi b/crypto/kerberosIV/doc/otp.texi
deleted file mode 100644
index 0a5929fa8629..000000000000
--- a/crypto/kerberosIV/doc/otp.texi
+++ /dev/null
@@ -1,127 +0,0 @@
-@node One-Time Passwords, Resolving frequent problems, How to set up a realm, Top
-@chapter One-Time Passwords
-
-@cindex OTP
-@cindex One time passwords
-There is also support for using @dfn{one time passwords} (OTP) in this
-package. Specifically @code{login}, @code{ftpd}, and @code{popper} have
-support for using them.
-
-@menu
-* What are one time passwords?::
-* When to use one time passwords?::
-* Configuring OTPs::
-@end menu
-
-@node What are one time passwords?, When to use one time passwords?, One-Time Passwords, One-Time Passwords
-@comment node-name, next, previous, up
-@section What are one time passwords?
-
-One time passwords are, as the name implies, passwords that can only
-be used once. This means that even if someone is eavesdropping on the
-network, they will not be able to make use of the passwords they steal.
-
-The OTPs used in this package support @cite{RFC 1938}. This standard is
-also backwards compatible with the well-known S/Key. There are lots of
-programs for generating these on everything from HP 48's to Crays.
-@cindex S/Key
-
-@node When to use one time passwords?, Configuring OTPs, What are one time passwords?, One-Time Passwords
-@comment node-name, next, previous, up
-@section When to use one time passwords?
-
-Why would you want to use OTPs instead of Kerberos? The advantage of
-OTPs is that they don't require a computer to operate. You can print
-out a list of passwords and take with you, or you could use your
-calculator or hand-held computer to generate them.
-
-The downside is that they only protect you against passive attacks.
-Only the initial connection is authenticated. After that, anyone can
-eavesdrop on your session, so you should not send or view any sensitive
-data (e.g. passwords) over a OTP-initiated link. You are also
-vulnerable to active attacks where intruders try to take over your
-TCP-session and/or introduce data in the middle of it. In other words,
-they provide initial authentication, but neither integrity nor
-confidentiality.
-
-The OTPs are generated from the tuple (@var{seed}, @var{sequence
-number}, @var{pass-phrase}). The seed and the sequence number will be
-printed as part of the @dfn{challenge} and you will have to generate the
-corresponding password or pick it from a list.
-
-In conclusion, they are simple and can be used everywhere but don't
-protect against all threats that Kerberos does. Use them when you can't
-use Kerberos.
-
-@node Configuring OTPs, , When to use one time passwords?, One-Time Passwords
-@comment node-name, next, previous, up
-@section Configuring OTPs
-
-@heading Initializing
-
-To initialize your OTPs use the @code{otp} program. This program will
-write an entry in a local file on this host with your current password
-(in this case the 100th) and the corresponding seed (@samp{foobar}).
-@pindex otp
-
-@example
-@cartouche
-datan:>otp 100 foobar
-Pass-phrase: <pass-phrase>
-Verifying password Pass-phrase: <pass-phrase>
-@end cartouche
-@end example
-
-@heading Generating
-
-To print out a list of them there is a program called
-@code{otpprint}.
-@pindex otpprint
-
-@example
-@cartouche
-datan:>otpprint 100 foobar
-Pass-phrase: <pass-phrase>
-91: SLAM BUY SUP DUSK SKY BEST
-92: DEEM SIGH ROB RASH JUG MAT
-93: DUET FISK HERS AREA TOLL SUP
-94: WOW RAIN LEAK SARA MARK WING
-95: COG YELL MILK CART ABE BAWL
-96: GROW SILK GIST OMEN CAM ANNE
-97: JAG QUAD NUT BEAT BHOY MAGI
-98: ADAM USED GENE NIP EYE SIS
-99: MY SUNG HERO AT DASH RAKE
-100: CORN KNIT BOTH TOGO SOUL BOG
-@end cartouche
-@end example
-
-@heading Using the OTPs
-
-When you try to use one and have initialized a series of
-one-time passwords for yourself you will get a challenge with the
-algorithm being used, the sequence number, and the seed. Enter those in
-your generator or find the corresponding password in your list.
-
-@example
-@cartouche
-login: assar
-assar's [ otp-md5 99 foobar ] Password: <MY SUNG HERO AT DASH RAKE>
-@end cartouche
-@end example
-
-The sequence number of the password will start at one less that the
-number you gave to @code{otp} and decrease by one every time you use it.
-You should try to keep track of which should be the current one so that
-you can be assured that nobody has stolen some of your passwords and
-used them. When the number has reached zero you need to acquire a new
-series of passwords.
-
-Once you have initialized your series of passwords, you can always use
-them at any password prompt where you get the challenge as shown above.
-
-@heading Configuring servers
-
-@code{ftpd}, @code{telnetd}, and @code{popper} can be configured to
-require one-time passwords when the connection has not been kerberos
-authenticated. Check the man pages for these programs for the correct
-options.
diff --git a/crypto/kerberosIV/doc/problems.texi b/crypto/kerberosIV/doc/problems.texi
deleted file mode 100644
index 9e3630e2d0bf..000000000000
--- a/crypto/kerberosIV/doc/problems.texi
+++ /dev/null
@@ -1,156 +0,0 @@
-@node Resolving frequent problems, Acknowledgments, One-Time Passwords, Top
-@chapter Resolving frequent problems
-
-@menu
-* Problems compiling Kerberos::
-* Common error messages::
-@end menu
-
-@node Problems compiling Kerberos, Common error messages, Resolving frequent problems, Resolving frequent problems
-@section Problems compiling Kerberos
-
-Many compilers require a switch to become ANSI compliant. Since kth-krb
-is written in ANSI C it is necessary to specify the name of the compiler
-to be used and the required switch to make it ANSI compliant. This is
-most easily done when running configure using the @kbd{env} command. For
-instance to build under HP-UX using the native compiler do:
-
-@cartouche
-@example
-datan$ env CC="cc -Ae" ./configure
-@end example
-@end cartouche
-
-In general @kbd{gcc} works. The following combinations have also been
-verified to successfully compile the distribution:
-
-@table @asis
-
-@item @samp{HP-UX}
-@kbd{cc -Ae}
-@item @samp{Digital UNIX}
-@kbd{cc -std1}
-@item @samp{AIX}
-@kbd{xlc}
-@item @samp{Solaris 2.x}
-@kbd{cc} (unbundled one)
-@item @samp{IRIX}
-@kbd{cc}
-
-@end table
-
-@subheading Linux problems
-
-Some systems have lost @file{/usr/include/ndbm.h} which is necessary to
-build kth-krb correctly. There is a @file{ndbm.h.Linux} right next to
-the source distribution.
-
-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 HP-UX problems
-
-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''
-binaries first install GNU gdbm or Berkeley DB, and make sure that you
-are linking against that library.
-
-@subheading Cray problems
-
-@kbd{rlogind} won't work on Crays until @code{forkpty()} has been
-ported, in the mean time use @kbd{telnetd}.
-
-@subheading AIX problems
-
-@kbd{gcc} version 2.7.2.1 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.
-
-@subheading C2 problems
-
-@cindex C2
-The programs that checks passwords works with @file{passwd}, OTP, and
-Kerberos paswords. This is problem if you use C2 security (or use some
-other password database), that normally keeps passwords in some obscure
-place. If you want to use Kerberos with C2 security you will have to
-think about what kind of changes are necessary. See also the discussion
-about Digital's SIA and C2 security, see @ref{Digital SIA}.
-
-@node Common error messages, , Problems compiling Kerberos, Resolving frequent problems
-@section Common error messages
-
-These are some of the more obscure error messages you might encounter:
-
-@table @asis
-
-@item @samp{Time is out of bounds}
-
-The time on your machine differs from the time on either the kerberos
-server or the machine you are trying to login to. If it isn't obvious
-that this is the case, remember that all times are compared in UTC.
-
-On unix systems you usually can find out what the local time is by doing
-@code{telnet machine daytime}. This time (again, usually is the keyword)
-is with correction for time-zone and daylight savings.
-
-If you have problem keeping your clocks synchronized, consider using a
-time keeping system such as NTP (see also the discussion in
-@ref{Install the client programs}).
-
-@item @samp{Ticket issue date too far in the future}
-
-The time on the kerberos server is more than five minutes ahead of the
-time on the server.
-
-@item @samp{Can't decode authenticator}
-
-This means that there is a mismatch between the service key in the
-kerberos server and the service key file on the specific machine.
-Either:
-@itemize @bullet
-@item
-the server couldn't find a service key matching the request
-@item
-the service key (or version number) does not match the key the packet
-was encrypted with
-@end itemize
-
-@item @samp{Incorrect network address}
-
-The address in the ticket does not match the address you sent the
-request from. This happens on systems with more than one network
-address, either physically or logically. You can list addresses which
-should be considered equal in @file{/etc/krb.equiv} on your servers.
-
-A note to programmers: a server should not pass @samp{*} as the instance
-to @samp{krb_rd_req}. It should try to figure out on which interface the
-request was received, for instance by using @samp{k_getsockinst}.
-
-If you change addresses on your computer you invalidate any tickets you
-might have. The easiest way to fix this is to get new tickets with the
-new address.
-
-@item @samp{Message integrity error}
-
-The packet is broken in some way:
-@itemize @bullet
-@item
-the lengths does not match the size of the packet, or
-@item
-the checksum does not match the contents of the packet
-@end itemize
-
-@item @samp{Can't send request}
-There is some problem contacting the kerberos server. Either the server
-is down, or it is using the wrong port (compare the entries for
-@samp{kerberos-iv} in @file{/etc/services}). The client might also have
-failed to guess what kerberos server to talk to (check
-@file{/etc/krb.conf} and @file{/etc/krb.realms}).
-
-@item @samp{Generic kerberos error}
-This is a generic catch-all error message.
-
-@end table
-
diff --git a/crypto/kerberosIV/doc/setup.texi b/crypto/kerberosIV/doc/setup.texi
deleted file mode 100644
index 1b4b395dfcf1..000000000000
--- a/crypto/kerberosIV/doc/setup.texi
+++ /dev/null
@@ -1,794 +0,0 @@
-@node How to set up a realm, One-Time Passwords, Installing programs, Top
-@chapter How to set up a realm
-
-@quotation
-@flushleft
- Who willed you? or whose will stands but mine?
- There's none protector of the realm but I.
- Break up the gates, I'll be your warrantize.
- Shall I be flouted thus by dunghill grooms?
- --- King Henry VI, 6.1
-@end flushleft
-@end quotation
-
-@menu
-* How to set up the kerberos server::
-* Install the client programs::
-* Install the kerberised services::
-* Install a slave kerberos server::
-* Cross-realm functionality ::
-@end menu
-
-@node How to set up the kerberos server, Install the client programs, How to set up a realm, How to set up a realm
-@section How to set up the kerberos server
-
-@menu
-* Choose a realm name::
-* Choose a kerberos server::
-* Install the configuration files::
-* Install the /etc/services::
-* Install the kerberos server::
-* Set up the server::
-* Add a few important principals::
-* Start the server::
-* Try to get tickets::
-* Create initial ACL for the admin server::
-* Start the admin server::
-* Add users to the database::
-* Automate the startup of the servers::
-@end menu
-
-@node Choose a realm name, Choose a kerberos server, How to set up the kerberos server, How to set up the kerberos server
-@subsection Choose a realm name
-
-A
-@cindex realm
-realm is an administrative domain. Kerberos realms are usually
-written in uppercase and consist of a Internet domain
-name@footnote{Using lowercase characters in the realm name might break
-in mysterious ways. This really should have been fixed, but has not.}.
-Call your realm the same as your Internet domain name if you do not have
-strong reasons for not doing so. It will make life easier for you and
-everyone else.
-
-@node Choose a kerberos server, Install the configuration files, Choose a realm name, How to set up the kerberos server
-@subsection Choose a kerberos server
-
-You need to choose a machine to run the
-@pindex kerberos
-kerberos server program. If the kerberos database residing on this host
-is compromised, your entire realm will be compromised. Therefore, this
-machine must be as secure as possible. Preferably it should not run any
-services other than Kerberos. The secure-minded administrator might
-only allow logins on the console.
-
-This machine has also to be reliable. If it is down, you will not be
-able to use any kerberised services unless you have also configured a
-slave server (@xref{Install a slave kerberos server}).
-
-Running the kerberos server requires very little CPU power and a small
-amount of disk. An old PC with some hundreds of megabytes of free disk
-space should do fine. Most of the disk space will be used for various
-logs.
-
-@node Install the configuration files, Install the /etc/services, Choose a kerberos server, How to set up the kerberos server
-@subsection Install the configuration files
-
-There are two important configuration files: @file{/etc/krb.conf} and
-@file{/etc/krb.realms}.
-@pindex krb.conf
-@pindex krb.realms
-
-The @file{krb.conf} file determines which machines are servers for
-different realms. The format of this file is:
-
-@example
-THIS.REALM
-THIS.REALM kerberos.this.realm admin server
-THIS.REALM kerberos-1.this.realm
-ANOTHER.REALM kerberos.another.realm
-@end example
-
-The first line defines the name of the local realm. Line two defines the
-name of the master kerberos server and the database administration
-server for this realm. You can define any number of kerberos slave
-servers similar to the one defined in line three. The clients will try
-to contact the servers in the order they are defined in @file{krb.conf}.
-
-The @samp{admin server} clause at the first entry states that this is
-the master server
-@cindex master server
-(the one to contact when modifying the database, such as changing
-passwords). There should be only one such entry for each realm.
-
-In the original MIT Kerberos 4 (as in most others), the server
-specification could only take the form of a host-name. To facilitate
-having kerberos servers in odd places (such as behind a firewall),
-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{udp} or @samp{tcp}, 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 750 if
-undefined.
-
-If the information about a realm is missing from the @file{krb.conf}
-file, or if the information is wrong, the following methods will be
-tried in order.
-
-@enumerate
-@item
-If you have an SRV-record (@cite{RFC 2052}) for your realm it will be
-used. This record should be of the form
-@samp{kerberos-iv.@var{protocol}.@var{REALM}}, where @var{proto} is
-either @samp{udp} or @samp{tcp}. (Note: the current implementation does
-not look at priority or weight when deciding which server to talk to.)
-@item
-If there isn't any SRV-record, it tries to find a TXT-record for the
-same domain. The contents of the record should have the same format as the
-host specification in @file{krb.conf}. (Note: this is a temporary
-solution if your name server doesn't support SRV records. The clients
-should work fine with SRV records, so if your name server supports them,
-they are very much preferred.)
-@item
-If no valid kerberos server is found, it will try to talk udp to the
-service @samp{kerberos-iv} with fall-back to port 750 with
-@samp{kerberos.@var{REALM}} (which is also assumed to be the master
-server), and then @samp{kerberos-1.@var{REALM}},
-@samp{kerberos-2.@var{REALM}}, and so on.
-@end enumerate
-
-We strongly recommend that you add a CNAME @samp{kerberos.@var{REALM}}
-pointing to your kerberos master server.
-
-The @file{krb.realms} file is used to find out what realm a particular
-host belongs to. An example of this file could look like:
-
-@example
-this.realm THIS.REALM
-.this.realm THIS.REALM
-foo.com SOME.OTHER.REALM
-www.foo.com A.STRANGE.REALM
-.foo.com FOO.REALM
-@end example
-
-Entries starting with a dot are taken as the name of a domain. Entries
-not starting with a dot are taken as a host-name. The first entry matched
-is used. The entry for @samp{this.realm} is only necessary if there is a
-host named @samp{this.realm}.
-
-If no matching realm is found in @file{krb.realms}, DNS is searched for
-the correct realm. For example, if we are looking for host @samp{a.b.c},
-@samp{krb4-realm.a.b.c} is first tried and then @samp{krb4-realm.b.c}
-and so on. The entry should be a TXT record containing the name of the
-realm, such as:
-
-@example
-krb4-realm.pdc.kth.se. 7200 TXT "NADA.KTH.SE"
-@end example
-
-If this didn't help the domain name sans the first part in uppercase is
-tried.
-
-The plain vanilla version of Kerberos doesn't have any fancy methods of
-getting realms and servers so it is generally a good idea to keep
-@file{krb.conf} and @file{krb.realms} up to date.
-
-@node Install the /etc/services, Install the kerberos server, Install the configuration files, How to set up the kerberos server
-@subsection Updating /etc/services
-
-You should append or merge the contents of @file{services.append} to
-your @file{/etc/services} files or NIS-map. Remove any unused factory
-installed kerberos port definitions to avoid possible conflicts.
-@pindex services
-
-Most of the programs will fall back to the default ports if the port
-numbers are not found in @file{/etc/services}, but it is convenient to
-have them there anyway.
-
-@node Install the kerberos server, Set up the server, Install the /etc/services, How to set up the kerberos server
-@subsection Install the kerberos server
-
-You should have already chosen the machine where you want to run the
-kerberos server and the realm name. The machine should also be as
-secure as possible (@xref{Choose a kerberos server}) before installing
-the kerberos server. In this example, we will install a kerberos server
-for the realm @samp{FOO.SE} on a machine called @samp{hemlig.foo.se}.
-
-@node Set up the server, Add a few important principals, Install the kerberos server, How to set up the kerberos server
-@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
-@kbd{kdb_init}:
-@pindex kdb_init
-
-@example
-@cartouche
-hemlig# kdb_init
-Realm name [default FOO.SE ]:
-You will be prompted for the database Master Password.
-It is important that you NOT FORGET this password.
-
-Enter Kerberos master password:
-Verifying password
-Enter Kerberos master password:
-@end cartouche
-@end example
-
-If you have set up the configuration files correctly, @kbd{kdb_init}
-should choose the correct realm as the default, otherwise a (good) guess
-is made. Enter the master password.
-
-This password will only be used for encrypting the kerberos database on
-disk and for generating new random keys. You will not have to remember
-it, only to type it again when you run @kbd{kstash}. Choose something
-long and random. Now run @kbd{kstash} using the same password:
-@pindex kstash
-
-@example
-@cartouche
-hemlig# kstash
-
-Enter Kerberos master password:
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Wrote master key to /.k
-@end cartouche
-@end example
-
-After entering the same master password it will be saved in the file
-@file{/.k} and the kerberos server will read it when needed. Write down
-the master password and put it in a sealed envelope in a safe, you might
-need it if your disk crashes or should you want to set up a slave
-server.
-
-@code{kdb_init} initializes the database with a few entries:
-
-@table @samp
-@item krbtgt.@var{REALM}
-The key used for authenticating to the kerberos server.
-
-@item changepw.kerberos
-The key used for authenticating to the administrative server, i.e. when
-adding users, changing passwords, and so on.
-
-@item default
-This entry is copied to new items when these are added. Enter here the
-values you want new entries to have, particularly the expiry date.
-
-@item K.M
-This is the master key and it is only used to verify that the master key
-that is saved un-encrypted in @file{/.k} is correct and corresponds to
-this database.
-
-@end table
-
-@code{kstash} only reads the master password and writes it to
-@file{/.k}. This enables the kerberos server to start without you
-having to enter the master password. This file (@file{/.k}) is only
-readable by root and resides on a ``secure'' machine.
-
-@node Add a few important principals, Start the server, Set up the server, How to set up the kerberos server
-@subsection Add a few important principals
-
-Now the kerberos database has been created, containing only a few
-principals. The next step is to add a few more so that you can test
-that it works properly and so that you can administer your realm without
-having to use the console on the kerberos server. Use @kbd{kdb_edit}
-to edit the kerberos database directly on the server.
-@pindex kdb_edit
-
-@code{kdb_edit} is intended as a bootstrapping and fall-back mechanism
-for editing the database. For normal purposes, use the @code{kadmin}
-program (@xref{Add users to the database}).
-
-The following example shows the adding of the principal
-@samp{nisse.admin} into the kerberos database. This principal is used
-by @samp{nisse} when administrating the kerberos database. Later on the
-normal principal for @samp{nisse} will be created. Replace @samp{nisse}
-and @samp{password} with your own username and password.
-
-@example
-@cartouche
-hemlig# kdb_edit -n
-Opening database...
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-Principal name: <nisse>
-Instance: <admin>
-
-<Not found>, Create [y] ? <>
-
-Principal: nisse, Instance: admin, kdc_key_ver: 1
-New Password: <password>
-Verifying password
-New Password: <password>
-
-Principal's new key version = 1
-Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? <>
-Max ticket lifetime (*5 minutes) [ 255 ] ? <>
-Attributes [ 0 ] ? <>
-Edit O.K.
-Principal name: <>
-@end cartouche
-@end example
-
-@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.
-
-@node Start the server, Try to get tickets, Add a few important principals, How to set up the kerberos server
-@subsection Start the server
-
-@pindex kerberos
-@example
-@cartouche
-hemlig# /usr/athena/libexec/kerberos &
-Kerberos server starting
-Sleep forever on error
-Log file is /var/log/kerberos.log
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-
-Current Kerberos master key version is 1
-Local realm: FOO.SE
-@end cartouche
-@end example
-
-@node Try to get tickets, Create initial ACL for the admin server, Start the server, How to set up the kerberos server
-@subsection Try to get tickets
-
-You can now verify that these principals have been added and that the
-server is working correctly.
-
-@pindex kinit
-@example
-@cartouche
-hemlig# kinit
-eBones International (hemlig.foo.se)
-Kerberos Initialization
-Kerberos name: <nisse.admin>
-Password: <password>
-@end cartouche
-@end example
-
-If you do not get any error message from @code{kinit}, then everything
-is working (otherwise, see @ref{Common error messages}). Use
-@code{klist} to verify the tickets you acquired with @code{kinit}:
-
-@pindex klist
-@example
-@cartouche
-hemlig# klist
-Ticket file: /tmp/tkt0
-Principal: nisse.admin@@FOO.SE
-
-Issued Expires Principal
-May 24 21:06:03 May 25 07:06:03 krbtgt.FOO.SE@@FOO.SE
-@end cartouche
-@end example
-
-@node Create initial ACL for the admin server, Start the admin server, Try to get tickets, How to set up the kerberos server
-@subsection Create initial ACL for the admin server
-
-The admin server, @code{kadmind}, uses a series of files to determine who has
-@pindex kadmind
-the right to perform certain operations. The files are:
-@file{admin_acl.add}, @file{admin_acl.get}, @file{admin_acl.del}, and
-@file{admin_acl.mod}. Create these with @samp{nisse.admin@@FOO.SE} as
-the contents.
-@pindex admin_acl.add
-@pindex admin_acl.get
-@pindex admin_acl.del
-@pindex admin_acl.mod
-
-@example
-@cartouche
-hemlig# echo "nisse.admin@@FOO.SE" > /var/kerberos/admin_acl.add
-hemlig# echo "nisse.admin@@FOO.SE" > /var/kerberos/admin_acl.get
-hemlig# echo "nisse.admin@@FOO.SE" > /var/kerberos/admin_acl.mod
-hemlig# echo "nisse.admin@@FOO.SE" > /var/kerberos/admin_acl.del
-@end cartouche
-@end example
-
-Later on you may wish to add more users with administration
-privileges. Make sure that you create both the administration principals
-and add them to the admin server ACL.
-
-@node Start the admin server, Add users to the database, Create initial ACL for the admin server, How to set up the kerberos server
-@subsection Start the admin server
-
-@pindex kadmind
-@example
-@cartouche
-hemlig# /usr/athena/libexec/kadmind &
-KADM Server KADM0.0A initializing
-Please do not use 'kill -9' to kill this job, use a
-regular kill instead
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-@end cartouche
-@end example
-
-@node Add users to the database, Automate the startup of the servers, Start the admin server, How to set up the kerberos server
-@subsection Add users to the database
-
-Use the @code{kadmin} client to add users to the database:
-@pindex kadmin
-
-@example
-@cartouche
-hemlig# kadmin -u nisse.admin -m
-Welcome to the Kerberos Administration Program, version 2
-Type "help" if you need it.
-admin: <add nisse>
-Admin password: <nisse.admin's password>
-Maximum ticket lifetime? (255) [Forever]
-Attributes? [0x00]
-Expiration date (enter yyyy-mm-dd) ? [Sat Jan 1 05:59:00 2000]
-Password for nisse:
-Verifying password Password for nisse:
-nisse added to database.
-@end cartouche
-@end example
-
-Add whatever other users you want to have in the same way. Verify that
-a user is in the database and check the database entry for that user:
-
-@example
-@cartouche
-admin: <get nisse>
-Info in Database for nisse.:
-Max Life: 255 (Forever) Exp Date: Sat Jan 1 05:59:59 2000
-
-Attribs: 00 key: 0 0
-admin: <^D>
-Cleaning up and exiting.
-@end cartouche
-@end example
-
-@node Automate the startup of the servers, , Add users to the database, How to set up the kerberos server
-@subsection Automate the startup of the servers
-
-Add the lines that were used to start the kerberos server and the
-admin server to your startup scripts (@file{/etc/rc} or similar).
-@pindex rc
-
-@node Install the client programs, Install the kerberised services, How to set up the kerberos server, How to set up a realm
-@section Install the client programs
-
-Making a machine a kerberos client only requires a few steps. First you
-might need to change the configuration files as with the kerberos
-server. (@xref{Install the configuration files} and @ref{Install the
-/etc/services}.) Also you need to make the programs in
-@file{/usr/athena/bin} available. This can be done by adding the
-@file{/usr/athena/bin} directory to the users' paths, by making symbolic
-links, or even by copying the programs.
-
-You should also verify that the local time on the client is synchronised
-with the time on the kerberos server by some means. The maximum allowed
-time difference between the participating servers and a client is 5
-minutes.
-@cindex NTP.
-One good way to synchronize the time is NTP (Network Time Protocol), see
-@code{http://www.eecis.udel.edu/~ntp/}.
-
-If you need to run the client programs on a machine where you do not
-have root-access, you can hopefully just use the binaries and no
-configuration will be needed. The heuristics used are mentioned above
-(see @ref{Install the configuration files}). If this is not the case
-and you need to have @file{krb.conf} and/or @file{krb.realms}, you can
-copy them into a directory of your choice and
-@pindex krb.conf
-@pindex krb.realms
-set the environment variable @var{KRBCONFDIR} to point at this
-@cindex KRBCONFDIR
-directory.
-
-To test the client functionality, run the @code{kinit} program:
-
-@example
-@cartouche
-foo$ kinit
-eBones International (foo.foo.se)
-Kerberos Initialization
-Kerberos name: <nisse>
-Password: <password>
-
-foo$ klist
-Ticket file: /tmp/tkt4711
-Principal: nisse@@FOO.SE
-
-Issued Expires Principal
-May 24 21:06:03 May 25 07:06:03 krbtgt.FOO.SE@@FOO.SE
-@end cartouche
-@end example
-
-@node Install the kerberised services, Install a slave kerberos server, Install the client programs, How to set up a realm
-@section Install the kerberised services
-
-These includes @code{rsh}, @code{rlogin}, @code{telnet}, @code{ftp},
-@code{rxtelnet}, and so on.
-@pindex rsh
-@pindex rlogin
-@pindex telnet
-@pindex ftp
-@pindex rxtelnet
-
-First follow the steps mentioned in the prior section to make it a
-client and verify its operation. Change @file{inetd.conf} next to use
-the new daemons. Look at the file
-@pindex inetd.conf
-@file{etc/inetd.conf.changes} to see the changes that we recommend you
-perform on @file{inetd.conf}.
-
-You should at this point decide what services you want to run on
-each machine.
-
-@subsection rsh, rlogin, and rcp
-@pindex rsh
-@pindex rlogin
-@pindex rcp
-
-These exist in kerberised versions and ``old-style'' versions. The
-different versions use different port numbers, so you can choose none,
-one, or both. If you do not want to use ``old-style'' r* services, you
-can let the programs output the text ``Remote host requires Kerberos
-authentication'' instead of just refusing connections to that port.
-This is enabled with the @samp{-v} option. The kerberised services
-exist in encrypted and non-encrypted versions. The encrypted services
-have an ``e'' prepended to the name and the programs take @samp{-x} as an
-option indicating encryption.
-
-Our recommendation is to only use the kerberised services and give
-explanation messages for the old ports.
-
-@subsection telnet
-@pindex telnet
-
-The telnet service always uses the same port and negotiates as to which
-authentication method should be used. The @code{telnetd} program has
-@pindex telnetd
-an option ``-a user'' that only allows kerberised and authenticated
-connections. If this is not included, it falls back to using clear text
-passwords. For obvious reasons, we recommend that you enable this
-option. If you want to use one-time passwords (@xref{One-Time
-Passwords}) you can use the ``-a otp'' option which will allow OTPs or
-kerberised connections.
-
-@subsection ftp
-@pindex ftp
-
-The ftp service works as telnet does, with just one port being used. By
-default only kerberos authenticated connections are allowed. You can
-specify additional levels that are thus allowed with these options:
-
-@table @asis
-@item @kbd{-a otp}
-Allow one-time passwords (@xref{One-Time Passwords}).
-@item @kbd{-a ftp}
-Allow anonymous login (as user ``ftp'' or ``anonymous'').
-@item @kbd{-a safe}
-The same as @kbd{-a ftp}, for backwards compatibility.
-@item @kbd{-a plain}
-Allow clear-text passwords.
-@item @kbd{-a none}
-The same as @kbd{-a ftp -a plain}.
-@item @kbd{-a user}
-A no-op, also there for backwards compatibility reasons.
-@end table
-
-When running anonymous ftp you should read the man page on @code{ftpd}
-which explains how to set it up.
-
-@subsection pop
-@pindex popper
-
-The Post Office Protocol (POP) is used to retrieve mail from the mail
-hub. The @code{popper} program implements the standard POP3 protocol
-and the kerberised KPOP. Use the @samp{-k} option to run the kerberos
-version of the protocol. This service should only be run on your mail
-hub.
-
-@subsection kx
-@pindex kx
-
-@code{kx} allows you to run X over a kerberos-authenticated and
-encrypted connection. This program is used by @code{rxtelnet},
-@code{tenletxr}, and @code{rxterm}.
-
-If you have some strange kind of operating system with X libraries that
-do not allow you to use unix-sockets, you need to specify the @samp{-t}
-@pindex kxd
-option to @code{kxd}. Otherwise it should be sufficient by adding the
-daemon in @file{inetd.conf}.
-
-@subsection kauth
-@pindex kauth
-
-This service allows you to create tickets on a remote host. To
-enable it just insert the corresponding line in @file{inetd.conf}.
-
-@section srvtabs
-@pindex srvtab
-
-In the same way every user needs to have a password registered with
-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
-@pindex ksrvutil
-following:
-
-@example
-@cartouche
-bar# ksrvutil -p nisse.admin get
-Name [rcmd]: <>
-Instance [bar]: <>
-Realm [FOO.SE]: <>
-Is this correct? (y,n) [y] <>
-Add more keys? (y,n) [n] <>
-Password for nisse.admin@@FOO.SE: <nisse.admin's password>
-Written rcmd.bar
-rcmd.bar@@FOO.SE
-Old keyfile in /etc/srvtab.old.
-@end cartouche
-@end example
-
-@subsection Complete test of the kerberised services
-
-Obtain a ticket on one machine (@samp{foo}) and use it to login with a
-kerberised service to a second machine (@samp{bar}). The test should
-look like this if successful:
-
-@example
-@cartouche
-foo$ kinit nisse
-eBones International (foo.foo.se)
-Kerberos Initialization for "nisse"
-Password: <nisse's password>
-foo$ klist
-Ticket file: /tmp/tkt4711
-Principal: nisse@@FOO.SE
-
-Issued Expires Principal
-May 30 13:48:03 May 30 23:48:03 krbtgt.FOO.SE@@FOO.SE
-foo$ telnet bar
-Trying 17.17.17.17...
-Connected to bar.foo.se
-Escape character is '^]'.
-[ Trying mutual KERBEROS4 ... ]
-[ Kerberos V4 accepts you ]
-[ Kerberos V4 challenge successful ]
-bar$
-@end cartouche
-@end example
-
-You can also try with @code{rsh}, @code{rcp}, @code{rlogin},
-@code{rlogin -x}, and some other commands to see that everything is
-working all right.
-
-@node Install a slave kerberos server, Cross-realm functionality , Install the kerberised services, How to set up a realm
-@section Install a slave kerberos server
-
-It is desirable to have at least one backup (slave) server in case the
-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. @xref{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.
-
-On the master, add a @samp{rcmd.kerberos} principal (using
-@samp{ksrvutil get}). The
-@pindex kprop
-@code{kprop} program, running on the master, will use this when
-authenticating to the
-@pindex kpropd
-@code{kpropd} daemons running on the slave servers.
-
-On your master server, create a file, e.g. @file{/var/kerberos/slaves},
-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}.
-
-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
-slave servers, and comparing with the original file on the master
-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.
-
-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
-keyfile. Remember that if you copy the file, do so on a safe media, not
-over the network. Good means include floppy or paper. Paper is better,
-since it is easier to swallow afterwards.
-
-The kerberos server should be started with @samp{-s} on the slave
-servers. This enables sanity checks, for example checking the time since
-the last update from the master.
-
-All changes to the database are made by @code{kadmind} at the master,
-and then propagated to the slaves, so you should @strong{not} run
-@code{kadmind} on the slaves.
-
-Finally add the slave servers to
-@file{/etc/krb.conf}. The clients will ask the servers in the order
-specified by that file.
-
-Consider adding CNAMEs to your slave servers, see @ref{Install the
-configuration files}.
-
-@node Cross-realm functionality , , Install a slave kerberos server, How to set up a realm
-@section Cross-realm functionality
-
-Suppose you are residing in the realm @samp{MY.REALM}, how do you
-authenticate to a server in @samp{OTHER.REALM}? Having valid tickets in
-@samp{MY.REALM} allows you to communicate with kerberised services in that
-realm. However, the computer in the other realm does not have a secret
-key shared with the kerberos server in your realm.
-
-It is possible to add a shared key between two realms that trust each
-other. When a client program, such as @code{telnet}, finds that the
-other computer is in a different realm, it will try to get a ticket
-granting ticket for that other realm, but from the local kerberos
-server. With that ticket granting ticket, it will then obtain service
-tickets from the kerberos server in the other realm.
-
-To add this functionality you have to add a principal to each realm. The
-principals should be @samp{krbtgt.OTHER.REALM} in @samp{MY.REALM}, and
-@samp{krbtgt.MY.REALM} in @samp{OTHER.REALM}. The two different
-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.
-
-@example
-@cartouche
-blubb$ klist
-Ticket file: /tmp/tkt3008
-Principal: joda@@NADA.KTH.SE
-
- Issued Expires Principal
-Jun 7 02:26:23 Jun 7 12:26:23 krbtgt.NADA.KTH.SE@@NADA.KTH.SE
-blubb$ telnet agat.e.kth.se
-Trying 130.237.48.12...
-Connected to agat.e.kth.se.
-Escape character is '^]'.
-[ Trying mutual KERBEROS4 ... ]
-[ Kerberos V4 accepts you ]
-[ Kerberos V4 challenge successful ]
-Last login: Sun Jun 2 20:51:50 from emma.pdc.kth.se
-
-agat$ exit
-Connection closed by foreign host.
-blubb$ klist
-Ticket file: /tmp/tkt3008
-Principal: joda@@NADA.KTH.SE
-
- Issued Expires Principal
-Jun 7 02:26:23 Jun 7 12:26:23 krbtgt.NADA.KTH.SE@@NADA.KTH.SE
-Jun 7 02:26:50 Jun 7 12:26:50 krbtgt.E.KTH.SE@@NADA.KTH.SE
-Jun 7 02:26:51 Jun 7 12:26:51 rcmd.agat@@E.KTH.SE
-@end cartouche
-@end example
diff --git a/crypto/kerberosIV/doc/whatis.texi b/crypto/kerberosIV/doc/whatis.texi
deleted file mode 100644
index 16989bbec9d0..000000000000
--- a/crypto/kerberosIV/doc/whatis.texi
+++ /dev/null
@@ -1,137 +0,0 @@
-@node What is Kerberos?, Installing programs, Introduction, Top
-@chapter What is Kerberos?
-
-@quotation
-@flushleft
- Now this Cerberus had three heads of dogs,
- the tail of a dragon, and on his back the
- heads of all sorts of snakes.
- --- Pseudo-Apollodorus Library 2.5.12
-@end flushleft
-@end quotation
-
-Kerberos is a system for authenticating users and services on a network.
-It is built upon the assumption that the network is ``unsafe''. For
-example, data sent over the network can be eavesdropped and altered, and
-addresses can also be faked. Therefore they cannot be used for
-authentication purposes.
-@cindex authentication
-
-Kerberos is a trusted third-party service. That means that there is a
-third party (the kerberos server) that is trusted by all the entities on
-the network (users and services, usually called @dfn{principals}). All
-principals share a secret password (or key) with the kerberos server and
-this enables principals to verify that the messages from the kerberos
-server are authentic. Thus trusting the kerberos server, users and
-services can authenticate each other.
-
-@section Basic mechanism
-
-@ifinfo
-@macro sub{arg}
-<\arg\>
-@end macro
-@end ifinfo
-
-@tex
-@def@xsub#1{$_{#1}$}
-@global@let@sub=@xsub
-@end tex
-
-In Kerberos, principals use @dfn{tickets} to prove that they are who
-they claim to be. In the following example, @var{A} is the initiator of
-the authentication exchange, usually a user, and @var{B} is the service
-that @var{A} wishes to use.
-
-To obtain a ticket for a specific service, @var{A} sends a ticket
-request to the kerberos server. The request basically contains @var{A}'s
-and @var{B}'s names. The kerberos server checks that both @var{A} and
-@var{B} are valid principals.
-
-Having verified the validity of the principals, it creates a packet
-containing @var{A}'s and @var{B}'s names, @var{A}'s network address
-(@var{A@sub{addr}}), the current time (@var{t@sub{issue}}), the lifetime
-of the ticket (@var{life}), and a secret @dfn{session key}
-@cindex session key
-(@var{K@sub{AB}}). This packet is encrypted with @var{B}'s secret key
-(@var{K@sub{B}}). The actual ticket (@var{T@sub{AB}}) looks like this:
-(@{@var{A}, @var{B}, @var{A@sub{addr}}, @var{t@sub{issue}}, @var{life},
-@var{K@sub{AB}}@}@var{K@sub{B}}).
-
-The reply to @var{A} consists of the ticket (@var{T@sub{AB}}), @var{B}'s
-name, the current time, the lifetime of the ticket, and the session key, all
-encrypted in @var{A}'s secret key (@{@var{B}, @var{t@sub{issue}},
-@var{life}, @var{K@sub{AB}}, @var{T@sub{AB}}@}@var{K@sub{A}}). @var{A}
-decrypts the reply and retains it for later use.
-
-@sp 1
-
-Before sending a message to @var{B}, @var{A} creates an authenticator
-consisting of @var{A}'s name, @var{A}'s address, the current time, and a
-``checksum'' chosen by @var{A}, all encrypted with the secret session
-key (@{@var{A}, @var{A@sub{addr}}, @var{t@sub{current}},
-@var{checksum}@}@var{K@sub{AB}}). This is sent together with the ticket
-received from the kerberos server to @var{B}. Upon reception, @var{B}
-decrypts the ticket using @var{B}'s secret key. Since the ticket
-contains the session key that the authenticator was encrypted with,
-@var{B} can now also decrypt the authenticator. To verify that @var{A}
-really is @var{A}, @var{B} now has to compare the contents of the ticket
-with that of the authenticator. If everything matches, @var{B} now
-considers @var{A} as properly authenticated.
-
-@c (here we should have some more explanations)
-
-@section Different attacks
-
-@subheading Impersonating A
-
-An impostor, @var{C} could steal the authenticator and the ticket as it
-is transmitted across the network, and use them to impersonate
-@var{A}. The address in the ticket and the authenticator was added to
-make it more difficult to perform this attack. To succeed @var{C} will
-have to either use the same machine as @var{A} or fake the source
-addresses of the packets. By including the time stamp in the
-authenticator, @var{C} does not have much time in which to mount the
-attack.
-
-@subheading Impersonating B
-
-@var{C} can hijack @var{B}'s network address, and when @var{A} sends
-her credentials, @var{C} just pretend to verify them. @var{C} can't
-be sure that she is talking to @var{A}.
-
-@section Defense strategies
-
-It would be possible to add a @dfn{replay cache}
-@cindex replay cache
-to the server side. The idea is to save the authenticators sent during
-the last few minutes, so that @var{B} can detect when someone is trying
-to retransmit an already used message. This is somewhat impractical
-(mostly regarding efficiency), and is not part of Kerberos 4; MIT
-Kerberos 5 contains it.
-
-To authenticate @var{B}, @var{A} might request that @var{B} sends
-something back that proves that @var{B} has access to the session
-key. An example of this is the checksum that @var{A} sent as part of the
-authenticator. One typical procedure is to add one to the checksum,
-encrypt it with the session key and send it back to @var{A}. This is
-called @dfn{mutual authentication}.
-
-The session key can also be used to add cryptographic checksums to the
-messages sent between @var{A} and @var{B} (known as @dfn{message
-integrity}). Encryption can also be added (@dfn{message
-confidentiality}). This is probably the best approach in all cases.
-@cindex integrity
-@cindex confidentiality
-
-@section Further reading
-
-The original paper on Kerberos from 1988 is @cite{Kerberos: An
-Authentication Service for Open Network Systems}, by Jennifer Steiner,
-Clifford Neuman and Jeffrey I. Schiller.
-
-A less technical description can be found in @cite{Designing an
-Authentication System: a Dialogue in Four Scenes} by Bill Bryant, also
-from 1988.
-
-These and several other documents can be found on our web-page.
diff --git a/crypto/kerberosIV/eBones-p9.README b/crypto/kerberosIV/eBones-p9.README
deleted file mode 100644
index 844298598e23..000000000000
--- a/crypto/kerberosIV/eBones-p9.README
+++ /dev/null
@@ -1,26 +0,0 @@
-The file eBones-p9.patch.Z is the compressed patch for Bones (patchlevel 9)
-that puts back the calls to the DES encryption libraries.
-
-eBones-p9-des.tar.Z is a compressed tar file of MIT compatible
-des encryption routines. Install these routines in src/lib/des.
-The des_quad_cksum is not compatible with the MIT version
-but I should fix that when I have access to ultrix 4
-* [It has now been fixed and is the same as MIT's]
-(it has a binary copy of libdes.a)). There are two extra routines,
-des_enc_read and des_enc_write. These routines are used in the
-kerberos rcp, rlogin and rlogind to encrypt all network traffic.
-
-eBones-p9.tar.Z is a compressed tar file of Bones (patchlevel 9)
-with the eBones-p9.patch applied and eBones-p9-des.tar.Z installed.
-
-When applying the patch to Bones, don't do a
-find src -name "*.orig" -exec /bin/rm {} \;
-There is a file called src/util/ss/ss.h.orig that is needed and
-the above find will remove it.
-
-The Imakefile in src/lib/des assumes you have gcc. If you don't,
-you will have to change the Imakefile. Compile this directory with
-the maximum optimization your compiler has available.
-
-These modifications have been successfully unpacked and compiled
-on a microvax 3600.
diff --git a/crypto/kerberosIV/etc/README b/crypto/kerberosIV/etc/README
deleted file mode 100644
index 68865ec7c8fc..000000000000
--- a/crypto/kerberosIV/etc/README
+++ /dev/null
@@ -1,41 +0,0 @@
-
- How to update your files in the /etc directory!
-
-/etc/services (all machines)
-
- The contents of services.append can probably just be appended to
-your local file. If you use NIS (YP) you need to do this on the NIS
-master. Delete and duplicate definitions to prevent inconsistencies.
-
-/etc/krb.conf (all machines)
-
- Create a krb.conf file by substituting MY.REALM.NAME with your
-domain name. If you create a domain name alias (CNAME) kerberos.domain
-pointing to your master server, unconfigured clients will have a
-chance to find your realm.
-
- It is no longer necessary to put each and every realm in
-krb.{conf,realms}. If the domain name matches your realm name and you
-have a CNAME kerberos.REALMNAME pointing at your kerberos server other
-sites will find your realm even if it is not listed in krb.conf.
-*** Please add this CNAME to your local DNS ***
-
-/etc/krb.realms (all machines)
-
- Substitue MY.REALM.NAME in krb.realms with your domain name.
- Not strictly necessary when domain and realm names match.
-
-/etc/inetd.conf (all machines supporting incoming telnet, rsh etc.)
-
- Comment out the lines starting with shell, login and telnet and
-append inetd.conf.changes. Be carefull to check that there are no
-additional old entries of kshell, ekshell, klogin and eklogin left.
-
- The -v option to rshd and rlogin turns off that service and echo
-an informational message to the user.
-
-/etc/srvtab
-
- With 'ksrvutil get' you can add entries to the Kerberos database and
-put the service keys into your srvtab file.
-
diff --git a/crypto/kerberosIV/etc/default.login b/crypto/kerberosIV/etc/default.login
deleted file mode 100644
index f01b2eee90a4..000000000000
--- a/crypto/kerberosIV/etc/default.login
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Sample /etc/default/login file, read by the login program
-#
-# For more info consult SysV login(1)
-#
-# Most things are environment variables.
-# HZ and TZ are set only if they are still uninitialized.
-
-# This really variable TZ
-#TIMEZONE=EST5EDT
-
-#HZ=100
-
-# File size limit, se ulimit(2).
-# Note that the limit must be specified in units of 512-byte blocks.
-#ULIMIT=0
-
-# If CONSOLE is set, root can only login on that device.
-# When not set root can log in on any device.
-#CONSOLE=/dev/console
-
-# PASSREQ determines if login requires a password.
-PASSREQ=YES
-
-# ALTSHELL, really set SHELL=/bin/bash or other shell
-# Extension: when ALTSHELL=YES, we set the SHELL variable even if it is /bin/sh
-ALTSHELL=YES
-
-# Default PATH
-#PATH=/usr/bin:
-
-# Default PATH for root user
-#SUPATH=/usr/sbin:/usr/bin
-
-# TIMEOUT sets the number of seconds (between 0 and 900) to wait before
-# abandoning a login session.
-#
-#TIMEOUT=300
-
-# Use this for default umask(2) value
-#UMASK=022
-
-# Sleeptime between failed logins
-# SLEEPTIME
-
-# Maximum number of failed login attempts, well the user can always reconnect
-# MAXTRYS
diff --git a/crypto/kerberosIV/etc/fbtab b/crypto/kerberosIV/etc/fbtab
deleted file mode 100644
index 3e2137691471..000000000000
--- a/crypto/kerberosIV/etc/fbtab
+++ /dev/null
@@ -1,15 +0,0 @@
-# Sample /etc/fbtab file read by the login program
-# This file can also be called /etc/logindevperm.
-
-# Use this to give away devices to the console user. The group of the
-# devices is set to the owner's group specified in /etc/passwd.
-#
-# First column specifies the console device.
-#
-# Second the mode bits of the given away devices
-#
-# Third is a : separated list of devices to give away
-
-# console mode devices
-/dev/console 0600 /dev/console:/dev/mouse
-/dev/console 0600 /dev/floppy
diff --git a/crypto/kerberosIV/etc/hosts.equiv b/crypto/kerberosIV/etc/hosts.equiv
deleted file mode 100644
index 2fbb50c4a8dc..000000000000
--- a/crypto/kerberosIV/etc/hosts.equiv
+++ /dev/null
@@ -1 +0,0 @@
-localhost
diff --git a/crypto/kerberosIV/etc/inetd.conf.changes b/crypto/kerberosIV/etc/inetd.conf.changes
deleted file mode 100644
index a9721a0ff161..000000000000
--- a/crypto/kerberosIV/etc/inetd.conf.changes
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# $Id: inetd.conf.changes,v 1.12 1996/10/27 11:58:02 bg 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 /usr/athena/libexec/rshd rshd -l -L -v
-login stream tcp nowait root /usr/athena/libexec/rlogind rlogind -l -v
-#
-# Kerberos rsh
-kshell stream tcp nowait root /usr/athena/libexec/rshd rshd -L -k
-ekshell stream tcp nowait root /usr/athena/libexec/rshd rshd -L -k -x
-ekshell2 stream tcp nowait root /usr/athena/libexec/rshd rshd -L -k -x
-#
-# Kerberos rlogin
-klogin stream tcp nowait root /usr/athena/libexec/rlogind rlogind -k
-eklogin stream tcp nowait root /usr/athena/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 /usr/athena/libexec/telnetd telnetd -a none
-ftp stream tcp nowait root /usr/athena/libexec/ftpd ftpd -a none
-#
-# Kerberized POP. Server principal is pop.hostname, *not* rcmd.hostname!
-#kpop stream tcp nowait root /usr/athena/libexec/popper popper -k
-#
-# Old POP3 with passwords in clear (not recommended, uses cleartext passwords)
-#pop3 stream tcp nowait root /usr/athena/libexec/popper popper
-#
-# Kauthd, support for putting tickets on other machines in a secure fashion.
-kauth stream tcp nowait root /usr/athena/libexec/kauthd kauthd
-#
-# Encrypted X connections
-kx stream tcp nowait root /usr/athena/libexec/kxd kxd
diff --git a/crypto/kerberosIV/etc/krb.conf b/crypto/kerberosIV/etc/krb.conf
deleted file mode 100644
index 6114c8520645..000000000000
--- a/crypto/kerberosIV/etc/krb.conf
+++ /dev/null
@@ -1,56 +0,0 @@
-MY.REALM.NAME
-MY.REALM.NAME kerberos.MY.REALM.NAME admin server
-SICS.SE kerberos.sics.se admin server
-NADA.KTH.SE kerberos.nada.kth.se admin server
-NADA.KTH.SE sysman.nada.kth.se
-NADA.KTH.SE server.nada.kth.se
-ADMIN.KTH.SE ulysses.admin.kth.se admin server
-ADMIN.KTH.SE graziano.admin.kth.se
-ADMIN.KTH.SE montano.admin.kth.se
-BION.KTH.SE chaplin.bion.kth.se admin server
-DSV.SU.SE ssi.dsv.su.se admin server
-DSV.SU.SE vall.dsv.su.se
-E.KTH.SE heimdal.e.kth.se admin server
-E.KTH.SE elixir.e.kth.se
-E.KTH.SE malt.e.kth.se
-IT.KTH.SE gaia.it.kth.se
-IT.KTH.SE isolde.it.kth.se
-IT.KTH.SE tristan.it.kth.se
-KTH.SE kth.se admin server
-ML.KVA.SE gustava.ml.kva.se admin server
-PI.SE liszt.adm.pi.se admin server
-STACKEN.KTH.SE linnea.stacken.kth.se admin server
-STACKEN.KTH.SE marcel.stacken.kth.se
-STACKEN.KTH.SE sune.stacken.kth.se
-SUNET.SE bar.pilsnet.sunet.se admin server
-CYGNUS.COM kerberos.cygnus.com admin server
-CYGNUS.COM kerberos-1.cygnus.com
-CYGNUS.COM dumb.cygnus.com
-DEVO.CYGNUS.COM dumber.cygnus.com admin server
-MIRKWOOD.CYGNUS.COM mirkwood.cygnus.com admin server
-KITHRUP.COM KITHRUP.COM admin server
-ATHENA.MIT.EDU kerberos.mit.edu admin server
-ATHENA.MIT.EDU kerberos-1.mit.edu
-ATHENA.MIT.EDU kerberos-2.mit.edu
-ATHENA.MIT.EDU kerberos-3.mit.edu
-LCS.MIT.EDU kerberos.lcs.mit.edu admin server
-SMS_TEST.MIT.EDU dodo.mit.edu admin server
-LS.MIT.EDU ls.mit.edu admin server
-IFS.UMICH.EDU kerberos.ifs.umich.edu
-CS.WASHINGTON.EDU hawk.cs.washington.edu
-CS.WASHINGTON.EDU aspen.cs.washington.edu
-CS.BERKELEY.EDU okeeffe.berkeley.edu
-SOUP.MIT.EDU soup.mit.edu admin server
-TELECOM.MIT.EDU bitsy.mit.edu
-MEDIA.MIT.EDU kerberos.media.mit.edu
-NEAR.NET kerberos.near.net
-CATS.UCSC.EDU mehitabel.ucsc.edu admin server
-CATS.UCSC.EDU ucsch.ucsc.edu
-WATCH.MIT.EDU kerberos.watch.mit.edu admin server
-TELEBIT.COM napa.telebit.com. admin server
-ARMADILLO.COM monad.armadillo.com admin server
-TOAD.COM toad.com admin server
-ZEN.ORG zen.org admin server
-LLOYD.COM harry.lloyd.com admin server
-EPRI.COM kerberos.epri.com admin server
-EPRI.COM kerberos-2.epri.com
diff --git a/crypto/kerberosIV/etc/krb.equiv b/crypto/kerberosIV/etc/krb.equiv
deleted file mode 100644
index 6205c1f38b1c..000000000000
--- a/crypto/kerberosIV/etc/krb.equiv
+++ /dev/null
@@ -1,14 +0,0 @@
-# List of host with multiple adresses.
-#
-193.10.156.253 130.237.232.44 193.10.156.252 # scws scws-fddi scws-2.
-193.10.156.250 130.237.232.15 # salmon-sp salmon.
-#
-# new krb.equiv syntax for all of SP.
-#
-193.10.156.0/24 193.10.157.0/24 \ # syk-X.pdc.kth.se syk-X-hps.pdc.kth.se
-130.237.232.31 130.237.232.32 \ # syk-0101-fddi syk-0201-fddi
-130.237.232.38 130.237.232.39 \ # syk-0115-fddi syk-0116-fddi
-130.237.232.33 130.237.232.34 \ # syk-0301-fddi syk-0401-fddi
-130.237.232.35 130.237.232.36 \ # syk-0501-fddi syk-0601-fddi
-130.237.232.37 130.237.230.66 \ # syk-0602-fddi syk-0602-fcs
-130.237.230.36 # syk-0606-hippi.
diff --git a/crypto/kerberosIV/etc/krb.realms b/crypto/kerberosIV/etc/krb.realms
deleted file mode 100644
index 85e955a9d9b1..000000000000
--- a/crypto/kerberosIV/etc/krb.realms
+++ /dev/null
@@ -1,51 +0,0 @@
-.MY.REALM.NAME MY.REALM.NAME
-sics.se SICS.SE
-.sics.se SICS.SE
-nada.kth.se NADA.KTH.SE
-pdc.kth.se NADA.KTH.SE
-.hydro.kth.se NADA.KTH.SE
-.math.kth.se NADA.KTH.SE
-.mech.kth.se NADA.KTH.SE
-.nada.kth.se NADA.KTH.SE
-.pdc.kth.se NADA.KTH.SE
-.sans.kth.se NADA.KTH.SE
-.admin.kth.se ADMIN.KTH.SE
-.e.kth.se E.KTH.SE
-.electrum.kth.se IT.KTH.SE
-.it.kth.se IT.KTH.SE
-.sth.sunet.se SUNET.SE
-.pilsnet.sunet.se SUNET.SE
-.sunet.se SUNET.SE
-.ml.kva.se ML.KVA.SE
-pi.se PI.SE
-.pi.se PI.SE
-.adm.pi.se PI.SE
-.stacken.kth.se STACKEN.KTH.SE
-kth.se KTH.SE
-.kth.se KTH.SE
-.bion.kth.se BION.KTH.SE
-.dsv.su.se DSV.SU.SE
-.MIT.EDU ATHENA.MIT.EDU
-.MIT.EDU. ATHENA.MIT.EDU
-MIT.EDU ATHENA.MIT.EDU
-DODO.MIT.EDU SMS_TEST.MIT.EDU
-.UCSC.EDU CATS.UCSC.EDU
-.UCSC.EDU. CATS.UCSC.EDU
-CYGNUS.COM CYGNUS.COM
-.CYGNUS.COM CYGNUS.COM
-MIRKWOOD.CYGNUS.COM MIRKWOOD.CYGNUS.COM
-KITHRUP.COM KITHRUP.COM
-.KITHRUP.COM KITHRUP.COM
-.berkeley.edu EECS.BERKELEY.EDU
-.CS.berkeley.edu EECS.BERKELEY.EDU
-.MIT.EDU ATHENA.MIT.EDU
-.mit.edu ATHENA.MIT.EDU
-.BSDI.COM BSDI.COM
-ARMADILLO.COM ARMADILLO.COM
-.ARMADILLO.COM ARMADILLO.COM
-ZEN.ORG ZEN.ORG
-.ZEN.ORG ZEN.ORG
-toad.com TOAD.COM
-.toad.com TOAD.COM
-lloyd.com LLOYD.COM
-.lloyd.com LLOYD.COM
diff --git a/crypto/kerberosIV/etc/login.access b/crypto/kerberosIV/etc/login.access
deleted file mode 100644
index f8116161af3a..000000000000
--- a/crypto/kerberosIV/etc/login.access
+++ /dev/null
@@ -1,54 +0,0 @@
-# Sample /etc/login.access file read by the login program
-#
-# Login access control table.
-#
-# When someone logs in, the table is scanned for the first entry that
-# matches the (user, host) combination, or, in case of non-networked
-# logins, the first entry that matches the (user, tty) combination. The
-# permissions field of that table entry determines whether the login will
-# be accepted or refused.
-#
-# Format of the login access control table is three fields separated by a
-# ":" character:
-#
-# permission : users : origins
-#
-# The first field should be a "+" (access granted) or "-" (access denied)
-# character.
-#
-# The second field should be a list of one or more login names, group
-# names, or ALL (always matches). A pattern of the form user@host is
-# matched when the login name matches the "user" part, and when the
-# "host" part matches the local machine name.
-#
-# The third field should be a list of one or more tty names (for
-# non-networked logins), host names, domain names (begin with "."), host
-# addresses, internet network numbers (end with "."), ALL (always
-# matches) or LOCAL (matches any string that does not contain a "."
-# character).
-#
-# If you run NIS you can use @netgroupname in host or user patterns; this
-# even works for @usergroup@@hostgroup patterns. Weird.
-#
-# The EXCEPT operator makes it possible to write very compact rules.
-#
-# The group file is searched only when a name does not match that of the
-# logged-in user. Only groups are matched in which users are explicitly
-# listed: the program does not look at a user's primary group id value.
-#
-##############################################################################
-#
-# Disallow console logins to all but a few accounts.
-#
--:ALL EXCEPT wheel shutdown sync:console
-#
-# Disallow non-local logins to privileged accounts (group wheel).
-#
--:wheel:ALL EXCEPT LOCAL .win.tue.nl
-#
-# Some accounts are not allowed to login from anywhere:
-#
--:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
-#
-# All other accounts are allowed to login from anywhere.
-#
diff --git a/crypto/kerberosIV/etc/services.append b/crypto/kerberosIV/etc/services.append
deleted file mode 100644
index 8101e729b913..000000000000
--- a/crypto/kerberosIV/etc/services.append
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Kerberos
-#
-# $Id: services.append,v 1.11 1996/10/18 15:25:17 bg Exp $
-#
-kerberos-sec 88/udp # Kerberos secondary port UDP
-kerberos-sec 88/tcp # Kerberos secondary port TCP
-klogin 543/tcp # Kerberos authenticated rlogin
-kshell 544/tcp krcmd # and remote shell
-ekshell 545/tcp # Kerberos encrypted remote shell -kfall
-ekshell2 2106/tcp # What U of Colorado @ Boulder uses?
-kerberos-iv 750/udp kerberos kdc # Kerberos authentication--udp
-kerberos-iv 750/tcp kerberos kdc # Kerberos authentication--tcp
-kerberos_master 751/udp # Kerberos authentication
-kerberos_master 751/tcp # Kerberos authentication
-krb_prop 754/tcp # Kerberos slave propagation
-kpop 1109/tcp # Pop with Kerberos
-eklogin 2105/tcp # Kerberos encrypted rlogin
-rkinit 2108/tcp # Kerberos remote kinit
-kx 2111/tcp # X over kerberos
-kip 2112/tcp # IP over kerberos
-kauth 2120/tcp # Remote kauth
diff --git a/crypto/kerberosIV/include/Makefile.in b/crypto/kerberosIV/include/Makefile.in
deleted file mode 100644
index 5061c085c44a..000000000000
--- a/crypto/kerberosIV/include/Makefile.in
+++ /dev/null
@@ -1,147 +0,0 @@
-# $Id: Makefile.in,v 1.36 1997/05/20 18:58:39 bg Exp $
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-CC = @CC@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-LN_S = @LN_S@
-EXECSUFFIX = @EXECSUFFIX@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-libdir = @libdir@
-
-HAVE_ERR_H = @ac_cv_header_err_h@
-
-@SET_MAKE@
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-HEADERS = krb_err.h kadm_err.h acl.h com_err.h des.h kadm.h kafs.h \
- kdc.h klog.h krb.h krb_db.h prot.h otp.h sl.h ktypes.h
-
-KTYPES_OBJECTS = ktypes.o
-
-SOURCES = ktypes.c
-
-LOCL_HEADERS = roken.h protos.h resolve.h xdbm.h
-
-MAYBE_HEADERS = err.h
-
-SUBDIRS = sys
-
-all: stamp-headers
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) all); done
-
-Wall:
- $(MAKE) CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-ALL_INC = com_err.h des.h kadm.h kafs.h kdc.h klog.h krb.h krb_db.h otp.h
-
-install:
- $(MKINSTALLDIRS) $(includedir)
- for x in $(HEADERS); \
- do $(INSTALL_DATA) $$x $(includedir)/$$x; done
- -if test "$(HAVE_ERR_H)" != yes; then \
- $(INSTALL_DATA) err.h $(includedir)/err.h; \
- fi
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) install); done
-
-uninstall:
- for x in $(HEADERS); do \
- rm -f $(includedir)/$$x; \
- done
- -if test "$(HAVE_ERR_H)" != yes; then \
- rm -f $(includedir)/err.h; \
- fi
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) uninstall); done
-
-clean:
- rm -f $(HEADERS) $(LOCL_HEADERS) $(MAYBE_HEADERS) *.o ktypes stamp-headers
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) clean); done
-
-mostlyclean: clean
-
-distclean:
- $(MAKE) clean
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) distclean); done
- rm -f Makefile config.status *~
-
-realclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) realclean); done
-
-err.h:
- if test "$(HAVE_ERR_H)" != yes; then \
- $(LN_S) $(srcdir)/../lib/roken/err.h err.h; \
- fi || true
-
-krb_err.h:
- cd ../lib/krb && $(MAKE) krb_err.h
- $(LN_S) ../lib/krb/krb_err.h .
-kadm_err.h:
- cd ../lib/kadm && $(MAKE) kadm_err.h
- $(LN_S) ../lib/kadm/kadm_err.h .
-acl.h:
- $(LN_S) $(srcdir)/../lib/acl/acl.h .
-com_err.h:
- $(LN_S) $(srcdir)/../util/et/com_err.h .
-des.h:
- $(LN_S) $(srcdir)/../lib/des/des.h .
-kadm.h:
- $(LN_S) $(srcdir)/../lib/kadm/kadm.h .
-kafs.h:
- $(LN_S) $(srcdir)/../lib/kafs/kafs.h .
-kdc.h:
- $(LN_S) $(srcdir)/../lib/kdb/kdc.h .
-klog.h:
- $(LN_S) $(srcdir)/../lib/krb/klog.h .
-krb.h:
- $(LN_S) $(srcdir)/../lib/krb/krb.h .
-resolve.h:
- $(LN_S) $(srcdir)/../lib/krb/resolve.h .
-krb_db.h:
- $(LN_S) $(srcdir)/../lib/kdb/krb_db.h .
-prot.h:
- $(LN_S) $(srcdir)/../lib/krb/prot.h .
-
-protos.h:
- $(LN_S) $(srcdir)/protos.H protos.h
-roken.h:
- $(LN_S) $(srcdir)/../lib/roken/roken.h .
-xdbm.h:
- $(LN_S) $(srcdir)/../lib/roken/xdbm.h .
-
-otp.h:
- $(LN_S) $(srcdir)/../lib/otp/otp.h .
-
-sl.h:
- $(LN_S) $(srcdir)/../lib/sl/sl.h .
-
-ktypes$(EXECSUFFIX): $(KTYPES_OBJECTS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(KTYPES_OBJECTS)
-
-ktypes.o: ktypes.c
-
-ktypes.h: ktypes$(EXECSUFFIX)
- ./ktypes$(EXECSUFFIX) > $@
-
-stamp-headers: Makefile
- $(MAKE) $(HEADERS) $(LOCL_HEADERS) $(MAYBE_HEADERS)
- touch stamp-headers
diff --git a/crypto/kerberosIV/include/config.h.in b/crypto/kerberosIV/include/config.h.in
deleted file mode 100644
index 826dc76c3ed2..000000000000
--- a/crypto/kerberosIV/include/config.h.in
+++ /dev/null
@@ -1,984 +0,0 @@
-/* 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. */
-#undef gid_t
-
-/* 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 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. */
-#undef STDC_HEADERS
-
-/* 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. */
-#undef uid_t
-
-/* 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 this if RETSIGTYPE == void */
-#undef VOID_RETSIGTYPE
-
-/* Define this if struct utmp have ut_user */
-#undef HAVE_UT_USER
-
-/* Define this if struct utmp have ut_host */
-#undef HAVE_UT_HOST
-
-/* Define this if struct utmp have ut_addr */
-#undef HAVE_UT_ADDR
-
-/* Define this if struct utmp have ut_type */
-#undef HAVE_UT_TYPE
-
-/* Define this if struct utmp have ut_pid */
-#undef HAVE_UT_PID
-
-/* Define this if struct utmp have ut_id */
-#undef HAVE_UT_ID
-
-/* Define this if struct utmpx have ut_syslen */
-#undef HAVE_UT_SYSLEN
-
-/* Define this if struct winsize is declared in sys/termios.h */
-#undef HAVE_STRUCT_WINSIZE
-
-/* Define this if struct winsize have ws_xpixel */
-#undef HAVE_WS_XPIXEL
-
-/* Define this if struct winsize have ws_ypixel */
-#undef HAVE_WS_YPIXEL
-
-/* Define this to be the directory where the dictionary for cracklib */
-/* resides */
-#undef DICTPATH
-
-/* Define this if you want to use SOCKS v5 */
-#undef SOCKS
-
-/* Define this to the path of the mail spool directory */
-#undef KRB4_MAILDIR
-
-/* Define this if `struct sockaddr' includes sa_len */
-#undef SOCKADDR_HAS_SA_LEN
-
-/* Define this if `struct siaentity' includes ouid */
-#undef SIAENTITY_HAS_OUID
-
-/* Define if getlogin has POSIX flavour, as opposed to BSD */
-#undef POSIX_GETLOGIN
-
-/* Define if getpwnam_r has POSIX flavour */
-#undef POSIX_GETPWNAM_R
-
-/* define if getcwd() is broken (such as in SunOS) */
-#undef BROKEN_GETCWD
-
-/* define if the system is missing a prototype for crypt() */
-#undef NEED_CRYPT_PROTO
-
-/* define if the system is missing a prototype for strtok_r() */
-#undef NEED_STRTOK_R_PROTO
-
-/* define if /bin/ls takes -A */
-#undef HAVE_LS_A
-
-/* define if you have h_errno */
-#undef HAVE_H_ERRNO
-
-/* define if you have h_errlist but not hstrerror */
-#undef HAVE_H_ERRLIST
-
-/* define if you have h_nerr but not hstrerror */
-#undef HAVE_H_NERR
-
-/* define if your system doesn't declare h_errlist */
-#undef HAVE_H_ERRLIST_DECLARATION
-
-/* define if your system doesn't declare h_nerr */
-#undef HAVE_H_NERR_DECLARATION
-
-/* define this if you need a declaration for h_errno */
-#undef HAVE_H_ERRNO_DECLARATION
-
-/* define if you need a declaration for optarg */
-#undef HAVE_OPTARG_DECLARATION
-
-/* define if you need a declaration for optind */
-#undef HAVE_OPTIND_DECLARATION
-
-/* define if you need a declaration for opterr */
-#undef HAVE_OPTERR_DECLARATION
-
-/* define if you need a declaration for optopt */
-#undef HAVE_OPTOPT_DECLARATION
-
-/* define if you need a declaration for __progname */
-#undef HAVE___PROGNAME_DECLARATION
-
-/* 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
-
-/* 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. */
-#undef HAVE__STRICMP
-
-/* 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 chown function. */
-#undef HAVE_CHOWN
-
-/* Define if you have the daemon function. */
-#undef HAVE_DAEMON
-
-/* Define if you have the dbm_firstkey function. */
-#undef HAVE_DBM_FIRSTKEY
-
-/* Define if you have the dbopen function. */
-#undef HAVE_DBOPEN
-
-/* 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 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 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 gethostbyname function. */
-#undef HAVE_GETHOSTBYNAME
-
-/* Define if you have the gethostname function. */
-#undef HAVE_GETHOSTNAME
-
-/* 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 getservbyname function. */
-#undef HAVE_GETSERVBYNAME
-
-/* Define if you have the getsockopt function. */
-#undef HAVE_GETSOCKOPT
-
-/* 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 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. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the mkstemp function. */
-#undef HAVE_MKSTEMP
-
-/* Define if you have the mktime function. */
-#undef HAVE_MKTIME
-
-/* Define if you have the odm_initialize function. */
-#undef HAVE_ODM_INITIALIZE
-
-/* 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. */
-#undef HAVE_RAND
-
-/* 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 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. */
-#undef HAVE_SETSOCKOPT
-
-/* Define if you have the setutent function. */
-#undef HAVE_SETUTENT
-
-/* Define if you have the snprintf function. */
-#undef HAVE_SNPRINTF
-
-/* Define if you have the socket function. */
-#undef HAVE_SOCKET
-
-/* Define if you have the strcasecmp function. */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strdup function. */
-#undef HAVE_STRDUP
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the strftime function. */
-#undef HAVE_STRFTIME
-
-/* Define if you have the strlwr function. */
-#undef HAVE_STRLWR
-
-/* Define if you have the strnlen function. */
-#undef HAVE_STRNLEN
-
-/* Define if you have the strtok_r function. */
-#undef HAVE_STRTOK_R
-
-/* Define if you have the strupr function. */
-#undef HAVE_STRUPR
-
-/* Define if you have the swab function. */
-#undef HAVE_SWAB
-
-/* 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 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 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 <bind/bitypes.h> header file. */
-#undef HAVE_BIND_BITYPES_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 <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 <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <grp.h> header file. */
-#undef HAVE_GRP_H
-
-/* Define if you have the <io.h> header file. */
-#undef HAVE_IO_H
-
-/* Define if you have the <lastlog.h> header file. */
-#undef HAVE_LASTLOG_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 <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. */
-#undef HAVE_SIGNAL_H
-
-/* 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/cdefs.h> header file. */
-#undef HAVE_SYS_CDEFS_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. */
-#undef HAVE_SYS_LOCKING_H
-
-/* 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/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. */
-#undef HAVE_SYS_STAT_H
-
-/* 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. */
-#undef HAVE_SYS_TIMEB_H
-
-/* 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. */
-#undef HAVE_SYS_TYPES_H
-
-/* 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 <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 <winsock.h> header file. */
-#undef HAVE_WINSOCK_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
-
-/* Define if you have the cfg library (-lcfg). */
-#undef HAVE_LIBCFG
-
-/* Define if you have the edit library (-ledit). */
-#undef HAVE_LIBEDIT
-
-/* Define if you have the gdbm library (-lgdbm). */
-#undef HAVE_LIBGDBM
-
-/* Define if you have the ndbm library (-lndbm). */
-#undef HAVE_LIBNDBM
-
-/* 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
-
-#undef HAVE_INT8_T
-#undef HAVE_INT16_T
-#undef HAVE_INT32_T
-#undef HAVE_INT64_T
-#undef HAVE_U_INT8_T
-#undef HAVE_U_INT16_T
-#undef HAVE_U_INT32_T
-#undef HAVE_U_INT64_T
-
-#define RCSID(msg) \
-static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
-
-/*
- * Set ORGANIZATION to be the desired organization string printed
- * by the 'kinit' program. It may have spaces.
- */
-#define ORGANIZATION "eBones International"
-
-#if 0
-#undef BINDIR
-#undef LIBDIR
-#undef LIBEXECDIR
-#undef SBINDIR
-#endif
-
-#if 0
-#define KRB_CNF_FILES { "/etc/krb.conf", "/etc/kerberosIV/krb.conf", 0}
-#define KRB_RLM_FILES { "/etc/krb.realms", "/etc/kerberosIV/krb.realms", 0}
-#define KRB_EQUIV "/etc/krb.equiv"
-
-#define KEYFILE "/etc/srvtab"
-
-#define KRBDIR "/var/kerberos"
-#define DBM_FILE KRBDIR "/principal"
-#define DEFAULT_ACL_DIR KRBDIR
-
-#define KRBLOG "/var/log/kerberos.log" /* master server */
-#define KRBSLAVELOG "/var/log/kerberos_slave.log" /* slave server */
-#define KADM_SYSLOG "/var/log/admin_server.syslog"
-#define K_LOGFIL "/var/log/kpropd.log"
-#endif
-
-/* Maximum values on all known systems */
-#define MaxHostNameLen (64+4)
-#define MaxPathLen (1024+4)
-
-/*
- * Define NDBM if you are using the 4.3 ndbm library (which is part of
- * libc). If not defined, 4.2 dbm will be assumed.
- */
-#if defined(HAVE_DBM_FIRSTKEY)
-#define NDBM
-#endif
-
-/* ftp stuff -------------------------------------------------- */
-
-#define KERBEROS
-
-/* telnet stuff ----------------------------------------------- */
-
-/* define this if you have kerberos 4 */
-#undef KRB4
-
-/* define this if you want encryption */
-#undef ENCRYPTION
-
-/* define this if you want authentication */
-#undef AUTHENTICATION
-
-#if defined(ENCRYPTION) && !defined(AUTHENTICATION)
-#define AUTHENTICATION 1
-#endif
-
-/* Set this if you want des encryption */
-#undef DES_ENCRYPTION
-
-/* Set this to the default system lead string for telnetd
- * can contain %-escapes: %s=sysname, %m=machine, %r=os-release
- * %v=os-version, %t=tty, %h=hostname, %d=date and time
- */
-#undef USE_IM
-
-/* define this if you want diagnostics in telnetd */
-#undef DIAGNOSTICS
-
-/* define this if you want support for broken ENV_{VALUE,VAR} systems */
-#undef ENV_HACK
-
-/* */
-#undef OLD_ENVIRON
-
-/* Used with login -p */
-#undef LOGIN_ARGS
-
-/* Define if there are working stream ptys */
-#undef STREAMSPTY
-
-/* set this to a sensible login */
-#ifndef LOGIN_PATH
-#define LOGIN_PATH BINDIR "/login"
-#endif
-
-
-/* ------------------------------------------------------------ */
-
-/*
- * Define this if your ndbm-library really is berkeley db and creates
- * files that ends in .db.
- */
-#undef HAVE_NEW_DB
-
-/* Define this if you have a working getmsg */
-#undef HAVE_GETMSG
-
-/* Define to enable new master key code */
-#undef RANDOM_MKEY
-
-/* Location of the master key file, default value lives in <kdc.h> */
-#undef MKEYFILE
-
-/* Define if you don't want support for afs, might be a good idea on
- AIX if you don't have afs */
-#undef NO_AFS
-
-/* Define if you have a readline compatible library */
-#undef HAVE_READLINE
-
-#ifdef VOID_RETSIGTYPE
-#define SIGRETURN(x) return
-#else
-#define SIGRETURN(x) return (RETSIGTYPE)(x)
-#endif
-
-/* Define this if your compiler supports '#pragma weak' */
-#undef HAVE_PRAGMA_WEAK
-
-/* Temporary fixes for krb_{rd,mk}_safe */
-#define DES_QUAD_GUESS 0
-#define DES_QUAD_NEW 1
-#define DES_QUAD_OLD 2
-
-/* Set this to one of the constants above to specify default checksum
- type to emit */
-#undef DES_QUAD_DEFAULT
-
-/*
- * AIX braindamage!
- */
-#if _AIX
-#define _ALL_SOURCE
-#define _POSIX_SOURCE
-/* this is left for hysteric reasons :-) */
-#define unix /* well, ok... */
-#endif
-
-/*
- * SunOS braindamage! (Sun include files are generally braindead)
- */
-#if (defined(sun) || defined(__sun))
-#if defined(__svr4__) || defined(__SVR4)
-#define SunOS 5
-#else
-#define SunOS 4
-#endif
-#endif
-
-#if defined(__sgi) || defined(sgi)
-#if defined(__SYSTYPE_SVR4) || defined(_SYSTYPE_SVR4)
-#define IRIX 5
-#else
-#define IRIX 4
-#endif
-#endif
-
-/* IRIX 4 braindamage */
-#if IRIX == 4 && !defined(__STDC__)
-#define __STDC__ 0
-#endif
diff --git a/crypto/kerberosIV/include/ktypes.c b/crypto/kerberosIV/include/ktypes.c
deleted file mode 100644
index eb6ad48c67ad..000000000000
--- a/crypto/kerberosIV/include/ktypes.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: ktypes.c,v 1.4 1997/05/31 08:52:09 bg Exp $");
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_BITYPES_H
-#include <sys/bitypes.h>
-#endif
-#ifdef HAVE_BIND_BITYPES_H
-#include <bind/bitypes.h>
-#endif
-#ifdef HAVE_NETINET_IN6_MACHTYPES_H
-#include <netinet/in6_machtypes.h>
-#endif
-
-int
-main(void)
-{
- printf ("/*\n"
- " * This file was automatically generated by\n"
- " * $Id: ktypes.c,v 1.4 1997/05/31 08:52:09 bg Exp $.\n"
- " * Please do not edit\n"
- " */\n\n");
-
- printf ("#ifndef __KTYPES_H__\n"
- "#define __KTYPES_H__\n\n");
-
-#ifdef HAVE_SYS_TYPES_H
- printf("#include <sys/types.h>\n");
-#endif
-#ifdef HAVE_SYS_BITYPES_H
- printf("#include <sys/bitypes.h>\n");
-#endif
-#ifdef HAVE_BIND_BITYPES_H
- printf("#include <bind/bitypes.h>\n");
-#endif
-#ifdef HAVE_NETINET_IN6_MACHTYPES_H
- printf("#include <netinet/in6_machtypes.h>\n");
-#endif
-
-#ifndef HAVE_INT8_T
- printf("typedef signed char int8_t;\n");
-#endif
-#ifndef HAVE_U_INT8_T
- printf("typedef unsigned char u_int8_t;\n");
-#endif
-#ifndef HAVE_INT16_T
- printf("typedef short int16_t;\n");
-#endif
-#ifndef HAVE_U_INT16_T
- printf("typedef unsigned short u_int16_t;\n");
-#endif
-#ifndef HAVE_INT32_T
- printf("typedef int int32_t;\n");
-#endif
-#ifndef HAVE_U_INT32_T
- printf("typedef unsigned int u_int32_t;\n");
-#endif
-
- printf("\n#endif /* __KTYPES_H__ */\n");
- return 0;
-}
diff --git a/crypto/kerberosIV/include/protos.h b/crypto/kerberosIV/include/protos.h
deleted file mode 100644
index 0ceb122f2771..000000000000
--- a/crypto/kerberosIV/include/protos.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/* -*- C -*-
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/*
- * Add here functions that don't have a prototype on your system.
- *
- * $Id: protos.H,v 1.43 1997/05/28 01:09:36 assar Exp $
- */
-
-#ifdef NEED_CRYPT_PROTO
-char *crypt(const char*, const char*);
-#endif
-
-#ifdef NEED_STRTOK_R_PROTO
-char *strtok_r (char *s1, const char *s2, char **lasts);
-#endif
-
-#ifndef HAVE_OPTARG_DECLARATION
-extern char *optarg;
-#endif
-#ifndef HAVE_OPTERR_DECLARATION
-extern int opterr;
-#endif
-#ifndef HAVE_OPTIND_DECLARATION
-extern int optind;
-#endif
-#ifndef HAVE_OPTOPT_DECLARATION
-extern int optopt;
-#endif
-
-#if defined(__GNUC__) && SunOS == 4
-
-/* To get type fd_set */
-#include <sys/types.h>
-#include <sys/time.h>
-
-/* To get struct sockaddr, struct in_addr and struct hostent */
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-/* To get struct stat */
-#include <sys/stat.h>
-
-/* To get struct utimbuf */
-#include <utime.h>
-
-int utime(const char *, struct utimbuf *);
-int syscall(int, ...);
-pid_t getpid(void);
-int ftruncate(int, off_t);
-int fchmod(int, mode_t);
-int fchown(int fd, int owner, int group);
-int fsync(int);
-int seteuid(uid_t);
-int setreuid(int, int);
-int flock(int, int);
-int gettimeofday(struct timeval *tp, struct timezone *tzp);
-int lstat(const char *, struct stat *);
-int ioctl(int, int, void *);
-int getpriority(int which, int who);
-int setpriority(int which, int who, int priority);
-int getdtablesize(void);
-int initgroups(const char *name, int basegid);
-long ulimit(int cmd, long newlimit);
-int vhangup(void);
-
-int sigblock(int);
-int sigsetmask(int);
-int setitimer(int which, struct itimerval *value, struct itimerval *ovalue);
-
-int munmap(caddr_t addr, int len);
-
-int socket(int, int, int);
-int setsockopt(int, int, int, void *, int);
-int bind(int, void *, int);
-int getsockname(int, struct sockaddr *, int *);
-int accept(int, struct sockaddr *, int *);
-int connect(int, struct sockaddr *, int);
-int listen(int, int);
-int recv(int s, void *buf, int len, int flags);
-int recvfrom(int, char *, int, int, void *, int *);
-int sendto(int, const char *, int, int, void *, int);
-int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
-int shutdown(int, int);
-int getpeername(int, struct sockaddr *, int *);
-int getsockopt(int, int, int, void *, int *);
-int send(int s, const void *msg, int len, int flags);
-struct strbuf;
-int getmsg(int fd, struct strbuf *ctlptr, struct strbuf *dataptr, int *flags);
-
-char *inet_ntoa(struct in_addr in);
-unsigned long inet_addr(const char *cp);
-int gethostname(char *, int);
-struct hostent *gethostbyname(const char *);
-int dn_expand(const u_char *msg,
- const u_char *eomorig,
- const u_char *comp_dn,
- char *exp_dn,
- int length);
-int res_search(const char *dname,
- int class,
- int type,
- u_char *answer,
- int anslen);
-
-int yp_get_default_domain (char **outdomain);
-int innetgr(const char *netgroup, const char *machine,
- const char *user, const char *domain);
-
-char *getwd(char *pathname);
-
-void bzero(char *b, int length);
-int strcasecmp(const char *, const char *);
-void swab(const char *, char *, int);
-int atoi(const char *str);
-char *mktemp(char *);
-void srandom(int seed);
-int random(void);
-
-int rcmd(char **, unsigned short, char *, char *, char *, int *);
-int rresvport(int *);
-int openlog(const char *ident, int logopt, int facility);
-int syslog(int priority, const char *message, ...);
-int ttyslot(void);
-
-char *getpass(const char *);
-
-char *getusershell(void);
-void setpwent();
-void endpwent();
-
-#include <stdio.h>
-int fclose(FILE *);
-
-#endif /* SunOS4 */
-
-#if SunOS == 5
-
-#include <sys/types.h>
-#include <sys/resource.h>
-
-char *getusershell(void);
-char *strtok_r(char *, const char *, char **);
-int getpriority (int which, id_t who);
-int setpriority (int which, id_t who, int prio);
-int getdtablesize (void);
-char *getusershell(void);
-void setusershell(void);
-void endusershell(void);
-
-#if defined(__GNUC__)
-
-int syscall(int, ...);
-int gethostname(char *, int);
-
-struct timeval;
-int gettimeofday(struct timeval *tp, void *);
-
-#endif
-#endif
-
-#if defined(__osf__) /* OSF/1 */
-
-#if 0
-/* To get type fd_set */
-#include <sys/types.h>
-#include <sys/time.h>
-
-int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
-int fsync(int fildes);
-int gethostname(char *address, int address_len);
-int setreuid(int ruid, int euid);
-int ioctl(int d, unsigned long request, void * arg);
-#endif
-int flock(int fildes, int operation);
-int syscall(int, ...);
-
-unsigned short htons(unsigned short hostshort);
-unsigned int htonl(unsigned int hostint);
-unsigned short ntohs(unsigned short netshort);
-unsigned int ntohl(unsigned int netint);
-
-char *mktemp(char *template);
-char *getusershell(void);
-
-int rcmd(char **, unsigned short, char *, char *, char *, int *);
-int rresvport (int *port);
-
-#endif /* OSF/1 */
-
-#if defined(__sgi)
-#include <sys/types.h>
-
-char *ptsname(int fd);
-struct spwd *getspuid(uid_t);
-#endif /* IRIX */
-
-#if defined(__GNUC__) && defined(_AIX) /* AIX */
-
-struct timeval;
-struct timezone;
-int gettimeofday (struct timeval *Tp, void *Tzp);
-
-#endif /* AIX */
-
-#if defined(__GNUC__) && defined(__hpux) /* HP-UX */
-
-int syscall(int, ...);
-
-int vhangup(void);
-
-char *ptsname(int fildes);
-
-void utmpname(const char *file);
-
-int innetgr(const char *netgroup, const char *machine,
- const char *user, const char *domain);
-
-int dn_comp(char *exp_dn, char *comp_dn, int length,
- char **dnptrs, char **lastdnptr);
-
-int res_query(char *dname, int class, int type,
- unsigned char *answer, int anslen);
-
-int dn_expand(char *msg, char *eomorig, char *comp_dn,
- char *exp_dn, int length);
-
-int res_search(char *dname, int class, int type,
- unsigned char *answer, int anslen);
-
-#endif /* HP-UX */
-
-#if defined(WIN32) /* Visual C++ 4.0 (Windows95/NT) */
-
-int open(const char *, int, ...);
-int close(int);
-int read(int, void *, unsigned int);
-int write(int, const void *, unsigned int);
-
-#endif /* WIN32 */
diff --git a/crypto/kerberosIV/include/sys/Makefile.in b/crypto/kerberosIV/include/sys/Makefile.in
deleted file mode 100644
index d6a58e01cd87..000000000000
--- a/crypto/kerberosIV/include/sys/Makefile.in
+++ /dev/null
@@ -1,53 +0,0 @@
-# $Id: Makefile.in,v 1.18 1997/05/11 04:29:47 assar Exp $
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-LN_S = @LN_S@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-includedir = @includedir@
-HAVE_CDEFS = @ac_cv_header_sys_cdefs_h@
-
-@SET_MAKE@
-
-HEADERS = cdefs.h
-
-all: stamp-headers
-
-Wall:
- $(MAKE) CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-install: all
- $(MKINSTALLDIRS) $(includedir)/sys
- -if test "$(HAVE_CDEFS)" != yes; then \
- $(INSTALL_DATA) cdefs.h $(includedir)/sys/cdefs.h ; \
- fi
-
-uninstall:
- -if test "$(HAVE_CDEFS)" != yes; then \
- rm -f $(includedir)/sys/cdefs.h ; \
- fi
-
-clean:
- rm -f $(HEADERS) stamp-headers
-
-mostlyclean: clean
-distclean: clean
- rm -f Makefile config.status *~
-
-realclean: clean
-
-cdefs.h:
- if test "$(HAVE_CDEFS)" != yes; then \
- $(LN_S) ${srcdir}/cdefs.H cdefs.h; \
- fi || true
-
-stamp-headers:
- $(MAKE) $(HEADERS)
- touch stamp-headers
diff --git a/crypto/kerberosIV/include/sys/cdefs.H b/crypto/kerberosIV/include/sys/cdefs.H
deleted file mode 100644
index 196d476651db..000000000000
--- a/crypto/kerberosIV/include/sys/cdefs.H
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- C -*-
- *
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-/*
- * @(#)cdefs.h 8.1 (Berkeley) 6/2/93
- * $Id: cdefs.H,v 1.2 1995/09/10 20:18:56 d91-jda Exp $
- */
-
-#ifndef _CDEFS_H_
-#define _CDEFS_H_
-
-#if defined(__cplusplus)
-#define __BEGIN_DECLS extern "C" {
-#define __END_DECLS };
-#else
-#define __BEGIN_DECLS
-#define __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments. __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#ifndef __P /* it's quite popular to define this */
-#define __P(protos) protos /* full-blown ANSI C */
-#endif
-#define __CONCAT(x,y) x ## y
-#define __STRING(x) #x
-
-#define __const const /* define reserved names to standard */
-#define __signed signed
-#define __volatile volatile
-#if defined(__cplusplus)
-#define __inline inline /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define __inline /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else /* !(__STDC__ || __cplusplus) */
-#ifndef __P
-#define __P(protos) () /* traditional C preprocessor */
-#endif
-#define __CONCAT(x,y) x/**/y
-#define __STRING(x) "x"
-
-#ifndef __GNUC__
-#define __const /* delete pseudo-ANSI C keywords */
-#define __inline
-#define __signed
-#define __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef NO_ANSI_KEYWORDS
-#define const /* delete ANSI C keywords */
-#define inline
-#define signed
-#define volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5
-#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define __dead __volatile
-#define __pure __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define __dead
-#define __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/crypto/kerberosIV/install-sh b/crypto/kerberosIV/install-sh
deleted file mode 100644
index ebc66913e940..000000000000
--- a/crypto/kerberosIV/install-sh
+++ /dev/null
@@ -1,250 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/crypto/kerberosIV/kadmin/Design.txt b/crypto/kerberosIV/kadmin/Design.txt
deleted file mode 100644
index 7763a04f4967..000000000000
--- a/crypto/kerberosIV/kadmin/Design.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-// This file attempts to present the internal functioning of the new kerberos
-// admin server and interface..
-
-//
-// The calling side
-//
-
-// Outer interface (programmers interface)
-kadm_mod_entry(vals *old_dat, vals *new_dat) returns (vals *cur_dat)
- // sends a command telling the server to change all entries which match
- // old_dat to entries matching new_dat
- // returns in cur_dat the actual current values of the modified records
- // implemented with calls to _vals_to_stream, _send_out, _take_in, and
- // _stream_to_vals, _interpret_ret
-
-// Inner calls
-_vals_to_stream (vals *, unsigned char *)
- // converts a vals structure to a byte stream for transmission over the net
-
-_stream_to_vals (unsigned char *, vals *)
- // converts a byte stream recieved into a vals structure
-
-
diff --git a/crypto/kerberosIV/kadmin/Makefile.in b/crypto/kerberosIV/kadmin/Makefile.in
deleted file mode 100644
index 947248ecd54f..000000000000
--- a/crypto/kerberosIV/kadmin/Makefile.in
+++ /dev/null
@@ -1,125 +0,0 @@
-# $Id: Makefile.in,v 1.37 1997/05/02 17:50:35 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-topdir=..
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-LN_S = @LN_S@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-
-LIB_tgetent = @LIB_tgetent@
-LIB_readline = @LIB_readline@
-LIB_DBM = @LIB_DBM@
-LIBS = @LIBS@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-CRACKLIB = @CRACKLIB@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-bindir = @bindir@
-sbindir = @sbindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROG_BIN = kpasswd$(EXECSUFFIX) \
- kadmin$(EXECSUFFIX)
-PROG_SBIN = ksrvutil$(EXECSUFFIX)
-PROG_LIBEXEC = kadmind$(EXECSUFFIX)
-PROGS = $(PROG_BIN) $(PROG_SBIN) $(PROG_LIBEXEC)
-
-SOURCES = kpasswd.c kadmin.c kadm_server.c kadm_funcs.c pw_check.c \
- admin_server.c kadm_ser_wrap.c ksrvutil.c ksrvutil_get.c \
- new_pwd.c
-
-OBJECTS = kpasswd.o kadmin.o kadm_server.o kadm_funcs.o \
- admin_server.o kadm_ser_wrap.o ksrvutil.o ksrvutil_get.o \
- new_pwd.o
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(bindir)
- for x in $(PROG_BIN); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- $(MKINSTALLDIRS) $(sbindir)
- for x in $(PROG_SBIN); do \
- $(INSTALL_PROGRAM) $$x $(sbindir)/`echo $$x | sed '$(transform)'`; \
- done
- $(MKINSTALLDIRS) $(libexecdir)
- for x in $(PROG_LIBEXEC); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
- @rm -f $(prefix)/sbin/kadmin
-
-uninstall:
- for x in $(PROG_BIN); do \
- rm -f $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- for x in $(PROG_SBIN); do \
- rm -f $(sbindir)/`echo $$x | sed '$(transform)'`; \
- done
- for x in $(PROG_LIBEXEC); do \
- rm -f $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../lib/kadm -lkadm -L../lib/krb -lkrb -L../lib/des -ldes -L../util/et -lcom_err
-LIBROKEN=-L../lib/roken -lroken
-
-kpasswd$(EXECSUFFIX): kpasswd.o new_pwd.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kpasswd.o new_pwd.o $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-kadmin$(EXECSUFFIX): kadmin.o new_pwd.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ new_pwd.o kadmin.o -L../lib/kadm -lkadm -L../lib/krb -lkrb -L../lib/des -ldes -L../lib/sl -lsl -L../util/et -lcom_err $(LIBROKEN) $(LIBS) $(LIB_readline) $(LIBROKEN)
-
-KADMIND_OBJECTS=kadm_server.o kadm_funcs.o admin_server.o kadm_ser_wrap.o pw_check.o
-
-kadmind$(EXECSUFFIX): $(KADMIND_OBJECTS)
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ $(KADMIND_OBJECTS) -L../lib/kdb -lkdb -L../lib/acl -lacl $(KLIB) $(CRACKLIB) $(LIBROKEN) $(LIB_DBM) $(LIBS) $(LIBROKEN)
-
-ksrvutil$(EXECSUFFIX): ksrvutil.o ksrvutil_get.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ ksrvutil.o ksrvutil_get.o $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-$(OBJECTS): ../include/config.h
diff --git a/crypto/kerberosIV/kadmin/admin_server.c b/crypto/kerberosIV/kadmin/admin_server.c
deleted file mode 100644
index 2654c77477de..000000000000
--- a/crypto/kerberosIV/kadmin/admin_server.c
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Top-level loop of the kerberos Administration server
- */
-
-/*
- admin_server.c
- this holds the main loop and initialization and cleanup code for the server
-*/
-
-#include "kadm_locl.h"
-
-RCSID("$Id: admin_server.c,v 1.41 1997/05/27 15:52:53 bg Exp $");
-
-/* Almost all procs and such need this, so it is global */
-admin_params prm; /* The command line parameters struct */
-
-/* GLOBAL */
-char *acldir = DEFAULT_ACL_DIR;
-static char krbrlm[REALM_SZ];
-
-static unsigned pidarraysize = 0;
-static int *pidarray = (int *)0;
-
-static int exit_now = 0;
-
-static
-RETSIGTYPE
-doexit(int sig)
-{
- exit_now = 1;
- SIGRETURN(0);
-}
-
-static
-RETSIGTYPE
-do_child(int sig)
-{
- int pid;
- int i, j;
-
- int status;
-
- pid = wait(&status);
-
- /* Reinstall signal handlers for SysV. Must be done *after* wait */
- signal(SIGCHLD, do_child);
-
- for (i = 0; i < pidarraysize; i++)
- if (pidarray[i] == pid) {
- /* found it */
- for (j = i; j < pidarraysize-1; j++)
- /* copy others down */
- pidarray[j] = pidarray[j+1];
- pidarraysize--;
- if ((WIFEXITED(status) && WEXITSTATUS(status) != 0)
- || WIFSIGNALED(status))
- krb_log("child %d: termsig %d, retcode %d", pid,
- WTERMSIG(status), WEXITSTATUS(status));
- SIGRETURN(0);
- }
- krb_log("child %d not in list: termsig %d, retcode %d", pid,
- WTERMSIG(status), WEXITSTATUS(status));
- SIGRETURN(0);
-}
-
-static void
-kill_children(void)
-{
- int i;
-
- for (i = 0; i < pidarraysize; i++) {
- kill(pidarray[i], SIGINT);
- krb_log("killing child %d", pidarray[i]);
- }
-}
-
-/* close the system log file */
-static void
-close_syslog(void)
-{
- krb_log("Shutting down admin server");
-}
-
-static void
-byebye(void) /* say goodnight gracie */
-{
- printf("Admin Server (kadm server) has completed operation.\n");
-}
-
-static void
-clear_secrets(void)
-{
- memset(server_parm.master_key, 0, sizeof(server_parm.master_key));
- memset(server_parm.master_key_schedule, 0,
- sizeof(server_parm.master_key_schedule));
- server_parm.master_key_version = 0L;
-}
-
-#ifdef DEBUG
-#define cleanexit(code) {kerb_fini(); return;}
-#endif
-
-#ifndef DEBUG
-static void
-cleanexit(int val)
-{
- kerb_fini();
- clear_secrets();
- exit(val);
-}
-#endif
-
-static void
-process_client(int fd, struct sockaddr_in *who)
-{
- u_char *dat;
- int dat_len;
- u_short dlen;
- int retval;
- int on = 1;
- Principal service;
- des_cblock skey;
- int more;
- int status;
-
-#if defined(SO_KEEPALIVE) && defined(HAVE_SETSOCKOPT)
- if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on)) < 0)
- krb_log("setsockopt keepalive: %d",errno);
-#endif
-
- server_parm.recv_addr = *who;
-
- if (kerb_init()) { /* Open as client */
- krb_log("can't open krb db");
- cleanexit(1);
- }
- /* need to set service key to changepw.KRB_MASTER */
-
- status = kerb_get_principal(server_parm.sname, server_parm.sinst, &service,
- 1, &more);
- if (status == -1) {
- /* db locked */
- int32_t retcode = KADM_DB_INUSE;
- char *pdat;
-
- dat_len = KADM_VERSIZE + sizeof(retcode);
- dat = (u_char *) malloc((unsigned)dat_len);
- pdat = (char *) dat;
- retcode = htonl((u_int32_t) KADM_DB_INUSE);
- strncpy(pdat, KADM_ULOSE, KADM_VERSIZE);
- memcpy(pdat+KADM_VERSIZE, &retcode, sizeof(retcode));
- goto out;
- } else if (!status) {
- krb_log("no service %s.%s",server_parm.sname, server_parm.sinst);
- cleanexit(2);
- }
-
- copy_to_key(&service.key_low, &service.key_high, skey);
- memset(&service, 0, sizeof(service));
- kdb_encrypt_key (&skey, &skey, &server_parm.master_key,
- server_parm.master_key_schedule, DES_DECRYPT);
- krb_set_key(skey, 0); /* if error, will show up when
- rd_req fails */
- memset(skey, 0, sizeof(skey));
-
- while (1) {
- if ((retval = krb_net_read(fd, &dlen, sizeof(u_short))) !=
- sizeof(u_short)) {
- if (retval < 0)
- krb_log("dlen read: %s",error_message(errno));
- else if (retval)
- krb_log("short dlen read: %d",retval);
- close(fd);
- cleanexit(retval ? 3 : 0);
- }
- if (exit_now) {
- cleanexit(0);
- }
- dat_len = ntohs(dlen);
- dat = (u_char *) malloc(dat_len);
- if (!dat) {
- krb_log("malloc: No memory");
- close(fd);
- cleanexit(4);
- }
- if ((retval = krb_net_read(fd, dat, dat_len)) != dat_len) {
- if (retval < 0)
- krb_log("data read: %s",error_message(errno));
- else
- krb_log("short read: %d vs. %d", dat_len, retval);
- close(fd);
- cleanexit(5);
- }
- if (exit_now) {
- cleanexit(0);
- }
- if ((retval = kadm_ser_in(&dat,&dat_len)) != KADM_SUCCESS)
- krb_log("processing request: %s", error_message(retval));
-
- /* kadm_ser_in did the processing and returned stuff in
- dat & dat_len , return the appropriate data */
-
- out:
- dlen = htons(dat_len);
-
- if (krb_net_write(fd, &dlen, sizeof(u_short)) < 0) {
- krb_log("writing dlen to client: %s",error_message(errno));
- close(fd);
- cleanexit(6);
- }
-
- if (krb_net_write(fd, dat, dat_len) < 0) {
- krb_log("writing to client: %s", error_message(errno));
- close(fd);
- cleanexit(7);
- }
- free(dat);
- }
- /*NOTREACHED*/
-}
-
-/*
-kadm_listen
-listen on the admin servers port for a request
-*/
-static int
-kadm_listen(void)
-{
- int found;
- int admin_fd;
- int peer_fd;
- fd_set mask, readfds;
- struct sockaddr_in peer;
- int addrlen;
- int pid;
-
- signal(SIGINT, doexit);
- signal(SIGTERM, doexit);
- signal(SIGHUP, doexit);
- signal(SIGQUIT, doexit);
- signal(SIGPIPE, SIG_IGN); /* get errors on write() */
- signal(SIGALRM, doexit);
- signal(SIGCHLD, do_child);
- if (setsid() < 0)
- krb_log("setsid() failed");
-
- if ((admin_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- return KADM_NO_SOCK;
-#if defined(SO_REUSEADDR) && defined(HAVE_SETSOCKOPT)
- {
- int one=1;
- setsockopt(admin_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&one,
- sizeof(one));
- }
-#endif
- if (bind(admin_fd, (struct sockaddr *)&server_parm.admin_addr,
- sizeof(struct sockaddr_in)) < 0)
- return KADM_NO_BIND;
- listen(admin_fd, 1);
- FD_ZERO(&mask);
- FD_SET(admin_fd, &mask);
-
- for (;;) { /* loop nearly forever */
- if (exit_now) {
- clear_secrets();
- kill_children();
- return(0);
- }
- readfds = mask;
- if ((found = select(admin_fd+1, &readfds, 0,
- 0, (struct timeval *)0)) == 0)
- continue; /* no things read */
- if (found < 0) {
- if (errno != EINTR)
- krb_log("select: %s",error_message(errno));
- continue;
- }
- if (FD_ISSET(admin_fd, &readfds)) {
- /* accept the conn */
- addrlen = sizeof(peer);
- if ((peer_fd = accept(admin_fd, (struct sockaddr *)&peer,
- &addrlen)) < 0) {
- krb_log("accept: %s",error_message(errno));
- continue;
- }
-#ifndef DEBUG
- /* if you want a sep daemon for each server */
- if ((pid = fork())) {
- /* parent */
- if (pid < 0) {
- krb_log("fork: %s",error_message(errno));
- close(peer_fd);
- continue;
- }
- /* fork succeded: keep tabs on child */
- close(peer_fd);
- if (pidarray) {
- pidarray = (int *)realloc(pidarray, ++pidarraysize);
- pidarray[pidarraysize-1] = pid;
- } else {
- pidarray = (int *)malloc(pidarraysize = 1);
- pidarray[0] = pid;
- }
- } else {
- /* child */
- close(admin_fd);
-#endif /* DEBUG */
- /*
- * If we are multihomed we need to figure out which
- * local address that is used this time since it is
- * used in "direction" comparison.
- */
- getsockname(peer_fd,
- (struct sockaddr *)&server_parm.admin_addr,
- &addrlen);
- /* do stuff */
- process_client (peer_fd, &peer);
-#ifndef DEBUG
- }
-#endif
- } else {
- krb_log("something else woke me up!");
- return(0);
- }
- }
- /*NOTREACHED*/
-}
-
-/*
-** Main does the logical thing, it sets up the database and RPC interface,
-** as well as handling the creation and maintenance of the syslog file...
-*/
-int
-main(int argc, char **argv) /* admin_server main routine */
-{
- int errval;
- int c;
-
- set_progname (argv[0]);
-
- umask(077); /* Create protected files */
-
- /* initialize the admin_params structure */
- prm.sysfile = KADM_SYSLOG; /* default file name */
- prm.inter = 0;
-
- memset(krbrlm, 0, sizeof(krbrlm));
-
- while ((c = getopt(argc, argv, "f:hmnd:a:r:")) != EOF)
- switch(c) {
- case 'f': /* Syslog file name change */
- prm.sysfile = optarg;
- break;
- case 'n':
- prm.inter = 0;
- break;
- case 'm':
- prm.inter = 1;
- break;
- case 'a': /* new acl directory */
- acldir = optarg;
- break;
- case 'd':
- /* put code to deal with alt database place */
- if ((errval = kerb_db_set_name(optarg)))
- errx (1, "opening database %s: %s",
- optarg, error_message(errval));
- break;
- case 'r':
- strncpy(krbrlm, optarg, sizeof(krbrlm) - 1);
- break;
- case 'h': /* get help on using admin_server */
- default:
- errx(1, "Usage: kadmind [-h] [-n] [-m] [-r realm] [-d dbname] [-f filename] [-a acldir]");
- }
-
- if (krbrlm[0] == 0)
- if (krb_get_lrealm(krbrlm, 0) != KSUCCESS)
- errx (1, "Unable to get local realm. Fix krb.conf or use -r.");
-
- printf("KADM Server %s initializing\n",KADM_VERSTR);
- printf("Please do not use 'kill -9' to kill this job, use a\n");
- printf("regular kill instead\n\n");
-
- kset_logfile(prm.sysfile);
- krb_log("Admin server starting");
-
- kerb_db_set_lockmode(KERB_DBL_NONBLOCKING);
- errval = kerb_init(); /* Open the Kerberos database */
- if (errval) {
- warnx ("error: kerb_init() failed");
- close_syslog();
- byebye();
- }
- /* set up the server_parm struct */
- if ((errval = kadm_ser_init(prm.inter, krbrlm))==KADM_SUCCESS) {
- kerb_fini(); /* Close the Kerberos database--
- will re-open later */
- errval = kadm_listen(); /* listen for calls to server from
- clients */
- }
- if (errval != KADM_SUCCESS) {
- warnx("error: %s",error_message(errval));
- kerb_fini(); /* Close if error */
- }
- close_syslog(); /* Close syslog file, print
- closing note */
- byebye(); /* Say bye bye on the terminal
- in use */
- exit(1);
-} /* procedure main */
diff --git a/crypto/kerberosIV/kadmin/kadm_funcs.c b/crypto/kerberosIV/kadmin/kadm_funcs.c
deleted file mode 100644
index 34a34b0a9ae9..000000000000
--- a/crypto/kerberosIV/kadmin/kadm_funcs.c
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
-*/
-
-/*
- * Kerberos administration server-side database manipulation routines
- */
-
-/*
- * kadm_funcs.c
- * the actual database manipulation code
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_funcs.c,v 1.16 1997/05/02 14:28:49 assar Exp $");
-
-static int
-check_access(char *pname, char *pinst, char *prealm, enum acl_types acltype)
-{
- char checkname[MAX_K_NAME_SZ];
- char filename[MaxPathLen];
-
- snprintf(checkname, sizeof(checkname), "%s.%s@%s", pname, pinst, prealm);
-
- switch (acltype) {
- case ADDACL:
- snprintf(filename, sizeof(filename), "%s%s", acldir, ADD_ACL_FILE);
- break;
- case GETACL:
- snprintf(filename, sizeof(filename), "%s%s", acldir, GET_ACL_FILE);
- break;
- case MODACL:
- snprintf(filename, sizeof(filename), "%s%s", acldir, MOD_ACL_FILE);
- break;
- case DELACL:
- snprintf(filename, sizeof(filename), "%s%s", acldir, DEL_ACL_FILE);
- break;
- default:
- krb_log("WARNING in check_access: default case in switch");
- return 0;
- }
- return(acl_check(filename, checkname));
-}
-
-static int
-wildcard(char *str)
-{
- if (!strcmp(str, WILDCARD_STR))
- return(1);
- return(0);
-}
-
-static int
-fail(int code, char *oper, char *princ)
-{
- krb_log("ERROR: %s: %s (%s)", oper, princ, error_message(code));
- return code;
-}
-
-#define failadd(code) { fail(code, "ADD", victim); return code; }
-#define faildelete(code) { fail(code, "DELETE", victim); return code; }
-#define failget(code) { fail(code, "GET", victim); return code; }
-#define failmod(code) { fail(code, "MOD", victim); return code; }
-#define failchange(code) { fail(code, "CHANGE", admin); return code; }
-
-int
-kadm_add_entry (char *rname, char *rinstance, char *rrealm,
- Kadm_vals *valsin, Kadm_vals *valsout)
-{
- long numfound; /* check how many we get written */
- int more; /* pointer to more grabbed records */
- Principal data_i, data_o; /* temporary principal */
- u_char flags[4];
- des_cblock newpw;
- Principal default_princ;
-
- char admin[MAX_K_NAME_SZ], victim[MAX_K_NAME_SZ];
-
- strcpy(admin, krb_unparse_name_long(rname, rinstance, rrealm));
- strcpy(victim, krb_unparse_name_long(valsin->name, valsin->instance, NULL));
-
- krb_log("ADD: %s by %s", victim, admin);
-
- if (!check_access(rname, rinstance, rrealm, ADDACL)) {
- krb_log("WARNING: ADD: %s permission denied", admin);
- return KADM_UNAUTH;
- }
-
- /* Need to check here for "legal" name and instance */
- if (wildcard(valsin->name) || wildcard(valsin->instance)) {
- failadd(KADM_ILL_WILDCARD);
- }
-
- numfound = kerb_get_principal(KERB_DEFAULT_NAME, KERB_DEFAULT_INST,
- &default_princ, 1, &more);
- if (numfound == -1) {
- failadd(KADM_DB_INUSE);
- } else if (numfound != 1) {
- failadd(KADM_UK_RERROR);
- }
-
- kadm_vals_to_prin(valsin->fields, &data_i, valsin);
- strncpy(data_i.name, valsin->name, ANAME_SZ);
- strncpy(data_i.instance, valsin->instance, INST_SZ);
-
- if (!IS_FIELD(KADM_EXPDATE,valsin->fields))
- data_i.exp_date = default_princ.exp_date;
- if (!IS_FIELD(KADM_ATTR,valsin->fields))
- data_i.attributes = default_princ.attributes;
- if (!IS_FIELD(KADM_MAXLIFE,valsin->fields))
- data_i.max_life = default_princ.max_life;
-
- memset(&default_princ, 0, sizeof(default_princ));
-
- /* convert to host order */
- data_i.key_low = ntohl(data_i.key_low);
- data_i.key_high = ntohl(data_i.key_high);
-
-
- copy_to_key(&data_i.key_low, &data_i.key_high, newpw);
-
- /* encrypt new key in master key */
- kdb_encrypt_key (&newpw, &newpw, &server_parm.master_key,
- server_parm.master_key_schedule, DES_ENCRYPT);
- copy_from_key(newpw, &data_i.key_low, &data_i.key_high);
- memset(newpw, 0, sizeof(newpw));
-
- data_o = data_i;
- numfound = kerb_get_principal(valsin->name, valsin->instance,
- &data_o, 1, &more);
- if (numfound == -1) {
- failadd(KADM_DB_INUSE);
- } else if (numfound) {
- failadd(KADM_INUSE);
- } else {
- data_i.key_version++;
- data_i.kdc_key_ver = server_parm.master_key_version;
- strncpy(data_i.mod_name, rname, sizeof(data_i.mod_name)-1);
- strncpy(data_i.mod_instance, rinstance,
- sizeof(data_i.mod_instance)-1);
-
- numfound = kerb_put_principal(&data_i, 1);
- if (numfound == -1) {
- failadd(KADM_DB_INUSE);
- } else if (numfound) {
- failadd(KADM_UK_SERROR);
- } else {
- numfound = kerb_get_principal(valsin->name, valsin->instance,
- &data_o, 1, &more);
- if ((numfound!=1) || (more!=0)) {
- failadd(KADM_UK_RERROR);
- }
- memset(flags, 0, sizeof(flags));
- SET_FIELD(KADM_NAME,flags);
- SET_FIELD(KADM_INST,flags);
- SET_FIELD(KADM_EXPDATE,flags);
- SET_FIELD(KADM_ATTR,flags);
- SET_FIELD(KADM_MAXLIFE,flags);
- kadm_prin_to_vals(flags, valsout, &data_o);
- krb_log("ADD: %s added", victim);
- return KADM_DATA; /* Set all the appropriate fields */
- }
- }
-}
-
-int
-kadm_delete_entry (char *rname, char *rinstance, char *rrealm,
- Kadm_vals *valsin)
-{
- int ret;
-
- char admin[MAX_K_NAME_SZ], victim[MAX_K_NAME_SZ];
-
- strcpy(admin, krb_unparse_name_long(rname, rinstance, rrealm));
- strcpy(victim, krb_unparse_name_long(valsin->name, valsin->instance, NULL));
-
- krb_log("DELETE: %s by %s", victim, admin);
-
- if (!check_access(rname, rinstance, rrealm, DELACL)) {
- krb_log("WARNING: DELETE: %s permission denied", admin);
- return KADM_UNAUTH;
- }
-
- /* Need to check here for "legal" name and instance */
- if (wildcard(valsin->name) || wildcard(valsin->instance)) {
- faildelete(KADM_ILL_WILDCARD);
- }
-
-#define EQ(V,N,I) (strcmp((V)->name, (N)) == 0 && strcmp((V)->instance, (I)) == 0)
-
- if(EQ(valsin, PWSERV_NAME, KRB_MASTER) ||
- EQ(valsin, "K", "M") ||
- EQ(valsin, "default", "") ||
- EQ(valsin, KRB_TICKET_GRANTING_TICKET, server_parm.krbrlm)){
- krb_log("WARNING: DELETE: %s is immutable", victim);
- return KADM_IMMUTABLE; /* XXX */
- }
-
- ret = kerb_delete_principal(valsin->name, valsin->instance);
- if(ret == -1)
- return KADM_DB_INUSE; /* XXX */
- krb_log("DELETE: %s removed.", victim);
- return KADM_SUCCESS;
-}
-
-
-int
-kadm_get_entry (char *rname, char *rinstance, char *rrealm,
- Kadm_vals *valsin, u_char *flags, Kadm_vals *valsout)
-{
- long numfound; /* check how many were returned */
- int more; /* To point to more name.instances */
- Principal data_o; /* Data object to hold Principal */
-
- char admin[MAX_K_NAME_SZ], victim[MAX_K_NAME_SZ];
-
- strcpy(admin, krb_unparse_name_long(rname, rinstance, rrealm));
- strcpy(victim, krb_unparse_name_long(valsin->name, valsin->instance, NULL));
-
- krb_log("GET: %s by %s", victim, admin);
-
- if (!check_access(rname, rinstance, rrealm, GETACL)) {
- krb_log("WARNING: GET: %s permission denied", admin);
- return KADM_UNAUTH;
- }
-
- if (wildcard(valsin->name) || wildcard(valsin->instance)) {
- failget(KADM_ILL_WILDCARD);
- }
-
- /* Look up the record in the database */
- numfound = kerb_get_principal(valsin->name, valsin->instance,
- &data_o, 1, &more);
- if (numfound == -1) {
- failget(KADM_DB_INUSE);
- } else if (numfound) { /* We got the record, let's return it */
- kadm_prin_to_vals(flags, valsout, &data_o);
- krb_log("GET: %s retrieved", victim);
- return KADM_DATA; /* Set all the appropriate fields */
- } else {
- failget(KADM_NOENTRY); /* Else whimper and moan */
- }
-}
-
-int
-kadm_mod_entry (char *rname, char *rinstance, char *rrealm,
- Kadm_vals *valsin, Kadm_vals *valsin2, Kadm_vals *valsout)
-{
- long numfound;
- int more;
- Principal data_o, temp_key;
- u_char fields[4];
- des_cblock newpw;
-
- char admin[MAX_K_NAME_SZ], victim[MAX_K_NAME_SZ];
-
- strcpy(admin, krb_unparse_name_long(rname, rinstance, rrealm));
- strcpy(victim, krb_unparse_name_long(valsin->name, valsin->instance, NULL));
-
- krb_log("MOD: %s by %s", victim, admin);
-
- if (wildcard(valsin->name) || wildcard(valsin->instance)) {
- failmod(KADM_ILL_WILDCARD);
- }
-
- if (!check_access(rname, rinstance, rrealm, MODACL)) {
- krb_log("WARNING: MOD: %s permission denied", admin);
- return KADM_UNAUTH;
- }
-
- numfound = kerb_get_principal(valsin->name, valsin->instance,
- &data_o, 1, &more);
- if (numfound == -1) {
- failmod(KADM_DB_INUSE);
- } else if (numfound) {
- kadm_vals_to_prin(valsin2->fields, &temp_key, valsin2);
- strncpy(data_o.name, valsin->name, ANAME_SZ);
- strncpy(data_o.instance, valsin->instance, INST_SZ);
- if (IS_FIELD(KADM_EXPDATE,valsin2->fields))
- data_o.exp_date = temp_key.exp_date;
- if (IS_FIELD(KADM_ATTR,valsin2->fields))
- data_o.attributes = temp_key.attributes;
- if (IS_FIELD(KADM_MAXLIFE,valsin2->fields))
- data_o.max_life = temp_key.max_life;
- if (IS_FIELD(KADM_DESKEY,valsin2->fields)) {
- data_o.key_version++;
- data_o.kdc_key_ver = server_parm.master_key_version;
-
-
- /* convert to host order */
- temp_key.key_low = ntohl(temp_key.key_low);
- temp_key.key_high = ntohl(temp_key.key_high);
-
-
- copy_to_key(&temp_key.key_low, &temp_key.key_high, newpw);
-
- /* encrypt new key in master key */
- kdb_encrypt_key (&newpw, &newpw, &server_parm.master_key,
- server_parm.master_key_schedule, DES_ENCRYPT);
- copy_from_key(newpw, &data_o.key_low, &data_o.key_high);
- memset(newpw, 0, sizeof(newpw));
- }
- memset(&temp_key, 0, sizeof(temp_key));
-
- strncpy(data_o.mod_name, rname, sizeof(data_o.mod_name)-1);
- strncpy(data_o.mod_instance, rinstance,
- sizeof(data_o.mod_instance)-1);
- more = kerb_put_principal(&data_o, 1);
-
- memset(&data_o, 0, sizeof(data_o));
-
- if (more == -1) {
- failmod(KADM_DB_INUSE);
- } else if (more) {
- failmod(KADM_UK_SERROR);
- } else {
- numfound = kerb_get_principal(valsin->name, valsin->instance,
- &data_o, 1, &more);
- if ((more!=0)||(numfound!=1)) {
- failmod(KADM_UK_RERROR);
- }
- memset(fields, 0, sizeof(fields));
- SET_FIELD(KADM_NAME,fields);
- SET_FIELD(KADM_INST,fields);
- SET_FIELD(KADM_EXPDATE,fields);
- SET_FIELD(KADM_ATTR,fields);
- SET_FIELD(KADM_MAXLIFE,fields);
- kadm_prin_to_vals(fields, valsout, &data_o);
- krb_log("MOD: %s modified", victim);
- return KADM_DATA; /* Set all the appropriate fields */
- }
- }
- else {
- failmod(KADM_NOENTRY);
- }
-}
-
-int
-kadm_change (char *rname, char *rinstance, char *rrealm, unsigned char *newpw)
-{
- long numfound;
- int more;
- Principal data_o;
- des_cblock local_pw;
-
- char admin[MAX_K_NAME_SZ];
-
- strcpy(admin, krb_unparse_name_long(rname, rinstance, rrealm));
-
- krb_log("CHANGE: %s", admin);
-
- if (strcmp(server_parm.krbrlm, rrealm)) {
- krb_log("ERROR: CHANGE: request from wrong realm %s", rrealm);
- return(KADM_WRONG_REALM);
- }
-
- if (wildcard(rname) || wildcard(rinstance)) {
- failchange(KADM_ILL_WILDCARD);
- }
-
- memcpy(local_pw, newpw, sizeof(local_pw));
-
- /* encrypt new key in master key */
- kdb_encrypt_key (&local_pw, &local_pw, &server_parm.master_key,
- server_parm.master_key_schedule, DES_ENCRYPT);
-
- numfound = kerb_get_principal(rname, rinstance,
- &data_o, 1, &more);
- if (numfound == -1) {
- failchange(KADM_DB_INUSE);
- } else if (numfound) {
- copy_from_key(local_pw, &data_o.key_low, &data_o.key_high);
- data_o.key_version++;
- data_o.kdc_key_ver = server_parm.master_key_version;
- strncpy(data_o.mod_name, rname, sizeof(data_o.mod_name)-1);
- strncpy(data_o.mod_instance, rinstance,
- sizeof(data_o.mod_instance)-1);
- more = kerb_put_principal(&data_o, 1);
- memset(local_pw, 0, sizeof(local_pw));
- memset(&data_o, 0, sizeof(data_o));
- if (more == -1) {
- failchange(KADM_DB_INUSE);
- } else if (more) {
- failchange(KADM_UK_SERROR);
- } else {
- krb_log("CHANGE: %s's password changed", admin);
- return KADM_SUCCESS;
- }
- }
- else {
- failchange(KADM_NOENTRY);
- }
-}
diff --git a/crypto/kerberosIV/kadmin/kadm_locl.h b/crypto/kerberosIV/kadmin/kadm_locl.h
deleted file mode 100644
index 07f9093a29fb..000000000000
--- a/crypto/kerberosIV/kadmin/kadm_locl.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kadm_locl.h,v 1.25 1997/05/20 18:40:43 bg Exp $ */
-
-#include "config.h"
-#include "protos.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#include <errno.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif /* HAVE_SYS_RESOURCE_H */
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <err.h>
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <com_err.h>
-#include <sl.h>
-
-#include <des.h>
-#include <krb.h>
-#include <krb_err.h>
-#include <krb_db.h>
-#include <kadm.h>
-#include <kadm_err.h>
-#include <acl.h>
-
-#include "kadm_server.h"
-#include "pw_check.h"
-
-/* from libacl */
-/* int acl_check(char *acl, char *principal); */
-
-/* GLOBALS */
-extern char *acldir;
-extern Kadm_Server server_parm;
-
-/* Utils */
-int kadm_change __P((char *, char *, char *, des_cblock));
-int kadm_add_entry __P((char *, char *, char *, Kadm_vals *, Kadm_vals *));
-int kadm_mod_entry __P((char *, char *, char *, Kadm_vals *, Kadm_vals *, Kadm_vals *));
-int kadm_get_entry __P((char *, char *, char *, Kadm_vals *, u_char *, Kadm_vals *));
-int kadm_delete_entry __P((char *, char *, char *, Kadm_vals *));
-int kadm_ser_cpw __P((u_char *, int, AUTH_DAT *, u_char **, int *));
-int kadm_ser_add __P((u_char *, int, AUTH_DAT *, u_char **, int *));
-int kadm_ser_mod __P((u_char *, int, AUTH_DAT *, u_char **, int *));
-int kadm_ser_get __P((u_char *, int, AUTH_DAT *, u_char **, int *));
-int kadm_ser_delete __P((u_char *, int, AUTH_DAT *, u_char **, int *));
-int kadm_ser_init __P((int inter, char realm[]));
-int kadm_ser_in __P((u_char **, int *));
-
-int get_pw_new_pwd __P((char *pword, int pwlen, krb_principal *pr, int print_realm));
-
-/* cracklib */
-char *FascistCheck __P((char *password, char *path, char **strings));
diff --git a/crypto/kerberosIV/kadmin/kadm_ser_wrap.c b/crypto/kerberosIV/kadmin/kadm_ser_wrap.c
deleted file mode 100644
index 6909a9f0e0cc..000000000000
--- a/crypto/kerberosIV/kadmin/kadm_ser_wrap.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Kerberos administration server-side support functions
- */
-
-/*
-kadm_ser_wrap.c
-unwraps wrapped packets and calls the appropriate server subroutine
-*/
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_ser_wrap.c,v 1.20 1997/05/02 10:29:14 joda Exp $");
-
-/* GLOBAL */
-Kadm_Server server_parm;
-
-/*
-kadm_ser_init
-set up the server_parm structure
-*/
-int
-kadm_ser_init(int inter, char *realm)
- /* interactive or from file */
-
-{
- struct hostent *hp;
- char hostname[MaxHostNameLen];
-
- init_kadm_err_tbl();
- init_krb_err_tbl();
- if (k_gethostname(hostname, sizeof(hostname)))
- return KADM_NO_HOSTNAME;
-
- strcpy(server_parm.sname, PWSERV_NAME);
- strcpy(server_parm.sinst, KRB_MASTER);
- strcpy(server_parm.krbrlm, realm);
-
- server_parm.admin_fd = -1;
- /* setting up the addrs */
- memset(&server_parm.admin_addr,0, sizeof(server_parm.admin_addr));
-
- server_parm.admin_addr.sin_port = k_getportbyname (KADM_SNAME,
- "tcp",
- htons(751));
- server_parm.admin_addr.sin_family = AF_INET;
- if ((hp = gethostbyname(hostname)) == NULL)
- return KADM_NO_HOSTNAME;
- server_parm.admin_addr.sin_addr.s_addr = INADDR_ANY;
- /* setting up the database */
- if (kdb_get_master_key((inter==1), &server_parm.master_key,
- server_parm.master_key_schedule) != 0)
- return KADM_NO_MAST;
- if ((server_parm.master_key_version =
- kdb_verify_master_key(&server_parm.master_key,
- server_parm.master_key_schedule,stderr))<0)
- return KADM_NO_VERI;
- return KADM_SUCCESS;
-}
-
-static void errpkt(u_char **dat, int *dat_len, int code)
-{
- u_int32_t retcode;
- char *pdat;
-
- free(*dat); /* free up req */
- *dat_len = KADM_VERSIZE + sizeof(u_int32_t);
- *dat = (u_char *) malloc((unsigned)*dat_len);
- pdat = (char *) *dat;
- retcode = htonl((u_int32_t) code);
- strncpy(pdat, KADM_ULOSE, KADM_VERSIZE);
- memcpy(&pdat[KADM_VERSIZE], &retcode, sizeof(u_int32_t));
- return;
-}
-
-/*
-kadm_ser_in
-unwrap the data stored in dat, process, and return it.
-*/
-int
-kadm_ser_in(u_char **dat, int *dat_len)
-{
- u_char *in_st; /* pointer into the sent packet */
- int in_len,retc; /* where in packet we are, for
- returns */
- u_int32_t r_len; /* length of the actual packet */
- KTEXT_ST authent; /* the authenticator */
- AUTH_DAT ad; /* who is this, klink */
- u_int32_t ncksum; /* checksum of encrypted data */
- des_key_schedule sess_sched; /* our schedule */
- MSG_DAT msg_st;
- u_char *retdat, *tmpdat;
- int retval, retlen;
-
- if (strncmp(KADM_VERSTR, (char *)*dat, KADM_VERSIZE)) {
- errpkt(dat, dat_len, KADM_BAD_VER);
- return KADM_BAD_VER;
- }
- in_len = KADM_VERSIZE;
- /* get the length */
- if ((retc = stv_long(*dat, &r_len, in_len, *dat_len)) < 0)
- return KADM_LENGTH_ERROR;
- in_len += retc;
- authent.length = *dat_len - r_len - KADM_VERSIZE - sizeof(u_int32_t);
- memcpy(authent.dat, (char *)(*dat) + in_len, authent.length);
- authent.mbz = 0;
- /* service key should be set before here */
- if ((retc = krb_rd_req(&authent, server_parm.sname, server_parm.sinst,
- server_parm.recv_addr.sin_addr.s_addr, &ad, NULL)))
- {
- errpkt(dat, dat_len,retc + krb_err_base);
- return retc + krb_err_base;
- }
-
-#define clr_cli_secrets() {memset(sess_sched, 0, sizeof(sess_sched)); memset(ad.session, 0,sizeof(ad.session));}
-
- in_st = *dat + *dat_len - r_len;
-#ifdef NOENCRYPTION
- ncksum = 0;
-#else
- ncksum = des_quad_cksum((des_cblock *)in_st, (des_cblock *)0, (long) r_len, 0, &ad.session);
-#endif
- if (ncksum!=ad.checksum) { /* yow, are we correct yet */
- clr_cli_secrets();
- errpkt(dat, dat_len,KADM_BAD_CHK);
- return KADM_BAD_CHK;
- }
-#ifdef NOENCRYPTION
- memset(sess_sched, 0, sizeof(sess_sched));
-#else
- des_key_sched(&ad.session, sess_sched);
-#endif
- if ((retc = (int) krb_rd_priv(in_st, r_len, sess_sched, &ad.session,
- &server_parm.recv_addr,
- &server_parm.admin_addr, &msg_st))) {
- clr_cli_secrets();
- errpkt(dat, dat_len,retc + krb_err_base);
- return retc + krb_err_base;
- }
- switch (msg_st.app_data[0]) {
- case CHANGE_PW:
- retval = kadm_ser_cpw(msg_st.app_data+1,(int) msg_st.app_length - 1,
- &ad, &retdat, &retlen);
- break;
- case ADD_ENT:
- retval = kadm_ser_add(msg_st.app_data+1,(int) msg_st.app_length - 1,
- &ad, &retdat, &retlen);
- break;
- case GET_ENT:
- retval = kadm_ser_get(msg_st.app_data+1,(int) msg_st.app_length - 1,
- &ad, &retdat, &retlen);
- break;
- case MOD_ENT:
- retval = kadm_ser_mod(msg_st.app_data+1,(int) msg_st.app_length - 1,
- &ad, &retdat, &retlen);
- break;
- case DEL_ENT:
- retval = kadm_ser_delete(msg_st.app_data + 1, msg_st.app_length - 1,
- &ad, &retdat, &retlen);
- break;
- default:
- clr_cli_secrets();
- errpkt(dat, dat_len, KADM_NO_OPCODE);
- return KADM_NO_OPCODE;
- }
- /* Now seal the response back into a priv msg */
- free(*dat);
- tmpdat = (u_char *) malloc((unsigned)(retlen + KADM_VERSIZE +
- sizeof(u_int32_t)));
- strncpy((char *)tmpdat, KADM_VERSTR, KADM_VERSIZE);
- retval = htonl((u_int32_t)retval);
- memcpy((char *)tmpdat + KADM_VERSIZE, &retval, sizeof(u_int32_t));
- if (retlen) {
- memcpy((char *)tmpdat + KADM_VERSIZE + sizeof(u_int32_t), retdat,
- retlen);
- free(retdat);
- }
- /* slop for mk_priv stuff */
- *dat = (u_char *) malloc((unsigned) (retlen + KADM_VERSIZE +
- sizeof(u_int32_t) + 200));
- if ((*dat_len = krb_mk_priv(tmpdat, *dat,
- (u_int32_t) (retlen + KADM_VERSIZE +
- sizeof(u_int32_t)),
- sess_sched,
- &ad.session, &server_parm.admin_addr,
- &server_parm.recv_addr)) < 0) {
- clr_cli_secrets();
- errpkt(dat, dat_len, KADM_NO_ENCRYPT);
- return KADM_NO_ENCRYPT;
- }
- clr_cli_secrets();
- return KADM_SUCCESS;
-}
diff --git a/crypto/kerberosIV/kadmin/kadm_server.c b/crypto/kerberosIV/kadmin/kadm_server.c
deleted file mode 100644
index 1006f20c70ad..000000000000
--- a/crypto/kerberosIV/kadmin/kadm_server.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Kerberos administration server-side subroutines
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_server.c,v 1.9 1997/05/02 10:29:08 joda Exp $");
-
-/*
-kadm_ser_cpw - the server side of the change_password routine
- recieves : KTEXT, {key}
- returns : CKSUM, RETCODE
- acl : caller can change only own password
-
-Replaces the password (i.e. des key) of the caller with that specified in key.
-Returns no actual data from the master server, since this is called by a user
-*/
-int
-kadm_ser_cpw(u_char *dat, int len, AUTH_DAT *ad, u_char **datout, int *outlen)
-{
- u_int32_t keylow, keyhigh;
- des_cblock newkey;
- int status;
- int stvlen=0;
- char *pw_msg;
- char pword[MAX_KPW_LEN];
- char *strings[4];
-
- /* take key off the stream, and change the database */
-
- if ((status = stv_long(dat, &keyhigh, 0, len)) < 0)
- return(KADM_LENGTH_ERROR);
- stvlen=status;
- if ((status = stv_long(dat, &keylow, stvlen, len)) < 0)
- return(KADM_LENGTH_ERROR);
- stvlen+=status;
-
- if((status = stv_string(dat, pword, stvlen, sizeof(pword), len))<0)
- pword[0]=0;
-
- keylow = ntohl(keylow);
- keyhigh = ntohl(keyhigh);
- memcpy(((char *)newkey) + 4, &keyhigh, 4);
- memcpy(newkey, &keylow, 4);
-
- strings[0] = ad->pname;
- strings[1] = ad->pinst;
- strings[2] = ad->prealm;
- strings[3] = NULL;
- status = kadm_pw_check(pword, &newkey, &pw_msg, strings);
-
- memset(pword, 0, sizeof(pword));
- memset(dat, 0, len);
-
- if(status != KADM_SUCCESS){
- *datout=malloc(0);
- *outlen=vts_string(pw_msg, datout, 0);
- return status;
- }
- *datout=0;
- *outlen=0;
-
- return(kadm_change(ad->pname, ad->pinst, ad->prealm, newkey));
-}
-
-
-/*
-kadm_ser_add - the server side of the add_entry routine
- recieves : KTEXT, {values}
- returns : CKSUM, RETCODE, {values}
- acl : su, sms (as alloc)
-
-Adds and entry containing values to the database
-returns the values of the entry, so if you leave certain fields blank you will
- be able to determine the default values they are set to
-*/
-int
-kadm_ser_add(u_char *dat, int len, AUTH_DAT *ad, u_char **datout, int *outlen)
-{
- Kadm_vals values, retvals;
- long status;
-
- if ((status = stream_to_vals(dat, &values, len)) < 0)
- return(KADM_LENGTH_ERROR);
- if ((status = kadm_add_entry(ad->pname, ad->pinst, ad->prealm,
- &values, &retvals)) == KADM_DATA) {
- *outlen = vals_to_stream(&retvals,datout);
- return KADM_SUCCESS;
- } else {
- *outlen = 0;
- return status;
- }
-}
-
-/*
-kadm_ser_mod - the server side of the mod_entry routine
- recieves : KTEXT, {values, values}
- returns : CKSUM, RETCODE, {values}
- acl : su, sms (as register or dealloc)
-
-Modifies all entries corresponding to the first values so they match the
- second values.
-returns the values for the changed entries
-*/
-int
-kadm_ser_mod(u_char *dat, int len, AUTH_DAT *ad, u_char **datout, int *outlen)
-{
- Kadm_vals vals1, vals2, retvals;
- int wh;
- long status;
-
- if ((wh = stream_to_vals(dat, &vals1, len)) < 0)
- return KADM_LENGTH_ERROR;
- if ((status = stream_to_vals(dat+wh,&vals2, len-wh)) < 0)
- return KADM_LENGTH_ERROR;
- if ((status = kadm_mod_entry(ad->pname, ad->pinst, ad->prealm, &vals1,
- &vals2, &retvals)) == KADM_DATA) {
- *outlen = vals_to_stream(&retvals,datout);
- return KADM_SUCCESS;
- } else {
- *outlen = 0;
- return status;
- }
-}
-
-int
-kadm_ser_delete(u_char *dat, int len, AUTH_DAT *ad,
- u_char **datout, int *outlen)
-{
- Kadm_vals values;
- int wh;
- int status;
-
- if((wh = stream_to_vals(dat, &values, len)) < 0)
- return KADM_LENGTH_ERROR;
- if(wh != len)
- return KADM_LENGTH_ERROR;
- status = kadm_delete_entry(ad->pname, ad->pinst, ad->prealm,
- &values);
- *outlen = 0;
- return status;
-}
-
-/*
-kadm_ser_get
- recieves : KTEXT, {values, flags}
- returns : CKSUM, RETCODE, {count, values, values, values}
- acl : su
-
-gets the fields requested by flags from all entries matching values
-returns this data for each matching recipient, after a count of how many such
- matches there were
-*/
-int
-kadm_ser_get(u_char *dat, int len, AUTH_DAT *ad, u_char **datout, int *outlen)
-{
- Kadm_vals values, retvals;
- u_char fl[FLDSZ];
- int loop,wh;
- long status;
-
- if ((wh = stream_to_vals(dat, &values, len)) < 0)
- return KADM_LENGTH_ERROR;
- if (wh + FLDSZ > len)
- return KADM_LENGTH_ERROR;
- for (loop=FLDSZ-1; loop>=0; loop--)
- fl[loop] = dat[wh++];
- if ((status = kadm_get_entry(ad->pname, ad->pinst, ad->prealm,
- &values, fl, &retvals)) == KADM_DATA) {
- *outlen = vals_to_stream(&retvals,datout);
- return KADM_SUCCESS;
- } else {
- *outlen = 0;
- return status;
- }
-}
-
diff --git a/crypto/kerberosIV/kadmin/kadm_server.h b/crypto/kerberosIV/kadmin/kadm_server.h
deleted file mode 100644
index c730574249dc..000000000000
--- a/crypto/kerberosIV/kadmin/kadm_server.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/* $Id: kadm_server.h,v 1.10 1997/05/11 04:08:26 assar Exp $ */
-
-/*
- * Definitions for Kerberos administration server & client
- */
-
-#ifndef KADM_SERVER_DEFS
-#define KADM_SERVER_DEFS
-
-/*
- * kadm_server.h
- * Header file for the fourth attempt at an admin server
- * Doug Church, December 28, 1989, MIT Project Athena
- * ps. Yes that means this code belongs to athena etc...
- * as part of our ongoing attempt to copyright all greek names
- */
-
-typedef struct {
- struct sockaddr_in admin_addr;
- struct sockaddr_in recv_addr;
- int recv_addr_len;
- int admin_fd; /* our link to clients */
- char sname[ANAME_SZ];
- char sinst[INST_SZ];
- char krbrlm[REALM_SZ];
- des_cblock master_key;
- des_cblock session_key;
- des_key_schedule master_key_schedule;
- long master_key_version;
-} Kadm_Server;
-
-/* the default syslog file */
-#ifndef KADM_SYSLOG
-#define KADM_SYSLOG "/var/log/admin_server.syslog"
-#endif /* KADM_SYSLOG */
-
-#ifndef DEFAULT_ACL_DIR
-#define DEFAULT_ACL_DIR "/var/kerberos"
-#endif /* DEFAULT_ACL_DIR */
-#define ADD_ACL_FILE "/admin_acl.add"
-#define GET_ACL_FILE "/admin_acl.get"
-#define MOD_ACL_FILE "/admin_acl.mod"
-#define DEL_ACL_FILE "/admin_acl.del"
-
-#endif /* KADM_SERVER_DEFS */
diff --git a/crypto/kerberosIV/kadmin/kadmin.c b/crypto/kerberosIV/kadmin/kadmin.c
deleted file mode 100644
index f117b6b36a35..000000000000
--- a/crypto/kerberosIV/kadmin/kadmin.c
+++ /dev/null
@@ -1,845 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Kerberos database administrator's tool.
- *
- * The default behavior of kadmin is if the -m option is given
- * on the commandline, multiple requests are allowed to be given
- * with one entry of the admin password (until the tickets expire).
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadmin.c,v 1.48 1997/05/13 09:43:06 bg Exp $");
-
-static void change_password(int argc, char **argv);
-static void change_key(int argc, char **argv);
-static void change_admin_password(int argc, char **argv);
-static void add_new_key(int argc, char **argv);
-static void del_entry(int argc, char **argv);
-static void get_entry(int argc, char **argv);
-static void mod_entry(int argc, char **argv);
-static void help(int argc, char **argv);
-static void clean_up_cmd(int argc, char **argv);
-static void quit_cmd(int argc, char **argv);
-
-static SL_cmd cmds[] = {
- {"change_password", change_password, "Change a user's password"},
- {"cpw"},
- {"passwd"},
- {"change_key", change_key, "Change a user's password as a DES binary key"},
- {"ckey"},
- {"change_admin_password", change_admin_password,
- "Change your admin password"},
- {"cap"},
- {"add_new_key", add_new_key, "Add new user to kerberos database"},
- {"ank"},
- {"del_entry", del_entry, "Delete entry from database"},
- {"del"},
- {"delete"},
- {"get_entry", get_entry, "Get entry from kerberos database"},
- {"mod_entry", mod_entry, "Modify entry in kerberos database"},
- {"destroy_tickets", clean_up_cmd, "Destroy admin tickets"},
- {"exit", quit_cmd, "Exit program"},
- {"quit"},
- {"help", help, "Help"},
- {"?"},
- {NULL}
-};
-
-#define BAD_PW 1
-#define GOOD_PW 0
-#define FUDGE_VALUE 15 /* for ticket expiration time */
-#define PE_NO 0
-#define PE_YES 1
-#define PE_UNSURE 2
-
-/* for get_password, whether it should do the swapping...necessary for
- using vals structure, unnecessary for change_pw requests */
-#define DONTSWAP 0
-#define SWAP 1
-
-static krb_principal pr;
-static char default_realm[REALM_SZ]; /* default kerberos realm */
-static char krbrlm[REALM_SZ]; /* current realm being administered */
-static int multiple = 0; /* Allow multiple requests per ticket */
-
-#ifdef NOENCRYPTION
-#define read_long_pw_string placebo_read_pw_string
-#else
-#define read_long_pw_string des_read_pw_string
-#endif
-
-static void
-get_maxlife(Kadm_vals *vals)
-{
- char buff[BUFSIZ];
- time_t life;
- int l;
-
- do {
- printf("Maximum ticket lifetime? (%d) [%s] ",
- vals->max_life, krb_life_to_atime(vals->max_life));
- fflush(stdout);
- if (fgets(buff, sizeof(buff), stdin) == NULL || *buff == '\n') {
- clearerr(stdin);
- return;
- }
- life = krb_atime_to_life(buff);
- } while (life <= 0);
-
- l = strlen(buff);
- if (buff[l-2] == 'm')
- life = krb_time_to_life(0L, life*60);
- if (buff[l-2] == 'h')
- life = krb_time_to_life(0L, life*60*60);
-
- vals->max_life = life;
- SET_FIELD(KADM_MAXLIFE,vals->fields);
-}
-
-static void
-get_attr(Kadm_vals *vals)
-{
- char buff[BUFSIZ], *out;
- int attr;
-
- do {
- printf("Attributes? [0x%.2x] ", vals->attributes);
- fflush(stdout);
- if (fgets(buff, sizeof(buff), stdin) == NULL || *buff == '\n') {
- clearerr(stdin);
- return;
- }
- attr = strtol(buff, &out, 0);
- if (attr == 0 && out == buff)
- attr = -1;
- } while (attr < 0 || attr > 0xffff);
-
- vals->attributes = attr;
- SET_FIELD(KADM_ATTR,vals->fields);
-}
-
-static void
-get_expdate(Kadm_vals *vals)
-{
- char buff[BUFSIZ];
- struct tm edate;
-
- memset(&edate, 0, sizeof(edate));
- do {
- printf("Expiration date (enter yyyy-mm-dd) ? [%.24s] ",
- asctime(k_localtime(&vals->exp_date)));
- fflush(stdout);
- if (fgets(buff, sizeof(buff), stdin) == NULL || *buff == '\n') {
- clearerr(stdin);
- return;
- }
- if (sscanf(buff, "%d-%d-%d",
- &edate.tm_year, &edate.tm_mon, &edate.tm_mday) == 3) {
- edate.tm_mon--; /* January is 0, not 1 */
- edate.tm_hour = 23; /* nearly midnight at the end of the */
- edate.tm_min = 59; /* specified day */
- }
- } while (krb_check_tm (edate));
-
- edate.tm_year -= 1900;
- vals->exp_date = tm2time (edate, 1);
- SET_FIELD(KADM_EXPDATE,vals->fields);
-}
-
-static int
-princ_exists(char *name, char *instance, char *realm)
-{
- int status;
-
- status = krb_get_pw_in_tkt(name, instance, realm,
- KRB_TICKET_GRANTING_TICKET,
- realm, 1, "");
-
- if ((status == KSUCCESS) || (status == INTK_BADPW))
- return(PE_YES);
- else if (status == KDC_PR_UNKNOWN)
- return(PE_NO);
- else
- return(PE_UNSURE);
-}
-
-static int
-get_password(u_int32_t *low, u_int32_t *high, char *prompt, int byteswap)
-{
- char new_passwd[MAX_KPW_LEN]; /* new password */
- des_cblock newkey;
-
- if (read_long_pw_string(new_passwd, sizeof(new_passwd)-1, prompt, 1))
- return(BAD_PW);
- if (strlen(new_passwd) == 0) {
- printf("Using random password.\n");
-#ifdef NOENCRYPTION
- memset(newkey, 0, sizeof(newkey));
-#else
- des_new_random_key(&newkey);
-#endif
- } else {
-#ifdef NOENCRYPTION
- memset(newkey, 0, sizeof(newkey));
-#else
- des_string_to_key(new_passwd, &newkey);
-#endif
- memset(new_passwd, 0, sizeof(new_passwd));
- }
-
- memcpy(low, newkey, 4);
- memcpy(high, ((char *)newkey) + 4, 4);
-
- memset(newkey, 0, sizeof(newkey));
-
-#ifdef NOENCRYPTION
- *low = 1;
-#endif
-
- if (byteswap != DONTSWAP) {
- *low = htonl(*low);
- *high = htonl(*high);
- }
- return(GOOD_PW);
-}
-
-static int
-get_admin_password(void)
-{
- int status;
- char admin_passwd[MAX_KPW_LEN]; /* Admin's password */
- int ticket_life = 1; /* minimum ticket lifetime */
- CREDENTIALS c;
-
- if (multiple) {
- /* If admin tickets exist and are valid, just exit. */
- memset(&c, 0, sizeof(c));
- if (krb_get_cred(PWSERV_NAME, KADM_SINST, krbrlm, &c) == KSUCCESS)
- /*
- * If time is less than lifetime - FUDGE_VALUE after issue date,
- * tickets will probably last long enough for the next
- * transaction.
- */
- if (time(0) < (c.issue_date + (5 * 60 * c.lifetime) - FUDGE_VALUE))
- return(KADM_SUCCESS);
- ticket_life = DEFAULT_TKT_LIFE;
- }
-
- if (princ_exists(pr.name, pr.instance, pr.realm) != PE_NO) {
- char prompt[256];
- snprintf(prompt, sizeof(prompt), "%s's Password: ", krb_unparse_name(&pr));
- if (read_long_pw_string(admin_passwd,
- sizeof(admin_passwd)-1,
- prompt, 0)) {
- warnx ("Error reading admin password.");
- goto bad;
- }
- status = krb_get_pw_in_tkt(pr.name, pr.instance, pr.realm,
- PWSERV_NAME, KADM_SINST,
- ticket_life, admin_passwd);
- memset(admin_passwd, 0, sizeof(admin_passwd));
-
- /* Initialize non shared random sequence from session key. */
- memset(&c, 0, sizeof(c));
- krb_get_cred(PWSERV_NAME, KADM_SINST, krbrlm, &c);
- des_init_random_number_generator(&c.session);
- }
- else
- status = KDC_PR_UNKNOWN;
-
- switch(status) {
- case GT_PW_OK:
- return(GOOD_PW);
- case KDC_PR_UNKNOWN:
- printf("Principal %s does not exist.\n", krb_unparse_name(&pr));
- goto bad;
- case GT_PW_BADPW:
- printf("Incorrect admin password.\n");
- goto bad;
- default:
- com_err("kadmin", status+krb_err_base,
- "while getting password tickets");
- goto bad;
- }
-
- bad:
- memset(admin_passwd, 0, sizeof(admin_passwd));
- dest_tkt();
- return(BAD_PW);
-}
-
-static void
-usage(void)
-{
- fprintf (stderr, "Usage: kadmin [[-u|-p] admin_name] [-r default_realm]"
- " [-m]\n"
- " -m allows multiple admin requests to be "
- "serviced with one entry of admin\n"
- " password.\n");
- exit (1);
-}
-
-/* GLOBAL */
-static void
-clean_up()
-{
- dest_tkt();
-}
-
-static void
-clean_up_cmd (int argc, char **argv)
-{
- clean_up();
-}
-
-/* GLOBAL */
-static void
-quit()
-{
- printf("Cleaning up and exiting.\n");
- clean_up();
- exit(0);
-}
-
-static void
-quit_cmd (int argc, char **argv)
-{
- quit();
-}
-
-static void
-do_init(int argc, char **argv)
-{
- int c;
- int tflag = 0;
- char tktstring[MaxPathLen];
- int k_errno;
-
- set_progname (argv[0]);
-
- memset(&pr, 0, sizeof(pr));
- if (krb_get_default_principal(pr.name, pr.instance, default_realm) < 0)
- errx (1, "I could not even guess who you might be");
- while ((c = getopt(argc, argv, "p:u:r:mt")) != EOF)
- switch (c) {
- case 'p':
- case 'u':
- if((k_errno = krb_parse_name(optarg, &pr)) != KSUCCESS)
- errx (1, "%s", krb_get_err_text(k_errno));
- break;
- case 'r':
- memset(default_realm, 0, sizeof(default_realm));
- strncpy(default_realm, optarg, sizeof(default_realm) - 1);
- break;
- case 'm':
- multiple++;
- break;
- case 't':
- tflag++;
- break;
- default:
- usage();
- break;
- }
- if (optind < argc)
- usage();
- strcpy(krbrlm, default_realm);
-
- if (kadm_init_link(PWSERV_NAME, KRB_MASTER, krbrlm) != KADM_SUCCESS)
- *krbrlm = '\0';
- if (pr.realm[0] == '\0')
- strcpy (pr.realm, krbrlm);
- if (pr.instance[0] == '\0')
- strcpy(pr.instance, "admin");
-
- if (!tflag) {
- snprintf(tktstring, sizeof(tktstring), TKT_ROOT "_adm_%d",(int)getpid());
- krb_set_tkt_string(tktstring);
- }
-
-}
-
-int
-main(int argc, char **argv)
-{
- do_init(argc, argv);
-
- printf("Welcome to the Kerberos Administration Program, version 2\n");
- printf("Type \"help\" if you need it.\n");
- sl_loop (cmds, "kadmin: ");
- printf("\n");
- quit();
- exit(0);
-}
-
-static int
-setvals(Kadm_vals *vals, char *string)
-{
- char realm[REALM_SZ];
- int status = KADM_SUCCESS;
-
- memset(vals, 0, sizeof(*vals));
- memset(realm, 0, sizeof(realm));
-
- SET_FIELD(KADM_NAME,vals->fields);
- SET_FIELD(KADM_INST,vals->fields);
- if ((status = kname_parse(vals->name, vals->instance, realm, string))) {
- printf("kerberos error: %s\n", krb_get_err_text(status));
- return status;
- }
- if (!realm[0])
- strcpy(realm, default_realm);
- if (strcmp(realm, krbrlm)) {
- strcpy(krbrlm, realm);
- if ((status = kadm_init_link(PWSERV_NAME, KRB_MASTER, krbrlm))
- != KADM_SUCCESS)
- printf("kadm error for realm %s: %s\n",
- krbrlm, error_message(status));
- }
- if (status)
- return 1;
- else
- return KADM_SUCCESS;
-}
-
-static void
-change_password(int argc, char **argv)
-{
- Kadm_vals old, new;
- int status;
- char pw_prompt[BUFSIZ];
-
- if (argc != 2) {
- printf("Usage: change_password loginname\n");
- return;
- }
-
- if (setvals(&old, argv[1]) != KADM_SUCCESS)
- return;
-
- new = old;
-
- SET_FIELD(KADM_DESKEY,new.fields);
-
- if (princ_exists(old.name, old.instance, krbrlm) != PE_NO) {
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- /* get the new password */
- snprintf(pw_prompt, sizeof(pw_prompt), "New password for %s:", argv[1]);
-
- if (get_password(&new.key_low, &new.key_high,
- pw_prompt, SWAP) == GOOD_PW) {
- status = kadm_mod(&old, &new);
- if (status == KADM_SUCCESS) {
- printf("Password changed for %s.\n", argv[1]);
- } else {
- printf("kadmin: %s\nwhile changing password for %s",
- error_message(status), argv[1]);
- }
- } else
- printf("Error reading password; password unchanged\n");
- memset(&new, 0, sizeof(new));
- if (!multiple)
- clean_up();
- }
- else
- printf("kadmin: Principal %s does not exist.\n",
- krb_unparse_name_long (old.name, old.instance, krbrlm));
- return;
-}
-
-static int
-getkey(unsigned char *k)
-{
- int i, c;
- for (i = 0; i < 8; i++)
- {
- c = getchar();
- if (c == EOF)
- return 0;
- else if (c == '\\')
- {
- int oct = -1;
- scanf("%03o", &oct);
- if (oct < 0 || oct > 255)
- return 0;
- k[i] = oct;
- }
- else if (!isalpha(c))
- return 0;
- else
- k[i] = c;
- }
- c = getchar();
- if (c != '\n')
- return 0;
- return 1; /* Success */
-}
-
-static void
-printkey(unsigned char *tkey)
-{
- int j;
- for(j = 0; j < 8; j++)
- if(tkey[j] != '\\' && isalpha(tkey[j]) != 0)
- printf("%c", tkey[j]);
- else
- printf("\\%03o",(unsigned char)tkey[j]);
- printf("\n");
-}
-
-static void
-change_key(int argc, char **argv)
-{
- Kadm_vals old, new;
- unsigned char newkey[8];
- int status;
-
- if (argc != 2) {
- printf("Usage: change_key principal-name\n");
- return;
- }
-
- if (setvals(&old, argv[1]) != KADM_SUCCESS)
- return;
-
- new = old;
-
- SET_FIELD(KADM_DESKEY,new.fields);
-
- if (princ_exists(old.name, old.instance, krbrlm) != PE_NO) {
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- /* get the new password */
- printf("New DES key for %s: ", argv[1]);
-
- if (getkey(newkey)) {
- memcpy(&new.key_low, newkey, 4);
- memcpy(&new.key_high, ((char *)newkey) + 4, 4);
- printf("Entered key for %s: ", argv[1]);
- printkey(newkey);
- memset(newkey, 0, sizeof(newkey));
-
- status = kadm_mod(&old, &new);
- if (status == KADM_SUCCESS) {
- printf("Key changed for %s.\n", argv[1]);
- } else {
- printf("kadmin: %s\nwhile changing key for %s",
- error_message(status), argv[1]);
- }
- } else
- printf("Error reading key; key unchanged\n");
- memset(&new, 0, sizeof(new));
- if (!multiple)
- clean_up();
- }
- else
- printf("kadmin: Principal %s does not exist.\n",
- krb_unparse_name_long (old.name, old.instance, krbrlm));
- return;
-}
-
-static void
-change_admin_password(int argc, char **argv)
-{
- des_cblock newkey;
- int status;
- char pword[MAX_KPW_LEN];
- char *pw_msg;
-
- if (argc != 1) {
- printf("Usage: change_admin_password\n");
- return;
- }
- if (get_pw_new_pwd(pword, sizeof(pword), &pr, 1) == 0) {
- des_string_to_key(pword, &newkey);
- status = kadm_change_pw_plain(newkey, pword, &pw_msg);
- if(status == KADM_INSECURE_PW)
- printf("Insecure password: %s\n", pw_msg);
- else if (status == KADM_SUCCESS)
- printf("Admin password changed\n");
- else
- printf("kadm error: %s\n",error_message(status));
- memset(newkey, 0, sizeof(newkey));
- memset(pword, 0, sizeof(pword));
- }
- if (!multiple)
- clean_up();
- return;
-}
-
-static void
-add_new_key(int argc, char **argv)
-{
- Kadm_vals new;
- char pw_prompt[BUFSIZ];
- int status;
-
- if (argc != 2) {
- printf("Usage: add_new_key user_name.\n");
- return;
- }
- if (setvals(&new, argv[1]) != KADM_SUCCESS)
- return;
-
- SET_FIELD(KADM_EXPDATE,new.fields);
- SET_FIELD(KADM_ATTR,new.fields);
- SET_FIELD(KADM_MAXLIFE,new.fields);
- SET_FIELD(KADM_DESKEY,new.fields);
-
- if (princ_exists(new.name, new.instance, krbrlm) != PE_YES) {
- Kadm_vals vals;
- u_char fields[4];
- char n[ANAME_SZ + INST_SZ + 1];
-
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- memset(fields, 0, sizeof(fields));
- SET_FIELD(KADM_NAME,fields);
- SET_FIELD(KADM_INST,fields);
- SET_FIELD(KADM_EXPDATE,fields);
- SET_FIELD(KADM_ATTR,fields);
- SET_FIELD(KADM_MAXLIFE,fields);
- snprintf (n, sizeof(n), "default.%s", new.instance);
- if (setvals(&vals, n) != KADM_SUCCESS)
- return;
-
- if (kadm_get(&vals, fields) != KADM_SUCCESS) {
- if (setvals(&vals, "default") != KADM_SUCCESS)
- return;
- if ((status = kadm_get(&vals, fields)) != KADM_SUCCESS) {
- printf ("kadm error: %s\n", error_message(status));
- return;
- }
- }
-
- if (vals.max_life == 255) /* Defaults not set! */ {
- /* This is the default maximum lifetime for new principals. */
- if (strcmp(new.instance, "admin") == 0)
- vals.max_life = 1 + (CLOCK_SKEW/(5*60)); /* 5+5 minutes */
- else if (strcmp(new.instance, "root") == 0)
- vals.max_life = 96; /* 8 hours */
- else if (krb_life_to_time(0, 162) >= 24*60*60)
- vals.max_life = 162; /* ca 100 hours */
- else
- vals.max_life = 255; /* ca 21 hours (maximum) */
-
- /* Also fix expiration date. */
- if (strcmp(new.name, "rcmd") == 0)
- vals.exp_date = 1104814999; /* Tue Jan 4 06:03:19 2005 */
- else
- vals.exp_date = time(0) + 2*(365*24*60*60); /* + ca 2 years */
- }
-
- new.max_life = vals.max_life;
- new.exp_date = vals.exp_date;
- new.attributes = vals.attributes;
- get_maxlife(&new);
- get_attr(&new);
- get_expdate(&new);
-
- /* get the new password */
- snprintf(pw_prompt, sizeof(pw_prompt), "Password for %s:", argv[1]);
-
- if (get_password(&new.key_low, &new.key_high,
- pw_prompt, SWAP) == GOOD_PW) {
- status = kadm_add(&new);
- if (status == KADM_SUCCESS) {
- printf("%s added to database.\n", argv[1]);
- } else {
- printf("kadm error: %s\n",error_message(status));
- }
- } else
- printf("Error reading password; %s not added\n",argv[1]);
- memset(&new, 0, sizeof(new));
- if (!multiple)
- clean_up();
- }
- else
- printf("kadmin: Principal already exists.\n");
- return;
-}
-
-static void
-del_entry(int argc, char **argv)
-{
- int status;
- Kadm_vals vals;
-
- if (argc != 2) {
- printf("Usage: del_entry username\n");
- return;
- }
-
- if (setvals(&vals, argv[1]) != KADM_SUCCESS)
- return;
-
- if (princ_exists(vals.name, vals.instance, krbrlm) != PE_NO) {
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- if ((status = kadm_del(&vals)) == KADM_SUCCESS){
- printf("%s removed from database.\n", argv[1]);
- } else {
- printf("kadm error: %s\n",error_message(status));
- }
-
- if (!multiple)
- clean_up();
- }
- else
- printf("kadmin: Principal %s does not exist.\n",
- krb_unparse_name_long (vals.name, vals.instance, krbrlm));
- return;
-}
-
-static void
-get_entry(int argc, char **argv)
-{
- int status;
- u_char fields[4];
- Kadm_vals vals;
-
- if (argc != 2) {
- printf("Usage: get_entry username\n");
- return;
- }
-
- memset(fields, 0, sizeof(fields));
-
- SET_FIELD(KADM_NAME,fields);
- SET_FIELD(KADM_INST,fields);
- SET_FIELD(KADM_EXPDATE,fields);
- SET_FIELD(KADM_ATTR,fields);
- SET_FIELD(KADM_MAXLIFE,fields);
-#if 0
- SET_FIELD(KADM_DESKEY,fields);
-#endif
-
- if (setvals(&vals, argv[1]) != KADM_SUCCESS)
- return;
-
-
- if (princ_exists(vals.name, vals.instance, krbrlm) != PE_NO) {
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- if ((status = kadm_get(&vals, fields)) == KADM_SUCCESS)
- prin_vals(&vals);
- else
- printf("kadm error: %s\n",error_message(status));
-
- if (!multiple)
- clean_up();
- }
- else
- printf("kadmin: Principal %s does not exist.\n",
- krb_unparse_name_long (vals.name, vals.instance, krbrlm));
- return;
-}
-
-static void
-mod_entry(int argc, char **argv)
-{
- int status;
- u_char fields[4];
- Kadm_vals ovals, nvals;
-
- if (argc != 2) {
- printf("Usage: mod_entry username\n");
- return;
- }
-
- memset(fields, 0, sizeof(fields));
-
- SET_FIELD(KADM_NAME,fields);
- SET_FIELD(KADM_INST,fields);
- SET_FIELD(KADM_EXPDATE,fields);
- SET_FIELD(KADM_ATTR,fields);
- SET_FIELD(KADM_MAXLIFE,fields);
-
- if (setvals(&ovals, argv[1]) != KADM_SUCCESS)
- return;
-
- nvals = ovals;
-
- if (princ_exists(ovals.name, ovals.instance, krbrlm) == PE_NO) {
- printf("kadmin: Principal %s does not exist.\n",
- krb_unparse_name_long (ovals.name, ovals.instance, krbrlm));
- return;
- }
-
- /* get the admin's password */
- if (get_admin_password() != GOOD_PW)
- return;
-
- if ((status = kadm_get(&ovals, fields)) != KADM_SUCCESS) {
- printf("[ unable to retrieve current settings: %s ]\n",
- error_message(status));
- nvals.max_life = DEFAULT_TKT_LIFE;
- nvals.exp_date = 0;
- nvals.attributes = 0;
- } else {
- nvals.max_life = ovals.max_life;
- nvals.exp_date = ovals.exp_date;
- nvals.attributes = ovals.attributes;
- }
-
- get_maxlife(&nvals);
- get_attr(&nvals);
- get_expdate(&nvals);
-
- if (IS_FIELD(KADM_MAXLIFE, nvals.fields) ||
- IS_FIELD(KADM_ATTR, nvals.fields) ||
- IS_FIELD(KADM_EXPDATE, nvals.fields)) {
- if ((status = kadm_mod(&ovals, &nvals)) != KADM_SUCCESS) {
- printf("kadm error: %s\n",error_message(status));
- goto out;
- }
- if ((status = kadm_get(&ovals, fields)) != KADM_SUCCESS) {
- printf("kadm error: %s\n",error_message(status));
- goto out;
- }
- }
- prin_vals(&ovals);
-
-out:
- if (!multiple)
- clean_up();
- return;
-}
-
-static void
-help(int argc, char **argv)
-{
- sl_help (cmds, argc, argv);
-}
diff --git a/crypto/kerberosIV/kadmin/kpasswd.c b/crypto/kerberosIV/kadmin/kpasswd.c
deleted file mode 100644
index f4c0cdabc8dc..000000000000
--- a/crypto/kerberosIV/kadmin/kpasswd.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * change your password with kerberos
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kpasswd.c,v 1.25 1997/05/02 14:28:51 assar Exp $");
-
-static void
-usage(int value)
-{
- fprintf(stderr, "Usage: ");
- fprintf(stderr, "kpasswd [-h ] [-n user] [-i instance] [-r realm] ");
- fprintf(stderr, "[-u fullname]\n");
- exit(value);
-}
-
-int
-main(int argc, char **argv)
-{
- krb_principal principal;
- krb_principal default_principal;
- int realm_given = 0; /* True if realm was give on cmdline */
- int use_default = 1; /* True if we should use default name */
- int status; /* return code */
- char pword[MAX_KPW_LEN];
- int c;
- char tktstring[MaxPathLen];
-
- set_progname (argv[0]);
-
- memset (&principal, 0, sizeof(principal));
- memset (&default_principal, 0, sizeof(default_principal));
-
- krb_get_default_principal (default_principal.name,
- default_principal.instance,
- default_principal.realm);
-
- while ((c = getopt(argc, argv, "u:n:i:r:h")) != EOF) {
- switch (c) {
- case 'u':
- status = krb_parse_name (optarg, &principal);
- if (status != KSUCCESS)
- errx (2, "%s", krb_get_err_text(status));
- if (principal.realm[0])
- realm_given++;
- else if (krb_get_lrealm(principal.realm, 1) != KSUCCESS)
- errx (1, "Could not find default realm!");
- break;
- case 'n':
- if (k_isname(optarg))
- strncpy(principal.name, optarg, sizeof(principal.name) - 1);
- else {
- warnx("Bad name: %s", optarg);
- usage(1);
- }
- break;
- case 'i':
- if (k_isinst(optarg))
- strncpy(principal.instance,
- optarg,
- sizeof(principal.instance) - 1);
- else {
- warnx("Bad instance: %s", optarg);
- usage(1);
- }
- break;
- case 'r':
- if (k_isrealm(optarg)) {
- strncpy(principal.realm, optarg, sizeof(principal.realm) - 1);
- realm_given++;
- } else {
- warnx("Bad realm: %s", optarg);
- usage(1);
- }
- break;
- case 'h':
- usage(0);
- break;
- default:
- usage(1);
- break;
- }
- use_default = 0;
- }
- if (optind < argc) {
- use_default = 0;
- status = krb_parse_name (argv[optind], &principal);
- if(status != KSUCCESS)
- errx (1, "%s", krb_get_err_text (status));
- }
-
- if (use_default) {
- strcpy(principal.name, default_principal.name);
- strcpy(principal.instance, default_principal.instance);
- strcpy(principal.realm, default_principal.realm);
- } else {
- if (!principal.name[0])
- strcpy(principal.name, default_principal.name);
- if (!principal.realm[0])
- strcpy(principal.realm, default_principal.realm);
- }
-
- snprintf(tktstring, sizeof(tktstring),
- TKT_ROOT "_cpw_%u", (unsigned)getpid());
- krb_set_tkt_string(tktstring);
-
- if (get_pw_new_pwd(pword, sizeof(pword), &principal,
- realm_given)) {
- dest_tkt ();
- exit(1);
- }
-
- status = kadm_init_link (PWSERV_NAME, KRB_MASTER, principal.realm);
- if (status != KADM_SUCCESS)
- com_err(argv[0], status, "while initializing");
- else {
- des_cblock newkey;
- char *pw_msg; /* message from server */
-
- des_string_to_key(pword, &newkey);
- status = kadm_change_pw_plain((unsigned char*)&newkey, pword, &pw_msg);
- memset(newkey, 0, sizeof(newkey));
-
- if (status == KADM_INSECURE_PW)
- warnx ("Insecure password: %s", pw_msg);
- else if (status != KADM_SUCCESS)
- com_err(argv[0], status, " attempting to change password.");
- }
- memset(pword, 0, sizeof(pword));
-
- if (status != KADM_SUCCESS)
- fprintf(stderr,"Password NOT changed.\n");
- else
- printf("Password changed.\n");
-
- dest_tkt();
- if (status)
- return 2;
- else
- return 0;
-}
diff --git a/crypto/kerberosIV/kadmin/kpasswd_standalone.c b/crypto/kerberosIV/kadmin/kpasswd_standalone.c
deleted file mode 100644
index 443daa8991ea..000000000000
--- a/crypto/kerberosIV/kadmin/kpasswd_standalone.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * Copyright.MIT.
- *
- * change your password with kerberos
- */
-
-#ifndef lint
-#if 0
-static char rcsid_kpasswd_c[] =
- "BonesHeader: /afs/athena.mit.edu/astaff/project/kerberos/src/kadmin/RCS/kpasswd.c,v 4.3 89/09/26 09:33:02 jtkohl Exp ";
-#endif
-static const char rcsid[] =
- "$Id$";
-#endif lint
-
-/*
- * kpasswd
- * change your password with kerberos
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <com_err.h>
-#include <err.h>
-#include <krb.h>
-#include <string.h>
-#include <pwd.h>
-#include <unistd.h>
-#include "kadm.h"
-
-#include "extern.h"
-
-extern void krb_set_tkt_string();
-static void go_home(char *, int);
-
-
-int krb_passwd(char *uname, char *iflag, char *rflag, char *uflag)
-{
- char name[ANAME_SZ]; /* name of user */
- char inst[INST_SZ]; /* instance of user */
- char realm[REALM_SZ]; /* realm of user */
- char default_name[ANAME_SZ];
- char default_inst[INST_SZ];
- char default_realm[REALM_SZ];
- int realm_given = 0; /* True if realm was give on cmdline */
- int use_default = 1; /* True if we should use default name */
- struct passwd *pw;
- int status; /* return code */
- des_cblock new_key;
- extern char *optarg;
- extern int optind;
- char tktstring[MAXPATHLEN];
-
- void get_pw_new_key();
-
-#ifdef NOENCRYPTION
-#define read_long_pw_string placebo_read_pw_string
-#else
-#define read_long_pw_string des_read_pw_string
-#endif
- int read_long_pw_string();
-
- bzero(name, sizeof(name));
- bzero(inst, sizeof(inst));
- bzero(realm, sizeof(realm));
-
- if (krb_get_tf_fullname(TKT_FILE, default_name, default_inst,
- default_realm) != KSUCCESS) {
- pw = getpwuid((int) getuid());
- if (pw) {
- strcpy(default_name, pw->pw_name);
- } else {
- /* seems like a null name is kinda silly */
- strcpy(default_name, "");
- }
- strcpy(default_inst, "");
- if (krb_get_lrealm(default_realm, 1) != KSUCCESS)
- strcpy(default_realm, KRB_REALM);
- }
-
- if(uflag) {
- if ((status = kname_parse(name, inst, realm, uflag))) {
- errx(2, "Kerberos error: %s", krb_err_txt[status]);
- }
- if (realm[0])
- realm_given++;
- else
- if (krb_get_lrealm(realm, 1) != KSUCCESS)
- strcpy(realm, KRB_REALM);
- }
-
- if(uname) {
- if (k_isname(uname)) {
- strncpy(name, uname, sizeof(name) - 1);
- } else {
- errx(1, "bad name: %s", uname);
- }
- }
-
- if(iflag) {
- if (k_isinst(iflag)) {
- strncpy(inst, iflag, sizeof(inst) - 1);
- } else {
- errx(1, "bad instance: %s", iflag);
- }
- }
-
- if(rflag) {
- if (k_isrealm(rflag)) {
- strncpy(realm, rflag, sizeof(realm) - 1);
- realm_given++;
- } else {
- errx(1, "bad realm: %s", rflag);
- }
- }
-
- if(uname || iflag || rflag || uflag) use_default = 0;
-
- if (use_default) {
- strcpy(name, default_name);
- strcpy(inst, default_inst);
- strcpy(realm, default_realm);
- } else {
- if (!name[0])
- strcpy(name, default_name);
- if (!realm[0])
- strcpy(realm, default_realm);
- }
-
- (void) sprintf(tktstring, "/tmp/tkt_cpw_%d",getpid());
- krb_set_tkt_string(tktstring);
-
- get_pw_new_key(new_key, name, inst, realm, realm_given);
-
- if ((status = kadm_init_link("changepw", KRB_MASTER, realm))
- != KADM_SUCCESS)
- com_err("kpasswd", status, "while initializing");
- else if ((status = kadm_change_pw(new_key)) != KADM_SUCCESS)
- com_err("kpasswd", status, " attempting to change password.");
-
- if (status != KADM_SUCCESS)
- fprintf(stderr,"Password NOT changed.\n");
- else
- printf("Password changed.\n");
-
- (void) dest_tkt();
- if (status)
- exit(2);
- else
- exit(0);
-}
-
-void get_pw_new_key(new_key, name, inst, realm, print_realm)
- des_cblock new_key;
- char *name;
- char *inst;
- char *realm;
- int print_realm; /* True if realm was give on cmdline */
-{
- char ppromp[40+ANAME_SZ+INST_SZ+REALM_SZ]; /* for the password prompt */
- char pword[MAX_KPW_LEN]; /* storage for the password */
- char npromp[40+ANAME_SZ+INST_SZ+REALM_SZ]; /* for the password prompt */
-
- char local_realm[REALM_SZ];
- int status;
-
- /*
- * We don't care about failure; this is to determine whether or
- * not to print the realm in the prompt for a new password.
- */
- (void) krb_get_lrealm(local_realm, 1);
-
- if (strcmp(local_realm, realm))
- print_realm++;
-
- (void) sprintf(ppromp,"Old password for %s%s%s%s%s:",
- name, *inst ? "." : "", inst,
- print_realm ? "@" : "", print_realm ? realm : "");
- if (read_long_pw_string(pword, sizeof(pword)-1, ppromp, 0)) {
- fprintf(stderr, "Error reading old password.\n");
- exit(1);
- }
-
- if ((status = krb_get_pw_in_tkt(name, inst, realm, PWSERV_NAME,
- KADM_SINST, 1, pword)) != KSUCCESS) {
- if (status == INTK_BADPW) {
- printf("Incorrect old password.\n");
- exit(0);
- }
- else {
- fprintf(stderr, "Kerberos error: %s\n", krb_err_txt[status]);
- exit(1);
- }
- }
- bzero(pword, sizeof(pword));
- do {
- (void) sprintf(npromp,"New Password for %s%s%s%s%s:",
- name, *inst ? "." : "", inst,
- print_realm ? "@" : "", print_realm ? realm : "");
- if (read_long_pw_string(pword, sizeof(pword)-1, npromp, 1))
- go_home("Error reading new password, password unchanged.\n",0);
- if (strlen(pword) == 0)
- printf("Null passwords are not allowed; try again.\n");
- } while (strlen(pword) == 0);
-
-#ifdef NOENCRYPTION
- bzero((char *) new_key, sizeof(des_cblock));
- new_key[0] = (unsigned char) 1;
-#else
- (void) des_string_to_key(pword, (des_cblock *)new_key);
-#endif
- bzero(pword, sizeof(pword));
-}
-
-static void
-go_home(str,x)
- char *str;
- int x;
-{
- fprintf(stderr, str, x);
- (void) dest_tkt();
- exit(1);
-}
diff --git a/crypto/kerberosIV/kadmin/ksrvutil.c b/crypto/kerberosIV/kadmin/ksrvutil.c
deleted file mode 100644
index 108481c0dfef..000000000000
--- a/crypto/kerberosIV/kadmin/ksrvutil.c
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * list and update contents of srvtab files
- */
-
-/*
- * ksrvutil
- * list and update the contents of srvtab files
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: ksrvutil.c,v 1.39 1997/05/02 14:28:52 assar Exp $");
-
-#include "ksrvutil.h"
-
-#ifdef NOENCRYPTION
-#define read_long_pw_string placebo_read_pw_string
-#else /* NOENCRYPTION */
-#define read_long_pw_string des_read_pw_string
-#endif /* NOENCRYPTION */
-
-#define SRVTAB_MODE 0600 /* rw------- */
-#define PAD " "
-#define VNO_HEADER "Version"
-#define VNO_FORMAT "%4d "
-#define KEY_HEADER " Key " /* 17 characters long */
-#define PRINC_HEADER " Principal\n"
-#define PRINC_FORMAT "%s"
-
-char u_name[ANAME_SZ];
-char u_inst[INST_SZ];
-char u_realm[REALM_SZ];
-
-int destroyp = FALSE; /* Should the ticket file be destroyed? */
-
-static unsigned short
-get_mode(char *filename)
-{
- struct stat statbuf;
- unsigned short mode;
-
- memset(&statbuf, 0, sizeof(statbuf));
-
- if (stat(filename, &statbuf) < 0)
- mode = SRVTAB_MODE;
- else
- mode = statbuf.st_mode;
-
- return(mode);
-}
-
-static void
-copy_keyfile(char *keyfile, char *backup_keyfile)
-{
- int keyfile_fd;
- int backup_keyfile_fd;
- int keyfile_mode;
- char buf[BUFSIZ]; /* for copying keyfiles */
- int rcount; /* for copying keyfiles */
- int try_again;
-
- memset(buf, 0, sizeof(buf));
-
- do {
- try_again = FALSE;
- if ((keyfile_fd = open(keyfile, O_RDONLY, 0)) < 0) {
- if (errno != ENOENT)
- err (1, "read %s", keyfile);
- else {
- try_again = TRUE;
- if ((keyfile_fd =
- open(keyfile,
- O_WRONLY | O_TRUNC | O_CREAT, SRVTAB_MODE)) < 0)
- err(1, "create %s", keyfile);
- else
- if (close(keyfile_fd) < 0)
- err (1, "close %s", keyfile);
- }
- }
- } while(try_again);
-
- keyfile_mode = get_mode(keyfile);
-
- if ((backup_keyfile_fd =
- open(backup_keyfile, O_WRONLY | O_TRUNC | O_CREAT,
- keyfile_mode)) < 0)
- err (1, "write %s", backup_keyfile);
- do {
- if ((rcount = read(keyfile_fd, buf, sizeof(buf))) < 0)
- err (1, "read %s", keyfile);
- if (rcount && (write(backup_keyfile_fd, buf, rcount) != rcount))
- err (1, "write %s", backup_keyfile);
- } while (rcount);
- if (close(backup_keyfile_fd) < 0)
- err(1, "close %s", backup_keyfile);
- if (close(keyfile_fd) < 0)
- err(1, "close %s", keyfile);
-}
-
-void
-leave(char *str, int x)
-{
- if (str)
- fprintf(stderr, "%s\n", str);
- if (destroyp)
- dest_tkt();
- exit(x);
-}
-
-void
-safe_read_stdin(char *prompt, char *buf, size_t size)
-{
- printf("%s", prompt);
- fflush(stdout);
- memset(buf, 0, size);
- if (read(0, buf, size - 1) < 0) {
- warn("read stdin");
- leave(NULL, 1);
- }
- buf[strlen(buf)-1] = 0;
-}
-
-void
-safe_write(char *filename, int fd, void *buf, size_t len)
-{
- if (write(fd, buf, len) != len) {
- warn("write %s", filename);
- close(fd);
- leave("In progress srvtab in this file.", 1);
- }
-}
-
-static int
-yes_no(char *string, int dflt)
-{
- char ynbuf[5];
-
- printf("%s (y,n) [%c]", string, dflt?'y':'n');
- for (;;) {
- safe_read_stdin("", ynbuf, sizeof(ynbuf));
-
- if ((ynbuf[0] == 'n') || (ynbuf[0] == 'N'))
- return(0);
- else if ((ynbuf[0] == 'y') || (ynbuf[0] == 'Y'))
- return(1);
- else if(ynbuf[0] == 0)
- return dflt;
- else {
- printf("Please enter 'y' or 'n': ");
- fflush(stdout);
- }
- }
-}
-
-int yn(char *string)
-{
- return yes_no(string, 1);
-}
-
-int ny(char *string)
-{
- return yes_no(string, 0);
-}
-
-static void
-append_srvtab(char *filename, int fd, char *sname, char *sinst, char *srealm, unsigned char key_vno, unsigned char *key)
-{
- /* Add one to append null */
- safe_write(filename, fd, sname, strlen(sname) + 1);
- safe_write(filename, fd, sinst, strlen(sinst) + 1);
- safe_write(filename, fd, srealm, strlen(srealm) + 1);
- safe_write(filename, fd, &key_vno, 1);
- safe_write(filename, fd, key, sizeof(des_cblock));
- fsync(fd);
-}
-
-static void
-print_key(unsigned char *key)
-{
- int i;
-
- for (i = 0; i < 4; i++)
- printf("%02x", key[i]);
- printf(" ");
- for (i = 4; i < 8; i++)
- printf("%02x", key[i]);
-}
-
-static void
-print_name(char *name, char *inst, char *realm)
-{
- printf("%s", krb_unparse_name_long(name, inst, realm));
-}
-
-static int
-get_svc_new_key(des_cblock *new_key, char *sname, char *sinst,
- char *srealm, char *keyfile)
-{
- int status = KADM_SUCCESS;
-
- if (((status = krb_get_svc_in_tkt(sname, sinst, srealm, PWSERV_NAME,
- KADM_SINST, 1, keyfile)) == KSUCCESS) &&
- ((status = kadm_init_link(PWSERV_NAME, KRB_MASTER, srealm)) ==
- KADM_SUCCESS)) {
-#ifdef NOENCRYPTION
- memset(new_key, 0, sizeof(des_cblock));
- (*new_key)[0] = (unsigned char) 1;
-#else /* NOENCRYPTION */
- des_new_random_key(new_key);
-#endif /* NOENCRYPTION */
- return(KADM_SUCCESS);
- }
-
- return(status);
-}
-
-static void
-get_key_from_password(des_cblock (*key), char *cellname)
-{
- char password[MAX_KPW_LEN]; /* storage for the password */
-
- if (read_long_pw_string(password, sizeof(password)-1, "Password: ", 1))
- leave("Error reading password.", 1);
-
-#ifdef NOENCRYPTION
- memset(key, 0, sizeof(des_cblock));
- (*key)[0] = (unsigned char) 1;
-#else /* NOENCRYPTION */
- if (strlen(cellname) == 0)
- des_string_to_key(password, key);
- else
- afs_string_to_key(password, cellname, key);
-#endif /* NOENCRYPTION */
- memset(password, 0, sizeof(password));
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: ksrvutil [-f keyfile] [-i] [-k] ");
- fprintf(stderr, "[-p principal] [-r realm] ");
- fprintf(stderr, "[-c AFS cellname] ");
- fprintf(stderr, "{list | change | add | get}\n");
- fprintf(stderr, " -i causes the program to ask for ");
- fprintf(stderr, "confirmation before changing keys.\n");
- fprintf(stderr, " -k causes the key to printed for list or ");
- fprintf(stderr, "change.\n");
- exit(1);
-}
-
-int
-main(int argc, char **argv)
-{
- char sname[ANAME_SZ]; /* name of service */
- char sinst[INST_SZ]; /* instance of service */
- char srealm[REALM_SZ]; /* realm of service */
- unsigned char key_vno; /* key version number */
- int status; /* general purpose error status */
- des_cblock new_key;
- des_cblock old_key;
- char change_tkt[MaxPathLen]; /* Ticket to use for key change */
- char keyfile[MaxPathLen]; /* Original keyfile */
- char work_keyfile[MaxPathLen]; /* Working copy of keyfile */
- char backup_keyfile[MaxPathLen]; /* Backup copy of keyfile */
- unsigned short keyfile_mode; /* Protections on keyfile */
- int work_keyfile_fd = -1; /* Initialize so that */
- int backup_keyfile_fd = -1; /* compiler doesn't complain */
- char local_realm[REALM_SZ]; /* local kerberos realm */
- char cellname[1024]; /* AFS cell name */
- int c;
- int interactive = FALSE;
- int list = FALSE;
- int change = FALSE;
- int add = FALSE;
- int get = FALSE;
- int key = FALSE; /* do we show keys? */
- int arg_entered = FALSE;
- int change_this_key = FALSE;
- char databuf[BUFSIZ];
- int first_printed = FALSE; /* have we printed the first item? */
-
- memset(sname, 0, sizeof(sname));
- memset(sinst, 0, sizeof(sinst));
- memset(srealm, 0, sizeof(srealm));
-
- memset(change_tkt, 0, sizeof(change_tkt));
- memset(keyfile, 0, sizeof(keyfile));
- memset(work_keyfile, 0, sizeof(work_keyfile));
- memset(backup_keyfile, 0, sizeof(backup_keyfile));
- memset(local_realm, 0, sizeof(local_realm));
- memset(cellname, 0, sizeof(cellname));
-
- set_progname (argv[0]);
-
- if (krb_get_default_principal(u_name, u_inst, u_realm) < 0)
- errx (1, "could not get default principal");
-
- /* This is used only as a default for adding keys */
- if (krb_get_lrealm(local_realm, 1) != KSUCCESS)
- strcpy(local_realm, KRB_REALM);
-
- while((c = getopt(argc, argv, "ikc:f:p:r:")) != EOF) {
- switch (c) {
- case 'i':
- interactive++;
- break;
- case 'k':
- key++;
- break;
- case 'c':
- strcpy(cellname, optarg);
- break;
- case 'f':
- strcpy(keyfile, optarg);
- break;
- case 'p':
- if((status = kname_parse (u_name, u_inst, u_realm, optarg)) !=
- KSUCCESS)
- errx (1, "principal %s: %s", optarg,
- krb_get_err_text(status));
- break;
- case 'r':
- strcpy(u_realm, optarg);
- break;
- case '?':
- usage();
- }
- }
- if (optind >= argc)
- usage();
- if (*u_realm == '\0')
- strcpy (u_realm, local_realm);
- if (strcmp(argv[optind], "list") == 0) {
- if (arg_entered)
- usage();
- else {
- arg_entered++;
- list++;
- }
- }
- else if (strcmp(argv[optind], "change") == 0) {
- if (arg_entered)
- usage();
- else {
- arg_entered++;
- change++;
- }
- }
- else if (strcmp(argv[optind], "add") == 0) {
- if (arg_entered)
- usage();
- else {
- arg_entered++;
- add++;
- }
- }
- else if (strcmp(argv[optind], "get") == 0) {
- if (arg_entered)
- usage();
- else {
- arg_entered++;
- get++;
- }
- }
- else
- usage();
- ++optind;
-
- if (!arg_entered)
- usage();
-
- if (!keyfile[0])
- strcpy(keyfile, KEYFILE);
-
- strcpy(work_keyfile, keyfile);
- strcpy(backup_keyfile, keyfile);
-
- if (change || add || get) {
- strcat(work_keyfile, ".work");
- strcat(backup_keyfile, ".old");
-
- copy_keyfile(keyfile, backup_keyfile);
- }
-
- if (add || get)
- copy_keyfile(backup_keyfile, work_keyfile);
-
- keyfile_mode = get_mode(keyfile);
-
- if (change || list)
- if ((backup_keyfile_fd = open(backup_keyfile, O_RDONLY, 0)) < 0)
- err (1, "open %s", backup_keyfile);
-
- if (change) {
- if ((work_keyfile_fd =
- open(work_keyfile, O_WRONLY | O_CREAT | O_TRUNC,
- SRVTAB_MODE)) < 0)
- err (1, "creat %s", work_keyfile);
- }
- else if (add) {
- if ((work_keyfile_fd =
- open(work_keyfile, O_APPEND | O_WRONLY, SRVTAB_MODE)) < 0)
- err (1, "open with append %s", work_keyfile );
- }
- else if (get) {
- if ((work_keyfile_fd =
- open(work_keyfile, O_RDWR | O_CREAT, SRVTAB_MODE)) < 0)
- err (1, "open for writing %s", work_keyfile);
- }
-
- if (change || list) {
- while ((getst(backup_keyfile_fd, sname, SNAME_SZ) > 0) &&
- (getst(backup_keyfile_fd, sinst, INST_SZ) > 0) &&
- (getst(backup_keyfile_fd, srealm, REALM_SZ) > 0) &&
- (read(backup_keyfile_fd, &key_vno, 1) > 0) &&
- (read(backup_keyfile_fd, old_key, sizeof(old_key)) > 0)) {
- if (list) {
- if (!first_printed) {
- printf(VNO_HEADER);
- printf(PAD);
- if (key) {
- printf(KEY_HEADER);
- printf(PAD);
- }
- printf(PRINC_HEADER);
- first_printed = 1;
- }
- printf(VNO_FORMAT, key_vno);
- printf(PAD);
- if (key) {
- print_key(old_key);
- printf(PAD);
- }
- print_name(sname, sinst, srealm);
- printf("\n");
- }
- else if (change) {
- snprintf(change_tkt, sizeof(change_tkt),
- TKT_ROOT "_ksrvutil.%u",
- (unsigned)getpid());
- krb_set_tkt_string(change_tkt);
- destroyp = TRUE;
-
- printf("\nPrincipal: ");
- print_name(sname, sinst, srealm);
- printf("; version %d\n", key_vno);
- if (interactive)
- change_this_key = yn("Change this key?");
- else if (change)
- change_this_key = 1;
- else
- change_this_key = 0;
-
- if (change_this_key)
- printf("Changing to version %d.\n", key_vno + 1);
- else if (change)
- printf("Not changing this key.\n");
-
- if (change_this_key) {
- /*
- * This is not a good choice of seed when/if the
- * key has been compromised so we also use a
- * random sequence number!
- */
- des_init_random_number_generator(&old_key);
- {
- des_cblock seqnum;
- des_generate_random_block(&seqnum);
- des_set_sequence_number((unsigned char *)&seqnum);
- }
- /*
- * Pick a new key and determine whether or not
- * it is safe to change
- */
- if ((status =
- get_svc_new_key(&new_key, sname, sinst,
- srealm, keyfile)) == KADM_SUCCESS)
- key_vno++;
- else {
- memcpy(new_key, old_key, sizeof(new_key));
- warnx ("Key NOT changed: %s\n",
- krb_get_err_text(status));
- change_this_key = FALSE;
- }
- }
- else
- memcpy(new_key, old_key, sizeof(new_key));
- append_srvtab(work_keyfile, work_keyfile_fd,
- sname, sinst, srealm, key_vno, new_key);
- if (key && change_this_key) {
- printf("Old key: ");
- print_key(old_key);
- printf("; new key: ");
- print_key(new_key);
- printf("\n");
- }
- if (change_this_key) {
- if ((status = kadm_change_pw(new_key)) == KADM_SUCCESS) {
- printf("Key changed.\n");
- dest_tkt();
- }
- else {
- com_err(__progname, status,
- " attempting to change password.");
- dest_tkt();
- /* XXX This knows the format of a keyfile */
- if (lseek(work_keyfile_fd, -9, SEEK_CUR) >= 0) {
- key_vno--;
- safe_write(work_keyfile,
- work_keyfile_fd, &key_vno, 1);
- safe_write(work_keyfile, work_keyfile_fd,
- old_key, sizeof(des_cblock));
- fsync(work_keyfile_fd);
- fprintf(stderr,"Key NOT changed.\n");
- } else {
- warn ("Unable to revert keyfile");
- leave("", 1);
- }
- }
- }
- }
- memset(old_key, 0, sizeof(des_cblock));
- memset(new_key, 0, sizeof(des_cblock));
- }
- }
- else if (add) {
- do {
- do {
- safe_read_stdin("Name: ", databuf, sizeof(databuf));
- strncpy(sname, databuf, sizeof(sname) - 1);
- if (strchr(sname, '.') != 0) {
- strcpy(sinst, strchr(sname, '.') + 1);
- *(strchr(sname, '.')) = 0;
- } else {
- safe_read_stdin("Instance: ", databuf, sizeof(databuf));
- strncpy(sinst, databuf, sizeof(sinst) - 1);
- }
- safe_read_stdin("Realm: ", databuf, sizeof(databuf));
- strncpy(srealm, databuf, sizeof(srealm) - 1);
- safe_read_stdin("Version number: ", databuf, sizeof(databuf));
- key_vno = atoi(databuf);
- if (key_vno == 0)
- key_vno = 1; /* Version numbers are never 0 */
- if (!srealm[0])
- strcpy(srealm, local_realm);
- printf("New principal: ");
- print_name(sname, sinst, srealm);
- printf("; version %d\n", key_vno);
- } while (!yn("Is this correct?"));
- get_key_from_password(&new_key, cellname);
- if (key) {
- printf("Key: ");
- print_key(new_key);
- printf("\n");
- }
- append_srvtab(work_keyfile, work_keyfile_fd,
- sname, sinst, srealm, key_vno, new_key);
- printf("Key successfully added.\n");
- } while (yn("Would you like to add another key?"));
- }
- else if (get) {
- ksrvutil_get(work_keyfile_fd, work_keyfile,
- argc - optind, argv + optind);
- }
-
- if (change || list)
- if (close(backup_keyfile_fd) < 0)
- warn ("close %s", backup_keyfile);
-
- if (change || add || get) {
- if (close(work_keyfile_fd) < 0)
- err (1, "close %s", work_keyfile);
- if (rename(work_keyfile, keyfile) < 0)
- err (1, "rename(%s, %s)", work_keyfile, keyfile);
- chmod(backup_keyfile, keyfile_mode);
- chmod(keyfile, keyfile_mode);
- printf("Old keyfile in %s.\n", backup_keyfile);
- }
- return 0;
-}
diff --git a/crypto/kerberosIV/kadmin/ksrvutil.h b/crypto/kerberosIV/kadmin/ksrvutil.h
deleted file mode 100644
index 64e2fe4c2e50..000000000000
--- a/crypto/kerberosIV/kadmin/ksrvutil.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: ksrvutil.h,v 1.8 1997/04/01 03:58:55 assar Exp $
- *
- */
-
-extern char u_name[], u_inst[], u_realm[];
-extern int destroyp;
-
-void leave(char *str, int x);
-void safe_read_stdin(char *prompt, char *buf, size_t size);
-void safe_write(char *filename, int fd, void *buf, size_t len);
-
-int yn(char *string);
-int ny(char *string);
-
-void ksrvutil_get(int fd, char *filename, int argc, char **argv);
diff --git a/crypto/kerberosIV/kadmin/ksrvutil_get.c b/crypto/kerberosIV/kadmin/ksrvutil_get.c
deleted file mode 100644
index 7b97d35088af..000000000000
--- a/crypto/kerberosIV/kadmin/ksrvutil_get.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kadm_locl.h"
-#include "ksrvutil.h"
-
-RCSID("$Id: ksrvutil_get.c,v 1.32 1997/05/05 21:14:57 assar Exp $");
-
-#define BAD_PW 1
-#define GOOD_PW 0
-#define FUDGE_VALUE 15 /* for ticket expiration time */
-#define PE_NO 0
-#define PE_YES 1
-#define PE_UNSURE 2
-
-static char tktstring[128];
-
-static int
-princ_exists(char *name, char *instance, char *realm)
-{
- int status;
-
- status = krb_get_pw_in_tkt(name, instance, realm,
- KRB_TICKET_GRANTING_TICKET,
- realm, 1, "");
-
- if ((status == KSUCCESS) || (status == INTK_BADPW))
- return(PE_YES);
- else if (status == KDC_PR_UNKNOWN)
- return(PE_NO);
- else
- return(PE_UNSURE);
-}
-
-static int
-get_admin_password(char *myname, char *myinst, char *myrealm)
-{
- int status;
- char admin_passwd[MAX_KPW_LEN]; /* Admin's password */
- int ticket_life = 1; /* minimum ticket lifetime */
- char buf[1024];
- CREDENTIALS c;
-
- if (princ_exists(myname, myinst, myrealm) != PE_NO) {
- snprintf(buf, sizeof(buf), "Password for %s: ",
- krb_unparse_name_long (myname, myinst, myrealm));
- if (des_read_pw_string(admin_passwd, sizeof(admin_passwd)-1,
- buf, 0)) {
- fprintf(stderr, "Error reading admin password.\n");
- goto bad;
- }
- status = krb_get_pw_in_tkt(myname, myinst, myrealm, PWSERV_NAME,
- KADM_SINST, ticket_life, admin_passwd);
- memset(admin_passwd, 0, sizeof(admin_passwd));
-
- /* Initialize non shared random sequence from session key. */
- memset(&c, 0, sizeof(c));
- krb_get_cred(PWSERV_NAME, KADM_SINST, myrealm, &c);
- des_init_random_number_generator(&c.session);
- }
- else
- status = KDC_PR_UNKNOWN;
-
- switch(status) {
- case GT_PW_OK:
- return(GOOD_PW);
- case KDC_PR_UNKNOWN:
- printf("Principal %s does not exist.\n",
- krb_unparse_name_long(myname, myinst, myrealm));
- goto bad;
- case GT_PW_BADPW:
- printf("Incorrect admin password.\n");
- goto bad;
- default:
- com_err("kadmin", status+krb_err_base,
- "while getting password tickets");
- goto bad;
- }
-
-bad:
- memset(admin_passwd, 0, sizeof(admin_passwd));
- dest_tkt();
- return(BAD_PW);
-}
-
-static void
-srvtab_put_key (int fd, char *filename, char *name, char *inst, char *realm,
- int8_t kvno, des_cblock key)
-{
- char sname[ANAME_SZ]; /* name of service */
- char sinst[INST_SZ]; /* instance of service */
- char srealm[REALM_SZ]; /* realm of service */
- int8_t skvno;
- des_cblock skey;
-
- lseek(fd, 0, SEEK_SET);
-
- while(getst(fd, sname, SNAME_SZ) > 0 &&
- getst(fd, sinst, INST_SZ) > 0 &&
- getst(fd, srealm, REALM_SZ) > 0 &&
- read(fd, &skvno, sizeof(skvno)) > 0 &&
- read(fd, skey, sizeof(skey)) > 0) {
- if(strcmp(name, sname) == 0 &&
- strcmp(inst, sinst) == 0 &&
- strcmp(realm, srealm) == 0) {
- lseek(fd, lseek(fd,0,SEEK_CUR)-(sizeof(skvno) + sizeof(skey)), SEEK_SET);
- safe_write(filename, fd, &kvno, sizeof(kvno));
- safe_write(filename, fd, key, sizeof(des_cblock));
- return;
- }
- }
- safe_write(filename, fd, name, strlen(name) + 1);
- safe_write(filename, fd, inst, strlen(inst) + 1);
- safe_write(filename, fd, realm, strlen(realm) + 1);
- safe_write(filename, fd, &kvno, sizeof(kvno));
- safe_write(filename, fd, key, sizeof(des_cblock));
-}
-
-/*
- * node list of services
- */
-
-struct srv_ent{
- char name[SNAME_SZ];
- char inst[INST_SZ];
- char realm[REALM_SZ];
- struct srv_ent *next;
-};
-
-static int
-key_to_key(char *user, char *instance, char *realm, void *arg,
- des_cblock *key)
-{
- memcpy(key, arg, sizeof(des_cblock));
- return 0;
-}
-
-static void
-get_srvtab_ent(int fd, char *filename, char *name, char *inst, char *realm)
-{
- char chname[128];
- des_cblock newkey;
- char old_tktfile[MaxPathLen], new_tktfile[MaxPathLen];
- char garbage_name[ANAME_SZ];
- char garbage_inst[ANAME_SZ];
- CREDENTIALS c;
- u_int8_t kvno;
- Kadm_vals values;
- int ret;
-
- strncpy(chname, krb_get_phost(inst), sizeof(chname));
- if(strcmp(inst, chname))
- fprintf(stderr,
- "Warning: Are you sure `%s' should not be `%s'?\n",
- inst, chname);
-
- memset(&values, 0, sizeof(values));
- strcpy(values.name, name);
- strcpy(values.instance, inst);
- des_new_random_key(&newkey);
- values.key_low = (newkey[0] << 24) | (newkey[1] << 16)
- | (newkey[2] << 8) | (newkey[3] << 0);
- values.key_high = (newkey[4] << 24) | (newkey[5] << 16)
- | (newkey[6] << 8) | (newkey[7] << 0);
-
- SET_FIELD(KADM_NAME,values.fields);
- SET_FIELD(KADM_INST,values.fields);
- SET_FIELD(KADM_DESKEY,values.fields);
-
- ret = kadm_mod(&values, &values);
- if(ret == KADM_NOENTRY)
- ret = kadm_add(&values);
- if (ret != KSUCCESS) {
- warnx ("Couldn't get srvtab entry for %s.%s: %s",
- name, inst, error_message(ret));
- return;
- }
-
- values.key_low = values.key_high = 0;
-
- /* get the key version number */
-
- strcpy(old_tktfile, tkt_string());
- snprintf(new_tktfile, sizeof(new_tktfile),
- TKT_ROOT "_ksrvutil-get.%u",
- (unsigned)getpid());
- krb_set_tkt_string(new_tktfile);
-
- ret = krb_get_in_tkt(name, inst, realm, name, inst,
- 1, key_to_key, NULL, &newkey);
-
- if (ret == KSUCCESS &&
- (ret = tf_init(tkt_string(), R_TKT_FIL)) == KSUCCESS &&
- (ret = tf_get_pname(garbage_name)) == KSUCCESS &&
- (ret = tf_get_pinst(garbage_inst)) == KSUCCESS &&
- (ret = tf_get_cred(&c)) == KSUCCESS)
- kvno = c.kvno;
- else {
- warnx ("Could not find the cred in the ticket file");
- return;
- }
-
- tf_close();
- krb_set_tkt_string(old_tktfile);
- unlink(new_tktfile);
-
- if(ret != KSUCCESS) {
- memset(&newkey, 0, sizeof(newkey));
- warnx ("Could not get a ticket for %s: %s\n",
- krb_unparse_name_long(name, inst, realm),
- krb_get_err_text(ret));
- return;
- }
-
- /* Write the new key & c:o to the srvtab file */
-
- srvtab_put_key (fd, filename, name, inst, realm, kvno, newkey);
- memset(&newkey, 0, sizeof(newkey));
-
- fprintf (stderr, "Added %s\n", krb_unparse_name_long (name, inst, realm));
-}
-
-static void
-ksrvutil_kadm(int fd, char *filename, struct srv_ent *p)
-{
- int ret;
- CREDENTIALS c;
-
- ret = kadm_init_link(PWSERV_NAME, KADM_SINST, u_realm);
- if (ret != KADM_SUCCESS) {
- warnx("Couldn't initialize kadmin link: %s", error_message(ret));
- leave(NULL, 1);
- }
-
- ret = krb_get_cred (PWSERV_NAME, KADM_SINST, u_realm, &c);
- if (ret == KSUCCESS)
- des_init_random_number_generator (&c.session);
- else {
- umask(077);
-
- /*
- * create ticket file and get admin tickets
- */
- snprintf(tktstring, sizeof(tktstring), TKT_ROOT "_ksrvutil_%d", (int)getpid());
- krb_set_tkt_string(tktstring);
- destroyp = TRUE;
-
- ret = get_admin_password(u_name, u_inst, u_realm);
- if (ret) {
- warnx("Couldn't get admin password.");
- leave(NULL, 1);
- }
- }
- for(;p;){
- get_srvtab_ent(fd, filename, p->name, p->inst, p->realm);
- p=p->next;
- }
- unlink(tktstring);
-}
-
-static void
-parseinput (char *result, size_t sz, char *val, char *def)
-{
- char *lim;
- int inq;
-
- if (val[0] == '\0') {
- strncpy (result, def, sz-1);
- return;
- }
- lim = result + sz - 1;
- inq = 0;
- while(*val && result < lim) {
- switch(*val) {
- case '\'' :
- inq = !inq;
- ++val;
- break;
- case '\\' :
- if(!inq)
- val++;
- default:
- *result++ = *val++;
- break;
- }
- }
- *result = '\0';
-}
-
-void
-ksrvutil_get(int fd, char *filename, int argc, char **argv)
-{
- char sname[ANAME_SZ]; /* name of service */
- char sinst[INST_SZ]; /* instance of service */
- char srealm[REALM_SZ]; /* realm of service */
- char databuf[BUFSIZ];
- char local_hostname[100];
- char prompt[100];
- struct srv_ent *head=NULL;
- int i;
-
- k_gethostname(local_hostname, sizeof(local_hostname));
- strcpy(local_hostname, krb_get_phost(local_hostname));
-
- if (argc)
- for(i=0; i < argc; ++i) {
- struct srv_ent *p=malloc(sizeof(*p));
-
- if(p == NULL) {
- warnx ("out of memory in malloc");
- leave(NULL,1);
- }
- p->next = head;
- strcpy (p->realm, u_realm);
- if (kname_parse (p->name, p->inst, p->realm, argv[i]) !=
- KSUCCESS) {
- warnx ("parse error on '%s'\n", argv[i]);
- free(p);
- continue;
- }
- if (p->name[0] == '\0')
- strcpy(p->name, "rcmd");
- if (p->inst[0] == '\0')
- strcpy(p->inst, local_hostname);
- if (p->realm[0] == '\0')
- strcpy(p->realm, u_realm);
- head = p;
- }
-
- else
- do{
- safe_read_stdin("Name [rcmd]: ", databuf, sizeof(databuf));
- parseinput (sname, sizeof(sname), databuf, "rcmd");
-
- snprintf(prompt, sizeof(prompt), "Instance [%s]: ", local_hostname);
- safe_read_stdin(prompt, databuf, sizeof(databuf));
- parseinput (sinst, sizeof(sinst), databuf, local_hostname);
-
- snprintf(prompt, sizeof(prompt), "Realm [%s]: ", u_realm);
- safe_read_stdin(prompt, databuf, sizeof(databuf));
- parseinput (srealm, sizeof(srealm), databuf, u_realm);
-
- if(yn("Is this correct?")){
- struct srv_ent *p=(struct srv_ent*)malloc(sizeof(struct srv_ent));
- p->next=head;
- head=p;
- strcpy(p->name, sname);
- strcpy(p->inst, sinst);
- strcpy(p->realm, srealm);
- }
- }while(ny("Add more keys?"));
-
-
- ksrvutil_kadm(fd, filename, head);
-
- {
- struct srv_ent *p=head, *q;
- while(p){
- q=p;
- p=p->next;
- free(q);
- }
- }
-
-}
diff --git a/crypto/kerberosIV/kadmin/new_pwd.c b/crypto/kerberosIV/kadmin/new_pwd.c
deleted file mode 100644
index 88fb7a9b33be..000000000000
--- a/crypto/kerberosIV/kadmin/new_pwd.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kadm_locl.h"
-
-RCSID("$Id: new_pwd.c,v 1.11 1997/05/02 14:28:54 assar Exp $");
-
-#ifdef NOENCRYPTION
-#define read_long_pw_string placebo_read_pw_string
-#else
-#define read_long_pw_string des_read_pw_string
-#endif
-
-static char *
-check_pw (char *pword)
-{
- if (strlen(pword) == 0)
- return "Null passwords are not allowed - Please enter a longer password.";
-
- if (strlen(pword) < MIN_KPW_LEN)
- return "Password is to short - Please enter a longer password.";
-
- /* Don't allow all lower case passwords regardless of length */
- {
- char *t;
- for (t = pword; *t && islower(*t); t++)
- ;
- if (*t == 0)
- return "Please don't use an all-lower case password.\n"
- "\tUnusual capitalization, delimiter characters or "
- "digits are suggested.";
- }
-
- return NULL;
-}
-
-int
-get_pw_new_pwd(char *pword, int pwlen, krb_principal *pr, int print_realm)
-{
- char ppromp[40+ANAME_SZ+INST_SZ+REALM_SZ]; /* for the password prompt */
- char npromp[40+ANAME_SZ+INST_SZ+REALM_SZ]; /* for the password prompt */
-
- char p[MAX_K_NAME_SZ];
-
- char local_realm[REALM_SZ];
- int status;
- char *expl;
-
- /*
- * We don't care about failure; this is to determine whether or
- * not to print the realm in the prompt for a new password.
- */
- krb_get_lrealm(local_realm, 1);
-
- if (strcmp(local_realm, pr->realm))
- print_realm++;
-
- {
- char *q;
- krb_unparse_name_r(pr, p);
- if(print_realm == 0 && (q = strrchr(p, '@')))
- *q = 0;
- }
-
- snprintf(ppromp, sizeof(ppromp), "Old password for %s:", p);
- if (read_long_pw_string(pword, pwlen-1, ppromp, 0)) {
- fprintf(stderr, "Error reading old password.\n");
- return -1;
- }
-
- status = krb_get_pw_in_tkt(pr->name, pr->instance, pr->realm,
- PWSERV_NAME, KADM_SINST, 1, pword);
- if (status != KSUCCESS) {
- if (status == INTK_BADPW) {
- printf("Incorrect old password.\n");
- return -1;
- }
- else {
- fprintf(stderr, "Kerberos error: %s\n", krb_get_err_text(status));
- return -1;
- }
- }
- memset(pword, 0, pwlen);
-
- do {
- char verify[MAX_KPW_LEN];
- snprintf(npromp, sizeof(npromp), "New Password for %s:",p);
- if (read_long_pw_string(pword, pwlen-1, npromp, 0)) {
- fprintf(stderr,
- "Error reading new password, password unchanged.\n");
- return -1;
- }
- expl = check_pw (pword);
- if (expl) {
- printf("\n\t%s\n\n", expl);
- continue;
- }
- /* Now we got an ok password, verify it. */
- snprintf(npromp, sizeof(npromp), "Verifying New Password for %s:", p);
- if (read_long_pw_string(verify, MAX_KPW_LEN-1, npromp, 0)) {
- fprintf(stderr,
- "Error reading new password, password unchanged.\n");
- return -1;
- }
- if (strcmp(pword, verify) != 0) {
- printf("Verify failure - try again\n");
- expl = ""; /* continue */
- }
- } while (expl);
- return 0;
-}
diff --git a/crypto/kerberosIV/kadmin/pw_check.c b/crypto/kerberosIV/kadmin/pw_check.c
deleted file mode 100644
index ac6912b6fe97..000000000000
--- a/crypto/kerberosIV/kadmin/pw_check.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kadm_locl.h"
-
-RCSID("$Id: pw_check.c,v 1.13 1997/04/01 08:17:50 joda Exp $");
-
-/*
- * kadm_pw_check
- *
- * pw : new password or "" if none passed
- * newkey : key for pw as passed from client
- * strings : interesting strings to check for
- *
- * returns NULL if pw is ok, else an explanatory string
- */
-int
-kadm_pw_check(char *pw, des_cblock *newkey, char **pw_msg,
- char **strings)
-{
- des_cblock pwkey;
- int status=KADM_SUCCESS;
-
- if (pw == NULL || *pw == '\0')
- return status; /* XXX - Change this later */
-
-#ifndef NO_PW_CHECK
- *pw_msg = NULL;
- des_string_to_key(pw, &pwkey); /* Check AFS string to key also! */
- if (memcmp(pwkey, *newkey, sizeof(pwkey)) != 0)
- {
- /* no password or bad key */
- status=KADM_PW_MISMATCH;
- *pw_msg = "Password doesn't match supplied DES key";
- }
- else if (strlen(pw) < MIN_KPW_LEN)
- {
- status = KADM_INSECURE_PW;
- *pw_msg="Password is too short";
- }
-
-#ifdef DICTPATH
- *pw_msg = FascistCheck(pw, DICTPATH, strings);
- if (*pw_msg)
- return KADM_INSECURE_PW;
-#endif
-
- memset(pwkey, 0, sizeof(pwkey));
-#endif
-
- return status;
-}
diff --git a/crypto/kerberosIV/kadmin/pw_check.h b/crypto/kerberosIV/kadmin/pw_check.h
deleted file mode 100644
index c5a5d69eab60..000000000000
--- a/crypto/kerberosIV/kadmin/pw_check.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: pw_check.h,v 1.6 1997/04/01 08:17:50 joda Exp $
- */
-
-int kadm_pw_check(char *pw, des_cblock *newkey,
- char **pw_msg, char **strings);
-
diff --git a/crypto/kerberosIV/kuser/Makefile.in b/crypto/kerberosIV/kuser/Makefile.in
deleted file mode 100644
index aff8c19872d1..000000000000
--- a/crypto/kerberosIV/kuser/Makefile.in
+++ /dev/null
@@ -1,92 +0,0 @@
-# $Id: Makefile.in,v 1.23 1997/03/23 13:04:08 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-topdir = ..
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @LIBS@
-KRB_KAFS_LIB = @KRB_KAFS_LIB@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROGS = kinit$(EXECSUFFIX) \
- kdestroy$(EXECSUFFIX) \
- klist$(EXECSUFFIX)
-
-SOURCES = kinit.c kdestroy.c klist.c
-
-OBJECTS = kinit.o kdestroy.o klist.o
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(bindir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(bindir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-KLIB=-L../lib/krb -lkrb -L../lib/des -ldes
-LIBROKEN=-L../lib/roken -lroken
-
-kinit$(EXECSUFFIX): kinit.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kinit.o $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-kdestroy$(EXECSUFFIX): kdestroy.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kdestroy.o $(KRB_KAFS_LIB) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-klist$(EXECSUFFIX): klist.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ klist.o $(KRB_KAFS_LIB) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-# su move to appl/bsd
-
-$(OBJECTS): ../include/config.h
diff --git a/crypto/kerberosIV/kuser/kdestroy.c b/crypto/kerberosIV/kuser/kdestroy.c
deleted file mode 100644
index 2fe36c37fac7..000000000000
--- a/crypto/kerberosIV/kuser/kdestroy.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * This program causes Kerberos tickets to be destroyed.
- * Options are:
- *
- * -q[uiet] - no bell even if tickets not destroyed
- * -f[orce] - no message printed at all
- * -t - do not destroy tokens
- */
-
-#include "kuser_locl.h"
-#include <kafs.h>
-
-RCSID("$Id: kdestroy.c,v 1.8 1997/03/30 16:15:03 joda Exp $");
-
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: %s [-f] [-q] [-t]\n", __progname);
- exit(1);
-}
-
-int
-main(int argc, char **argv)
-{
- int fflag=0, tflag = 0, k_errno;
- int c;
-
- set_progname(argv[0]);
-
- while((c = getopt(argc, argv, "fqt")) >= 0){
- switch(c){
- case 'f':
- case 'q':
- fflag++;
- break;
- case 't':
- tflag++;
- break;
- default:
- usage();
- }
- }
- if(argc - optind > 0)
- usage();
-
- k_errno = dest_tkt();
-
- if(!tflag && k_hasafs())
- k_unlog();
-
- if (fflag) {
- if (k_errno != 0 && k_errno != RET_TKFIL)
- exit(1);
- else
- exit(0);
- } else {
- if (k_errno == 0)
- printf("Tickets destroyed.\n");
- else if (k_errno == RET_TKFIL)
- printf("No tickets to destroy.\n");
- else {
- printf("Tickets NOT destroyed.\n");
- exit(1);
- }
- }
- exit(0);
-}
diff --git a/crypto/kerberosIV/kuser/klist.c b/crypto/kerberosIV/kuser/klist.c
deleted file mode 100644
index faf7d6bd6a07..000000000000
--- a/crypto/kerberosIV/kuser/klist.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Lists your current Kerberos tickets.
- * Written by Bill Sommerfeld, MIT Project Athena.
- */
-
-#include "kuser_locl.h"
-
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-
-#ifdef HAVE_SYS_IOCCOM_H
-#include <sys/ioccom.h>
-#endif
-
-#include <kafs.h>
-
-RCSID("$Id: klist.c,v 1.28 1997/05/26 17:33:50 bg Exp $");
-
-static int option_verbose = 0;
-
-static char *
-short_date(int32_t dp)
-{
- char *cp;
- time_t t = (time_t)dp;
-
- if (t == (time_t)(-1L)) return "*** Never *** ";
- cp = ctime(&t) + 4;
- cp[15] = '\0';
- return (cp);
-}
-
-static void
-display_tktfile(char *file, int tgt_test, int long_form)
-{
- krb_principal pr;
- char buf1[20], buf2[20];
- int k_errno;
- CREDENTIALS c;
- int header = 1;
-
- if ((file == NULL) && ((file = getenv("KRBTKFILE")) == NULL))
- file = TKT_FILE;
-
- if (long_form)
- printf("Ticket file: %s\n", file);
-
- /*
- * Since krb_get_tf_realm will return a ticket_file error,
- * we will call tf_init and tf_close first to filter out
- * things like no ticket file. Otherwise, the error that
- * the user would see would be
- * klist: can't find realm of ticket file: No ticket file (tf_util)
- * instead of
- * klist: No ticket file (tf_util)
- */
-
- /* Open ticket file */
- if ((k_errno = tf_init(file, R_TKT_FIL))) {
- if (!tgt_test)
- warnx("%s", krb_get_err_text(k_errno));
- exit(1);
- }
- /* Close ticket file */
- tf_close();
-
- /*
- * We must find the realm of the ticket file here before calling
- * tf_init because since the realm of the ticket file is not
- * really stored in the principal section of the file, the
- * routine we use must itself call tf_init and tf_close.
- */
- if ((k_errno = krb_get_tf_realm(file, pr.realm)) != KSUCCESS) {
- if (!tgt_test)
- warnx("can't find realm of ticket file: %s",
- krb_get_err_text(k_errno));
- exit(1);
- }
-
- /* Open ticket file */
- if ((k_errno = tf_init(file, R_TKT_FIL))) {
- if (!tgt_test)
- warnx("%s", krb_get_err_text(k_errno));
- exit(1);
- }
- /* Get principal name and instance */
- if ((k_errno = tf_get_pname(pr.name)) ||
- (k_errno = tf_get_pinst(pr.instance))) {
- if (!tgt_test)
- warnx("%s", krb_get_err_text(k_errno));
- exit(1);
- }
-
- /*
- * You may think that this is the obvious place to get the
- * realm of the ticket file, but it can't be done here as the
- * routine to do this must open the ticket file. This is why
- * it was done before tf_init.
- */
-
- if (!tgt_test && long_form)
- printf("Principal:\t%s\n\n", krb_unparse_name(&pr));
- while ((k_errno = tf_get_cred(&c)) == KSUCCESS) {
- if (!tgt_test && long_form && header) {
- printf("%-15s %-15s %s%s\n",
- " Issued", " Expires", " Principal",
- option_verbose ? " (kvno)" : "");
- header = 0;
- }
- if (tgt_test) {
- c.issue_date = krb_life_to_time(c.issue_date, c.lifetime);
- if (!strcmp(c.service, KRB_TICKET_GRANTING_TICKET) &&
- !strcmp(c.instance, pr.realm)) {
- if (time(0) < c.issue_date)
- exit(0); /* tgt hasn't expired */
- else
- exit(1); /* has expired */
- }
- continue; /* not a tgt */
- }
- if (long_form) {
- strcpy(buf1, short_date(c.issue_date));
- c.issue_date = krb_life_to_time(c.issue_date, c.lifetime);
- if (time(0) < (unsigned long) c.issue_date)
- strcpy(buf2, short_date(c.issue_date));
- else
- strcpy(buf2, ">>> Expired <<<");
- printf("%s %s ", buf1, buf2);
- }
- printf("%s", krb_unparse_name_long(c.service, c.instance, c.realm));
- if(long_form && option_verbose)
- printf(" (%d)", c.kvno);
- printf("\n");
- }
- if (tgt_test)
- exit(1); /* no tgt found */
- if (header && long_form && k_errno == EOF) {
- printf("No tickets in file.\n");
- }
-}
-
-/* adapted from getst() in librkb */
-/*
- * ok_getst() takes a file descriptor, a string and a count. It reads
- * from the file until either it has read "count" characters, or until
- * it reads a null byte. When finished, what has been read exists in
- * the given string "s". If "count" characters were actually read, the
- * last is changed to a null, so the returned string is always null-
- * terminated. ok_getst() returns the number of characters read, including
- * the null terminator.
- *
- * If there is a read error, it returns -1 (like the read(2) system call)
- */
-
-static int
-ok_getst(int fd, char *s, int n)
-{
- int count = n;
- int err;
- while ((err = read(fd, s, 1)) > 0 && --count)
- if (*s++ == '\0')
- return (n - count);
- if (err < 0)
- return(-1);
- *s = '\0';
- return (n - count);
-}
-
-static void
-display_tokens()
-{
- u_int32_t i;
- unsigned char t[128];
- struct ViceIoctl parms;
- struct ClearToken ct;
- int size_secret_tok, size_public_tok;
-
- parms.in = (void *)&i;
- parms.in_size = sizeof(i);
- parms.out = (void *)t;
- parms.out_size = sizeof(t);
-
- for (i = 0; k_pioctl(NULL, VIOCGETTOK, &parms, 0) == 0; i++) {
- char *cell;
- memcpy(&size_secret_tok, t, 4);
- memcpy(&size_public_tok, t + 4 + size_secret_tok, 4);
- memcpy(&ct, t + 4 + size_secret_tok + 4, size_public_tok);
- cell = t + 4 + size_secret_tok + 4 + size_public_tok + 4;
-
- printf("%-15s ", short_date(ct.BeginTimestamp));
- printf("%-15s ", short_date(ct.EndTimestamp));
- if ((ct.EndTimestamp - ct.BeginTimestamp) & 1)
- printf("User's (AFS ID %d) tokens for %s", ct.ViceId, cell);
- else
- printf("Tokens for %s", cell);
- if (option_verbose)
- printf(" (%d)", ct.AuthHandle);
- putchar('\n');
- }
-}
-
-static void
-display_srvtab(char *file)
-{
- int stab;
- char serv[SNAME_SZ];
- char inst[INST_SZ];
- char rlm[REALM_SZ];
- unsigned char key[8];
- unsigned char vno;
- int count;
-
- printf("Server key file: %s\n", file);
-
- if ((stab = open(file, O_RDONLY, 0400)) < 0) {
- perror(file);
- exit(1);
- }
- printf("%-15s %-15s %-10s %s\n","Service","Instance","Realm",
- "Key Version");
- printf("------------------------------------------------------\n");
-
- /* argh. getst doesn't return error codes, it silently fails */
- while (((count = ok_getst(stab, serv, SNAME_SZ)) > 0)
- && ((count = ok_getst(stab, inst, INST_SZ)) > 0)
- && ((count = ok_getst(stab, rlm, REALM_SZ)) > 0)) {
- if (((count = read(stab, &vno,1)) != 1) ||
- ((count = read(stab, key,8)) != 8)) {
- if (count < 0)
- err(1, "reading from key file");
- else
- errx(1, "key file truncated");
- }
- printf("%-15s %-15s %-15s %d\n",serv,inst,rlm,vno);
- }
- if (count < 0)
- warn(file);
- close(stab);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "Usage: %s [ -v | -s | -t ] [ -f filename ] [-tokens] [-srvtab ]\n",
- __progname);
- exit(1);
-}
-
-/* ARGSUSED */
-int
-main(int argc, char **argv)
-{
- int long_form = 1;
- int tgt_test = 0;
- int do_srvtab = 0;
- int do_tokens = 0;
- char *tkt_file = NULL;
-
- set_progname(argv[0]);
-
- while (*(++argv)) {
- if (!strcmp(*argv, "-v")) {
- option_verbose = 1;
- continue;
- }
- if (!strcmp(*argv, "-s")) {
- long_form = 0;
- continue;
- }
- if (!strcmp(*argv, "-t")) {
- tgt_test = 1;
- long_form = 0;
- continue;
- }
- if (strcmp(*argv, "-tokens") == 0
- || strcmp(*argv, "-T") == 0) {
- do_tokens = k_hasafs();
- continue;
- }
- if (!strcmp(*argv, "-l")) { /* now default */
- continue;
- }
- if (!strncmp(*argv, "-f", 2)) {
- if (*(++argv)) {
- tkt_file = *argv;
- continue;
- } else
- usage();
- }
- if (!strcmp(*argv, "-srvtab")) {
- if (tkt_file == NULL) /* if no other file spec'ed,
- set file to default srvtab */
- tkt_file = KEYFILE;
- do_srvtab = 1;
- continue;
- }
- usage();
- }
-
- if (do_srvtab)
- display_srvtab(tkt_file);
- else
- display_tktfile(tkt_file, tgt_test, long_form);
- if (long_form && do_tokens)
- display_tokens();
- exit(0);
-}
diff --git a/crypto/kerberosIV/kuser/kuser_locl.h b/crypto/kerberosIV/kuser/kuser_locl.h
deleted file mode 100644
index 514a0ac5e597..000000000000
--- a/crypto/kerberosIV/kuser/kuser_locl.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kuser_locl.h,v 1.10 1997/05/20 18:40:43 bg Exp $ */
-
-#include "config.h"
-#include "protos.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <time.h>
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <err.h>
-
-#include <krb.h>
-#include <krb_db.h>
-#include <kadm.h>
-#include <prot.h>
diff --git a/crypto/kerberosIV/lib/Makefile.in b/crypto/kerberosIV/lib/Makefile.in
deleted file mode 100644
index b2e662c26e8f..000000000000
--- a/crypto/kerberosIV/lib/Makefile.in
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# $Id: Makefile.in,v 1.21 1997/05/20 18:58:40 bg Exp $
-#
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-@SET_MAKE@
-
-SUBDIRS = des krb kdb kadm acl kafs roken otp auth sl editline
-
-all:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) all); done
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-install:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) install); done
-
-uninstall:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) uninstall); done
-
-check: all
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) check); done
-
-clean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) clean); done
-
-mostlyclean: clean
-
-distclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) distclean); done
- rm -f Makefile config.status *~
-
-realclean:
- for i in $(SUBDIRS); \
- do (cd $$i && $(MAKE) $(MFLAGS) realclean); done
diff --git a/crypto/kerberosIV/lib/acl/Makefile.in b/crypto/kerberosIV/lib/acl/Makefile.in
deleted file mode 100644
index 59894e488c07..000000000000
--- a/crypto/kerberosIV/lib/acl/Makefile.in
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# $Id: Makefile.in,v 1.21 1997/05/06 03:46:37 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = # @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)acl
-#LIBEXT = @LIBEXT@ Always build archive library!
-LIBEXT = a
-LIBPREFIX = @LIBPREFIX@
-SHLIBEXT = @SHLIBEXT@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-
-SOURCES = acl_files.c
-
-OBJECTS = acl_files.o
-
-all: $(LIB)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) *.o *.a
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS)
- rm -f $@
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS)
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/lib/acl/acl.h b/crypto/kerberosIV/lib/acl/acl.h
deleted file mode 100644
index 305b66c9db2a..000000000000
--- a/crypto/kerberosIV/lib/acl/acl.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: acl.h,v 1.5 1997/04/01 08:17:52 joda Exp $ */
-
-#ifndef __ACL_H
-#define __ACL_H
-
-#include <sys/cdefs.h>
-
-void acl_canonicalize_principal __P((char *principal, char *canon));
-int acl_initialize __P((char *acl_file, int perm));
-int acl_exact_match __P((char *acl, char *principal));
-int acl_check __P((char *acl, char *principal));
-int acl_add __P((char *acl, char *principal));
-int acl_delete __P((char *acl, char *principal));
-
-#endif /* __ACL_H */
diff --git a/crypto/kerberosIV/lib/acl/acl_files.c b/crypto/kerberosIV/lib/acl/acl_files.c
deleted file mode 100644
index fc00b8016be0..000000000000
--- a/crypto/kerberosIV/lib/acl/acl_files.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "config.h"
-#include "protos.h"
-
-RCSID("$Id: acl_files.c,v 1.10 1997/05/02 14:28:56 assar Exp $");
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#include <time.h>
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#include <errno.h>
-#include <ctype.h>
-
-#include <roken.h>
-
-#include <krb.h>
-#include <acl.h>
-
-/*** Routines for manipulating access control list files ***/
-
-/* "aname.inst@realm" */
-#define MAX_PRINCIPAL_SIZE (ANAME_SZ + INST_SZ + REALM_SZ + 3)
-#define INST_SEP '.'
-#define REALM_SEP '@'
-
-#define LINESIZE 2048 /* Maximum line length in an acl file */
-
-#define NEW_FILE "%s.~NEWACL~" /* Format for name of altered acl file */
-#define WAIT_TIME 300 /* Maximum time allowed write acl file */
-
-#define CACHED_ACLS 8 /* How many acls to cache */
- /* Each acl costs 1 open file descriptor */
-#define ACL_LEN 16 /* Twice a reasonable acl length */
-
-#define COR(a,b) ((a!=NULL)?(a):(b))
-
-/* Canonicalize a principal name */
-/* If instance is missing, it becomes "" */
-/* If realm is missing, it becomes the local realm */
-/* Canonicalized form is put in canon, which must be big enough to hold
- MAX_PRINCIPAL_SIZE characters */
-void
-acl_canonicalize_principal(char *principal, char *canon)
-{
- char *dot, *atsign, *end;
- int len;
-
- dot = strchr(principal, INST_SEP);
- atsign = strchr(principal, REALM_SEP);
-
- /* Maybe we're done already */
- if(dot != NULL && atsign != NULL) {
- if(dot < atsign) {
- /* It's for real */
- /* Copy into canon */
- strncpy(canon, principal, MAX_PRINCIPAL_SIZE);
- canon[MAX_PRINCIPAL_SIZE-1] = '\0';
- return;
- } else {
- /* Nope, it's part of the realm */
- dot = NULL;
- }
- }
-
- /* No such luck */
- end = principal + strlen(principal);
-
- /* Get the principal name */
- len = min(ANAME_SZ, COR(dot, COR(atsign, end)) - principal);
- strncpy(canon, principal, len);
- canon += len;
-
- /* Add INST_SEP */
- *canon++ = INST_SEP;
-
- /* Get the instance, if it exists */
- if(dot != NULL) {
- ++dot;
- len = min(INST_SZ, COR(atsign, end) - dot);
- strncpy(canon, dot, len);
- canon += len;
- }
-
- /* Add REALM_SEP */
- *canon++ = REALM_SEP;
-
- /* Get the realm, if it exists */
- /* Otherwise, default to local realm */
- if(atsign != NULL) {
- ++atsign;
- len = min(REALM_SZ, end - atsign);
- strncpy(canon, atsign, len);
- canon += len;
- *canon++ = '\0';
- } else if(krb_get_lrealm(canon, 1) != KSUCCESS) {
- strcpy(canon, KRB_REALM);
- }
-}
-
-/* Get a lock to modify acl_file */
-/* Return new FILE pointer */
-/* or NULL if file cannot be modified */
-/* REQUIRES WRITE PERMISSION TO CONTAINING DIRECTORY */
-static
-FILE *acl_lock_file(char *acl_file)
-{
- struct stat s;
- char new[LINESIZE];
- int nfd;
- FILE *nf;
- int mode;
-
- if(stat(acl_file, &s) < 0) return(NULL);
- mode = s.st_mode;
- snprintf(new, sizeof(new), NEW_FILE, acl_file);
- for(;;) {
- /* Open the new file */
- if((nfd = open(new, O_WRONLY|O_CREAT|O_EXCL, mode)) < 0) {
- if(errno == EEXIST) {
- /* Maybe somebody got here already, maybe it's just old */
- if(stat(new, &s) < 0) return(NULL);
- if(time(0) - s.st_ctime > WAIT_TIME) {
- /* File is stale, kill it */
- unlink(new);
- continue;
- } else {
- /* Wait and try again */
- sleep(1);
- continue;
- }
- } else {
- /* Some other error, we lose */
- return(NULL);
- }
- }
-
- /* If we got to here, the lock file is ours and ok */
- /* Reopen it under stdio */
- if((nf = fdopen(nfd, "w")) == NULL) {
- /* Oops, clean up */
- unlink(new);
- }
- return(nf);
- }
-}
-
-/* Abort changes to acl_file written onto FILE *f */
-/* Returns 0 if successful, < 0 otherwise */
-/* Closes f */
-static int
-acl_abort(char *acl_file, FILE *f)
-{
- char new[LINESIZE];
- int ret;
- struct stat s;
-
- /* make sure we aren't nuking someone else's file */
- if(fstat(fileno(f), &s) < 0
- || s.st_nlink == 0) {
- fclose(f);
- return(-1);
- } else {
- snprintf(new, sizeof(new), NEW_FILE, acl_file);
- ret = unlink(new);
- fclose(f);
- return(ret);
- }
-}
-
-/* Commit changes to acl_file written onto FILE *f */
-/* Returns zero if successful */
-/* Returns > 0 if lock was broken */
-/* Returns < 0 if some other error occurs */
-/* Closes f */
-static int
-acl_commit(char *acl_file, FILE *f)
-{
- char new[LINESIZE];
- int ret;
- struct stat s;
-
- snprintf(new, sizeof(new), NEW_FILE, acl_file);
- if(fflush(f) < 0
- || fstat(fileno(f), &s) < 0
- || s.st_nlink == 0) {
- acl_abort(acl_file, f);
- return(-1);
- }
-
- ret = rename(new, acl_file);
- fclose(f);
- return(ret);
-}
-
-/* Initialize an acl_file */
-/* Creates the file with permissions perm if it does not exist */
-/* Erases it if it does */
-/* Returns return value of acl_commit */
-int
-acl_initialize(char *acl_file, int perm)
-{
- FILE *new;
- int fd;
-
- /* Check if the file exists already */
- if((new = acl_lock_file(acl_file)) != NULL) {
- return(acl_commit(acl_file, new));
- } else {
- /* File must be readable and writable by owner */
- if((fd = open(acl_file, O_CREAT|O_EXCL, perm|0600)) < 0) {
- return(-1);
- } else {
- close(fd);
- return(0);
- }
- }
-}
-
-/* Eliminate all whitespace character in buf */
-/* Modifies its argument */
-static void
- nuke_whitespace(char *buf)
-{
- char *pin, *pout;
-
- for(pin = pout = buf; *pin != '\0'; pin++)
- if(!isspace(*pin)) *pout++ = *pin;
- *pout = '\0'; /* Terminate the string */
-}
-
-/* Hash table stuff */
-
-struct hashtbl {
- int size; /* Max number of entries */
- int entries; /* Actual number of entries */
- char **tbl; /* Pointer to start of table */
-};
-
-/* Make an empty hash table of size s */
-static struct hashtbl *
-make_hash(int size)
-{
- struct hashtbl *h;
-
- if(size < 1) size = 1;
- h = (struct hashtbl *) malloc(sizeof(struct hashtbl));
- h->size = size;
- h->entries = 0;
- h->tbl = (char **) calloc(size, sizeof(char *));
- return(h);
-}
-
-/* Destroy a hash table */
-static void
-destroy_hash(struct hashtbl *h)
-{
- int i;
-
- for(i = 0; i < h->size; i++) {
- if(h->tbl[i] != NULL) free(h->tbl[i]);
- }
- free(h->tbl);
- free(h);
-}
-
-/* Compute hash value for a string */
-static unsigned int
-hashval(char *s)
-{
- unsigned hv;
-
- for(hv = 0; *s != '\0'; s++) {
- hv ^= ((hv << 3) ^ *s);
- }
- return(hv);
-}
-
-/* Add an element to a hash table */
-static void
-add_hash(struct hashtbl *h, char *el)
-{
- unsigned hv;
- char *s;
- char **old;
- int i;
-
- /* Make space if it isn't there already */
- if(h->entries + 1 > (h->size >> 1)) {
- old = h->tbl;
- h->tbl = (char **) calloc(h->size << 1, sizeof(char *));
- for(i = 0; i < h->size; i++) {
- if(old[i] != NULL) {
- hv = hashval(old[i]) % (h->size << 1);
- while(h->tbl[hv] != NULL) hv = (hv+1) % (h->size << 1);
- h->tbl[hv] = old[i];
- }
- }
- h->size = h->size << 1;
- free(old);
- }
-
- hv = hashval(el) % h->size;
- while(h->tbl[hv] != NULL && strcmp(h->tbl[hv], el)) hv = (hv+1) % h->size;
- s = strdup(el);
- h->tbl[hv] = s;
- h->entries++;
-}
-
-/* Returns nonzero if el is in h */
-static int
-check_hash(struct hashtbl *h, char *el)
-{
- unsigned hv;
-
- for(hv = hashval(el) % h->size;
- h->tbl[hv] != NULL;
- hv = (hv + 1) % h->size) {
- if(!strcmp(h->tbl[hv], el)) return(1);
- }
- return(0);
-}
-
-struct acl {
- char filename[LINESIZE]; /* Name of acl file */
- int fd; /* File descriptor for acl file */
- struct stat status; /* File status at last read */
- struct hashtbl *acl; /* Acl entries */
-};
-
-static struct acl acl_cache[CACHED_ACLS];
-
-static int acl_cache_count = 0;
-static int acl_cache_next = 0;
-
-/* Returns < 0 if unsuccessful in loading acl */
-/* Returns index into acl_cache otherwise */
-/* Note that if acl is already loaded, this is just a lookup */
-static int
-acl_load(char *name)
-{
- int i;
- FILE *f;
- struct stat s;
- char buf[MAX_PRINCIPAL_SIZE];
- char canon[MAX_PRINCIPAL_SIZE];
-
- /* See if it's there already */
- for(i = 0; i < acl_cache_count; i++) {
- if(!strcmp(acl_cache[i].filename, name)
- && acl_cache[i].fd >= 0) goto got_it;
- }
-
- /* It isn't, load it in */
- /* maybe there's still room */
- if(acl_cache_count < CACHED_ACLS) {
- i = acl_cache_count++;
- } else {
- /* No room, clean one out */
- i = acl_cache_next;
- acl_cache_next = (acl_cache_next + 1) % CACHED_ACLS;
- close(acl_cache[i].fd);
- if(acl_cache[i].acl) {
- destroy_hash(acl_cache[i].acl);
- acl_cache[i].acl = (struct hashtbl *) 0;
- }
- }
-
- /* Set up the acl */
- strcpy(acl_cache[i].filename, name);
- if((acl_cache[i].fd = open(name, O_RDONLY, 0)) < 0) return(-1);
- /* Force reload */
- acl_cache[i].acl = (struct hashtbl *) 0;
-
- got_it:
- /*
- * See if the stat matches
- *
- * Use stat(), not fstat(), as the file may have been re-created by
- * acl_add or acl_delete. If this happens, the old inode will have
- * no changes in the mod-time and the following test will fail.
- */
- if(stat(acl_cache[i].filename, &s) < 0) return(-1);
- if(acl_cache[i].acl == (struct hashtbl *) 0
- || s.st_nlink != acl_cache[i].status.st_nlink
- || s.st_mtime != acl_cache[i].status.st_mtime
- || s.st_ctime != acl_cache[i].status.st_ctime) {
- /* Gotta reload */
- if(acl_cache[i].fd >= 0) close(acl_cache[i].fd);
- if((acl_cache[i].fd = open(name, O_RDONLY, 0)) < 0) return(-1);
- if((f = fdopen(acl_cache[i].fd, "r")) == NULL) return(-1);
- if(acl_cache[i].acl) destroy_hash(acl_cache[i].acl);
- acl_cache[i].acl = make_hash(ACL_LEN);
- while(fgets(buf, sizeof(buf), f) != NULL) {
- nuke_whitespace(buf);
- acl_canonicalize_principal(buf, canon);
- add_hash(acl_cache[i].acl, canon);
- }
- fclose(f);
- acl_cache[i].status = s;
- }
- return(i);
-}
-
-/* Returns nonzero if it can be determined that acl contains principal */
-/* Principal is not canonicalized, and no wildcarding is done */
-int
-acl_exact_match(char *acl, char *principal)
-{
- int idx;
-
- return((idx = acl_load(acl)) >= 0
- && check_hash(acl_cache[idx].acl, principal));
-}
-
-/* Returns nonzero if it can be determined that acl contains principal */
-/* Recognizes wildcards in acl of the form
- name.*@realm, *.*@realm, and *.*@* */
-int
-acl_check(char *acl, char *principal)
-{
- char buf[MAX_PRINCIPAL_SIZE];
- char canon[MAX_PRINCIPAL_SIZE];
- char *realm;
-
- acl_canonicalize_principal(principal, canon);
-
- /* Is it there? */
- if(acl_exact_match(acl, canon)) return(1);
-
- /* Try the wildcards */
- realm = strchr(canon, REALM_SEP);
- *strchr(canon, INST_SEP) = '\0'; /* Chuck the instance */
-
- snprintf(buf, sizeof(buf), "%s.*%s", canon, realm);
- if(acl_exact_match(acl, buf)) return(1);
-
- snprintf(buf, sizeof(buf), "*.*%s", realm);
- if(acl_exact_match(acl, buf) || acl_exact_match(acl, "*.*@*")) return(1);
-
- return(0);
-}
-
-/* Adds principal to acl */
-/* Wildcards are interpreted literally */
-int
-acl_add(char *acl, char *principal)
-{
- int idx;
- int i;
- FILE *new;
- char canon[MAX_PRINCIPAL_SIZE];
-
- acl_canonicalize_principal(principal, canon);
-
- if((new = acl_lock_file(acl)) == NULL) return(-1);
- if((acl_exact_match(acl, canon))
- || (idx = acl_load(acl)) < 0) {
- acl_abort(acl, new);
- return(-1);
- }
- /* It isn't there yet, copy the file and put it in */
- for(i = 0; i < acl_cache[idx].acl->size; i++) {
- if(acl_cache[idx].acl->tbl[i] != NULL) {
- if(fputs(acl_cache[idx].acl->tbl[i], new) == EOF
- || putc('\n', new) != '\n') {
- acl_abort(acl, new);
- return(-1);
- }
- }
- }
- fputs(canon, new);
- putc('\n', new);
- return(acl_commit(acl, new));
-}
-
-/* Removes principal from acl */
-/* Wildcards are interpreted literally */
-int
-acl_delete(char *acl, char *principal)
-{
- int idx;
- int i;
- FILE *new;
- char canon[MAX_PRINCIPAL_SIZE];
-
- acl_canonicalize_principal(principal, canon);
-
- if((new = acl_lock_file(acl)) == NULL) return(-1);
- if((!acl_exact_match(acl, canon))
- || (idx = acl_load(acl)) < 0) {
- acl_abort(acl, new);
- return(-1);
- }
- /* It isn't there yet, copy the file and put it in */
- for(i = 0; i < acl_cache[idx].acl->size; i++) {
- if(acl_cache[idx].acl->tbl[i] != NULL
- && strcmp(acl_cache[idx].acl->tbl[i], canon)) {
- fputs(acl_cache[idx].acl->tbl[i], new);
- putc('\n', new);
- }
- }
- return(acl_commit(acl, new));
-}
diff --git a/crypto/kerberosIV/lib/acl/acl_files.doc b/crypto/kerberosIV/lib/acl/acl_files.doc
deleted file mode 100644
index 78c448a6d698..000000000000
--- a/crypto/kerberosIV/lib/acl/acl_files.doc
+++ /dev/null
@@ -1,107 +0,0 @@
-PROTOTYPE ACL LIBRARY
-
-Introduction
-
-An access control list (ACL) is a list of principals, where each
-principal is is represented by a text string which cannot contain
-whitespace. The library allows application programs to refer to named
-access control lists to test membership and to atomically add and
-delete principals using a natural and intuitive interface. At
-present, the names of access control lists are required to be Unix
-filenames, and refer to human-readable Unix files; in the future, when
-a networked ACL server is implemented, the names may refer to a
-different namespace specific to the ACL service.
-
-
-Usage
-
-cc <files> -lacl -lkrb.
-
-
-
-Principal Names
-
-Principal names have the form
-
-<name>[.<instance>][@<realm>]
-
-e.g.
-
-asp
-asp.root
-asp@ATHENA.MIT.EDU
-asp.@ATHENA.MIT.EDU
-asp.root@ATHENA.MIT.EDU
-
-It is possible for principals to be underspecified. If instance is
-missing, it is assumed to be "". If realm is missing, it is assumed
-to be local_realm. The canonical form contains all of name, instance,
-and realm; the acl_add and acl_delete routines will always
-leave the file in that form. Note that the canonical form of
-asp@ATHENA.MIT.EDU is actually asp.@ATHENA.MIT.EDU.
-
-
-Routines
-
-acl_canonicalize_principal(principal, buf)
-char *principal;
-char *buf; /*RETVAL*/
-
-Store the canonical form of principal in buf. Buf must contain enough
-space to store a principal, given the limits on the sizes of name,
-instance, and realm specified in /usr/include/krb.h.
-
-acl_check(acl, principal)
-char *acl;
-char *principal;
-
-Returns nonzero if principal appears in acl. Returns 0 if principal
-does not appear in acl, or if an error occurs. Canonicalizes
-principal before checking, and allows the ACL to contain wildcards.
-
-acl_exact_match(acl, principal)
-char *acl;
-char *principal;
-
-Like acl_check, but does no canonicalization or wildcarding.
-
-acl_add(acl, principal)
-char *acl;
-char *principal;
-
-Atomically adds principal to acl. Returns 0 if successful, nonzero
-otherwise. It is considered a failure if principal is already in acl.
-This routine will canonicalize principal, but will treat wildcards
-literally.
-
-acl_delete(acl, principal)
-char *acl;
-char *principal;
-
-Atomically deletes principal from acl. Returns 0 if successful,
-nonzero otherwise. It is consider a failure if principal is not
-already in acl. This routine will canonicalize principal, but will
-treat wildcards literally.
-
-acl_initialize(acl, mode)
-char *acl;
-int mode;
-
-Initialize acl. If acl file does not exist, creates it with mode
-mode. If acl exists, removes all members. Returns 0 if successful,
-nonzero otherwise. WARNING: Mode argument is likely to change with
-the eventual introduction of an ACL service.
-
-
-Known problems
-
-In the presence of concurrency, there is a very small chance that
-acl_add or acl_delete could report success even though it would have
-had no effect. This is a necessary side effect of using lock files
-for concurrency control rather than flock(2), which is not supported
-by NFS.
-
-The current implementation caches ACLs in memory in a hash-table
-format for increased efficiency in checking membership; one effect of
-the caching scheme is that one file descriptor will be kept open for
-each ACL cached, up to a maximum of 8.
diff --git a/crypto/kerberosIV/lib/kadm/Makefile.in b/crypto/kerberosIV/lib/kadm/Makefile.in
deleted file mode 100644
index 1dafd4f9ff2f..000000000000
--- a/crypto/kerberosIV/lib/kadm/Makefile.in
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# $Id: Makefile.in,v 1.30 1997/05/06 03:47:28 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-LN_S = @LN_S@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-COMPILE_ET = ../../util/et/compile_et$(EXECSUFFIX) -language ansi-c
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)kadm
-LIBEXT = @LIBEXT@
-LIBPREFIX = @LIBPREFIX@
-EXECSUFFIX = @EXECSUFFIX@
-SHLIBEXT = @SHLIBEXT@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-
-SOURCES = kadm_cli_wrap.c kadm_err.c kadm_stream.c kadm_supp.c
-
-OBJECTS = kadm_cli_wrap.o kadm_err.o kadm_stream.o kadm_supp.o
-
-all: $(LIB)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) *.o *.a kadm_err.c kadm_err.h
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS)
- rm -f $@
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS)
-
-kadm_err.c kadm_err.h: kadm_err.et
- test -r kadm_err.et || (rm -f kadm_err.et && $(LN_S) $(srcdir)/kadm_err.et .)
- $(COMPILE_ET) kadm_err.et
-
-$(OBJECTS): ../../include/config.h
-$(OBJECTS): kadm_err.h kadm_locl.h
diff --git a/crypto/kerberosIV/lib/kadm/kadm.h b/crypto/kerberosIV/lib/kadm/kadm.h
deleted file mode 100644
index d18f5921ce5b..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * $Id: kadm.h,v 1.12 1996/11/17 20:04:39 assar Exp $
- *
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Definitions for Kerberos administration server & client
- */
-
-#ifndef KADM_DEFS
-#define KADM_DEFS
-
-/*
- * kadm.h
- * Header file for the fourth attempt at an admin server
- * Doug Church, December 28, 1989, MIT Project Athena
- */
-
-#include <krb_db.h>
-
-/* The global structures for the client and server */
-typedef struct {
- struct sockaddr_in admin_addr;
- struct sockaddr_in my_addr;
- int my_addr_len;
- int admin_fd; /* file descriptor for link to admin server */
- char sname[ANAME_SZ]; /* the service name */
- char sinst[INST_SZ]; /* the services instance */
- char krbrlm[REALM_SZ];
-} Kadm_Client;
-
-typedef struct { /* status of the server, i.e the parameters */
- int inter; /* Space for command line flags */
- char *sysfile; /* filename of server */
-} admin_params; /* Well... it's the admin's parameters */
-
-/* Largest password length to be supported */
-#define MAX_KPW_LEN 128
-/* Minimum allowed password length */
-#define MIN_KPW_LEN 6
-
-/* Largest packet the admin server will ever allow itself to return */
-#define KADM_RET_MAX 2048
-
-/* That's right, versions are 8 byte strings */
-#define KADM_VERSTR "KADM0.0A"
-#define KADM_ULOSE "KYOULOSE" /* sent back when server can't
- decrypt client's msg */
-#define KADM_VERSIZE strlen(KADM_VERSTR)
-
-/* the lookups for the server instances */
-#define PWSERV_NAME "changepw"
-#define KADM_SNAME "kerberos_master"
-#define KADM_PORT 751
-#define KADM_SINST "kerberos"
-
-/* Attributes fields constants and macros */
-#define ALLOC 2
-#define RESERVED 3
-#define DEALLOC 4
-#define DEACTIVATED 5
-#define ACTIVE 6
-
-/* Kadm_vals structure for passing db fields into the server routines */
-#define FLDSZ 4
-
-typedef struct {
- u_int8_t fields[FLDSZ]; /* The active fields in this struct */
- char name[ANAME_SZ];
- char instance[INST_SZ];
- u_int32_t key_low;
- u_int32_t key_high;
- u_int32_t exp_date;
- u_int16_t attributes;
- u_int8_t max_life;
-} Kadm_vals; /* The basic values structure in Kadm */
-
-/* Kadm_vals structure for passing db fields into the server routines */
-#define FLDSZ 4
-
-/* Need to define fields types here */
-#define KADM_NAME 31
-#define KADM_INST 30
-#define KADM_EXPDATE 29
-#define KADM_ATTR 28
-#define KADM_MAXLIFE 27
-#define KADM_DESKEY 26
-
-/* To set a field entry f in a fields structure d */
-#define SET_FIELD(f,d) (d[3-(f/8)]|=(1<<(f%8)))
-
-/* To set a field entry f in a fields structure d */
-#define CLEAR_FIELD(f,d) (d[3-(f/8)]&=(~(1<<(f%8))))
-
-/* Is field f in fields structure d */
-#define IS_FIELD(f,d) (d[3-(f/8)]&(1<<(f%8)))
-
-/* Various return codes */
-#define KADM_SUCCESS 0
-
-#define WILDCARD_STR "*"
-
-enum acl_types {
-ADDACL,
-GETACL,
-MODACL,
-STABACL, /* not used */
-DELACL
-};
-
-/* Various opcodes for the admin server's functions */
-#define CHANGE_PW 2
-#define ADD_ENT 3
-#define MOD_ENT 4
-#define GET_ENT 5
-#define CHECK_PW 6 /* not used */
-#define CHG_STAB 7 /* not used */
-#define DEL_ENT 8
-
-void prin_vals __P((Kadm_vals *));
-int stv_long __P((u_char *, u_int32_t *, int, int));
-int vts_long __P((u_int32_t, u_char **, int));
-int vts_string __P((char *, u_char **, int));
-int stv_string __P((u_char *, char *, int, int, int));
-
-int stream_to_vals __P((u_char *, Kadm_vals *, int));
-int vals_to_stream __P((Kadm_vals *, u_char **));
-
-int kadm_init_link __P((char *, char *, char *));
-int kadm_change_pw __P((unsigned char *));
-int kadm_change_pw_plain __P((unsigned char *, char *, char**));
-int kadm_mod __P((Kadm_vals *, Kadm_vals *));
-int kadm_get __P((Kadm_vals *, u_char *));
-int kadm_add __P((Kadm_vals *));
-int kadm_del __P((Kadm_vals *));
-void kadm_vals_to_prin __P((u_char *, Principal *, Kadm_vals *));
-void kadm_prin_to_vals __P((u_char *, Kadm_vals *, Principal *));
-
-
-
-#endif /* KADM_DEFS */
diff --git a/crypto/kerberosIV/lib/kadm/kadm_cli_wrap.c b/crypto/kerberosIV/lib/kadm/kadm_cli_wrap.c
deleted file mode 100644
index 1e5c4f36bde6..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm_cli_wrap.c
+++ /dev/null
@@ -1,545 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Kerberos administration server client-side routines
- */
-
-/*
- * kadm_cli_wrap.c the client side wrapping of the calls to the admin server
- */
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_cli_wrap.c,v 1.21 1997/05/02 10:28:11 joda Exp $");
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-static Kadm_Client client_parm;
-
-/* Macros for use in returning data... used in kadm_cli_send */
-#define RET_N_FREE(r) {clear_secrets(); free((char *)act_st); free((char *)priv_pak); return r;}
-
-/* Keys for use in the transactions */
-static des_cblock sess_key; /* to be filled in by kadm_cli_keyd */
-static des_key_schedule sess_sched;
-
-static void
-clear_secrets(void)
-{
- memset(sess_key, 0, sizeof(sess_key));
- memset(sess_sched, 0, sizeof(sess_sched));
- return;
-}
-
-static RETSIGTYPE (*opipe)();
-
-static void
-kadm_cli_disconn(void)
-{
- close(client_parm.admin_fd);
- signal(SIGPIPE, opipe);
- return;
-}
-
-/*
- * kadm_init_link
- * receives : name, inst, realm
- *
- * initializes client parm, the Kadm_Client structure which holds the
- * data about the connection between the server and client, the services
- * used, the locations and other fun things
- */
-
-int
-kadm_init_link(char *n, char *i, char *r)
-{
- struct hostent *hop; /* host we will talk to */
- char adm_hostname[MaxHostNameLen];
-
- init_kadm_err_tbl();
- init_krb_err_tbl();
- strcpy(client_parm.sname, n);
- strcpy(client_parm.sinst, i);
- strcpy(client_parm.krbrlm, r);
- client_parm.admin_fd = -1;
-
- /* set up the admin_addr - fetch name of admin host */
- if (krb_get_admhst(adm_hostname, client_parm.krbrlm, 1) != KSUCCESS)
- return KADM_NO_HOST;
- if ((hop = gethostbyname(adm_hostname)) == NULL)
- return KADM_UNK_HOST;
- memset(&client_parm.admin_addr, 0, sizeof(client_parm.admin_addr));
- client_parm.admin_addr.sin_port =
- k_getportbyname(KADM_SNAME, "tcp", htons(KADM_PORT));
- client_parm.admin_addr.sin_family = hop->h_addrtype;
- memcpy(&client_parm.admin_addr.sin_addr, hop->h_addr,
- sizeof(client_parm.admin_addr.sin_addr));
-
- return KADM_SUCCESS;
-}
-
-static int
-kadm_cli_conn(void)
-{ /* this connects and sets my_addr */
- int on = 1;
-
- if ((client_parm.admin_fd =
- socket(client_parm.admin_addr.sin_family, SOCK_STREAM,0)) < 0)
- return KADM_NO_SOCK; /* couldnt create the socket */
- if (connect(client_parm.admin_fd,
- (struct sockaddr *) & client_parm.admin_addr,
- sizeof(client_parm.admin_addr))) {
- close(client_parm.admin_fd);
- client_parm.admin_fd = -1;
- return KADM_NO_CONN; /* couldnt get the connect */
- }
- opipe = signal(SIGPIPE, SIG_IGN);
- client_parm.my_addr_len = sizeof(client_parm.my_addr);
- if (getsockname(client_parm.admin_fd,
- (struct sockaddr *) & client_parm.my_addr,
- &client_parm.my_addr_len) < 0) {
- close(client_parm.admin_fd);
- client_parm.admin_fd = -1;
- signal(SIGPIPE, opipe);
- return KADM_NO_HERE; /* couldnt find out who we are */
- }
-#if defined(SO_KEEPALIVE) && defined(HAVE_SETSOCKOPT)
- if (setsockopt(client_parm.admin_fd, SOL_SOCKET, SO_KEEPALIVE,
- (void *)&on,
- sizeof(on)) < 0) {
- close(client_parm.admin_fd);
- client_parm.admin_fd = -1;
- signal(SIGPIPE, opipe);
- return KADM_NO_CONN; /* XXX */
- }
-#endif
- return KADM_SUCCESS;
-}
-
-/* takes in the sess_key and key_schedule and sets them appropriately */
-static int
-kadm_cli_keyd(des_cblock (*s_k), struct des_ks_struct *s_s)
- /* session key */
- /* session key schedule */
-{
- CREDENTIALS cred; /* to get key data */
- int stat;
-
- /* want .sname and .sinst here.... */
- if ((stat = krb_get_cred(client_parm.sname, client_parm.sinst,
- client_parm.krbrlm, &cred)))
- return stat + krb_err_base;
- memcpy(s_k, cred.session, sizeof(des_cblock));
- memset(cred.session, 0, sizeof(des_cblock));
-#ifdef NOENCRYPTION
- memset(s_s, 0, sizeof(des_key_schedule));
-#else
- if ((stat = des_key_sched(s_k,s_s)))
- return(stat+krb_err_base);
-#endif
- return KADM_SUCCESS;
-} /* This code "works" */
-
-static int
-kadm_cli_out(u_char *dat, int dat_len, u_char **ret_dat, int *ret_siz)
-{
- u_int16_t dlen;
- int retval;
- char tmp[4];
-
- dlen = (u_int16_t) dat_len;
-
- if (dat_len != (int)dlen)
- return (KADM_NO_ROOM);
-
- tmp[0] = (dlen >> 8) & 0xff;
- tmp[1] = dlen & 0xff;
- if (krb_net_write(client_parm.admin_fd, tmp, 2) != 2)
- return (errno); /* XXX */
-
- if (krb_net_write(client_parm.admin_fd, (char *) dat, dat_len) < 0)
- return (errno); /* XXX */
-
-
- if ((retval = krb_net_read(client_parm.admin_fd, tmp, 2)) != 2){
- if (retval < 0)
- return(errno); /* XXX */
- else
- return(EPIPE); /* short read ! */
- }
- dlen = (tmp[0] << 8) | tmp[1];
-
- *ret_dat = (u_char *)malloc((unsigned)dlen);
- if (!*ret_dat)
- return(KADM_NOMEM);
-
- if ((retval = krb_net_read(client_parm.admin_fd, *ret_dat,
- dlen) != dlen)) {
- if (retval < 0)
- return(errno); /* XXX */
- else
- return(EPIPE); /* short read ! */
- }
- *ret_siz = (int) dlen;
- return KADM_SUCCESS;
-}
-
-/*
- * kadm_cli_send
- * recieves : opcode, packet, packet length, serv_name, serv_inst
- * returns : return code from the packet build, the server, or
- * something else
- *
- * It assembles a packet as follows:
- * 8 bytes : VERSION STRING
- * 4 bytes : LENGTH OF MESSAGE DATA and OPCODE
- * : KTEXT
- * : OPCODE \
- * : DATA > Encrypted (with make priv)
- * : ...... /
- *
- * If it builds the packet and it is small enough, then it attempts to open the
- * connection to the admin server. If the connection is succesfully open
- * then it sends the data and waits for a reply.
- */
-static int
-kadm_cli_send(u_char *st_dat, int st_siz, u_char **ret_dat, int *ret_siz)
- /* the actual data */
- /* length of said data */
- /* to give return info */
- /* length of returned info */
-{
- int act_len, retdat; /* current offset into packet, return
- * data */
- KTEXT_ST authent; /* the authenticator we will build */
- u_char *act_st; /* the pointer to the complete packet */
- u_char *priv_pak; /* private version of the packet */
- int priv_len; /* length of private packet */
- u_int32_t cksum; /* checksum of the packet */
- MSG_DAT mdat;
- u_char *return_dat;
-
- act_st = (u_char *) malloc(KADM_VERSIZE); /* verstr stored first */
- strncpy((char *)act_st, KADM_VERSTR, KADM_VERSIZE);
- act_len = KADM_VERSIZE;
-
- if ((retdat = kadm_cli_keyd(&sess_key, sess_sched)) != KADM_SUCCESS) {
- free(act_st);
- return retdat; /* couldnt get key working */
- }
- priv_pak = (u_char *) malloc((unsigned)(st_siz + 200));
- /* 200 bytes for extra info case */
- if ((priv_len = krb_mk_priv(st_dat, priv_pak, (u_int32_t)st_siz,
- sess_sched, &sess_key, &client_parm.my_addr,
- &client_parm.admin_addr)) < 0)
- RET_N_FREE(KADM_NO_ENCRYPT); /* whoops... we got a lose
- * here */
- /* here is the length of priv data. receiver calcs
- size of authenticator by subtracting vno size, priv size, and
- sizeof(u_int32_t) (for the size indication) from total size */
-
- act_len += vts_long((u_int32_t) priv_len, &act_st, act_len);
-#ifdef NOENCRYPTION
- cksum = 0;
-#else
- cksum = des_quad_cksum((des_cblock *)priv_pak, (des_cblock *)0, (long)priv_len, 0,
- &sess_key);
-#endif
- if ((retdat = krb_mk_req(&authent, client_parm.sname, client_parm.sinst,
- client_parm.krbrlm, cksum))) {
- /* authenticator? */
- RET_N_FREE(retdat + krb_err_base);
- }
-
- act_st = (u_char *) realloc(act_st,
- act_len + authent.length + priv_len);
- if (!act_st) {
- clear_secrets();
- free(priv_pak);
- return(KADM_NOMEM);
- }
- memcpy((char *)act_st + act_len, authent.dat, authent.length);
- memcpy((char *)act_st + act_len + authent.length, priv_pak, priv_len);
- free(priv_pak);
- if ((retdat = kadm_cli_out(act_st,
- act_len + authent.length + priv_len,
- ret_dat, ret_siz)) != KADM_SUCCESS)
- RET_N_FREE(retdat);
- free(act_st);
-#define RET_N_FREE2(r) {free(*ret_dat); clear_secrets(); return(r);}
-
- /* first see if it's a YOULOUSE */
- if ((*ret_siz >= KADM_VERSIZE) &&
- !strncmp(KADM_ULOSE, (char *)*ret_dat, KADM_VERSIZE)) {
- unsigned char *p;
- /* it's a youlose packet */
- if (*ret_siz < KADM_VERSIZE + 4)
- RET_N_FREE2(KADM_BAD_VER);
- p = (*ret_dat)+KADM_VERSIZE;
- retdat = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
- RET_N_FREE2(retdat);
- }
- /* need to decode the ret_dat */
- if ((retdat = krb_rd_priv(*ret_dat, (u_int32_t)*ret_siz, sess_sched,
- &sess_key, &client_parm.admin_addr,
- &client_parm.my_addr, &mdat)))
- RET_N_FREE2(retdat+krb_err_base);
- if (mdat.app_length < KADM_VERSIZE + 4)
- /* too short! */
- RET_N_FREE2(KADM_BAD_VER);
- if (strncmp((char *)mdat.app_data, KADM_VERSTR, KADM_VERSIZE))
- /* bad version */
- RET_N_FREE2(KADM_BAD_VER);
- {
- unsigned char *p = mdat.app_data+KADM_VERSIZE;
- retdat = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
- }
- {
- int s=mdat.app_length - KADM_VERSIZE - 4;
- if(s<=0) s=1;
- if (!(return_dat = (u_char *)malloc(s)))
- RET_N_FREE2(KADM_NOMEM);
- }
- memcpy(return_dat,
- (char *) mdat.app_data + KADM_VERSIZE + 4,
- mdat.app_length - KADM_VERSIZE - 4);
- free(*ret_dat);
- clear_secrets();
- *ret_dat = return_dat;
- *ret_siz = mdat.app_length - KADM_VERSIZE - 4;
- return retdat;
-}
-
-
-
-/*
- * kadm_change_pw_plain
- *
- * see kadm_change_pw
- *
- */
-int kadm_change_pw_plain(unsigned char *newkey, char *password, char **pw_msg)
-{
- int stsize, retc; /* stream size and return code */
- u_char *send_st; /* send stream */
- u_char *ret_st;
- int ret_sz;
- int status;
- static char msg[128];
-
- if ((retc = kadm_cli_conn()) != KADM_SUCCESS)
- return(retc);
- /* possible problem with vts_long on a non-multiple of four boundary */
-
- stsize = 0; /* start of our output packet */
- send_st = (u_char *) malloc(1);/* to make it reallocable */
- send_st[stsize++] = (u_char) CHANGE_PW;
-
- /* change key to stream */
-
- send_st = realloc(send_st, stsize + 8);
- memcpy(send_st + stsize + 4, newkey, 4); /* yes, this is backwards */
- memcpy(send_st + stsize, newkey + 4, 4);
- stsize += 8;
-
- if(password && *password)
- stsize += vts_string(password, &send_st, stsize);
-
- retc = kadm_cli_send(send_st, stsize, &ret_st, &ret_sz);
- free(send_st);
-
- if(retc != KADM_SUCCESS){
- status = stv_string(ret_st, msg, 0, sizeof(msg), ret_sz);
- if(status<0)
- msg[0]=0;
- *pw_msg=msg;
- }
-
- if (ret_st)
- free(ret_st);
-
- kadm_cli_disconn();
- return(retc);
-}
-
-/*
- * kadm_change_pw
- * recieves : key
- *
- * Replaces the password (i.e. des key) of the caller with that specified in
- * key. Returns no actual data from the master server, since this is called
- * by a user
- */
-
-int kadm_change_pw(unsigned char *newkey)
-{
- char *pw_msg;
- return kadm_change_pw_plain(newkey, "", &pw_msg);
-}
-
-/*
- * kadm_add
- * receives : vals
- * returns : vals
- *
- * Adds and entry containing values to the database returns the values of the
- * entry, so if you leave certain fields blank you will be able to determine
- * the default values they are set to
- */
-int
-kadm_add(Kadm_vals *vals)
-{
- u_char *st, *st2; /* st will hold the stream of values */
- int st_len; /* st2 the final stream with opcode */
- int retc; /* return code from call */
- u_char *ret_st;
- int ret_sz;
-
- if ((retc = kadm_cli_conn()) != KADM_SUCCESS)
- return(retc);
- st_len = vals_to_stream(vals, &st);
- st2 = (u_char *) malloc((unsigned)(1 + st_len));
- *st2 = (u_char) ADD_ENT; /* here's the opcode */
- memcpy((char *) st2 + 1, st, st_len); /* append st on */
- retc = kadm_cli_send(st2, st_len + 1, &ret_st, &ret_sz);
- free(st);
- free(st2);
- if (retc == KADM_SUCCESS) {
- /* ret_st has vals */
- if (stream_to_vals(ret_st, vals, ret_sz) < 0)
- retc = KADM_LENGTH_ERROR;
- free(ret_st);
- }
- kadm_cli_disconn();
- return(retc);
-}
-
-/*
- * kadm_mod
- * receives : KTEXT, {values, values}
- * returns : CKSUM, RETCODE, {values}
- * acl : su, sms (as register or dealloc)
- *
- * Modifies all entries corresponding to the first values so they match the
- * second values. returns the values for the changed entries in vals2
- */
-int
-kadm_mod(Kadm_vals *vals1, Kadm_vals *vals2)
-{
- u_char *st, *st2; /* st will hold the stream of values */
- int st_len, nlen; /* st2 the final stream with opcode */
- u_char *ret_st;
- int ret_sz;
-
- /* nlen is the length of second vals */
- int retc; /* return code from call */
-
- if ((retc = kadm_cli_conn()) != KADM_SUCCESS)
- return(retc);
-
- st_len = vals_to_stream(vals1, &st);
- st2 = (u_char *) malloc((unsigned)(1 + st_len));
- *st2 = (u_char) MOD_ENT; /* here's the opcode */
- memcpy((char *)st2 + 1, st, st_len++); /* append st on */
- free(st);
- nlen = vals_to_stream(vals2, &st);
- st2 = (u_char *) realloc((char *) st2, (unsigned)(st_len + nlen));
- memcpy((char *) st2 + st_len, st, nlen); /* append st on */
- retc = kadm_cli_send(st2, st_len + nlen, &ret_st, &ret_sz);
- free(st);
- free(st2);
- if (retc == KADM_SUCCESS) {
- /* ret_st has vals */
- if (stream_to_vals(ret_st, vals2, ret_sz) < 0)
- retc = KADM_LENGTH_ERROR;
- free(ret_st);
- }
- kadm_cli_disconn();
- return(retc);
-}
-
-
-int
-kadm_del(Kadm_vals *vals)
-{
- unsigned char *st, *st2; /* st will hold the stream of values */
- int st_len; /* st2 the final stream with opcode */
- int retc; /* return code from call */
- u_char *ret_st;
- int ret_sz;
-
- if ((retc = kadm_cli_conn()) != KADM_SUCCESS)
- return(retc);
- st_len = vals_to_stream(vals, &st);
- st2 = (unsigned char *) malloc(st_len + 1);
- *st2 = DEL_ENT; /* here's the opcode */
- memcpy(st2 + 1, st, st_len); /* append st on */
- retc = kadm_cli_send(st2, st_len + 1, &ret_st, &ret_sz);
- free(st);
- free(st2);
- kadm_cli_disconn();
- return(retc);
-}
-
-
-/*
- * kadm_get
- * receives : KTEXT, {values, flags}
- * returns : CKSUM, RETCODE, {count, values, values, values}
- * acl : su
- *
- * gets the fields requested by flags from all entries matching values returns
- * this data for each matching recipient, after a count of how many such
- * matches there were
- */
-int
-kadm_get(Kadm_vals *vals, u_char *fl)
-{
- int loop; /* for copying the fields data */
- u_char *st, *st2; /* st will hold the stream of values */
- int st_len; /* st2 the final stream with opcode */
- int retc; /* return code from call */
- u_char *ret_st;
- int ret_sz;
-
- if ((retc = kadm_cli_conn()) != KADM_SUCCESS)
- return(retc);
- st_len = vals_to_stream(vals, &st);
- st2 = (u_char *) malloc((unsigned)(1 + st_len + FLDSZ));
- *st2 = (u_char) GET_ENT; /* here's the opcode */
- memcpy((char *)st2 + 1, st, st_len); /* append st on */
- for (loop = FLDSZ - 1; loop >= 0; loop--)
- *(st2 + st_len + FLDSZ - loop) = fl[loop]; /* append the flags */
- retc = kadm_cli_send(st2, st_len + 1 + FLDSZ, &ret_st, &ret_sz);
- free(st);
- free(st2);
- if (retc == KADM_SUCCESS) {
- /* ret_st has vals */
- if (stream_to_vals(ret_st, vals, ret_sz) < 0)
- retc = KADM_LENGTH_ERROR;
- free(ret_st);
- }
- kadm_cli_disconn();
- return(retc);
-}
diff --git a/crypto/kerberosIV/lib/kadm/kadm_err.et b/crypto/kerberosIV/lib/kadm/kadm_err.et
deleted file mode 100644
index 0a7c7b6b8db8..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm_err.et
+++ /dev/null
@@ -1,59 +0,0 @@
-# $Id: kadm_err.et,v 1.4 1996/06/12 08:01:34 bg Exp $
-# $Author: bg $
-#
-# Copyright 1988 by the Massachusetts Institute of Technology.
-#
-# For copying and distribution information, please see the file
-# <mit-copyright.h>.
-#
-# Kerberos administration server error table
-#
- et kadm
-
-# KADM_SUCCESS, as all success codes should be, is zero
-
-ec KADM_RCSID, "$Id: kadm_err.et,v 1.4 1996/06/12 08:01:34 bg Exp $"
-# /* Building and unbuilding the packet errors */
-ec KADM_NO_REALM, "Cannot fetch local realm"
-ec KADM_NO_CRED, "Unable to fetch credentials"
-ec KADM_BAD_KEY, "Bad key supplied"
-ec KADM_NO_ENCRYPT, "Can't encrypt data"
-ec KADM_NO_AUTH, "Cannot encode/decode authentication info"
-ec KADM_WRONG_REALM, "Principal attemping change is in wrong realm"
-ec KADM_NO_ROOM, "Packet is too large"
-ec KADM_BAD_VER, "Version number is incorrect"
-ec KADM_BAD_CHK, "Checksum does not match"
-ec KADM_NO_READ, "Unsealing private data failed"
-ec KADM_NO_OPCODE, "Unsupported operation"
-ec KADM_NO_HOST, "Could not find administrating host"
-ec KADM_UNK_HOST, "Administrating host name is unknown"
-ec KADM_NO_SERV, "Could not find service name in services database"
-ec KADM_NO_SOCK, "Could not create socket"
-ec KADM_NO_CONN, "Could not connect to server"
-ec KADM_NO_HERE, "Could not fetch local socket address"
-ec KADM_NO_MAST, "Could not fetch master key"
-ec KADM_NO_VERI, "Could not verify master key"
-
-# /* From the server side routines */
-ec KADM_INUSE, "Entry already exists in database"
-ec KADM_UK_SERROR, "Database store error"
-ec KADM_UK_RERROR, "Database read error"
-ec KADM_UNAUTH, "Insufficient access to perform requested operation"
-# KADM_DATA isn't really an error, but...
-ec KADM_DATA, "Data is available for return to client"
-ec KADM_NOENTRY, "No such entry in the database"
-
-ec KADM_NOMEM, "Memory exhausted"
-ec KADM_NO_HOSTNAME, "Could not fetch system hostname"
-ec KADM_NO_BIND, "Could not bind port"
-ec KADM_LENGTH_ERROR, "Length mismatch problem"
-ec KADM_ILL_WILDCARD, "Illegal use of wildcard"
-
-ec KADM_DB_INUSE, "Database is locked or in use--try again later"
-
-ec KADM_INSECURE_PW, "Insecure password rejected"
-ec KADM_PW_MISMATCH, "Cleartext password and DES key did not match"
-
-ec KADM_NOT_SERV_PRINC, "Invalid principal for change srvtab request"
-ec KADM_IMMUTABLE, "Attempt do delete immutable principal"
-end
diff --git a/crypto/kerberosIV/lib/kadm/kadm_locl.h b/crypto/kerberosIV/lib/kadm/kadm_locl.h
deleted file mode 100644
index e6e374bfe8fa..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm_locl.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kadm_locl.h,v 1.9 1997/05/20 18:40:44 bg Exp $ */
-
-#include "config.h"
-#include "protos.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <signal.h>
-#include <time.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <des.h>
-#include <krb.h>
-#include <krb_err.h>
-#include <krb_db.h>
-#include <kadm.h>
-#include <kadm_err.h>
-
-int vts_long __P((u_int32_t, u_char **, int));
-int vals_to_stream __P((Kadm_vals *, u_char **));
-int stream_to_vals __P((u_char *, Kadm_vals *, int));
-
-int kadm_init_link __P((char n[], char i[], char r[]));
-int kadm_change_pw __P((des_cblock));
-int kadm_add __P((Kadm_vals *));
-int kadm_mod __P((Kadm_vals *, Kadm_vals *));
-int kadm_get __P((Kadm_vals *, u_char fl[4]));
-
-
diff --git a/crypto/kerberosIV/lib/kadm/kadm_stream.c b/crypto/kerberosIV/lib/kadm/kadm_stream.c
deleted file mode 100644
index 33fe177cbfcb..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm_stream.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Stream conversion functions for Kerberos administration server
- */
-
-/*
- kadm_stream.c
- this holds the stream support routines for the kerberos administration server
-
- vals_to_stream: converts a vals struct to a stream for transmission
- internals build_field_header, vts_[string, char, long, short]
- stream_to_vals: converts a stream to a vals struct
- internals check_field_header, stv_[string, char, long, short]
- error: prints out a kadm error message, returns
- fatal: prints out a kadm fatal error message, exits
-*/
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_stream.c,v 1.11 1997/05/02 10:28:05 joda Exp $");
-
-static int
-build_field_header(u_char *cont, u_char **st)
- /* container for fields data */
- /* stream */
-{
- *st = (u_char *) malloc (4);
- memcpy(*st, cont, 4);
- return 4; /* return pointer to current stream location */
-}
-
-static int
-check_field_header(u_char *st, u_char *cont, int maxlen)
- /* stream */
- /* container for fields data */
-
-{
- if (4 > maxlen)
- return(-1);
- memcpy(cont, st, 4);
- return 4; /* return pointer to current stream location */
-}
-
-int
-vts_string(char *dat, u_char **st, int loc)
- /* a string to put on the stream */
- /* base pointer to the stream */
- /* offset into the stream for current data */
-{
- *st = (u_char *) realloc (*st, (unsigned) (loc + strlen(dat) + 1));
- memcpy(*st + loc, dat, strlen(dat)+1);
- return strlen(dat)+1;
-}
-
-
-static int
-vts_short(u_int16_t dat, u_char **st, int loc)
- /* the attributes field */
- /* a base pointer to the stream */
- /* offset into the stream for current data */
-{
- unsigned char *p;
- p = realloc(*st, loc + 2);
- if(p == NULL){
- abort();
- }
- p[loc] = (dat >> 8) & 0xff;
- p[loc+1] = dat & 0xff;
- *st = p;
- return 2;
-}
-
-static int
-vts_char(u_char dat, u_char **st, int loc)
- /* the attributes field */
- /* a base pointer to the stream */
- /* offset into the stream for current data */
-{
- unsigned char *p = realloc(*st, loc + 1);
- if(p == NULL){
- abort();
- }
- p[loc] = dat;
- *st = p;
- return 1;
-}
-
-int
-vts_long(u_int32_t dat, u_char **st, int loc)
- /* the attributes field */
- /* a base pointer to the stream */
- /* offset into the stream for current data */
-{
- unsigned char *p = realloc(*st, loc + 4);
- if(p == NULL){
- abort();
- }
- p[loc] = (dat >> 24) & 0xff;
- p[loc+1] = (dat >> 16) & 0xff;
- p[loc+2] = (dat >> 8) & 0xff;
- p[loc+3] = dat & 0xff;
- *st = p;
- return 4;
-}
-
-int
-stv_string(u_char *st, /* base pointer to the stream */
- char *dat, /* a string to read from the stream */
- int loc, /* offset into the stream for current data */
- int stlen, /* max length of string to copy in */
- int maxlen) /* max length of input stream */
-{
- int maxcount; /* max count of chars to copy */
-
- maxcount = min(maxlen - loc, stlen);
-
- if(maxcount <= 0)
- return -1;
-
- strncpy(dat, (char *)st + loc, maxcount);
-
- if (dat[maxcount-1]) /* not null-term --> not enuf room */
- return(-1);
- return strlen(dat)+1;
-}
-
-static int
-stv_short(u_char *st, u_int16_t *dat, int loc, int maxlen)
- /* a base pointer to the stream */
- /* the attributes field */
- /* offset into the stream for current data */
-
-{
- if (maxlen - loc < 2)
- return -1;
-
- *dat = (st[loc] << 8) | st[loc + 1];
- return 2;
-}
-
-int
-stv_long(u_char *st, u_int32_t *dat, int loc, int maxlen)
- /* a base pointer to the stream */
- /* the attributes field */
- /* offset into the stream for current data */
- /* maximum length of st */
-{
- if (maxlen - loc < 4)
- return -1;
-
- *dat = (st[loc] << 24) | (st[loc+1] << 16) | (st[loc+2] << 8) | st[loc+3];
- return 4;
-}
-
-static int
-stv_char(u_char *st, u_char *dat, int loc, int maxlen)
- /* a base pointer to the stream */
- /* the attributes field */
- /* offset into the stream for current data */
-
-{
- if (maxlen - loc < 1)
- return -1;
-
- *dat = st[loc];
- return 1;
-}
-
-/*
-vals_to_stream
- recieves : kadm_vals *, u_char *
- returns : a realloced and filled in u_char *
-
-this function creates a byte-stream representation of the kadm_vals structure
-*/
-int
-vals_to_stream(Kadm_vals *dt_in, u_char **dt_out)
-{
- int vsloop, stsize; /* loop counter, stream size */
-
- stsize = build_field_header(dt_in->fields, dt_out);
- for (vsloop=31; vsloop>=0; vsloop--)
- if (IS_FIELD(vsloop,dt_in->fields)) {
- switch (vsloop) {
- case KADM_NAME:
- stsize+=vts_string(dt_in->name, dt_out, stsize);
- break;
- case KADM_INST:
- stsize+=vts_string(dt_in->instance, dt_out, stsize);
- break;
- case KADM_EXPDATE:
- stsize+=vts_long(dt_in->exp_date, dt_out, stsize);
- break;
- case KADM_ATTR:
- stsize+=vts_short(dt_in->attributes, dt_out, stsize);
- break;
- case KADM_MAXLIFE:
- stsize+=vts_char(dt_in->max_life, dt_out, stsize);
- break;
- case KADM_DESKEY:
- stsize+=vts_long(dt_in->key_high, dt_out, stsize);
- stsize+=vts_long(dt_in->key_low, dt_out, stsize);
- break;
- default:
- break;
- }
-}
- return(stsize);
-}
-
-/*
-stream_to_vals
- recieves : u_char *, kadm_vals *
- returns : a kadm_vals filled in according to u_char *
-
-this decodes a byte stream represntation of a vals struct into kadm_vals
-*/
-int
-stream_to_vals(u_char *dt_in, Kadm_vals *dt_out, int maxlen)
-
-
- /* max length to use */
-{
- int vsloop, stsize; /* loop counter, stream size */
- int status;
-
- memset(dt_out, 0, sizeof(*dt_out));
-
- stsize = check_field_header(dt_in, dt_out->fields, maxlen);
- if (stsize < 0)
- return(-1);
- for (vsloop=31; vsloop>=0; vsloop--)
- if (IS_FIELD(vsloop,dt_out->fields))
- switch (vsloop) {
- case KADM_NAME:
- if ((status = stv_string(dt_in, dt_out->name, stsize,
- sizeof(dt_out->name), maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- case KADM_INST:
- if ((status = stv_string(dt_in, dt_out->instance, stsize,
- sizeof(dt_out->instance), maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- case KADM_EXPDATE:
- if ((status = stv_long(dt_in, &dt_out->exp_date, stsize,
- maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- case KADM_ATTR:
- if ((status = stv_short(dt_in, &dt_out->attributes, stsize,
- maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- case KADM_MAXLIFE:
- if ((status = stv_char(dt_in, &dt_out->max_life, stsize,
- maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- case KADM_DESKEY:
- if ((status = stv_long(dt_in, &dt_out->key_high, stsize,
- maxlen)) < 0)
- return(-1);
- stsize += status;
- if ((status = stv_long(dt_in, &dt_out->key_low, stsize,
- maxlen)) < 0)
- return(-1);
- stsize += status;
- break;
- default:
- break;
- }
- return stsize;
-}
diff --git a/crypto/kerberosIV/lib/kadm/kadm_supp.c b/crypto/kerberosIV/lib/kadm/kadm_supp.c
deleted file mode 100644
index 984526764770..000000000000
--- a/crypto/kerberosIV/lib/kadm/kadm_supp.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Support functions for Kerberos administration server & clients
- */
-
-/*
- kadm_supp.c
- this holds the support routines for the kerberos administration server
-
- error: prints out a kadm error message, returns
- fatal: prints out a kadm fatal error message, exits
- prin_vals: prints out data associated with a Principal in the vals
- structure
-*/
-
-#include "kadm_locl.h"
-
-RCSID("$Id: kadm_supp.c,v 1.8 1997/05/02 10:27:58 joda Exp $");
-
-/*
-prin_vals:
- recieves : a vals structure
-*/
-void
-prin_vals(Kadm_vals *vals)
-{
- printf("Info in Database for %s.%s:\n", vals->name, vals->instance);
- printf(" Max Life: %d (%s) Exp Date: %s\n",
- vals->max_life,
- krb_life_to_atime(vals->max_life),
- asctime(k_localtime(&vals->exp_date)));
- printf(" Attribs: %.2x key: %#lx %#lx\n",
- vals->attributes,
- (long)vals->key_low, (long)vals->key_high);
-}
-
-/* kadm_prin_to_vals takes a fields arguments, a Kadm_vals and a Principal,
- it copies the fields in Principal specified by fields into Kadm_vals,
- i.e from old to new */
-
-void
-kadm_prin_to_vals(u_char *fields, Kadm_vals *new, Principal *old)
-{
- memset(new, 0, sizeof(*new));
- if (IS_FIELD(KADM_NAME,fields)) {
- strncpy(new->name, old->name, ANAME_SZ);
- SET_FIELD(KADM_NAME, new->fields);
- }
- if (IS_FIELD(KADM_INST,fields)) {
- strncpy(new->instance, old->instance, INST_SZ);
- SET_FIELD(KADM_INST, new->fields);
- }
- if (IS_FIELD(KADM_EXPDATE,fields)) {
- new->exp_date = old->exp_date;
- SET_FIELD(KADM_EXPDATE, new->fields);
- }
- if (IS_FIELD(KADM_ATTR,fields)) {
- new->attributes = old->attributes;
- SET_FIELD(KADM_ATTR, new->fields);
- }
- if (IS_FIELD(KADM_MAXLIFE,fields)) {
- new->max_life = old->max_life;
- SET_FIELD(KADM_MAXLIFE, new->fields);
- }
- if (IS_FIELD(KADM_DESKEY,fields)) {
- new->key_low = old->key_low;
- new->key_high = old->key_high;
- SET_FIELD(KADM_DESKEY, new->fields);
- }
-}
-
-void
-kadm_vals_to_prin(u_char *fields, Principal *new, Kadm_vals *old)
-{
-
- memset(new, 0, sizeof(*new));
- if (IS_FIELD(KADM_NAME,fields))
- strncpy(new->name, old->name, ANAME_SZ);
- if (IS_FIELD(KADM_INST,fields))
- strncpy(new->instance, old->instance, INST_SZ);
- if (IS_FIELD(KADM_EXPDATE,fields))
- new->exp_date = old->exp_date;
- if (IS_FIELD(KADM_ATTR,fields))
- new->attributes = old->attributes;
- if (IS_FIELD(KADM_MAXLIFE,fields))
- new->max_life = old->max_life;
- if (IS_FIELD(KADM_DESKEY,fields)) {
- new->key_low = old->key_low;
- new->key_high = old->key_high;
- }
-}
diff --git a/crypto/kerberosIV/lib/kafs/Makefile.in b/crypto/kerberosIV/lib/kafs/Makefile.in
deleted file mode 100644
index e9c9121be2d7..000000000000
--- a/crypto/kerberosIV/lib/kafs/Makefile.in
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# $Id: Makefile.in,v 1.30 1997/05/06 03:47:35 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@ -DLIBDIR='"$(libdir)"'
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)kafs
-LIBEXT = @LIBEXT@
-SHLIBEXT = @SHLIBEXT@
-LIBPREFIX = @LIBPREFIX@
-LDSHARED = @LDSHARED@
-AFS_EXTRA_LIBS = @AFS_EXTRA_LIBS@
-LIB = $(LIBNAME).$(LIBEXT) $(AFS_EXTRA_LIBS)
-
-SOURCES = afssys.c afskrb.c afslib.c
-
-OBJECTS = afssys.o afskrb.o
-
-all: $(LIB)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) *.o *.a
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS) @AFS_EXTRA_OBJS@
- rm -f $@
- $(AR) cr $@ $(OBJECTS) @AFS_EXTRA_OBJS@
- -$(RANLIB) $@
-
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS)
-
-# AIX: this almost works with gcc, but somehow it fails to use the
-# correct ld, use ld instead
-afslib.so: afslib.o
- ld -o $@ -bM:SRE -bI:$(srcdir)/afsl.exp -bE:$(srcdir)/afslib.exp -bnoentry afslib.o
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/lib/kafs/afskrb.c b/crypto/kerberosIV/lib/kafs/afskrb.c
deleted file mode 100644
index d979ac5b72d6..000000000000
--- a/crypto/kerberosIV/lib/kafs/afskrb.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kafs_locl.h"
-
-RCSID("$Id: afskrb.c,v 1.6 1997/05/26 17:38:24 bg Exp $");
-
-#define AUTH_SUPERUSER "afs"
-
-/*
- * Here only ASCII characters are relevant.
- */
-
-#define IsAsciiLower(c) ('a' <= (c) && (c) <= 'z')
-
-#define ToAsciiUpper(c) ((c) - 'a' + 'A')
-
-static void
-foldup(char *a, const char *b)
-{
- for (; *b; a++, b++)
- if (IsAsciiLower(*b))
- *a = ToAsciiUpper(*b);
- else
- *a = *b;
- *a = '\0';
-}
-
-static int
-get_cred(const char *princ, const char *inst, const char *krealm,
- CREDENTIALS *c, KTEXT_ST *tkt)
-{
- int k_errno = krb_get_cred((char*)princ, (char*)inst, (char*)krealm, c);
-
- if (k_errno != KSUCCESS)
- {
- k_errno = krb_mk_req(tkt, (char*)princ, (char*)inst, (char*)krealm, 0);
- if (k_errno == KSUCCESS)
- k_errno = krb_get_cred((char*)princ, (char*)inst, (char*)krealm, c);
- }
- return k_errno;
-}
-
-
-/* Convert a string to a 32 bit ip number in network byte order.
- Return 0 on error
- */
-
-static u_int32_t
-ip_aton(char *ip)
-{
- u_int32_t addr;
- unsigned int a, b, c, d;
-
- if(sscanf(ip, "%u.%u.%u.%u", &a, &b, &c, &d) != 4)
- return 0;
- if((a | b | c | d) > 255)
- return 0;
- addr = (a << 24) | (b << 16) | (c << 8) | d;
- addr = htonl(addr);
- return addr;
-}
-
-/* Try to get a db-server for an AFS cell from a AFSDB record */
-
-static int
-dns_find_cell(const char *cell, char *dbserver)
-{
- struct dns_reply *r;
- int ok = -1;
- r = dns_lookup(cell, "afsdb");
- if(r){
- struct resource_record *rr = r->head;
- while(rr){
- if(rr->type == T_AFSDB && rr->u.afsdb->preference == 1){
- strncpy(dbserver, rr->u.afsdb->domain, MaxHostNameLen);
- dbserver[MaxHostNameLen - 1] = 0;
- ok = 0;
- break;
- }
- rr = rr->next;
- }
- dns_free_data(r);
- }
- return ok;
-}
-
-
-/* Find the realm associated with cell. Do this by opening
- /usr/vice/etc/CellServDB and getting the realm-of-host for the
- first VL-server for the cell.
-
- This does not work when the VL-server is living in one cell, but
- the cell it is serving is living in another cell.
- */
-
-static char*
-realm_of_cell(const char *cell)
-{
- FILE *F;
- char buf[1024];
- u_int32_t addr;
- struct hostent *hp;
- char *realm = NULL;
-
- if((F = fopen(_PATH_CELLSERVDB, "r"))){
- while(fgets(buf, sizeof(buf), F)){
- if(buf[0] != '>')
- continue;
- if(strncmp(buf + 1, cell, strlen(cell)) == 0){
- if(fgets(buf, sizeof(buf), F) == NULL)
- break;
- addr = ip_aton(buf);
- if(addr == 0)
- break;
- hp = gethostbyaddr((char*)&addr, 4, AF_INET);
- if(hp == NULL)
- break;
- strncpy (buf, hp->h_name, sizeof(buf));
- buf[sizeof(buf) - 1] = '\0';
- realm = krb_realmofhost(buf);
- break;
- }
- }
- fclose(F);
- }
- if(realm == NULL){
- if(dns_find_cell(cell, buf) == 0)
- realm = krb_realmofhost(buf);
- }
- return realm;
-}
-
-/*
- * Get tokens for all cells[]
- */
-static int
-k_afslog_cells(char *cells[], int max, const char *krealm, uid_t uid)
-{
- int err = KSUCCESS;
- int i;
- for(i = 0; i < max; i++)
- err = k_afsklog_uid(cells[i], krealm, uid);
- return err;
-}
-
-/*
- * Try to find the cells we should try to klog to in "file".
- */
-static void
-k_find_cells(char *file, char *cells[], int size, int *index)
-{
- FILE *f;
- char cell[64];
- int i;
- f = fopen(file, "r");
- if (f == NULL)
- return;
- while (*index < size && fgets(cell, sizeof(cell), f)) {
- char *nl = strchr(cell, '\n');
- if (nl) *nl = 0;
- for(i = 0; i < *index; i++)
- if(strcmp(cells[i], cell) == 0)
- break;
- if(i == *index)
- cells[(*index)++] = strdup(cell);
- }
- fclose(f);
-}
-
-static int
-k_afsklog_all_local_cells(const char *krealm, uid_t uid)
-{
- int err;
- char *cells[32]; /* XXX */
- int num_cells = sizeof(cells) / sizeof(cells[0]);
- int index = 0;
-
- char *p;
-
- if ((p = getenv("HOME"))) {
- char home[MaxPathLen];
-
- if (k_concat(home, sizeof(home), p, "/.TheseCells", NULL) == 0)
- k_find_cells(home, cells, num_cells, &index);
- }
- k_find_cells(_PATH_THESECELLS, cells, num_cells, &index);
- k_find_cells(_PATH_THISCELL, cells, num_cells, &index);
-
- err = k_afslog_cells(cells, index, krealm, uid);
- while(index > 0)
- free(cells[--index]);
- return err;
-}
-
-int
-k_afsklog_uid(const char *cell, const char *krealm, uid_t uid)
-{
- int k_errno;
- CREDENTIALS c;
- KTEXT_ST ticket;
- char realm[REALM_SZ];
- char *vl_realm; /* realm of vl-server */
- char *lrealm; /* local realm */
- char CELL[64];
-
- if (cell == 0 || cell[0] == 0)
- return k_afsklog_all_local_cells (krealm, uid);
- foldup(CELL, cell);
-
- k_errno = krb_get_lrealm(realm , 0);
- if(k_errno == KSUCCESS && (krealm == NULL || strcmp(krealm, realm)))
- lrealm = realm;
- else
- lrealm = NULL;
-
- /* We're about to find the the realm that holds the key for afs in
- * the specified cell. The problem is that null-instance
- * afs-principals are common and that hitting the wrong realm might
- * yield the wrong afs key. The following assumptions were made.
- *
- * Any realm passed to us is preferred.
- *
- * If there is a realm with the same name as the cell, it is most
- * likely the correct realm to talk to.
- *
- * In most (maybe even all) cases the database servers of the cell
- * will live in the realm we are looking for.
- *
- * Try the local realm, but if the previous cases fail, this is
- * really a long shot.
- *
- */
-
- /* comments on the ordering of these tests */
-
- /* If the user passes a realm, she probably knows something we don't
- * know and we should try afs@krealm (otherwise we're talking with a
- * blondino and she might as well have it.)
- */
-
- k_errno = -1;
- if(krealm){
- k_errno = get_cred(AUTH_SUPERUSER, cell, krealm, &c, &ticket);
- if(k_errno)
- k_errno = get_cred(AUTH_SUPERUSER, "", krealm, &c, &ticket);
- }
-
- if(k_errno)
- k_errno = get_cred(AUTH_SUPERUSER, cell, CELL, &c, &ticket);
- if(k_errno)
- k_errno = get_cred(AUTH_SUPERUSER, "", CELL, &c, &ticket);
-
- /* this might work in some conditions */
- if(k_errno && (vl_realm = realm_of_cell(cell))){
- k_errno = get_cred(AUTH_SUPERUSER, cell, vl_realm, &c, &ticket);
- if(k_errno)
- k_errno = get_cred(AUTH_SUPERUSER, "", vl_realm, &c, &ticket);
- }
-
- if(k_errno && lrealm){
- k_errno = get_cred(AUTH_SUPERUSER, cell, lrealm, &c, &ticket);
-#if 0
- /* this is most likely never right anyway, but won't fail */
- if(k_errno)
- k_errno = get_cred(AUTH_SUPERUSER, "", lrealm, &c, &ticket);
-#endif
- }
-
- if (k_errno == KSUCCESS)
- {
- struct ViceIoctl parms;
- struct ClearToken ct;
- int32_t sizeof_x;
- char buf[2048], *t;
-
- /*
- * Build a struct ClearToken
- */
- ct.AuthHandle = c.kvno;
- memcpy (ct.HandShakeKey, c.session, sizeof(c.session));
- ct.ViceId = uid; /* is this always valid? */
- ct.BeginTimestamp = 1 + c.issue_date;
- ct.EndTimestamp = krb_life_to_time(c.issue_date, c.lifetime);
-
-#define ODD(x) ((x) & 1)
- /* If we don't know the numerical ID lifetime should be even? */
- if (uid == 0 && ODD(ct.EndTimestamp - ct.BeginTimestamp))
- ct.BeginTimestamp--;
-
- t = buf;
- /*
- * length of secret token followed by secret token
- */
- sizeof_x = c.ticket_st.length;
- memcpy(t, &sizeof_x, sizeof(sizeof_x));
- t += sizeof(sizeof_x);
- memcpy(t, c.ticket_st.dat, sizeof_x);
- t += sizeof_x;
- /*
- * length of clear token followed by clear token
- */
- sizeof_x = sizeof(ct);
- memcpy(t, &sizeof_x, sizeof(sizeof_x));
- t += sizeof(sizeof_x);
- memcpy(t, &ct, sizeof_x);
- t += sizeof_x;
-
- /*
- * do *not* mark as primary cell
- */
- sizeof_x = 0;
- memcpy(t, &sizeof_x, sizeof(sizeof_x));
- t += sizeof(sizeof_x);
- /*
- * follow with cell name
- */
- sizeof_x = strlen(cell) + 1;
- memcpy(t, cell, sizeof_x);
- t += sizeof_x;
-
- /*
- * Build argument block
- */
- parms.in = buf;
- parms.in_size = t - buf;
- parms.out = 0;
- parms.out_size = 0;
- k_pioctl(0, VIOCSETTOK, &parms, 0);
- }
- return k_errno;
-}
-
-int
-k_afsklog(const char *cell, const char *krealm)
-{
- return k_afsklog_uid (cell, krealm, getuid());
-}
diff --git a/crypto/kerberosIV/lib/kafs/afsl.exp b/crypto/kerberosIV/lib/kafs/afsl.exp
deleted file mode 100644
index 4d2b00e28337..000000000000
--- a/crypto/kerberosIV/lib/kafs/afsl.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/unix
-
-* This mumbo jumbo creates entry points to syscalls in _AIX
-
-lpioctl syscall
-lsetpag syscall
diff --git a/crypto/kerberosIV/lib/kafs/afslib.c b/crypto/kerberosIV/lib/kafs/afslib.c
deleted file mode 100644
index 12779bcd72d9..000000000000
--- a/crypto/kerberosIV/lib/kafs/afslib.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/*
- * This file is only used with AIX
- */
-
-#include "kafs_locl.h"
-
-RCSID("$Id: afslib.c,v 1.5 1997/04/20 13:21:15 joda Exp $");
-
-int
-aix_pioctl(char *a_path,
- int o_opcode,
- struct ViceIoctl *a_paramsP,
- int a_followSymlinks)
-{
- return lpioctl(a_path, o_opcode, a_paramsP, a_followSymlinks);
-}
-
-int
-aix_setpag(void)
-{
- return lsetpag();
-}
diff --git a/crypto/kerberosIV/lib/kafs/afslib.exp b/crypto/kerberosIV/lib/kafs/afslib.exp
deleted file mode 100644
index f288717706ea..000000000000
--- a/crypto/kerberosIV/lib/kafs/afslib.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-#!
-aix_pioctl
-aix_setpag
diff --git a/crypto/kerberosIV/lib/kafs/afssys.c b/crypto/kerberosIV/lib/kafs/afssys.c
deleted file mode 100644
index 741225ca3381..000000000000
--- a/crypto/kerberosIV/lib/kafs/afssys.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kafs_locl.h"
-
-RCSID("$Id: afssys.c,v 1.53 1997/05/04 02:30:41 assar Exp $");
-
-/* Magic to get AIX syscalls to work */
-#ifdef _AIX
-
-static int (*Pioctl)(char*, int, void*, int);
-static int (*Setpag)(void);
-
-#include "dlfcn.h"
-
-static int
-isSuid()
-{
- int uid = getuid();
- int gid = getgid();
- int euid = getegid();
- int egid = getegid();
- return (uid != euid) || (gid != egid);
-}
-
-static int
-aix_setup(void)
-{
-#ifdef STATIC_AFS_SYSCALLS
- Pioctl = aix_pioctl;
- Setpag = aix_setpag;
-#else
- void *ptr;
- char path[MaxPathLen], *p;
- /*
- * If we are root or running setuid don't trust AFSLIBPATH!
- */
- if (getuid() != 0 && !isSuid() && (p = getenv("AFSLIBPATH")) != NULL)
- strcpy(path, p);
- else
- snprintf(path, sizeof(path), "%s/afslib.so", LIBDIR);
-
- ptr = dlopen(path, 0);
- if(ptr){
- Setpag = (int (*)(void))dlsym(ptr, "aix_setpag");
- Pioctl = (int (*)(char*, int, void*, int))dlsym(ptr, "aix_pioctl");
- }
-#endif
-}
-#endif /* _AIX */
-
-#define NO_ENTRY_POINT 0
-#define SINGLE_ENTRY_POINT 1
-#define MULTIPLE_ENTRY_POINT 2
-#define SINGLE_ENTRY_POINT2 3
-#define SINGLE_ENTRY_POINT3 4
-#define AIX_ENTRY_POINTS 5
-#define UNKNOWN_ENTRY_POINT 6
-static int afs_entry_point = UNKNOWN_ENTRY_POINT;
-static int afs_syscalls[2];
-
-
-int
-k_pioctl(char *a_path,
- int o_opcode,
- struct ViceIoctl *a_paramsP,
- int a_followSymlinks)
-{
-#ifndef NO_AFS
- switch(afs_entry_point){
-#if defined(AFS_SYSCALL) || defined(AFS_SYSCALL2) || defined(AFS_SYSCALL3)
- case SINGLE_ENTRY_POINT:
- case SINGLE_ENTRY_POINT2:
- case SINGLE_ENTRY_POINT3:
- return syscall(afs_syscalls[0], AFSCALL_PIOCTL,
- a_path, o_opcode, a_paramsP, a_followSymlinks);
-#endif
-#if defined(AFS_PIOCTL)
- case MULTIPLE_ENTRY_POINT:
- return syscall(afs_syscalls[0],
- a_path, o_opcode, a_paramsP, a_followSymlinks);
-#endif
-#ifdef _AIX
- case AIX_ENTRY_POINTS:
- return Pioctl(a_path, o_opcode, a_paramsP, a_followSymlinks);
-#endif
- }
-
- errno = ENOSYS;
-#ifdef SIGSYS
- kill(getpid(), SIGSYS); /* You loose! */
-#endif
-#endif /* NO_AFS */
- return -1;
-}
-
-int
-k_afs_cell_of_file(const char *path, char *cell, int len)
-{
- struct ViceIoctl parms;
- parms.in = NULL;
- parms.in_size = 0;
- parms.out = cell;
- parms.out_size = len;
- return k_pioctl((char*)path, VIOC_FILE_CELL_NAME, &parms, 1);
-}
-
-int
-k_unlog(void)
-{
- struct ViceIoctl parms;
- memset(&parms, 0, sizeof(parms));
- return k_pioctl(0, VIOCUNLOG, &parms, 0);
-}
-
-int
-k_setpag(void)
-{
-#ifndef NO_AFS
- switch(afs_entry_point){
-#if defined(AFS_SYSCALL) || defined(AFS_SYSCALL2) || defined(AFS_SYSCALL3)
- case SINGLE_ENTRY_POINT:
- case SINGLE_ENTRY_POINT2:
- case SINGLE_ENTRY_POINT3:
- return syscall(afs_syscalls[0], AFSCALL_SETPAG);
-#endif
-#if defined(AFS_PIOCTL)
- case MULTIPLE_ENTRY_POINT:
- return syscall(afs_syscalls[1]);
-#endif
-#ifdef _AIX
- case AIX_ENTRY_POINTS:
- return Setpag();
-#endif
- }
-
- errno = ENOSYS;
-#ifdef SIGSYS
- kill(getpid(), SIGSYS); /* You loose! */
-#endif
-#endif /* NO_AFS */
- return -1;
-}
-
-static jmp_buf catch_SIGSYS;
-
-#ifdef SIGSYS
-
-static RETSIGTYPE
-SIGSYS_handler(int sig)
-{
- errno = 0;
- signal(SIGSYS, SIGSYS_handler); /* Need to reinstall handler on SYSV */
- longjmp(catch_SIGSYS, 1);
-}
-
-#endif
-
-int
-k_hasafs(void)
-{
- int saved_errno;
- RETSIGTYPE (*saved_func)();
- struct ViceIoctl parms;
-
- /*
- * Already checked presence of AFS syscalls?
- */
- if (afs_entry_point != UNKNOWN_ENTRY_POINT)
- return afs_entry_point != NO_ENTRY_POINT;
-
- /*
- * Probe kernel for AFS specific syscalls,
- * they (currently) come in two flavors.
- * If the syscall is absent we recive a SIGSYS.
- */
- afs_entry_point = NO_ENTRY_POINT;
- memset(&parms, 0, sizeof(parms));
-
- saved_errno = errno;
-#ifndef NO_AFS
-#ifdef SIGSYS
- saved_func = signal(SIGSYS, SIGSYS_handler);
-#endif
-
-#ifdef AFS_SYSCALL
- if (setjmp(catch_SIGSYS) == 0)
- {
- syscall(AFS_SYSCALL, AFSCALL_PIOCTL,
- 0, VIOCSETTOK, &parms, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- if (errno == EINVAL)
- {
- afs_entry_point = SINGLE_ENTRY_POINT;
- afs_syscalls[0] = AFS_SYSCALL;
- goto done;
- }
- }
-#endif /* AFS_SYSCALL */
-
-#ifdef AFS_PIOCTL
- if (setjmp(catch_SIGSYS) == 0)
- {
- syscall(AFS_PIOCTL,
- 0, VIOCSETTOK, &parms, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- if (errno == EINVAL)
- {
- afs_entry_point = MULTIPLE_ENTRY_POINT;
- afs_syscalls[0] = AFS_PIOCTL;
- afs_syscalls[1] = AFS_SETPAG;
- goto done;
- }
- }
-#endif /* AFS_PIOCTL */
-
-#ifdef AFS_SYSCALL2
- if (setjmp(catch_SIGSYS) == 0)
- {
- syscall(AFS_SYSCALL2, AFSCALL_PIOCTL,
- 0, VIOCSETTOK, &parms, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- if (errno == EINVAL)
- {
- afs_entry_point = SINGLE_ENTRY_POINT2;
- afs_syscalls[0] = AFS_SYSCALL2;
- goto done;
- }
- }
-#endif /* AFS_SYSCALL */
-
-#ifdef AFS_SYSCALL3
- if (setjmp(catch_SIGSYS) == 0)
- {
- syscall(AFS_SYSCALL3, AFSCALL_PIOCTL,
- 0, VIOCSETTOK, &parms, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- if (errno == EINVAL)
- {
- afs_entry_point = SINGLE_ENTRY_POINT3;
- afs_syscalls[0] = AFS_SYSCALL3;
- goto done;
- }
- }
-#endif /* AFS_SYSCALL */
-
-#ifdef _AIX
- aix_setup();
- if(Pioctl != NULL && Setpag != NULL){
- afs_entry_point = AIX_ENTRY_POINTS;
- goto done;
- }
-#endif
-
-done:
-#ifdef SIGSYS
- signal(SIGSYS, saved_func);
-#endif
-#endif /* NO_AFS */
- errno = saved_errno;
- return afs_entry_point != NO_ENTRY_POINT;
-}
diff --git a/crypto/kerberosIV/lib/kafs/afssysdefs.h b/crypto/kerberosIV/lib/kafs/afssysdefs.h
deleted file mode 100644
index 028f9b3f59f4..000000000000
--- a/crypto/kerberosIV/lib/kafs/afssysdefs.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: afssysdefs.h,v 1.15 1997/04/01 08:18:12 joda Exp $ */
-
-/*
- * This section is for machines using single entry point AFS syscalls!
- * and/or
- * This section is for machines using multiple entry point AFS syscalls!
- *
- * SunOS 4 is an example of single entry point and sgi of multiple
- * entry point syscalls.
- */
-
-#if SunOS == 4
-#define AFS_SYSCALL 31
-#endif
-
-#if SunOS == 5
-#define AFS_SYSCALL 105
-#endif
-
-#if defined(__hpux)
-#define AFS_SYSCALL 50
-#define AFS_SYSCALL2 49
-#endif
-
-#if defined(_AIX)
-/* _AIX is too weird */
-#endif
-
-#if defined(__sgi)
-#define AFS_PIOCTL (64+1000)
-#define AFS_SETPAG (65+1000)
-#endif
-
-#if defined(__osf__)
-#define AFS_SYSCALL 232
-#define AFS_SYSCALL2 258
-#endif
-
-#if defined(__ultrix)
-#define AFS_SYSCALL 31
-#endif
-
-#if defined(__NetBSD__)
-#define AFS_SYSCALL 210
-#endif
-
-#ifdef SYS_afs_syscall
-#define AFS_SYSCALL3 SYS_afs_syscall
-#endif
diff --git a/crypto/kerberosIV/lib/kafs/dlfcn.c b/crypto/kerberosIV/lib/kafs/dlfcn.c
deleted file mode 100644
index 3f4de9221665..000000000000
--- a/crypto/kerberosIV/lib/kafs/dlfcn.c
+++ /dev/null
@@ -1,570 +0,0 @@
-/*
- * @(#)dlfcn.c 1.11 revision of 96/04/10 20:12:51
- * This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
- * 30159 Hannover, Germany
- */
-
-/*
- * Changes marked with `--jwe' were made on April 7 1996 by John W. Eaton
- * <jwe@bevo.che.wisc.edu> to support g++ and/or use with Octave.
- */
-
-/*
- * This makes my life easier with Octave. --jwe
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/ldr.h>
-#include <a.out.h>
-#include <ldfcn.h>
-#include "dlfcn.h"
-
-/*
- * We simulate dlopen() et al. through a call to load. Because AIX has
- * no call to find an exported symbol we read the loader section of the
- * loaded module and build a list of exported symbols and their virtual
- * address.
- */
-
-typedef struct {
- char *name; /* the symbols's name */
- void *addr; /* its relocated virtual address */
-} Export, *ExportPtr;
-
-/*
- * xlC uses the following structure to list its constructors and
- * destructors. This is gleaned from the output of munch.
- */
-typedef struct {
- void (*init)(void); /* call static constructors */
- void (*term)(void); /* call static destructors */
-} Cdtor, *CdtorPtr;
-
-typedef void (*GccCDtorPtr)(void);
-
-/*
- * The void * handle returned from dlopen is actually a ModulePtr.
- */
-typedef struct Module {
- struct Module *next;
- char *name; /* module name for refcounting */
- int refCnt; /* the number of references */
- void *entry; /* entry point from load */
- struct dl_info *info; /* optional init/terminate functions */
- CdtorPtr cdtors; /* optional C++ constructors */
- GccCDtorPtr gcc_ctor; /* g++ constructors --jwe */
- GccCDtorPtr gcc_dtor; /* g++ destructors --jwe */
- int nExports; /* the number of exports found */
- ExportPtr exports; /* the array of exports */
-} Module, *ModulePtr;
-
-/*
- * We keep a list of all loaded modules to be able to call the fini
- * handlers and destructors at atexit() time.
- */
-static ModulePtr modList;
-
-/*
- * The last error from one of the dl* routines is kept in static
- * variables here. Each error is returned only once to the caller.
- */
-static char errbuf[BUFSIZ];
-static int errvalid;
-
-/*
- * The `fixed' gcc header files on AIX 3.2.5 provide a prototype for
- * strdup(). --jwe
- */
-#ifndef HAVE_STRDUP
-extern char *strdup(const char *);
-#endif
-static void caterr(char *);
-static int readExports(ModulePtr);
-static void terminate(void);
-static void *findMain(void);
-
-void *dlopen(const char *path, int mode)
-{
- ModulePtr mp;
- static void *mainModule;
-
- /*
- * Upon the first call register a terminate handler that will
- * close all libraries. Also get a reference to the main module
- * for use with loadbind.
- */
- if (!mainModule) {
- if ((mainModule = findMain()) == NULL)
- return NULL;
- atexit(terminate);
- }
- /*
- * Scan the list of modules if we have the module already loaded.
- */
- for (mp = modList; mp; mp = mp->next)
- if (strcmp(mp->name, path) == 0) {
- mp->refCnt++;
- return mp;
- }
- if ((mp = (ModulePtr)calloc(1, sizeof(*mp))) == NULL) {
- errvalid++;
- strcpy(errbuf, "calloc: ");
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- if ((mp->name = strdup(path)) == NULL) {
- errvalid++;
- strcpy(errbuf, "strdup: ");
- strcat(errbuf, strerror(errno));
- free(mp);
- return NULL;
- }
- /*
- * load should be declared load(const char *...). Thus we
- * cast the path to a normal char *. Ugly.
- */
- if ((mp->entry = (void *)load((char *)path, L_NOAUTODEFER, NULL)) == NULL) {
- free(mp->name);
- free(mp);
- errvalid++;
- strcpy(errbuf, "dlopen: ");
- strcat(errbuf, path);
- strcat(errbuf, ": ");
- /*
- * If AIX says the file is not executable, the error
- * can be further described by querying the loader about
- * the last error.
- */
- if (errno == ENOEXEC) {
- char *tmp[BUFSIZ/sizeof(char *)];
- if (loadquery(L_GETMESSAGES, tmp, sizeof(tmp)) == -1)
- strcpy(errbuf, strerror(errno));
- else {
- char **p;
- for (p = tmp; *p; p++)
- caterr(*p);
- }
- } else
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- mp->refCnt = 1;
- mp->next = modList;
- modList = mp;
- if (loadbind(0, mainModule, mp->entry) == -1) {
- dlclose(mp);
- errvalid++;
- strcpy(errbuf, "loadbind: ");
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- /*
- * If the user wants global binding, loadbind against all other
- * loaded modules.
- */
- if (mode & RTLD_GLOBAL) {
- ModulePtr mp1;
- for (mp1 = mp->next; mp1; mp1 = mp1->next)
- if (loadbind(0, mp1->entry, mp->entry) == -1) {
- dlclose(mp);
- errvalid++;
- strcpy(errbuf, "loadbind: ");
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- }
- if (readExports(mp) == -1) {
- dlclose(mp);
- return NULL;
- }
- /*
- * If there is a dl_info structure, call the init function.
- */
- if (mp->info = (struct dl_info *)dlsym(mp, "dl_info")) {
- if (mp->info->init)
- (*mp->info->init)();
- } else
- errvalid = 0;
- /*
- * If the shared object was compiled using xlC we will need
- * to call static constructors (and later on dlclose destructors).
- */
- if (mp->cdtors = (CdtorPtr)dlsym(mp, "__cdtors")) {
- CdtorPtr cp = mp->cdtors;
- while (cp->init || cp->term) {
- if (cp->init && cp->init != (void (*)(void))0xffffffff)
- (*cp->init)();
- cp++;
- }
- /*
- * If the shared object was compiled using g++, we will need
- * to call global constructors using the _GLOBAL__DI function,
- * and later, global destructors using the _GLOBAL_DD
- * funciton. --jwe
- */
- } else if (mp->gcc_ctor = (GccCDtorPtr)dlsym(mp, "_GLOBAL__DI")) {
- (*mp->gcc_ctor)();
- mp->gcc_dtor = (GccCDtorPtr)dlsym(mp, "_GLOBAL__DD");
- } else
- errvalid = 0;
- return mp;
-}
-
-/*
- * Attempt to decipher an AIX loader error message and append it
- * to our static error message buffer.
- */
-static void caterr(char *s)
-{
- char *p = s;
-
- while (*p >= '0' && *p <= '9')
- p++;
- switch(atoi(s)) {
- case L_ERROR_TOOMANY:
- strcat(errbuf, "to many errors");
- break;
- case L_ERROR_NOLIB:
- strcat(errbuf, "can't load library");
- strcat(errbuf, p);
- break;
- case L_ERROR_UNDEF:
- strcat(errbuf, "can't find symbol");
- strcat(errbuf, p);
- break;
- case L_ERROR_RLDBAD:
- strcat(errbuf, "bad RLD");
- strcat(errbuf, p);
- break;
- case L_ERROR_FORMAT:
- strcat(errbuf, "bad exec format in");
- strcat(errbuf, p);
- break;
- case L_ERROR_ERRNO:
- strcat(errbuf, strerror(atoi(++p)));
- break;
- default:
- strcat(errbuf, s);
- break;
- }
-}
-
-void *dlsym(void *handle, const char *symbol)
-{
- ModulePtr mp = (ModulePtr)handle;
- ExportPtr ep;
- int i;
-
- /*
- * Could speed up the search, but I assume that one assigns
- * the result to function pointers anyways.
- */
- for (ep = mp->exports, i = mp->nExports; i; i--, ep++)
- if (strcmp(ep->name, symbol) == 0)
- return ep->addr;
- errvalid++;
- strcpy(errbuf, "dlsym: undefined symbol ");
- strcat(errbuf, symbol);
- return NULL;
-}
-
-char *dlerror(void)
-{
- if (errvalid) {
- errvalid = 0;
- return errbuf;
- }
- return NULL;
-}
-
-int dlclose(void *handle)
-{
- ModulePtr mp = (ModulePtr)handle;
- int result;
- ModulePtr mp1;
-
- if (--mp->refCnt > 0)
- return 0;
- if (mp->info && mp->info->fini)
- (*mp->info->fini)();
- if (mp->cdtors) {
- CdtorPtr cp = mp->cdtors;
- while (cp->init || cp->term) {
- if (cp->term && cp->init != (void (*)(void))0xffffffff)
- (*cp->term)();
- cp++;
- }
- /*
- * If the function to handle global destructors for g++
- * exists, call it. --jwe
- */
- } else if (mp->gcc_dtor) {
- (*mp->gcc_dtor)();
- }
- result = unload(mp->entry);
- if (result == -1) {
- errvalid++;
- strcpy(errbuf, strerror(errno));
- }
- if (mp->exports) {
- ExportPtr ep;
- int i;
- for (ep = mp->exports, i = mp->nExports; i; i--, ep++)
- if (ep->name)
- free(ep->name);
- free(mp->exports);
- }
- if (mp == modList)
- modList = mp->next;
- else {
- for (mp1 = modList; mp1; mp1 = mp1->next)
- if (mp1->next == mp) {
- mp1->next = mp->next;
- break;
- }
- }
- free(mp->name);
- free(mp);
- return result;
-}
-
-static void terminate(void)
-{
- while (modList)
- dlclose(modList);
-}
-
-/*
- * Build the export table from the XCOFF .loader section.
- */
-static int readExports(ModulePtr mp)
-{
- LDFILE *ldp = NULL;
- SCNHDR sh, shdata;
- LDHDR *lhp;
- char *ldbuf;
- LDSYM *ls;
- int i;
- ExportPtr ep;
-
- if ((ldp = ldopen(mp->name, ldp)) == NULL) {
- struct ld_info *lp;
- char *buf;
- int size = 4*1024;
- if (errno != ENOENT) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- return -1;
- }
- /*
- * The module might be loaded due to the LIBPATH
- * environment variable. Search for the loaded
- * module using L_GETINFO.
- */
- if ((buf = malloc(size)) == NULL) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- return -1;
- }
- while ((i = loadquery(L_GETINFO, buf, size)) == -1 && errno == ENOMEM) {
- free(buf);
- size += 4*1024;
- if ((buf = malloc(size)) == NULL) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- return -1;
- }
- }
- if (i == -1) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- free(buf);
- return -1;
- }
- /*
- * Traverse the list of loaded modules. The entry point
- * returned by load() does actually point to the data
- * segment origin.
- */
- lp = (struct ld_info *)buf;
- while (lp) {
- if (lp->ldinfo_dataorg == mp->entry) {
- ldp = ldopen(lp->ldinfo_filename, ldp);
- break;
- }
- if (lp->ldinfo_next == 0)
- lp = NULL;
- else
- lp = (struct ld_info *)((char *)lp + lp->ldinfo_next);
- }
- free(buf);
- if (!ldp) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- return -1;
- }
- }
- if (TYPE(ldp) != U802TOCMAGIC) {
- errvalid++;
- strcpy(errbuf, "readExports: bad magic");
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- /*
- * Get the padding for the data section. This is needed for
- * AIX 4.1 compilers. This is used when building the final
- * function pointer to the exported symbol.
- */
- if (ldnshread(ldp, _DATA, &shdata) != SUCCESS) {
- errvalid++;
- strcpy(errbuf, "readExports: cannot read data section header");
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- if (ldnshread(ldp, _LOADER, &sh) != SUCCESS) {
- errvalid++;
- strcpy(errbuf, "readExports: cannot read loader section header");
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- /*
- * We read the complete loader section in one chunk, this makes
- * finding long symbol names residing in the string table easier.
- */
- if ((ldbuf = (char *)malloc(sh.s_size)) == NULL) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- if (FSEEK(ldp, sh.s_scnptr, BEGINNING) != OKFSEEK) {
- errvalid++;
- strcpy(errbuf, "readExports: cannot seek to loader section");
- free(ldbuf);
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- if (FREAD(ldbuf, sh.s_size, 1, ldp) != 1) {
- errvalid++;
- strcpy(errbuf, "readExports: cannot read loader section");
- free(ldbuf);
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- lhp = (LDHDR *)ldbuf;
- ls = (LDSYM *)(ldbuf+LDHDRSZ);
- /*
- * Count the number of exports to include in our export table.
- */
- for (i = lhp->l_nsyms; i; i--, ls++) {
- if (!LDR_EXPORT(*ls))
- continue;
- mp->nExports++;
- }
- if ((mp->exports = (ExportPtr)calloc(mp->nExports, sizeof(*mp->exports))) == NULL) {
- errvalid++;
- strcpy(errbuf, "readExports: ");
- strcat(errbuf, strerror(errno));
- free(ldbuf);
- while(ldclose(ldp) == FAILURE)
- ;
- return -1;
- }
- /*
- * Fill in the export table. All entries are relative to
- * the entry point we got from load.
- */
- ep = mp->exports;
- ls = (LDSYM *)(ldbuf+LDHDRSZ);
- for (i = lhp->l_nsyms; i; i--, ls++) {
- char *symname;
- char tmpsym[SYMNMLEN+1];
- if (!LDR_EXPORT(*ls))
- continue;
- if (ls->l_zeroes == 0)
- symname = ls->l_offset+lhp->l_stoff+ldbuf;
- else {
- /*
- * The l_name member is not zero terminated, we
- * must copy the first SYMNMLEN chars and make
- * sure we have a zero byte at the end.
- */
- strncpy(tmpsym, ls->l_name, SYMNMLEN);
- tmpsym[SYMNMLEN] = '\0';
- symname = tmpsym;
- }
- ep->name = strdup(symname);
- ep->addr = (void *)((unsigned long)mp->entry +
- ls->l_value - shdata.s_vaddr);
- ep++;
- }
- free(ldbuf);
- while(ldclose(ldp) == FAILURE)
- ;
- return 0;
-}
-
-/*
- * Find the main modules entry point. This is used as export pointer
- * for loadbind() to be able to resolve references to the main part.
- */
-static void * findMain(void)
-{
- struct ld_info *lp;
- char *buf;
- int size = 4*1024;
- int i;
- void *ret;
-
- if ((buf = malloc(size)) == NULL) {
- errvalid++;
- strcpy(errbuf, "findMain: ");
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- while ((i = loadquery(L_GETINFO, buf, size)) == -1 && errno == ENOMEM) {
- free(buf);
- size += 4*1024;
- if ((buf = malloc(size)) == NULL) {
- errvalid++;
- strcpy(errbuf, "findMain: ");
- strcat(errbuf, strerror(errno));
- return NULL;
- }
- }
- if (i == -1) {
- errvalid++;
- strcpy(errbuf, "findMain: ");
- strcat(errbuf, strerror(errno));
- free(buf);
- return NULL;
- }
- /*
- * The first entry is the main module. The entry point
- * returned by load() does actually point to the data
- * segment origin.
- */
- lp = (struct ld_info *)buf;
- ret = lp->ldinfo_dataorg;
- free(buf);
- return ret;
-}
diff --git a/crypto/kerberosIV/lib/kafs/dlfcn.h b/crypto/kerberosIV/lib/kafs/dlfcn.h
deleted file mode 100644
index 5671e9caa3a7..000000000000
--- a/crypto/kerberosIV/lib/kafs/dlfcn.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52
- * This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
- * 30159 Hannover, Germany
- */
-
-#ifndef __dlfcn_h__
-#define __dlfcn_h__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Mode flags for the dlopen routine.
- */
-#define RTLD_LAZY 1 /* lazy function call binding */
-#define RTLD_NOW 2 /* immediate function call binding */
-#define RTLD_GLOBAL 0x100 /* allow symbols to be global */
-
-/*
- * To be able to intialize, a library may provide a dl_info structure
- * that contains functions to be called to initialize and terminate.
- */
-struct dl_info {
- void (*init)(void);
- void (*fini)(void);
-};
-
-#if __STDC__ || defined(_IBMR2)
-void *dlopen(const char *path, int mode);
-void *dlsym(void *handle, const char *symbol);
-char *dlerror(void);
-int dlclose(void *handle);
-#else
-void *dlopen();
-void *dlsym();
-char *dlerror();
-int dlclose();
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __dlfcn_h__ */
diff --git a/crypto/kerberosIV/lib/kafs/kafs.h b/crypto/kerberosIV/lib/kafs/kafs.h
deleted file mode 100644
index 579856a3b91e..000000000000
--- a/crypto/kerberosIV/lib/kafs/kafs.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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$ */
-
-#ifndef __KAFS_H
-#define __KAFS_H
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-/* sys/ioctl.h must be included manually before kafs.h */
-
-/*
- */
-#define AFSCALL_PIOCTL 20
-#define AFSCALL_SETPAG 21
-
-#ifndef _VICEIOCTL
-#define _VICEIOCTL(id) ((unsigned int ) _IOW('V', id, struct ViceIoctl))
-#endif /* _VICEIOCTL */
-
-#define VIOCSETTOK _VICEIOCTL(3)
-#define VIOCGETTOK _VICEIOCTL(8)
-#define VIOCUNLOG _VICEIOCTL(9)
-#define VIOC_FILE_CELL_NAME _VICEIOCTL(30)
-
-struct ViceIoctl {
- caddr_t in, out;
- short in_size;
- short out_size;
-};
-
-struct ClearToken {
- int32_t AuthHandle;
- char HandShakeKey[8];
- int32_t ViceId;
- int32_t BeginTimestamp;
- int32_t EndTimestamp;
-};
-
-#ifndef __P
-#define __P(x) x
-#endif
-
-/* Use k_hasafs() to probe if the machine supports AFS syscalls.
- The other functions will generate a SIGSYS if AFS is not supported */
-
-int k_hasafs __P((void));
-
-int k_afsklog __P((const char *cell, const char *realm));
-int k_afsklog_uid __P((const char *cell, const char *realm, uid_t uid));
-int k_pioctl __P((char *a_path,
- int o_opcode,
- struct ViceIoctl *a_paramsP,
- int a_followSymlinks));
-int k_unlog __P((void));
-int k_setpag __P((void));
-int k_afs_cell_of_file __P((const char *path, char *cell, int len));
-
-#define _PATH_VICE "/usr/vice/etc/"
-#define _PATH_THISCELL _PATH_VICE "ThisCell"
-#define _PATH_CELLSERVDB _PATH_VICE "CellServDB"
-#define _PATH_THESECELLS _PATH_VICE "TheseCells"
-
-#endif /* __KAFS_H */
diff --git a/crypto/kerberosIV/lib/kafs/kafs_locl.h b/crypto/kerberosIV/lib/kafs/kafs_locl.h
deleted file mode 100644
index 6ada6abd907c..000000000000
--- a/crypto/kerberosIV/lib/kafs/kafs_locl.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kafs_locl.h,v 1.3 1997/05/04 23:04:44 assar Exp $ */
-
-#ifndef __KAFS_LOCL_H__
-#define __KAFS_LOCL_H__
-
-#include <config.h>
-#include <protos.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-#include <setjmp.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_SYS_FILIO_H
-#include <sys/filio.h>
-#endif
-
-#ifdef HAVE_SYS_SYSCALL_H
-#include <sys/syscall.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-#include <roken.h>
-
-#include <krb.h>
-#include <kafs.h>
-
-#include <resolve.h>
-
-#include "afssysdefs.h"
-
-
-#endif /* __KAFS_LOCL_H__ */
diff --git a/crypto/kerberosIV/lib/kdb/Makefile.in b/crypto/kerberosIV/lib/kdb/Makefile.in
deleted file mode 100644
index f6fb9620612e..000000000000
--- a/crypto/kerberosIV/lib/kdb/Makefile.in
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# $Id: Makefile.in,v 1.25 1997/05/06 03:47:39 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)kdb
-LIBEXT = @LIBEXT@
-SHLIBEXT = @SHLIBEXT@
-LIBPREFIX = @LIBPREFIX@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-
-SOURCES = krb_cache.c krb_kdb_utils.c copykey.c krb_lib.c krb_dbm.c print_princ.c base64.c
-
-OBJECTS = krb_cache.o krb_kdb_utils.o copykey.o krb_lib.o krb_dbm.o print_princ.o base64.o
-
-all: $(LIB)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) *.o *.a
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS)
- rm -f $@
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS)
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/lib/kdb/base64.c b/crypto/kerberosIV/lib/kdb/base64.c
deleted file mode 100644
index d7e89c476251..000000000000
--- a/crypto/kerberosIV/lib/kdb/base64.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: base64.c,v 1.7 1997/04/01 08:18:16 joda Exp $");
-#endif
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include "base64.h"
-
-static char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static int POS(char c)
-{
- if(c == '=') return 64;
- if(isupper(c))
- return c - 'A';
- if(islower(c))
- return c - 'a' + 26;
- if(isdigit(c))
- return c - '0' + 52;
- if(c == '+')
- return 62;
- if(c == '/')
- return 63;
- return -1;
-}
-
-char *base64_encode(const void *buf, int size)
-{
- char *str = (char*)malloc((size+3)*4/3+1);
- char *p=str;
- unsigned char *q = (unsigned char*)buf;
- int i;
- int c;
- i=0;
- while(i<size){
- c=q[i++];
- c*=256;
- if(i<size)
- c+=q[i];
- i++;
- c*=256;
- if(i<size)
- c+=q[i];
- i++;
- p[0]=base64[(c&0x00fc0000) >> 18];
- p[1]=base64[(c&0x0003f000) >> 12];
- p[2]=base64[(c&0x00000fc0) >> 6];
- p[3]=base64[(c&0x0000003f) >> 0];
- if(i>size)
- p[3]='=';
- if(i>size+1)
- p[2]='=';
- p+=4;
- }
- *p=0;
- return str;
-}
-
-/* convert string in s to binary data. s should be a multiple of 4
- * bytes long. data should be at least len(s) * 3 / 4 bytes long.
- * returns
- */
-int base64_decode(char *s, void *data)
-{
- char *p;
- unsigned char *q;
- int n[4];
-
- if(strlen(s) % 4)
- return -1;
- q=(unsigned char*)data;
- for(p=s; *p; p+=4){
- n[0] = POS(p[0]);
- n[1] = POS(p[1]);
- n[2] = POS(p[2]);
- n[3] = POS(p[3]);
- if((n[0] | n[1] | n[2] | n[3]) < 0)
- return -1;
-
- if(n[0] == 64 || n[1] == 64)
- return -1;
- if(n[2] == 64 && n[3] < 64)
- return -1;
- q[0] = (n[0] << 2) + (n[1] >> 4);
- if(n[2] < 64){
- q[1] = ((n[1] & 15) << 4) + (n[2] >> 2);
- }
- if(n[3] < 64){
- q[2] = ((n[2] & 3) << 6) + n[3];
- }
- q+=3;
- }
- q -= (n[2] == 64) + (n[3] == 64);
- return q - (unsigned char*)data;
-}
-
-#ifdef TEST
-int main(int argc, char **argv)
-{
- char str[128];
- char buf[128];
- char *p;
- printf("base64_encode(\"%s\") = \"%s\"\n", argv[1],
- p=base64_encode(argv[1], strlen(argv[1])));
- printf("base64_decode(\"%s\") = %d", p, base64_decode(p, buf));
- printf(" (\"%s\")\n", buf);
- printf("base64_decode(\"%s\") = %d", argv[1], base64_decode(argv[1], buf));
- printf(" (\"%s\")\n", buf);
-}
-#endif
diff --git a/crypto/kerberosIV/lib/kdb/base64.h b/crypto/kerberosIV/lib/kdb/base64.h
deleted file mode 100644
index edfb34415ca2..000000000000
--- a/crypto/kerberosIV/lib/kdb/base64.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: base64.h,v 1.5 1997/04/01 08:18:16 joda Exp $ */
-
-#ifndef _BASE64_H_
-#define _BASE64_H_
-
-char *base64_encode(const void *buf, int size);
-int base64_decode(char *s, void *data);
-
-#endif
diff --git a/crypto/kerberosIV/lib/kdb/copykey.c b/crypto/kerberosIV/lib/kdb/copykey.c
deleted file mode 100644
index a78baf78e816..000000000000
--- a/crypto/kerberosIV/lib/kdb/copykey.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "kdb_locl.h"
-
-RCSID("$Id: copykey.c,v 1.10 1997/04/01 08:18:17 joda Exp $");
-
-void
-copy_from_key(des_cblock in, u_int32_t *lo, u_int32_t *hi)
-{
- memcpy(lo, ((char *) in) + 0, 4);
- memcpy(hi, ((char *) in) + 4, 4);
-}
-
-void
-copy_to_key(u_int32_t *lo, u_int32_t *hi, des_cblock out)
-{
- memcpy(((char *)out) + 0, lo, 4);
- memcpy(((char *)out) + 4, hi, 4);
-}
diff --git a/crypto/kerberosIV/lib/kdb/kdb_locl.h b/crypto/kerberosIV/lib/kdb/kdb_locl.h
deleted file mode 100644
index fe4d0793e492..000000000000
--- a/crypto/kerberosIV/lib/kdb/kdb_locl.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: kdb_locl.h,v 1.9 1997/05/02 14:29:08 assar Exp $ */
-
-#ifndef __kdb_locl_h
-#define __kdb_locl_h
-
-#include "config.h"
-#include "protos.h"
-
-#include "base64.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-#include <errno.h>
-
-#include <sys/types.h>
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <utime.h>
-#include <sys/file.h>
-#include <roken.h>
-
-#include <krb.h>
-#include <krb_db.h>
-
-/* --- */
-
-/* Globals! */
-
-/* Utils */
-
-int kerb_db_set_lockmode __P((int));
-void kerb_db_fini __P((void));
-int kerb_db_init __P((void));
-int kerb_db_get_principal __P((char *name, char *, Principal *, unsigned int, int *));
-int kerb_db_get_dba __P((char *, char *, Dba *, unsigned int, int *));
-
-void delta_stat __P((DB_stat *, DB_stat *, DB_stat *));
-
-int kerb_cache_init __P((void));
-int kerb_cache_get_principal __P((char *name, char *, Principal *, unsigned int));
-int kerb_cache_put_principal __P((Principal *, unsigned int));
-int kerb_cache_get_dba __P((char *, char *, Dba *, unsigned int));
-int kerb_cache_put_dba __P((Dba *, unsigned int));
-
-void krb_print_principal __P((Principal *));
-
-#endif /* __kdb_locl_h */
diff --git a/crypto/kerberosIV/lib/kdb/kdc.h b/crypto/kerberosIV/lib/kdb/kdc.h
deleted file mode 100644
index 08fa94f08f85..000000000000
--- a/crypto/kerberosIV/lib/kdb/kdc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * $Id$
- *
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Include file for the Kerberos Key Distribution Center.
- */
-
-#ifndef KDC_DEFS
-#define KDC_DEFS
-
-/* Don't depend on this! */
-#ifndef MKEYFILE
-#if 1
-#define MKEYFILE "/etc/kerberosIV/master-key"
-#else
-#define MKEYFILE "/.k"
-#endif
-#endif
-#ifndef K_LOGFIL
-#define K_LOGFIL "/var/log/kpropd.log"
-#endif
-
-#define ONE_MINUTE 60
-#define FIVE_MINUTES (5 * ONE_MINUTE)
-#define ONE_HOUR (60 * ONE_MINUTE)
-#define ONE_DAY (24 * ONE_HOUR)
-#define THREE_DAYS (3 * ONE_DAY)
-
-#endif /* KDC_DEFS */
-
diff --git a/crypto/kerberosIV/lib/kdb/krb_cache.c b/crypto/kerberosIV/lib/kdb/krb_cache.c
deleted file mode 100644
index ed4a5b19990f..000000000000
--- a/crypto/kerberosIV/lib/kdb/krb_cache.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * This is where a cache would be implemented, if it were necessary.
- */
-
-#include "kdb_locl.h"
-
-RCSID("$Id: krb_cache.c,v 1.6 1997/05/02 10:27:53 joda Exp $");
-
-#ifdef DEBUG
-extern int debug;
-extern long kerb_debug;
-#endif
-static int init = 0;
-
-/*
- * initialization routine for cache
- */
-
-int
-kerb_cache_init(void)
-{
- init = 1;
- return (0);
-}
-
-/*
- * look up a principal in the cache returns number of principals found
- */
-
-int
-kerb_cache_get_principal(char *serv, char *inst, Principal *principal, unsigned int max)
- /* could have wild card */
- /* could have wild card */
-
- /* max number of name structs to return */
-
-{
- int found = 0;
-
- if (!init)
- kerb_cache_init();
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr, "cache_get_principal for %s %s max = %d\n",
- serv, inst, max);
-#endif /* DEBUG */
-
-#ifdef DEBUG
- if (kerb_debug & 2) {
- if (found) {
- fprintf(stderr, "cache get %s %s found %s %s sid = %d\n",
- serv, inst, principal->name, principal->instance);
- } else {
- fprintf(stderr, "cache %s %s not found\n", serv,
- inst);
- }
- }
-#endif
- return (found);
-}
-
-/*
- * insert/replace a principal in the cache returns number of principals
- * inserted
- */
-
-int
-kerb_cache_put_principal(Principal *principal, unsigned int max)
-
- /* max number of principal structs to
- * insert */
-
-{
- u_long i;
- int count = 0;
-
- if (!init)
- kerb_cache_init();
-
-#ifdef DEBUG
- if (kerb_debug & 2) {
- fprintf(stderr, "kerb_cache_put_principal max = %d",
- max);
- }
-#endif
-
- for (i = 0; i < max; i++) {
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr, "\n %s %s",
- principal->name, principal->instance);
-#endif
- /* DO IT */
- count++;
- principal++;
- }
- return count;
-}
-
-/*
- * look up a dba in the cache returns number of dbas found
- */
-
-int
-kerb_cache_get_dba(char *serv, char *inst, Dba *dba, unsigned int max)
- /* could have wild card */
- /* could have wild card */
-
- /* max number of name structs to return */
-
-{
- int found = 0;
-
- if (!init)
- kerb_cache_init();
-
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr, "cache_get_dba for %s %s max = %d\n",
- serv, inst, max);
-#endif
-
-#ifdef DEBUG
- if (kerb_debug & 2) {
- if (found) {
- fprintf(stderr, "cache get %s %s found %s %s sid = %d\n",
- serv, inst, dba->name, dba->instance);
- } else {
- fprintf(stderr, "cache %s %s not found\n", serv, inst);
- }
- }
-#endif
- return (found);
-}
-
-/*
- * insert/replace a dba in the cache returns number of dbas inserted
- */
-
-int
-kerb_cache_put_dba(Dba *dba, unsigned int max)
-
- /* max number of dba structs to insert */
-
-{
- u_long i;
- int count = 0;
-
- if (!init)
- kerb_cache_init();
-#ifdef DEBUG
- if (kerb_debug & 2) {
- fprintf(stderr, "kerb_cache_put_dba max = %d", max);
- }
-#endif
- for (i = 0; i < max; i++) {
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr, "\n %s %s",
- dba->name, dba->instance);
-#endif
- /* DO IT */
- count++;
- dba++;
- }
- return count;
-}
-
diff --git a/crypto/kerberosIV/lib/kdb/krb_db.h b/crypto/kerberosIV/lib/kdb/krb_db.h
deleted file mode 100644
index 00d6bb07b805..000000000000
--- a/crypto/kerberosIV/lib/kdb/krb_db.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * $Id$
- *
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * spm Project Athena 8/85
- *
- * This file defines data structures for the kerberos
- * authentication/authorization database.
- *
- * They MUST correspond to those defined in *.rel
- */
-
-#ifndef KRB_DB_DEFS
-#define KRB_DB_DEFS
-
-#include <stdio.h>
-
-#define KERB_M_NAME "K" /* Kerberos */
-#define KERB_M_INST "M" /* Master */
-#define KERB_DEFAULT_NAME "default"
-#define KERB_DEFAULT_INST ""
-#ifndef DB_DIR
-#define DB_DIR "/var/db/kerberos"
-#endif
-#ifndef DBM_FILE
-#define DBM_FILE DB_DIR "/principal"
-#endif
-
-/* this also defines the number of queue headers */
-#define KERB_DB_HASH_MODULO 64
-
-
-/* Arguments to kerb_dbl_lock() */
-
-#define KERB_DBL_EXCLUSIVE 1
-#define KERB_DBL_SHARED 0
-
-/* arguments to kerb_db_set_lockmode() */
-
-#define KERB_DBL_BLOCKING 0
-#define KERB_DBL_NONBLOCKING 1
-
-/* arguments to kdb_get_master_key */
-
-#define KDB_GET_PROMPT 1
-#define KDB_GET_TWICE 2
-
-/* Principal defines the structure of a principal's name */
-
-typedef struct {
- char name[ANAME_SZ];
- char instance[INST_SZ];
-
- u_int32_t key_low;
- u_int32_t key_high;
- u_int32_t exp_date;
- char exp_date_txt[DATE_SZ];
- u_int32_t mod_date;
- char mod_date_txt[DATE_SZ];
- u_int16_t attributes;
- u_int8_t max_life;
- u_int8_t kdc_key_ver;
- u_int8_t key_version;
-
- char mod_name[ANAME_SZ];
- char mod_instance[INST_SZ];
- char *old; /* cast to (Principal *); not in db,
- * ptr to old vals */
-} Principal;
-
-typedef struct {
- int32_t cpu;
- int32_t elapsed;
- int32_t dio;
- int32_t pfault;
- int32_t t_stamp;
- int32_t n_retrieve;
- int32_t n_replace;
- int32_t n_append;
- int32_t n_get_stat;
- int32_t n_put_stat;
-} DB_stat;
-
-/* Dba defines the structure of a database administrator */
-
-typedef struct {
- char name[ANAME_SZ];
- char instance[INST_SZ];
- u_int16_t attributes;
- u_int32_t exp_date;
- char exp_date_txt[DATE_SZ];
- char *old; /*
- * cast to (Dba *); not in db, ptr to
- * old vals
- */
-} Dba;
-
-typedef int (*k_iter_proc_t)(void*, Principal*);
-
-void copy_from_key __P((des_cblock in, u_int32_t *lo, u_int32_t *hi));
-void copy_to_key __P((u_int32_t *lo, u_int32_t *hi, des_cblock out));
-
-void kdb_encrypt_key __P((des_cblock *, des_cblock *, des_cblock *,
- des_key_schedule, int));
-int kdb_get_master_key __P((int prompt, des_cblock *master_key,
- des_key_schedule master_key_sched));
-int kdb_get_new_master_key __P((des_cblock *, des_key_schedule, int));
-int kdb_kstash __P((des_cblock *, char *));
-int kdb_new_get_master_key __P((des_cblock *, des_key_schedule));
-int kdb_new_get_new_master_key __P((des_cblock *key, des_key_schedule schedule, int verify));
-long kdb_verify_master_key __P((des_cblock *, des_key_schedule, FILE *));
-long *kerb_db_begin_update __P((void));
-int kerb_db_create __P((char *db_name));
-int kerb_db_delete_principal (char *name, char *inst);
-void kerb_db_end_update __P((long *db));
-int kerb_db_get_dba __P((char *, char *, Dba *, unsigned, int *));
-void kerb_db_get_stat __P((DB_stat *));
-int kerb_db_iterate __P((k_iter_proc_t, void*));
-int kerb_db_put_principal __P((Principal *, unsigned int));
-void kerb_db_put_stat __P((DB_stat *));
-int kerb_db_rename __P((char *, char *));
-int kerb_db_set_lockmode __P((int));
-int kerb_db_set_name __P((char *));
-int kerb_db_update __P((long *db, Principal *principal, unsigned int max));
-int kerb_delete_principal __P((char *name, char *inst));
-void kerb_fini __P((void));
-int kerb_get_dba __P((char *, char *, Dba *, unsigned int, int *));
-time_t kerb_get_db_age __P((void));
-int kerb_get_principal __P((char *, char *, Principal *, unsigned int, int *));
-int kerb_init __P((void));
-int kerb_put_principal __P((Principal *, unsigned int));
-
-#endif /* KRB_DB_DEFS */
diff --git a/crypto/kerberosIV/lib/kdb/krb_dbm.c b/crypto/kerberosIV/lib/kdb/krb_dbm.c
deleted file mode 100644
index 963656a87607..000000000000
--- a/crypto/kerberosIV/lib/kdb/krb_dbm.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "kdb_locl.h"
-
-RCSID("$Id: krb_dbm.c,v 1.27 1997/05/02 14:29:09 assar Exp $");
-
-#include <xdbm.h>
-
-#define KERB_DB_MAX_RETRY 5
-
-#ifdef DEBUG
-extern int debug;
-extern long kerb_debug;
-extern char *progname;
-#endif
-
-static int init = 0;
-static char default_db_name[] = DBM_FILE;
-static char *current_db_name = default_db_name;
-
-static struct timeval timestamp;/* current time of request */
-static int non_blocking = 0;
-
-/*
- * This module contains all of the code which directly interfaces to
- * the underlying representation of the Kerberos database; this
- * implementation uses a DBM or NDBM indexed "file" (actually
- * implemented as two separate files) to store the relations, plus a
- * third file as a semaphore to allow the database to be replaced out
- * from underneath the KDC server.
- */
-
-/*
- * Locking:
- *
- * There are two distinct locking protocols used. One is designed to
- * lock against processes (the admin_server, for one) which make
- * incremental changes to the database; the other is designed to lock
- * against utilities (kdb_util, kpropd) which replace the entire
- * database in one fell swoop.
- *
- * The first locking protocol is implemented using flock() in the
- * krb_dbl_lock() and krb_dbl_unlock routines.
- *
- * The second locking protocol is necessary because DBM "files" are
- * actually implemented as two separate files, and it is impossible to
- * atomically rename two files simultaneously. It assumes that the
- * database is replaced only very infrequently in comparison to the time
- * needed to do a database read operation.
- *
- * A third file is used as a "version" semaphore; the modification
- * time of this file is the "version number" of the database.
- * At the start of a read operation, the reader checks the version
- * number; at the end of the read operation, it checks again. If the
- * version number changed, or if the semaphore was nonexistant at
- * either time, the reader sleeps for a second to let things
- * stabilize, and then tries again; if it does not succeed after
- * KERB_DB_MAX_RETRY attempts, it gives up.
- *
- * On update, the semaphore file is deleted (if it exists) before any
- * update takes place; at the end of the update, it is replaced, with
- * a version number strictly greater than the version number which
- * existed at the start of the update.
- *
- * If the system crashes in the middle of an update, the semaphore
- * file is not automatically created on reboot; this is a feature, not
- * a bug, since the database may be inconsistant. Note that the
- * absence of a semaphore file does not prevent another _update_ from
- * taking place later. Database replacements take place automatically
- * only on slave servers; a crash in the middle of an update will be
- * fixed by the next slave propagation. A crash in the middle of an
- * update on the master would be somewhat more serious, but this would
- * likely be noticed by an administrator, who could fix the problem and
- * retry the operation.
- */
-
-
-/*
- * Utility routine: generate name of database file.
- */
-
-static char *gen_dbsuffix (char *db_name, char *sfx);
-
-static char *
-gen_dbsuffix(char *db_name, char *sfx)
-{
- char *dbsuffix;
-
- if (sfx == NULL)
- sfx = ".ok";
-
- asprintf (&dbsuffix, "%s%s", db_name, sfx);
- return dbsuffix;
-}
-
-static void
-decode_princ_key (datum *key, char *name, char *instance);
-
-static void
-decode_princ_key(datum *key, char *name, char *instance)
-{
- strncpy(name, key->dptr, ANAME_SZ);
- strncpy(instance, (char *)key->dptr + ANAME_SZ, INST_SZ);
- name[ANAME_SZ - 1] = '\0';
- instance[INST_SZ - 1] = '\0';
-}
-
-static void
-encode_princ_contents (datum *contents, Principal *principal);
-
-static void
-encode_princ_contents(datum *contents, Principal *principal)
-{
- contents->dsize = sizeof(*principal);
- contents->dptr = (char *) principal;
-}
-
-static void
-decode_princ_contents (datum *contents, Principal *principal)
-{
- memcpy(principal, contents->dptr, sizeof(*principal));
-}
-
-static void
-encode_princ_key (datum *key, char *name, char *instance)
-{
- static char keystring[ANAME_SZ + INST_SZ];
-
- memset(keystring, 0, ANAME_SZ + INST_SZ);
- strncpy(keystring, name, ANAME_SZ);
- strncpy(&keystring[ANAME_SZ], instance, INST_SZ);
- key->dptr = keystring;
- key->dsize = ANAME_SZ + INST_SZ;
-}
-
-static int dblfd = -1; /* db LOCK fd */
-static int mylock = 0;
-static int inited = 0;
-
-static int
-kerb_dbl_init (void);
-
-static int
-kerb_dbl_init()
-{
- if (!inited) {
- char *filename = gen_dbsuffix (current_db_name, ".ok");
- if ((dblfd = open(filename, O_RDWR)) < 0) {
- fprintf(stderr, "kerb_dbl_init: couldn't open %s\n", filename);
- fflush(stderr);
- perror("open");
- exit(1);
- }
- free(filename);
- inited++;
- }
- return (0);
-}
-
-static void
-kerb_dbl_fini (void);
-
-static void
-kerb_dbl_fini()
-{
- close(dblfd);
- dblfd = -1;
- inited = 0;
- mylock = 0;
-}
-
-static int
-kerb_dbl_lock (int mode);
-
-static int
-kerb_dbl_lock(int mode)
-{
- int flock_mode;
-
- if (!inited)
- kerb_dbl_init();
- if (mylock) { /* Detect lock call when lock already
- * locked */
- fprintf(stderr, "Kerberos locking error (mylock)\n");
- fflush(stderr);
- exit(1);
- }
- switch (mode) {
- case KERB_DBL_EXCLUSIVE:
- flock_mode = K_LOCK_EX;
- break;
- case KERB_DBL_SHARED:
- flock_mode = K_LOCK_SH;
- break;
- default:
- fprintf(stderr, "invalid lock mode %d\n", mode);
- abort();
- }
- if (non_blocking)
- flock_mode |= K_LOCK_NB;
-
- if (k_flock(dblfd, flock_mode) < 0)
- return errno;
- mylock++;
- return 0;
-}
-
-static void kerb_dbl_unlock (void);
-
-static void
-kerb_dbl_unlock()
-{
- if (!mylock) { /* lock already unlocked */
- fprintf(stderr, "Kerberos database lock not locked when unlocking.\n");
- fflush(stderr);
- exit(1);
- }
- if (k_flock(dblfd, K_LOCK_UN) < 0) {
- fprintf(stderr, "Kerberos database lock error. (unlocking)\n");
- fflush(stderr);
- perror("k_flock");
- exit(1);
- }
- mylock = 0;
-}
-
-int
-kerb_db_set_lockmode (int mode);
-
-int
-kerb_db_set_lockmode(int mode)
-{
- int old = non_blocking;
- non_blocking = mode;
- return old;
-}
-
-/*
- * initialization for data base routines.
- */
-
-int
-kerb_db_init (void);
-
-int
-kerb_db_init()
-{
- init = 1;
- return (0);
-}
-
-/*
- * gracefully shut down database--must be called by ANY program that does
- * a kerb_db_init
- */
-
-void
-kerb_db_fini (void);
-
-void
-kerb_db_fini()
-{
-}
-
-/*
- * Set the "name" of the current database to some alternate value.
- *
- * Passing a null pointer as "name" will set back to the default.
- * If the alternate database doesn't exist, nothing is changed.
- */
-
-int
-kerb_db_set_name (char *name);
-
-int
-kerb_db_set_name(char *name)
-{
- DBM *db;
-
- if (name == NULL)
- name = default_db_name;
- db = dbm_open(name, 0, 0);
- if (db == NULL)
- return errno;
- dbm_close(db);
- kerb_dbl_fini();
- current_db_name = name;
- return 0;
-}
-
-/*
- * Return the last modification time of the database.
- */
-
-time_t
-kerb_get_db_age (void);
-
-time_t
-kerb_get_db_age()
-{
- struct stat st;
- char *okname;
- time_t age;
-
- okname = gen_dbsuffix(current_db_name, ".ok");
-
- if (stat (okname, &st) < 0)
- age = 0;
- else
- age = st.st_mtime;
-
- free (okname);
- return age;
-}
-
-/*
- * Remove the semaphore file; indicates that database is currently
- * under renovation.
- *
- * This is only for use when moving the database out from underneath
- * the server (for example, during slave updates).
- */
-
-static time_t
-kerb_start_update (char *db_name);
-
-static time_t
-kerb_start_update(char *db_name)
-{
- char *okname = gen_dbsuffix(db_name, ".ok");
- time_t age = kerb_get_db_age();
-
- if (unlink(okname) < 0
- && errno != ENOENT) {
- age = -1;
- }
- free (okname);
- return age;
-}
-
-static int
-kerb_end_update (char *db_name, time_t age);
-
-static int
-kerb_end_update(char *db_name, time_t age)
-{
- int fd;
- int retval = 0;
- char *new_okname = gen_dbsuffix(db_name, ".ok#");
- char *okname = gen_dbsuffix(db_name, ".ok");
-
- fd = open (new_okname, O_CREAT|O_RDWR|O_TRUNC, 0600);
- if (fd < 0)
- retval = errno;
- else {
- struct stat st;
- struct utimbuf tv;
- /* make sure that semaphore is "after" previous value. */
- if (fstat (fd, &st) == 0
- && st.st_mtime <= age) {
- tv.actime = st.st_atime;
- tv.modtime = age;
- /* set times.. */
- utime (new_okname, &tv);
- fsync(fd);
- }
- close(fd);
- if (rename (new_okname, okname) < 0)
- retval = errno;
- }
-
- free (new_okname);
- free (okname);
-
- return retval;
-}
-
-static time_t
-kerb_start_read (void);
-
-static time_t
-kerb_start_read()
-{
- return kerb_get_db_age();
-}
-
-static int kerb_end_read (time_t age);
-
-static int
-kerb_end_read(time_t age)
-{
- if (kerb_get_db_age() != age || age == -1) {
- return -1;
- }
- return 0;
-}
-
-/*
- * Create the database, assuming it's not there.
- */
-int
-kerb_db_create(char *db_name)
-{
- char *okname = gen_dbsuffix(db_name, ".ok");
- int fd;
- int ret = 0;
-#ifdef NDBM
- DBM *db;
-
- db = dbm_open(db_name, O_RDWR|O_CREAT|O_EXCL, 0600);
- if (db == NULL)
- ret = errno;
- else
- dbm_close(db);
-#else
- char *dirname = gen_dbsuffix(db_name, ".dir");
- char *pagname = gen_dbsuffix(db_name, ".pag");
-
- fd = open(dirname, O_RDWR|O_CREAT|O_EXCL, 0600);
- if (fd < 0)
- ret = errno;
- else {
- close(fd);
- fd = open (pagname, O_RDWR|O_CREAT|O_EXCL, 0600);
- if (fd < 0)
- ret = errno;
- else
- close(fd);
- }
- if (dbminit(db_name) < 0)
- ret = errno;
-#endif
- if (ret == 0) {
- fd = open (okname, O_CREAT|O_RDWR|O_TRUNC, 0600);
- if (fd < 0)
- ret = errno;
- close(fd);
- }
- return ret;
-}
-
-/*
- * "Atomically" rename the database in a way that locks out read
- * access in the middle of the rename.
- *
- * Not perfect; if we crash in the middle of an update, we don't
- * necessarily know to complete the transaction the rename, but...
- */
-
-int
-kerb_db_rename(char *from, char *to)
-{
-#ifdef HAVE_NEW_DB
- char *fromdb = gen_dbsuffix (from, ".db");
- char *todb = gen_dbsuffix (to, ".db");
-#else
- char *fromdir = gen_dbsuffix (from, ".dir");
- char *todir = gen_dbsuffix (to, ".dir");
- char *frompag = gen_dbsuffix (from , ".pag");
- char *topag = gen_dbsuffix (to, ".pag");
-#endif
- char *fromok = gen_dbsuffix(from, ".ok");
- long trans = kerb_start_update(to);
- int ok = 0;
-
-#ifdef HAVE_NEW_DB
- if (rename (fromdb, todb) == 0) {
- unlink (fromok);
- ok = 1;
- }
- free (fromdb);
- free (todb);
-#else
- if ((rename (fromdir, todir) == 0)
- && (rename (frompag, topag) == 0)) {
- unlink (fromok);
- ok = 1;
- }
- free (fromdir);
- free (todir);
- free (frompag);
- free (topag);
-#endif
- free (fromok);
- if (ok)
- return kerb_end_update(to, trans);
- else
- return -1;
-}
-
-int
-kerb_db_delete_principal (char *name, char *inst)
-{
- DBM *db;
- int try;
- int done = 0;
- int code;
- datum key;
-
- if(!init)
- kerb_db_init();
-
- for(try = 0; try < KERB_DB_MAX_RETRY; try++){
- if((code = kerb_dbl_lock(KERB_DBL_SHARED)) != 0)
- return -1;
-
- db = dbm_open(current_db_name, O_RDWR, 0600);
- if(db == NULL)
- return -1;
- encode_princ_key(&key, name, inst);
- if(dbm_delete(db, key) == 0)
- done = 1;
-
- dbm_close(db);
- kerb_dbl_unlock();
- if(done)
- break;
- if(!non_blocking)
- sleep(1);
- }
- if(!done)
- return -1;
- return 0;
-}
-
-
-/*
- * look up a principal in the data base returns number of principals
- * found , and whether there were more than requested.
- */
-
-int
-kerb_db_get_principal (char *name, char *inst, Principal *principal,
- unsigned int max, int *more)
-{
- int found = 0, code;
- int wildp, wildi;
- datum key, contents;
- char testname[ANAME_SZ], testinst[INST_SZ];
- u_long trans;
- int try;
- DBM *db;
-
- if (!init)
- kerb_db_init(); /* initialize database routines */
-
- for (try = 0; try < KERB_DB_MAX_RETRY; try++) {
- trans = kerb_start_read();
-
- if ((code = kerb_dbl_lock(KERB_DBL_SHARED)) != 0)
- return -1;
-
- db = dbm_open(current_db_name, O_RDONLY, 0600);
-
- *more = 0;
-
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr,
- "%s: db_get_principal for %s %s max = %d",
- progname, name, inst, max);
-#endif
-
- wildp = !strcmp(name, "*");
- wildi = !strcmp(inst, "*");
-
- if (!wildi && !wildp) { /* nothing's wild */
- encode_princ_key(&key, name, inst);
- contents = dbm_fetch(db, key);
- if (contents.dptr == NULL) {
- found = 0;
- goto done;
- }
- decode_princ_contents(&contents, principal);
-#ifdef DEBUG
- if (kerb_debug & 1) {
- fprintf(stderr, "\t found %s %s p_n length %d t_n length %d\n",
- principal->name, principal->instance,
- strlen(principal->name),
- strlen(principal->instance));
- }
-#endif
- found = 1;
- goto done;
- }
- /* process wild cards by looping through entire database */
-
- for (key = dbm_firstkey(db); key.dptr != NULL;
- key = dbm_next(db, key)) {
- decode_princ_key(&key, testname, testinst);
- if ((wildp || !strcmp(testname, name)) &&
- (wildi || !strcmp(testinst, inst))) { /* have a match */
- if (found >= max) {
- *more = 1;
- goto done;
- } else {
- found++;
- contents = dbm_fetch(db, key);
- decode_princ_contents(&contents, principal);
-#ifdef DEBUG
- if (kerb_debug & 1) {
- fprintf(stderr,
- "\tfound %s %s p_n length %d t_n length %d\n",
- principal->name, principal->instance,
- strlen(principal->name),
- strlen(principal->instance));
- }
-#endif
- principal++; /* point to next */
- }
- }
- }
-
- done:
- kerb_dbl_unlock(); /* unlock read lock */
- dbm_close(db);
- if (kerb_end_read(trans) == 0)
- break;
- found = -1;
- if (!non_blocking)
- sleep(1);
- }
- return (found);
-}
-
-/* Use long * rather than DBM * so that the database structure is private */
-
-long *
-kerb_db_begin_update(void)
-{
- int code;
-
- gettimeofday(&timestamp, NULL);
-
- if (!init)
- kerb_db_init();
-
- if ((code = kerb_dbl_lock(KERB_DBL_EXCLUSIVE)) != 0)
- return 0;
-
- return (long *) dbm_open(current_db_name, O_RDWR, 0600);
-}
-
-void
-kerb_db_end_update(long *db)
-{
- dbm_close((DBM *)db);
- kerb_dbl_unlock(); /* unlock database */
-}
-
-int
-kerb_db_update(long *db, Principal *principal, unsigned int max)
-{
- int found = 0;
- u_long i;
- datum key, contents;
-
-#ifdef DEBUG
- if (kerb_debug & 2)
- fprintf(stderr, "%s: kerb_db_put_principal max = %d",
- progname, max);
-#endif
-
- /* for each one, stuff temps, and do replace/append */
- for (i = 0; i < max; i++) {
- encode_princ_contents(&contents, principal);
- encode_princ_key(&key, principal->name, principal->instance);
- dbm_store((DBM *)db, key, contents, DBM_REPLACE);
-#ifdef DEBUG
- if (kerb_debug & 1) {
- fprintf(stderr, "\n put %s %s\n",
- principal->name, principal->instance);
- }
-#endif
- found++;
- principal++; /* bump to next struct */
- }
- return found;
-}
-
-/*
- * Update a name in the data base. Returns number of names
- * successfully updated.
- */
-
-int
-kerb_db_put_principal (Principal *principal, unsigned int max);
-
-int
-kerb_db_put_principal(Principal *principal,
- unsigned max)
-
-{
- int found;
- long *db;
-
- db = kerb_db_begin_update();
- if (db == 0)
- return -1;
-
- found = kerb_db_update(db, principal, max);
-
- kerb_db_end_update(db);
- return (found);
-}
-
-void
-kerb_db_get_stat (DB_stat *s);
-
-void
-kerb_db_get_stat(DB_stat *s)
-{
- gettimeofday(&timestamp, NULL);
-
- s->cpu = 0;
- s->elapsed = 0;
- s->dio = 0;
- s->pfault = 0;
- s->t_stamp = timestamp.tv_sec;
- s->n_retrieve = 0;
- s->n_replace = 0;
- s->n_append = 0;
- s->n_get_stat = 0;
- s->n_put_stat = 0;
- /* update local copy too */
-}
-
-void
-kerb_db_put_stat (DB_stat *s);
-
-void
-kerb_db_put_stat(DB_stat *s)
-{
-}
-
-void
-delta_stat (DB_stat *a, DB_stat *b, DB_stat *c);
-
-void
-delta_stat(DB_stat *a, DB_stat *b, DB_stat *c)
-{
- /* c = a - b then b = a for the next time */
-
- c->cpu = a->cpu - b->cpu;
- c->elapsed = a->elapsed - b->elapsed;
- c->dio = a->dio - b->dio;
- c->pfault = a->pfault - b->pfault;
- c->t_stamp = a->t_stamp - b->t_stamp;
- c->n_retrieve = a->n_retrieve - b->n_retrieve;
- c->n_replace = a->n_replace - b->n_replace;
- c->n_append = a->n_append - b->n_append;
- c->n_get_stat = a->n_get_stat - b->n_get_stat;
- c->n_put_stat = a->n_put_stat - b->n_put_stat;
-
- memcpy(b, a, sizeof(DB_stat));
- return;
-}
-
-/*
- * look up a dba in the data base returns number of dbas found , and
- * whether there were more than requested.
- */
-
-int
-kerb_db_get_dba (char *dba_name, char *dba_inst, Dba *dba, unsigned int max, int *more);
-
-int
-kerb_db_get_dba(char *dba_name, char *dba_inst, Dba *dba,
- unsigned max,
- int *more)
- /* could have wild card */
- /* could have wild card */
- /* max number of name structs to return */
- /* where there more than 'max' tuples? */
-{
- *more = 0;
- return (0);
-}
-
-int
-kerb_db_iterate (k_iter_proc_t func, void *arg)
-{
- datum key, contents;
- Principal *principal;
- int code;
- DBM *db;
-
- kerb_db_init(); /* initialize and open the database */
- if ((code = kerb_dbl_lock(KERB_DBL_SHARED)) != 0)
- return code;
-
- db = dbm_open(current_db_name, O_RDONLY, 0600);
-
- for (key = dbm_firstkey (db); key.dptr != NULL; key = dbm_next(db, key)) {
- contents = dbm_fetch (db, key);
- /* XXX may not be properly aligned */
- principal = (Principal *) contents.dptr;
- if ((code = (*func)(arg, principal)) != 0)
- return code;
- }
- dbm_close(db);
- kerb_dbl_unlock();
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/kdb/krb_kdb_utils.c b/crypto/kerberosIV/lib/kdb/krb_kdb_utils.c
deleted file mode 100644
index f321e9f710b7..000000000000
--- a/crypto/kerberosIV/lib/kdb/krb_kdb_utils.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * Utility routines for Kerberos programs which directly access
- * the database. This code was duplicated in too many places
- * before I gathered it here.
- *
- * Jon Rochlis, MIT Telecom, March 1988
- */
-
-#include "kdb_locl.h"
-
-#include <kdc.h>
-
-RCSID("$Id: krb_kdb_utils.c,v 1.23 1997/05/02 14:29:10 assar Exp $");
-
-/* always try /.k for backwards compatibility */
-static char *master_key_files[] = { MKEYFILE, "/.k", NULL };
-
-#ifdef HAVE_STRERROR
-#define k_strerror(e) strerror(e)
-#else
-static
-char *
-k_strerror(int eno)
-{
- extern int sys_nerr;
- extern char *sys_errlist[];
-
- static char emsg[128];
-
- if (eno < 0 || eno >= sys_nerr)
- snprintf(emsg, sizeof(emsg), "Error %d occurred.", eno);
- else
- return sys_errlist[eno];
-
- return emsg;
-}
-#endif
-
-int
-kdb_new_get_master_key(des_cblock *key, des_key_schedule schedule)
-{
- int kfile;
- int i;
- char buf[1024];
-
- char **mkey;
-
- for(mkey = master_key_files; *mkey; mkey++){
- kfile = open(*mkey, O_RDONLY);
- if(kfile < 0 && errno != ENOENT)
- fprintf(stderr, "Failed to open master key file \"%s\": %s\n",
- *mkey,
- k_strerror(errno));
- if(kfile >= 0)
- break;
- }
- if(*mkey){
- int bytes;
- bytes = read(kfile, (char*)key, sizeof(des_cblock));
- close(kfile);
- if(bytes == sizeof(des_cblock)){
- des_key_sched(key, schedule);
- return 0;
- }
- fprintf(stderr, "Could only read %d bytes from master key file %s\n",
- bytes, *mkey);
- }else{
- fprintf(stderr, "No master key file found.\n");
- }
-
-
- i=0;
- while(i < 3){
- if(des_read_pw_string(buf, sizeof(buf), "Enter master password: ", 0))
- break;
-
- /* buffer now contains either an old format master key password or a
- * new format base64 encoded master key
- */
-
- /* try to verify as old password */
- des_string_to_key(buf, key);
- des_key_sched(key, schedule);
-
- if(kdb_verify_master_key(key, schedule, NULL) != -1){
- memset(buf, 0, sizeof(buf));
- return 0;
- }
-
- /* failed test, so must be base64 encoded */
-
- if(base64_decode(buf, key) == 8){
- des_key_sched(key, schedule);
- if(kdb_verify_master_key(key, schedule, NULL) != -1){
- memset(buf, 0, sizeof(buf));
- return 0;
- }
- }
-
- memset(buf, 0, sizeof(buf));
- fprintf(stderr, "Failed to verify master key.\n");
- i++;
- }
-
- /* life sucks */
- fprintf(stderr, "You loose.\n");
- exit(1);
-}
-
-int kdb_new_get_new_master_key(des_cblock *key, des_key_schedule schedule,
- int verify)
-{
-#ifndef RANDOM_MKEY
- des_read_password(key, "\nEnter Kerberos master password: ", verify);
- printf ("\n");
-#else
- char buf[1024];
- des_generate_random_block (key);
- des_key_sched(key, schedule);
-
- des_read_pw_string(buf, sizeof(buf), "Enter master key seed: ", 0);
- des_cbc_cksum((des_cblock*)buf, key, sizeof(buf), schedule, key);
- memset(buf, 0, sizeof(buf));
-#endif
- des_key_sched(key, schedule);
- return 0;
-}
-
-int kdb_get_master_key(int prompt, des_cblock *master_key,
- des_key_schedule master_key_sched)
-{
- int ask = (prompt == KDB_GET_TWICE);
-#ifndef RANDOM_MKEY
- ask |= (prompt == KDB_GET_PROMPT);
-#endif
-
- if(ask)
- kdb_new_get_new_master_key(master_key, master_key_sched,
- prompt == KDB_GET_TWICE);
- else
- kdb_new_get_master_key(master_key, master_key_sched);
- return 0;
-}
-
-int kdb_kstash(des_cblock *master_key, char *file)
-{
- int kfile;
- kfile = open(file, O_TRUNC | O_RDWR | O_CREAT, 0600);
- if (kfile < 0) {
- return -1;
- }
- if (write(kfile, master_key, sizeof(des_cblock)) != sizeof(des_cblock)) {
- close(kfile);
- return -1;
- }
- close(kfile);
- return 0;
-}
-
-/* The old algorithm used the key schedule as the initial vector which
- was byte order depedent ... */
-
-void
-kdb_encrypt_key (des_cblock (*in), des_cblock (*out),
- des_cblock (*master_key),
- des_key_schedule master_key_sched, int e_d_flag)
-{
-
-#ifdef NOENCRYPTION
- memcpy(out, in, sizeof(des_cblock));
-#else
- des_pcbc_encrypt(in,out,(long)sizeof(des_cblock),master_key_sched,master_key,
- e_d_flag);
-#endif
-}
-
-/* The caller is reasponsible for cleaning up the master key and sched,
- even if we can't verify the master key */
-
-/* Returns master key version if successful, otherwise -1 */
-
-long
-kdb_verify_master_key (des_cblock *master_key,
- des_key_schedule master_key_sched,
- FILE *out) /* NULL -> no output */
-{
- des_cblock key_from_db;
- Principal principal_data[1];
- int n, more = 0;
- long master_key_version;
-
- /* lookup the master key version */
- n = kerb_get_principal(KERB_M_NAME, KERB_M_INST, principal_data,
- 1 /* only one please */, &more);
- if ((n != 1) || more) {
- if (out != (FILE *) NULL)
- fprintf(out,
- "verify_master_key: %s, %d found.\n",
- "Kerberos error on master key version lookup",
- n);
- return (-1);
- }
-
- master_key_version = (long) principal_data[0].key_version;
-
- /* set up the master key */
- if (out != (FILE *) NULL) /* should we punt this? */
- fprintf(out, "Current Kerberos master key version is %d.\n",
- principal_data[0].kdc_key_ver);
-
- /*
- * now use the master key to decrypt the key in the db, had better
- * be the same!
- */
- copy_to_key(&principal_data[0].key_low,
- &principal_data[0].key_high,
- key_from_db);
- kdb_encrypt_key (&key_from_db, &key_from_db,
- master_key, master_key_sched, DES_DECRYPT);
-
- /* the decrypted database key had better equal the master key */
- n = memcmp(master_key, key_from_db, sizeof(master_key));
- /* this used to zero the master key here! */
- memset(key_from_db, 0, sizeof(key_from_db));
- memset(principal_data, 0, sizeof (principal_data));
-
- if (n && (out != (FILE *) NULL)) {
- fprintf(out, "\n\07\07verify_master_key: Invalid master key; ");
- fprintf(out, "does not match database.\n");
- }
- if(n)
- return (-1);
-
- if (out != (FILE *) NULL) {
- fprintf(out, "\nMaster key entered. BEWARE!\07\07\n");
- fflush(out);
- }
-
- return (master_key_version);
-}
diff --git a/crypto/kerberosIV/lib/kdb/krb_lib.c b/crypto/kerberosIV/lib/kdb/krb_lib.c
deleted file mode 100644
index 19bf3168ac19..000000000000
--- a/crypto/kerberosIV/lib/kdb/krb_lib.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "kdb_locl.h"
-
-RCSID("$Id: krb_lib.c,v 1.11 1997/05/07 01:36:08 assar Exp $");
-
-#ifdef DEBUG
-extern int debug;
-extern char *progname;
-long kerb_debug;
-#endif
-
-static int init = 0;
-
-/*
- * initialization routine for data base
- */
-
-int
-kerb_init(void)
-{
-#ifdef DEBUG
- if (!init) {
- char *dbg = getenv("KERB_DBG");
- if (dbg)
- sscanf(dbg, "%d", &kerb_debug);
- init = 1;
- }
-#endif
- kerb_db_init();
-
-#ifdef CACHE
- kerb_cache_init();
-#endif
-
- /* successful init, return 0, else errcode */
- return (0);
-}
-
-/*
- * finalization routine for database -- NOTE: MUST be called by any
- * program using kerb_init. ALSO will have to be modified to finalize
- * caches, if they're ever really implemented.
- */
-
-void
-kerb_fini(void)
-{
- kerb_db_fini();
-}
-
-
-int
-kerb_delete_principal(char *name, char *inst)
-{
- int ret;
-
- if (!init)
- kerb_init();
-
- ret = kerb_db_delete_principal(name, inst);
-#ifdef CACHE
- if(ret == 0){
- kerb_cache_delete_principal(name, inst);
- }
-#endif
- return ret;
-}
-
-
-/*
- * look up a principal in the cache or data base returns number of
- * principals found
- */
-
-int
-kerb_get_principal(char *name, char *inst, Principal *principal,
- unsigned int max, int *more)
- /* could have wild card */
- /* could have wild card */
-
- /* max number of name structs to return */
- /* more tuples than room for */
-
-{
- int found = 0;
-#ifdef CACHE
- static int wild = 0;
-#endif
- if (!init)
- kerb_init();
-
-#ifdef DEBUG
- if (kerb_debug & 1)
- fprintf(stderr, "\n%s: kerb_get_principal for %s %s max = %d\n",
- progname, name, inst, max);
-#endif
-
- /*
- * if this is a request including a wild card, have to go to db
- * since the cache may not be exhaustive.
- */
-
- /* clear the principal area */
- memset(principal, 0, max * sizeof(Principal));
-
-#ifdef CACHE
- /*
- * so check to see if the name contains a wildcard "*" or "?", not
- * preceeded by a backslash.
- */
- wild = 0;
- if (index(name, '*') || index(name, '?') ||
- index(inst, '*') || index(inst, '?'))
- wild = 1;
-
- if (!wild) {
- /* try the cache first */
- found = kerb_cache_get_principal(name, inst, principal, max, more);
- if (found)
- return (found);
- }
-#endif
- /* If we didn't try cache, or it wasn't there, try db */
- found = kerb_db_get_principal(name, inst, principal, max, more);
- /* try to insert principal(s) into cache if it was found */
-#ifdef CACHE
- if (found) {
- kerb_cache_put_principal(principal, found);
- }
-#endif
- return (found);
-}
-
-/* principals */
-int
-kerb_put_principal(Principal *principal, unsigned int n)
-
- /* number of principal structs to write */
-{
- struct tm *tp;
-
- /* set mod date */
- principal->mod_date = time((time_t *)0);
- /* and mod date string */
-
- tp = k_localtime(&principal->mod_date);
- snprintf(principal->mod_date_txt,
- sizeof(principal->mod_date_txt),
- "%4d-%2d-%2d",
- tp->tm_year + 1900,
- tp->tm_mon + 1, tp->tm_mday); /* January is 0, not 1 */
-#ifdef DEBUG
- if (kerb_debug & 1) {
- int i;
- fprintf(stderr, "\nkerb_put_principal...");
- for (i = 0; i < n; i++) {
- krb_print_principal(&principal[i]);
- }
- }
-#endif
- /* write database */
- if (kerb_db_put_principal(principal, n) < 0) {
-#ifdef DEBUG
- if (kerb_debug & 1)
- fprintf(stderr, "\n%s: kerb_db_put_principal err", progname);
- /* watch out for cache */
-#endif
- return -1;
- }
-#ifdef CACHE
- /* write cache */
- if (!kerb_cache_put_principal(principal, n)) {
-#ifdef DEBUG
- if (kerb_debug & 1)
- fprintf(stderr, "\n%s: kerb_cache_put_principal err", progname);
-#endif
- return -1;
- }
-#endif
- return 0;
-}
-
-int
-kerb_get_dba(char *name, char *inst, Dba *dba, unsigned int max, int *more)
- /* could have wild card */
- /* could have wild card */
-
- /* max number of name structs to return */
- /* more tuples than room for */
-
-{
- int found = 0;
-#ifdef CACHE
- static int wild = 0;
-#endif
- if (!init)
- kerb_init();
-
-#ifdef DEBUG
- if (kerb_debug & 1)
- fprintf(stderr, "\n%s: kerb_get_dba for %s %s max = %d\n",
- progname, name, inst, max);
-#endif
- /*
- * if this is a request including a wild card, have to go to db
- * since the cache may not be exhaustive.
- */
-
- /* clear the dba area */
- memset(dba, 0, max * sizeof(Dba));
-
-#ifdef CACHE
- /*
- * so check to see if the name contains a wildcard "*" or "?", not
- * preceeded by a backslash.
- */
-
- wild = 0;
- if (index(name, '*') || index(name, '?') ||
- index(inst, '*') || index(inst, '?'))
- wild = 1;
-
- if (!wild) {
- /* try the cache first */
- found = kerb_cache_get_dba(name, inst, dba, max, more);
- if (found)
- return (found);
- }
-#endif
- /* If we didn't try cache, or it wasn't there, try db */
- found = kerb_db_get_dba(name, inst, dba, max, more);
-#ifdef CACHE
- /* try to insert dba(s) into cache if it was found */
- if (found) {
- kerb_cache_put_dba(dba, found);
- }
-#endif
- return (found);
-}
diff --git a/crypto/kerberosIV/lib/kdb/print_princ.c b/crypto/kerberosIV/lib/kdb/print_princ.c
deleted file mode 100644
index 786c5a93a218..000000000000
--- a/crypto/kerberosIV/lib/kdb/print_princ.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "kdb_locl.h"
-
-RCSID("$Id: print_princ.c,v 1.5 1997/05/07 01:37:13 assar Exp $");
-
-void
-krb_print_principal(Principal *a_n)
-{
- struct tm *time_p;
-
- /* run-time database does not contain string versions */
- time_p = k_localtime(&(a_n->exp_date));
-
- fprintf(stderr,
- "\n%s %s expires %4d-%2d-%2d %2d:%2d, max_life %d*5 = %d min attr 0x%02x",
- a_n->name, a_n->instance,
- time_p->tm_year + 1900,
- time_p->tm_mon + 1, time_p->tm_mday,
- time_p->tm_hour, time_p->tm_min,
- a_n->max_life, 5 * a_n->max_life, a_n->attributes);
-
- fprintf(stderr,
- "\n\tkey_ver %d k_low 0x%08lx k_high 0x%08lx akv %d exists %ld\n",
- a_n->key_version, (long)a_n->key_low, (long)a_n->key_high,
- a_n->kdc_key_ver, (long)a_n->old);
-
- fflush(stderr);
-}
diff --git a/crypto/kerberosIV/lib/krb/Makefile.in b/crypto/kerberosIV/lib/krb/Makefile.in
deleted file mode 100644
index 8b34d651e86c..000000000000
--- a/crypto/kerberosIV/lib/krb/Makefile.in
+++ /dev/null
@@ -1,269 +0,0 @@
-#
-# $Id: Makefile.in,v 1.74 1997/05/19 03:03:05 assar Exp $
-#
-
-# Under SunOS-5.x it is necessary to link with -ldes to be binary compatible.
-LIBDES=`test -r /usr/lib/libkrb.so.1 && echo "-lresolv -L../des -ldes"; true`
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-LN_S = @LN_S@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-EXECSUFFIX=@EXECSUFFIX@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-COMPILE_ET = ../../util/et/compile_et$(EXECSUFFIX) -language ansi-c
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = @PICFLAGS@
-
-PROGS = sizetest$(EXEC_SUFFIX)
-LIBNAME = $(LIBPREFIX)krb
-LIBEXT = @LIBEXT@
-SHLIBEXT = @SHLIBEXT@
-LIBPREFIX = @LIBPREFIX@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-
-SOURCES = cr_err_reply.c \
- create_auth_reply.c \
- create_ciph.c \
- create_death_packet.c \
- create_ticket.c \
- dest_tkt.c \
- get_in_tkt.c \
- get_svc_in_tkt.c \
- getrealm.c \
- k_localtime.c \
- krb_err_txt.c \
- krb_get_in_tkt.c \
- kuserok.c \
- parse_name.c \
- kntoln.c \
- mk_auth.c \
- krb_check_auth.c \
- mk_err.c \
- mk_safe.c \
- rd_err.c \
- rd_safe.c \
- recvauth.c \
- mk_priv.c \
- rd_req.c \
- decomp_ticket.c \
- lifetime.c \
- month_sname.c \
- stime.c \
- read_service_key.c \
- getst.c \
- sendauth.c \
- netread.c \
- netwrite.c \
- rd_priv.c \
- krb_equiv.c \
- str2key.c \
- get_ad_tkt.c \
- mk_req.c \
- get_cred.c \
- get_tf_realm.c \
- get_tf_fullname.c \
- one.c \
- save_credentials.c \
- send_to_kdc.c \
- get_host.c \
- get_krbrlm.c \
- k_gethostname.c \
- tf_util.c \
- debug_decl.c \
- k_flock.c \
- tkt_string.c \
- getaddrs.c \
- k_getsockinst.c \
- k_getport.c \
- lsb_addr_comp.c \
- name2name.c \
- get_default_principal.c \
- realm_parse.c \
- verify_user.c \
- rw.c \
- kdc_reply.c \
- encrypt_ktext.c \
- swab.c \
- gettimeofday.c \
- check_time.c \
- krb_err.c \
- et_list.c \
- resolve.c \
- unparse_name.c \
- logging.c \
- k_concat.c
-
-# these files reside in ../roken
-# snprintf.c \
-# strdup.c \
-# strtok_r.c \
-# strcasecmp.c
-
-OBJECTS = cr_err_reply.o \
- create_auth_reply.o \
- create_ciph.o \
- create_death_packet.o \
- create_ticket.o \
- dest_tkt.o \
- get_in_tkt.o \
- get_svc_in_tkt.o \
- getrealm.o \
- k_localtime.o \
- krb_err_txt.o \
- krb_get_in_tkt.o \
- kuserok.o \
- parse_name.o \
- kntoln.o \
- mk_auth.o \
- krb_check_auth.o \
- mk_err.o \
- mk_safe.o \
- rd_err.o \
- rd_safe.o \
- recvauth.o \
- mk_priv.o \
- rd_req.o \
- decomp_ticket.o \
- lifetime.o \
- month_sname.o \
- stime.o \
- read_service_key.o \
- getst.o \
- sendauth.o \
- netread.o \
- netwrite.o \
- rd_priv.o \
- krb_equiv.o \
- str2key.o \
- get_ad_tkt.o \
- mk_req.o \
- get_cred.o \
- get_tf_realm.o \
- get_tf_fullname.o \
- one.o \
- save_credentials.o \
- send_to_kdc.o \
- get_host.o \
- get_krbrlm.o \
- k_gethostname.o \
- tf_util.o \
- debug_decl.o \
- k_flock.o \
- tkt_string.o \
- getaddrs.o \
- k_getsockinst.o \
- k_getport.o \
- lsb_addr_comp.o \
- name2name.o \
- get_default_principal.o \
- realm_parse.o \
- verify_user.o \
- rw.o \
- kdc_reply.o \
- encrypt_ktext.o \
- swab.o \
- gettimeofday.o \
- check_time.o \
- krb_err.o \
- resolve.o \
- unparse_name.o \
- logging.o \
- k_concat.o \
- snprintf.o \
- strdup.o \
- strtok_r.o \
- strcasecmp.o
-
-# This is only needed by some shared library implementations
-LDOBJ = et_list.o
-
-all: $(LIB) $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-sizetest.o: sizetest.c
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $<
-
-sizetest$(EXECSUFFIX): sizetest.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ sizetest.o
-
-check: sizetest$(EXECSUFFIX)
- ./sizetest$(EXECSUFFIX)
-
-clean:
- rm -f $(LIB) *.o *.a krb_err.c krb_err.h $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS)
- rm -f $@
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS) $(LDOBJ)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS) $(LDOBJ) $(LIBDES)
-
-krb_err.c krb_err.h: krb_err.et
- test -r krb_err.et || (rm -f krb_err.et && $(LN_S) $(srcdir)/krb_err.et .)
- $(COMPILE_ET) krb_err.et
-
-snprintf.c:
- $(LN_S) $(srcdir)/../roken/snprintf.c .
-
-strdup.c:
- $(LN_S) $(srcdir)/../roken/strdup.c .
-
-strtok_r.c:
- $(LN_S) $(srcdir)/../roken/strtok_r.c .
-
-strcasecmp.c:
- $(LN_S) $(srcdir)/../roken/strcasecmp.c .
-
-$(OBJECTS): ../../include/config.h
-$(OBJECTS): krb_locl.h krb.h krb_err.h
-one.o: ../../include/version.h
diff --git a/crypto/kerberosIV/lib/krb/check_time.c b/crypto/kerberosIV/lib/krb/check_time.c
deleted file mode 100644
index 3c3e6c0730b9..000000000000
--- a/crypto/kerberosIV/lib/krb/check_time.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: check_time.c,v 1.4 1997/04/01 08:18:18 joda Exp $");
-
-int
-krb_check_tm (struct tm tm)
-{
- return tm.tm_mon < 0
- || tm.tm_mon > 11
- || tm.tm_hour < 0
- || tm.tm_hour > 23
- || tm.tm_min < 0
- || tm.tm_min > 59
- || tm.tm_sec < 0
- || tm.tm_sec > 59
- || tm.tm_year < 1901
- || tm.tm_year > 2038;
-}
diff --git a/crypto/kerberosIV/lib/krb/cr_err_reply.c b/crypto/kerberosIV/lib/krb/cr_err_reply.c
deleted file mode 100644
index 2c1956af97d5..000000000000
--- a/crypto/kerberosIV/lib/krb/cr_err_reply.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: cr_err_reply.c,v 1.9 1997/04/01 08:18:19 joda Exp $");
-
-/*
- * This routine is used by the Kerberos authentication server to
- * create an error reply packet to send back to its client.
- *
- * It takes a pointer to the packet to be built, the name, instance,
- * and realm of the principal, the client's timestamp, an error code
- * and an error string as arguments. Its return value is undefined.
- *
- * The packet is built in the following format:
- *
- * type variable data
- * or constant
- * ---- ----------- ----
- *
- * unsigned char req_ack_vno protocol version number
- *
- * unsigned char AUTH_MSG_ERR_REPLY protocol message type
- *
- * [least significant HOST_BYTE_ORDER sender's (server's) byte
- * bit of above field] order
- *
- * string pname principal's name
- *
- * string pinst principal's instance
- *
- * string prealm principal's realm
- *
- * unsigned long time_ws client's timestamp
- *
- * unsigned long e error code
- *
- * string e_string error text
- */
-
-void
-cr_err_reply(KTEXT pkt, char *pname, char *pinst, char *prealm,
- u_int32_t time_ws, u_int32_t e, char *e_string)
-{
- unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_ERR_REPLY, p, 1);
-
- if (pname == NULL) pname = "";
- if (pinst == NULL) pinst = "";
- if (prealm == NULL) prealm = "";
-
- p += krb_put_nir(pname, pinst, prealm, p);
-
- p += krb_put_int(time_ws, p, 4);
-
- p += krb_put_int(e, p, 4);
-
- p += krb_put_string(e_string, p);
-
- pkt->length = p - pkt->dat;
-}
diff --git a/crypto/kerberosIV/lib/krb/create_auth_reply.c b/crypto/kerberosIV/lib/krb/create_auth_reply.c
deleted file mode 100644
index 4976c464b8d6..000000000000
--- a/crypto/kerberosIV/lib/krb/create_auth_reply.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: create_auth_reply.c,v 1.11 1997/04/01 08:18:20 joda Exp $");
-
-/*
- * This routine is called by the Kerberos authentication server
- * to create a reply to an authentication request. The routine
- * takes the user's name, instance, and realm, the client's
- * timestamp, the number of tickets, the user's key version
- * number and the ciphertext containing the tickets themselves.
- * It constructs a packet and returns a pointer to it.
- *
- * Notes: The packet returned by this routine is static. Thus, if you
- * intend to keep the result beyond the next call to this routine, you
- * must copy it elsewhere.
- *
- * The packet is built in the following format:
- *
- * variable
- * type or constant data
- * ---- ----------- ----
- *
- * unsigned char KRB_PROT_VERSION protocol version number
- *
- * unsigned char AUTH_MSG_KDC_REPLY protocol message type
- *
- * [least significant HOST_BYTE_ORDER sender's (server's) byte
- * bit of above field] order
- *
- * string pname principal's name
- *
- * string pinst principal's instance
- *
- * string prealm principal's realm
- *
- * unsigned long time_ws client's timestamp
- *
- * unsigned char n number of tickets
- *
- * unsigned long x_date expiration date
- *
- * unsigned char kvno master key version
- *
- * short w_1 cipher length
- *
- * --- cipher->dat cipher data
- */
-
-KTEXT
-create_auth_reply(char *pname, /* Principal's name */
- char *pinst, /* Principal's instance */
- char *prealm, /* Principal's authentication domain */
- int32_t time_ws, /* Workstation time */
- int n, /* Number of tickets */
- u_int32_t x_date, /* Principal's expiration date */
- int kvno, /* Principal's key version number */
- KTEXT cipher) /* Cipher text with tickets and session keys */
-{
- static KTEXT_ST pkt_st;
- KTEXT pkt = &pkt_st;
-
- unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_KDC_REPLY, p, 1);
-
- if(n != 0){
- /* barf on old code */
- krb_warning("create_auth_reply: don't give me no krb3 crap!"
- " (n == %d)\n", n);
- return NULL;
- }
-
-
- p += krb_put_nir(pname, pinst, prealm, p);
-
- p += krb_put_int(time_ws, p, 4);
-
- p += krb_put_int(n, p, 1);
-
- p += krb_put_int(x_date, p, 4);
-
- p += krb_put_int(kvno, p, 1);
-
- p += krb_put_int(cipher->length, p, 2);
-
- memcpy(p, cipher->dat, cipher->length);
- p += cipher->length;
-
- pkt->length = p - pkt->dat;
-
- return pkt;
-}
diff --git a/crypto/kerberosIV/lib/krb/create_ciph.c b/crypto/kerberosIV/lib/krb/create_ciph.c
deleted file mode 100644
index 27d27ff604ea..000000000000
--- a/crypto/kerberosIV/lib/krb/create_ciph.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: create_ciph.c,v 1.9 1997/04/01 08:18:20 joda Exp $");
-
-/*
- * This routine is used by the authentication server to create
- * a packet for its client, containing a ticket for the requested
- * service (given in "tkt"), and some information about the ticket,
- *
- * Returns KSUCCESS no matter what.
- *
- * The length of the cipher is stored in c->length; the format of
- * c->dat is as follows:
- *
- * variable
- * type or constant data
- * ---- ----------- ----
- *
- *
- * 8 bytes session session key for client, service
- *
- * string service service name
- *
- * string instance service instance
- *
- * string realm KDC realm
- *
- * unsigned char life ticket lifetime
- *
- * unsigned char kvno service key version number
- *
- * unsigned char tkt->length length of following ticket
- *
- * data tkt->dat ticket for service
- *
- * 4 bytes kdc_time KDC's timestamp
- *
- * <=7 bytes null null pad to 8 byte multiple
- *
- */
-
-int
-create_ciph(KTEXT c, /* Text block to hold ciphertext */
- unsigned char *session, /* Session key to send to user */
- char *service, /* Service name on ticket */
- char *instance, /* Instance name on ticket */
- char *realm, /* Realm of this KDC */
- u_int32_t life, /* Lifetime of the ticket */
- int kvno, /* Key version number for service */
- KTEXT tkt, /* The ticket for the service */
- u_int32_t kdc_time, /* KDC time */
- des_cblock *key) /* Key to encrypt ciphertext with */
-
-{
- unsigned char *p = c->dat;
-
- memset(c, 0, sizeof(KTEXT_ST));
-
- memcpy(p, session, 8);
- p += 8;
-
- p += krb_put_nir(service, instance, realm, p);
-
- p += krb_put_int(life, p, 1);
- p += krb_put_int(kvno, p, 1);
-
- p += krb_put_int(tkt->length, p, 1);
-
- memcpy(p, tkt->dat, tkt->length);
- p += tkt->length;
-
- p += krb_put_int(kdc_time, p, 4);
-
- /* multiple of eight bytes */
- c->length = (p - c->dat + 7) & ~7;
-
- encrypt_ktext(c, key, DES_ENCRYPT);
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/create_death_packet.c b/crypto/kerberosIV/lib/krb/create_death_packet.c
deleted file mode 100644
index f74ba30845d6..000000000000
--- a/crypto/kerberosIV/lib/krb/create_death_packet.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: create_death_packet.c,v 1.8 1997/04/01 08:18:21 joda Exp $");
-
-/*
- * This routine creates a packet to type AUTH_MSG_DIE which is sent to
- * the Kerberos server to make it shut down. It is used only in the
- * development environment.
- *
- * It takes a string "a_name" which is sent in the packet. A pointer
- * to the packet is returned.
- *
- * The format of the killer packet is:
- *
- * type variable data
- * or constant
- * ---- ----------- ----
- *
- * unsigned char KRB_PROT_VERSION protocol version number
- *
- * unsigned char AUTH_MSG_DIE message type
- *
- * [least significant HOST_BYTE_ORDER byte order of sender
- * bit of above field]
- *
- * string a_name presumably, name of
- * principal sending killer
- * packet
- */
-
-#ifdef DEBUG
-KTEXT
-krb_create_death_packet(char *a_name)
-{
- static KTEXT_ST pkt_st;
- KTEXT pkt = &pkt_st;
-
- unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_DIE, p, 1);
-
- p += krb_put_string(a_name, p);
- pkt->length = p - pkt->dat;
- return pkt;
-}
-#endif /* DEBUG */
diff --git a/crypto/kerberosIV/lib/krb/create_ticket.c b/crypto/kerberosIV/lib/krb/create_ticket.c
deleted file mode 100644
index b46923223391..000000000000
--- a/crypto/kerberosIV/lib/krb/create_ticket.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: create_ticket.c,v 1.12 1997/04/01 08:18:21 joda Exp $");
-
-/*
- * Create ticket takes as arguments information that should be in a
- * ticket, and the KTEXT object in which the ticket should be
- * constructed. It then constructs a ticket and returns, leaving the
- * newly created ticket in tkt.
- * The length of the ticket is a multiple of
- * eight bytes and is in tkt->length.
- *
- * If the ticket is too long, the ticket will contain nulls.
- *
- * The corresponding routine to extract information from a ticket it
- * decomp_ticket. When changes are made to this routine, the
- * corresponding changes should also be made to that file.
- *
- * The packet is built in the following format:
- *
- * variable
- * type or constant data
- * ---- ----------- ----
- *
- * tkt->length length of ticket (multiple of 8 bytes)
- *
- * tkt->dat:
- *
- * unsigned char flags namely, HOST_BYTE_ORDER
- *
- * string pname client's name
- *
- * string pinstance client's instance
- *
- * string prealm client's realm
- *
- * 4 bytes paddress client's address
- *
- * 8 bytes session session key
- *
- * 1 byte life ticket lifetime
- *
- * 4 bytes time_sec KDC timestamp
- *
- * string sname service's name
- *
- * string sinstance service's instance
- *
- * <=7 bytes null null pad to 8 byte multiple
- *
- */
-
-int
-krb_create_ticket(KTEXT tkt, /* Gets filled in by the ticket */
- unsigned char flags, /* Various Kerberos flags */
- char *pname, /* Principal's name */
- char *pinstance, /* Principal's instance */
- char *prealm, /* Principal's authentication domain */
- int32_t paddress, /* Net address of requesting entity */
- void *session, /* Session key inserted in ticket */
- int16_t life, /* Lifetime of the ticket */
- int32_t time_sec, /* Issue time and date */
- char *sname, /* Service Name */
- char *sinstance, /* Instance Name */
- des_cblock *key) /* Service's secret key */
-{
- unsigned char *p = tkt->dat;
-
- memset(tkt, 0, sizeof(KTEXT_ST));
-
- p += krb_put_int(flags, p, 1);
- p += krb_put_nir(pname, pinstance, prealm, p);
-
- p += krb_put_address(paddress, p);
-
- memcpy(p, session, 8);
- p += 8;
-
- p += krb_put_int(life, p, 1);
- p += krb_put_int(time_sec, p, 4);
-
- p += krb_put_nir(sname, sinstance, NULL, p);
-
- /* multiple of eight bytes */
- tkt->length = (p - tkt->dat + 7) & ~7;
-
- /* Check length of ticket */
- if (tkt->length > (sizeof(KTEXT_ST) - 7)) {
- memset(tkt->dat, 0, tkt->length);
- tkt->length = 0;
- return KFAILURE /* XXX */;
- }
-
- encrypt_ktext(tkt, key, DES_ENCRYPT);
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/debug_decl.c b/crypto/kerberosIV/lib/krb/debug_decl.c
deleted file mode 100644
index 5358bcb65d9f..000000000000
--- a/crypto/kerberosIV/lib/krb/debug_decl.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: debug_decl.c,v 1.6 1997/03/23 03:53:07 joda Exp $");
-
-/* Declare global debugging variables. */
-
-int krb_ap_req_debug = 0;
-int krb_debug = 0;
diff --git a/crypto/kerberosIV/lib/krb/decomp_ticket.c b/crypto/kerberosIV/lib/krb/decomp_ticket.c
deleted file mode 100644
index 8e556a37d2bd..000000000000
--- a/crypto/kerberosIV/lib/krb/decomp_ticket.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: decomp_ticket.c,v 1.16 1997/04/01 08:18:22 joda Exp $");
-
-/*
- * This routine takes a ticket and pointers to the variables that
- * should be filled in based on the information in the ticket. It
- * fills in values for its arguments.
- *
- * The routine returns KFAILURE if any of the "pname", "pinstance",
- * or "prealm" fields is too big, otherwise it returns KSUCCESS.
- *
- * The corresponding routine to generate tickets is create_ticket.
- * When changes are made to this routine, the corresponding changes
- * should also be made to that file.
- *
- * See create_ticket.c for the format of the ticket packet.
- */
-
-int
-decomp_ticket(KTEXT tkt, /* The ticket to be decoded */
- unsigned char *flags, /* Kerberos ticket flags */
- char *pname, /* Authentication name */
- char *pinstance, /* Principal's instance */
- char *prealm, /* Principal's authentication domain */
- u_int32_t *paddress,/* Net address of entity requesting ticket */
- unsigned char *session, /* Session key inserted in ticket */
- int *life, /* Lifetime of the ticket */
- u_int32_t *time_sec, /* Issue time and date */
- char *sname, /* Service name */
- char *sinstance, /* Service instance */
- des_cblock *key, /* Service's secret key (to decrypt the ticket) */
- des_key_schedule schedule) /* The precomputed key schedule */
-
-{
- unsigned char *p = tkt->dat;
-
- int little_endian;
-
- des_pcbc_encrypt((des_cblock *)tkt->dat, (des_cblock *)tkt->dat,
- tkt->length, schedule, key, DES_DECRYPT);
-
- tkt->mbz = 0;
-
- *flags = *p++;
-
- little_endian = (*flags >> K_FLAG_ORDER) & 1;
-
- if(strlen((char*)p) > ANAME_SZ)
- return KFAILURE;
- p += krb_get_string(p, pname);
-
- if(strlen((char*)p) > INST_SZ)
- return KFAILURE;
- p += krb_get_string(p, pinstance);
-
- if(strlen((char*)p) > REALM_SZ)
- return KFAILURE;
- p += krb_get_string(p, prealm);
-
- if(tkt->length - (p - tkt->dat) < 8 + 1 + 4)
- return KFAILURE;
- p += krb_get_address(p, paddress);
-
- memcpy(session, p, 8);
- p += 8;
-
- *life = *p++;
-
- p += krb_get_int(p, time_sec, 4, little_endian);
-
- if(strlen((char*)p) > SNAME_SZ)
- return KFAILURE;
- p += krb_get_string(p, sname);
-
- if(strlen((char*)p) > INST_SZ)
- return KFAILURE;
- p += krb_get_string(p, sinstance);
-
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/dest_tkt.c b/crypto/kerberosIV/lib/krb/dest_tkt.c
deleted file mode 100644
index 0487e6b72386..000000000000
--- a/crypto/kerberosIV/lib/krb/dest_tkt.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: dest_tkt.c,v 1.11 1997/05/19 03:03:40 assar Exp $");
-
-/*
- * dest_tkt() is used to destroy the ticket store upon logout.
- * If the ticket file does not exist, dest_tkt() returns RET_TKFIL.
- * Otherwise the function returns RET_OK on success, KFAILURE on
- * failure.
- *
- * The ticket file (TKT_FILE) is defined in "krb.h".
- */
-
-int
-dest_tkt(void)
-{
- char *file = TKT_FILE;
- int i,fd;
- struct stat statb;
- char buf[BUFSIZ];
-
- errno = 0;
- if (
-#ifdef HAVE_LSTAT
- lstat
-#else
- stat
-#endif
- (file, &statb) < 0)
- goto out;
-
- if (!(statb.st_mode & S_IFREG)
-#ifdef notdef
- || statb.st_mode & 077
-#endif
- )
- goto out;
-
- if ((fd = open(file, O_RDWR, 0)) < 0)
- goto out;
-
- memset(buf, 0, BUFSIZ);
-
- for (i = 0; i < statb.st_size; i += sizeof(buf))
- if (write(fd, buf, sizeof(buf)) != sizeof(buf)) {
- fsync(fd);
- close(fd);
- goto out;
- }
-
-
- fsync(fd);
- close(fd);
-
- unlink(file);
-
-out:
- if (errno == ENOENT) return RET_TKFIL;
- else if (errno != 0) return KFAILURE;
- return(KSUCCESS);
-}
diff --git a/crypto/kerberosIV/lib/krb/dllmain.c b/crypto/kerberosIV/lib/krb/dllmain.c
deleted file mode 100644
index e98b7dc6526e..000000000000
--- a/crypto/kerberosIV/lib/krb/dllmain.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/* dllmain.c - main function to krb4.dll
- * Author: J Karlsson <d93-jka@nada.kth.se>
- * Date: June 1996
- */
-
-#include "krb_locl.h"
-#include "ticket_memory.h"
-#include <Windows.h>
-
-RCSID("$Id: dllmain.c,v 1.6 1997/05/02 14:29:13 assar Exp $");
-
-void
-msg(char *text, int error)
-{
- char *buf;
-
- asprintf (&buf, "%s\nAn error of type: %d", text, error);
-
- MessageBox(GetActiveWindow(),
- buf ? buf : "can't tell you",
- "kerberos message",
- MB_OK|MB_APPLMODAL);
- free (buf);
-}
-
-BOOL WINAPI
-DllMain (HANDLE hInst,
- ULONG reason,
- LPVOID lpReserved)
-{
- WORD wVersionRequested;
- WSADATA wsaData;
- PROCESS_INFORMATION p;
- int err;
-
- switch(reason){
- case DLL_PROCESS_ATTACH:
- wVersionRequested = MAKEWORD(1, 1);
- err = WSAStartup(wVersionRequested, &wsaData);
- if (err != 0)
- {
- /* Tell the user that we couldn't find a useable */
- /* winsock.dll. */
- msg("Cannot find winsock.dll", err);
- return FALSE;
- }
- if(newTktMem(0) != KSUCCESS)
- {
- /* Tell the user that we couldn't alloc shared memory. */
- msg("Cannot allocate shared ticket memory", GetLastError());
- return FALSE;
- }
- if(GetLastError() != ERROR_ALREADY_EXISTS)
- {
- STARTUPINFO s =
- {
- sizeof(s),
- 0,
- 0,
- 0,
- 0,0,
- 0,0,
- 0,0,
- 0,
- 0,
- 0,
- 0,0,
- 0,0,0};
-
- s.dwFlags = STARTF_USESHOWWINDOW;
- s.wShowWindow = SW_HIDE;
- if(!CreateProcess(0,"krbmanager",
- 0,0,FALSE,0,0,
- 0,&s, &p))
- {
- msg("Unable to create kerberos manager process.\n"
- "Make sure krbmanager.exe is in your PATH.",
- GetLastError());
- return FALSE;
- }
- }
- break;
- case DLL_PROCESS_DETACH:
- freeTktMem(0);
- WSACleanup();
- break;
- }
-
- return TRUE;
-}
diff --git a/crypto/kerberosIV/lib/krb/encrypt_ktext.c b/crypto/kerberosIV/lib/krb/encrypt_ktext.c
deleted file mode 100644
index d97fcc7c8e04..000000000000
--- a/crypto/kerberosIV/lib/krb/encrypt_ktext.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: encrypt_ktext.c,v 1.4 1997/04/01 08:18:26 joda Exp $");
-
-void
-encrypt_ktext(KTEXT cip, des_cblock *key, int encrypt)
-{
- des_key_schedule schedule;
- des_set_key(key, schedule);
- des_pcbc_encrypt((des_cblock*)cip->dat, (des_cblock*)cip->dat,
- cip->length, schedule, key, encrypt);
- memset(schedule, 0, sizeof(des_key_schedule));
-}
diff --git a/crypto/kerberosIV/lib/krb/et_list.c b/crypto/kerberosIV/lib/krb/et_list.c
deleted file mode 100644
index 69d1c89ac39d..000000000000
--- a/crypto/kerberosIV/lib/krb/et_list.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/*
- * This is a hack to resolve the reference to _et_list when making a
- * shared library under Psoriasis and possibly other systems. Presumably
- * they define __ELF__, some people say Linux does so.
- */
-
-#include "config.h"
-
-RCSID("$Id: et_list.c,v 1.12 1997/05/13 09:45:01 bg Exp $");
-
-struct et_list {
- struct et_list *next;
- const struct error_table *table;
-};
-
-#if defined(__GNUC__)
-
-#ifdef __FreeBSD__
-asm(".globl __et_list"); /* FreeBSD bug workaround */
-#endif
-struct et_list * _et_list __attribute__ ((weak)) = 0;
-
-#else /* !__GNUC__ */
-
-#ifdef HAVE_PRAGMA_WEAK
-
-#pragma weak _et_list = __et_list
-struct et_list * __et_list = 0;
-
-#else /* !HAVE_PRAGMA_WEAK */
-
-struct et_list * _et_list = 0;
-
-#endif /* !HAVE_PRAGMA_WEAK */
-
-#endif /* !__GNUC__ */
diff --git a/crypto/kerberosIV/lib/krb/get_ad_tkt.c b/crypto/kerberosIV/lib/krb/get_ad_tkt.c
deleted file mode 100644
index 95907600c850..000000000000
--- a/crypto/kerberosIV/lib/krb/get_ad_tkt.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: get_ad_tkt.c,v 1.16 1997/05/30 17:43:34 bg Exp $");
-
-/*
- * get_ad_tkt obtains a new service ticket from Kerberos, using
- * the ticket-granting ticket which must be in the ticket file.
- * It is typically called by krb_mk_req() when the client side
- * of an application is creating authentication information to be
- * sent to the server side.
- *
- * get_ad_tkt takes four arguments: three pointers to strings which
- * contain the name, instance, and realm of the service for which the
- * ticket is to be obtained; and an integer indicating the desired
- * lifetime of the ticket.
- *
- * It returns an error status if the ticket couldn't be obtained,
- * or AD_OK if all went well. The ticket is stored in the ticket
- * cache.
- *
- * The request sent to the Kerberos ticket-granting service looks
- * like this:
- *
- * pkt->dat
- *
- * TEXT original contents of authenticator+ticket
- * pkt->dat built in krb_mk_req call
- *
- * 4 bytes time_ws always 0 (?)
- * char lifetime lifetime argument passed
- * string service service name argument
- * string sinstance service instance arg.
- *
- * See "prot.h" for the reply packet layout and definitions of the
- * extraction macros like pkt_version(), pkt_msg_type(), etc.
- */
-
-int
-get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
-{
- static KTEXT_ST pkt_st;
- KTEXT pkt = & pkt_st; /* Packet to KDC */
- static KTEXT_ST rpkt_st;
- KTEXT rpkt = &rpkt_st; /* Returned packet */
-
- CREDENTIALS cr;
- char lrealm[REALM_SZ];
- u_int32_t time_ws = 0;
- int kerror;
- unsigned char *p;
-
- /*
- * First check if we have a "real" TGT for the corresponding
- * realm, if we don't, use ordinary inter-realm authentication.
- */
-
- kerror = krb_get_cred(KRB_TICKET_GRANTING_TICKET, realm, realm, &cr);
- if (kerror == KSUCCESS)
- strncpy(lrealm, realm, REALM_SZ);
- else
- kerror = krb_get_tf_realm(TKT_FILE, lrealm);
-
- if (kerror != KSUCCESS)
- return(kerror);
-
- /*
- * Look for the session key (and other stuff we don't need)
- * in the ticket file for krbtgt.realm@lrealm where "realm"
- * is the service's realm (passed in "realm" argument) and
- * lrealm is the realm of our initial ticket. If we don't
- * have this, we will try to get it.
- */
-
- if ((kerror = krb_get_cred(KRB_TICKET_GRANTING_TICKET,
- realm, lrealm, &cr)) != KSUCCESS) {
- /*
- * If realm == lrealm, we have no hope, so let's not even try.
- */
- if ((strncmp(realm, lrealm, REALM_SZ)) == 0)
- return(AD_NOTGT);
- else{
- if ((kerror =
- get_ad_tkt(KRB_TICKET_GRANTING_TICKET,
- realm, lrealm, lifetime)) != KSUCCESS)
- if (kerror == KDC_PR_UNKNOWN)
- return(AD_INTR_RLM_NOTGT);
- else
- return(kerror);
- if ((kerror = krb_get_cred(KRB_TICKET_GRANTING_TICKET,
- realm, lrealm, &cr)) != KSUCCESS)
- return(kerror);
- }
- }
-
- /*
- * Make up a request packet to the "krbtgt.realm@lrealm".
- * Start by calling krb_mk_req() which puts ticket+authenticator
- * into "pkt". Then tack other stuff on the end.
- */
-
- kerror = krb_mk_req(pkt,
- KRB_TICKET_GRANTING_TICKET,
- realm,lrealm,0L);
-
- if (kerror)
- return(AD_NOTGT);
-
- p = pkt->dat + pkt->length;
-
- p += krb_put_int(time_ws, p, 4);
- p += krb_put_int(lifetime, p, 1);
- p += krb_put_nir(service, sinstance, NULL, p);
-
- pkt->length = p - pkt->dat;
- rpkt->length = 0;
-
- /* Send the request to the local ticket-granting server */
- if ((kerror = send_to_kdc(pkt, rpkt, realm))) return(kerror);
-
- /* check packet version of the returned packet */
-
- {
- KTEXT_ST cip;
- CREDENTIALS cred;
- struct timeval tv;
-
- kerror = kdc_reply_cipher(rpkt, &cip);
- if(kerror != KSUCCESS)
- return kerror;
-
- encrypt_ktext(&cip, &cr.session, DES_DECRYPT);
-
- kerror = kdc_reply_cred(&cip, &cred);
- if(kerror != KSUCCESS)
- return kerror;
-
- if (strcmp(cred.service, service) || strcmp(cred.instance, sinstance) ||
- strcmp(cred.realm, realm)) /* not what we asked for */
- return INTK_ERR; /* we need a better code here XXX */
-
- gettimeofday(&tv, NULL);
- if (abs((int)(tv.tv_sec - cred.issue_date)) > CLOCK_SKEW) {
- return RD_AP_TIME; /* XXX should probably be better code */
- }
-
-
- kerror = save_credentials(cred.service, cred.instance, cred.realm,
- cred.session, cred.lifetime, cred.kvno,
- &cred.ticket_st, tv.tv_sec);
- return kerror;
- }
-}
diff --git a/crypto/kerberosIV/lib/krb/get_cred.c b/crypto/kerberosIV/lib/krb/get_cred.c
deleted file mode 100644
index 1a0016c4670b..000000000000
--- a/crypto/kerberosIV/lib/krb/get_cred.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_cred.c,v 1.6 1997/05/30 17:38:29 bg Exp $");
-
-/*
- * krb_get_cred takes a service name, instance, and realm, and a
- * structure of type CREDENTIALS to be filled in with ticket
- * information. It then searches the ticket file for the appropriate
- * ticket and fills in the structure with the corresponding
- * information from the file. If successful, it returns KSUCCESS.
- * On failure it returns a Kerberos error code.
- */
-
-int
-krb_get_cred(char *service, /* Service name */
- char *instance, /* Instance */
- char *realm, /* Auth domain */
- CREDENTIALS *c) /* Credentials struct */
-{
- int tf_status; /* return value of tf function calls */
- CREDENTIALS cr;
-
- if (c == 0)
- c = &cr;
-
- /* Open ticket file and lock it for shared reading */
- if ((tf_status = tf_init(TKT_FILE, R_TKT_FIL)) != KSUCCESS)
- return(tf_status);
-
- /* Copy principal's name and instance into the CREDENTIALS struc c */
-
- if ( (tf_status = tf_get_pname(c->pname)) != KSUCCESS ||
- (tf_status = tf_get_pinst(c->pinst)) != KSUCCESS )
- return (tf_status);
-
- /* Search for requested service credentials and copy into c */
-
- while ((tf_status = tf_get_cred(c)) == KSUCCESS) {
- if ((strcmp(c->service,service) == 0) &&
- (strcmp(c->instance,instance) == 0) &&
- (strcmp(c->realm,realm) == 0))
- break;
- }
- tf_close();
-
- if (tf_status == EOF)
- return (GC_NOTKT);
- return(tf_status);
-}
diff --git a/crypto/kerberosIV/lib/krb/get_default_principal.c b/crypto/kerberosIV/lib/krb/get_default_principal.c
deleted file mode 100644
index 3a111ea52e38..000000000000
--- a/crypto/kerberosIV/lib/krb/get_default_principal.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: get_default_principal.c,v 1.10 1997/04/01 08:18:28 joda Exp $");
-
-int
-krb_get_default_principal(char *name, char *instance, char *realm)
-{
- char *file;
- int ret;
-
- char *p;
-
- if ((file = getenv("KRBTKFILE")) == NULL)
- file = TKT_FILE;
-
- ret = krb_get_tf_fullname(file, name, instance, realm);
- if(ret == KSUCCESS)
- return 0;
-
- p = getenv("KRB4PRINCIPAL");
- if(p && kname_parse(name, instance, realm, p) == KSUCCESS)
- return 1;
-
-
-#ifdef HAVE_PWD_H
- {
- struct passwd *pw;
- pw = getpwuid(getuid());
- if(pw == NULL){
- return -1;
- }
-
- strcpy(name, pw->pw_name);
- strcpy(instance, "");
- krb_get_lrealm(realm, 1);
-
- if(strcmp(name, "root") == 0){
- p = NULL;
-#if defined(HAVE_GETLOGIN) && !defined(POSIX_GETLOGIN)
- p = getlogin();
-#endif
- if(p == NULL)
- p = getenv("USER");
- if(p == NULL)
- p = getenv("LOGNAME");
- if(p){
- strncpy (name, p, ANAME_SZ);
- name[ANAME_SZ - 1] = '\0';
- strcpy(instance, "root");
- }
- }
- return 1;
- }
-#endif
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/krb/get_host.c b/crypto/kerberosIV/lib/krb/get_host.c
deleted file mode 100644
index de80ac4c8efa..000000000000
--- a/crypto/kerberosIV/lib/krb/get_host.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: get_host.c,v 1.30 1997/05/02 14:29:13 assar Exp $");
-
-static struct host_list {
- struct krb_host *this;
- struct host_list *next;
-} *hosts;
-
-static int krb_port = 0;
-
-static void
-free_hosts(struct host_list *h)
-{
- struct host_list *t;
- while(h){
- if(h->this->realm)
- free(h->this->realm);
- if(h->this->host)
- free(h->this->host);
- t = h;
- h = h->next;
- free(t);
- }
-}
-
-static int
-parse_address(char *address, int *proto, char **host, int *port)
-{
- char *p, *q;
- p = strchr(address, '/');
- *proto = IPPROTO_UDP;
- if(p){
- char prot[32];
- struct protoent *pp;
- strncpy(prot, address, p - address);
- prot[p - address] = 0;
- if((pp = getprotobyname(prot)))
- *proto = pp->p_proto;
- else
- krb_warning("Bad protocol name `%s', Using default `udp'.\n",
- prot);
- p++;
- }else
- p = address;
- q = strchr(p, ':');
- if(q){
- *host = (char*)malloc(q - p + 1);
- strncpy(*host, p, q - p);
- (*host)[q - p] = 0;
- q++;
- {
- struct servent *sp = getservbyname(q, NULL);
- if(sp)
- *port = ntohs(sp->s_port);
- else
- if(sscanf(q, "%d", port) != 1){
- krb_warning("Bad port specification `%s', using port %d.",
- q, krb_port);
- *port = krb_port;
- }
- }
- }else{
- *host = strdup(p);
- *port = krb_port;
- }
- return 0;
-}
-
-static int
-add_host(char *realm, char *address, int admin, int validate)
-{
- struct krb_host *host;
- struct host_list *p, **last = &hosts;
- host = (struct krb_host*)malloc(sizeof(struct krb_host));
- parse_address(address, &host->proto, &host->host, &host->port);
- if(validate && gethostbyname(host->host) == NULL){
- free(host->host);
- free(host);
- return 1;
- }
- host->admin = admin;
- for(p = hosts; p; p = p->next){
- if(strcmp(realm, p->this->realm) == 0 &&
- strcmp(host->host, p->this->host) == 0 &&
- host->proto == p->this->proto &&
- host->port == p->this->port){
- free(host->host);
- free(host);
- return 1;
- }
- last = &p->next;
- }
- host->realm = strdup(realm);
- p = (struct host_list*)malloc(sizeof(struct host_list));
- p->this = host;
- p->next = NULL;
- *last = p;
- return 0;
-}
-
-
-
-static int
-read_file(const char *filename, const char *r)
-{
- char line[1024];
- char realm[1024];
- char address[1024];
- char scratch[1024];
- int n;
- int nhosts = 0;
-
- FILE *f = fopen(filename, "r");
- if(f == NULL)
- return -1;
- while(fgets(line, sizeof(line), f)){
- n = sscanf(line, "%s %s admin %s", realm, address, scratch);
- if(n == 2 || n == 3){
- if(strcmp(realm, r))
- continue;
- if(add_host(realm, address, n == 3, 0) == 0)
- nhosts++;
- }
- }
- fclose(f);
- return nhosts;
-}
-
-static int
-init_hosts(char *realm)
-{
- static const char *files[] = KRB_CNF_FILES;
- int i;
- char *dir = getenv("KRBCONFDIR");
-
- krb_port = ntohs(k_getportbyname (KRB_SERVICE, NULL, htons(KRB_PORT)));
- if(dir){
- char file[MaxPathLen];
- if(k_concat(file, sizeof(file), dir, "/krb.conf", NULL) == 0)
- read_file(file, realm);
- }
- for(i = 0; files[i]; i++)
- read_file(files[i], realm);
- return 0;
-}
-
-static void
-srv_find_realm(char *realm, char *proto, char *service)
-{
- char *domain;
- struct dns_reply *r;
- struct resource_record *rr;
-
- k_mconcat(&domain, 1024, service, ".", proto, ".", realm, ".", NULL);
-
- if(domain == NULL)
- return;
-
- r = dns_lookup(domain, "srv");
- if(r == NULL)
- r = dns_lookup(domain, "txt");
- if(r == NULL){
- free(domain);
- return;
- }
- for(rr = r->head; rr; rr = rr->next){
- if(rr->type == T_SRV){
- char buf[1024];
-
- if (snprintf (buf,
- sizeof(buf),
- "%s/%s:%u",
- proto,
- rr->u.srv->target,
- rr->u.srv->port) < sizeof(buf))
- add_host(realm, buf, 0, 0);
- }else if(rr->type == T_TXT)
- add_host(realm, rr->u.txt, 0, 0);
- }
- dns_free_data(r);
- free(domain);
-}
-
-struct krb_host*
-krb_get_host(int nth, char *realm, int admin)
-{
- struct host_list *p;
- static char orealm[REALM_SZ];
- if(orealm[0] == 0 || strcmp(realm, orealm)){
- /* quick optimization */
- if(realm && realm[0]){
- strncpy(orealm, realm, sizeof(orealm) - 1);
- orealm[sizeof(orealm) - 1] = 0;
- }else{
- int ret = krb_get_lrealm(orealm, 1);
- if(ret != KSUCCESS)
- return NULL;
- }
-
- if(hosts){
- free_hosts(hosts);
- hosts = NULL;
- }
-
- init_hosts(orealm);
-
- srv_find_realm(orealm, "udp", KRB_SERVICE);
- srv_find_realm(orealm, "tcp", KRB_SERVICE);
-
- {
- /* XXX this assumes no one has more than 99999 kerberos
- servers */
- char host[REALM_SZ + sizeof("kerberos-XXXXX..")];
- int i = 0;
- sprintf(host, "kerberos.%s.", orealm);
- add_host(orealm, host, 1, 1);
- do{
- i++;
- sprintf(host, "kerberos-%d.%s.", i, orealm);
- }while(i < 100000 && add_host(orealm, host, 0, 1) == 0);
- }
- }
-
- for(p = hosts; p; p = p->next){
- if(strcmp(orealm, p->this->realm) == 0 &&
- (!admin || p->this->admin))
- if(nth == 1)
- return p->this;
- else
- nth--;
- }
- return NULL;
-}
-
-int
-krb_get_krbhst(char *host, char *realm, int nth)
-{
- struct krb_host *p = krb_get_host(nth, realm, 0);
- if(p == NULL)
- return KFAILURE;
- strcpy(host, p->host);
- return KSUCCESS;
-}
-
-int
-krb_get_admhst(char *host, char *realm, int nth)
-{
- struct krb_host *p = krb_get_host(nth, realm, 1);
- if(p == NULL)
- return KFAILURE;
- strcpy(host, p->host);
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/get_in_tkt.c b/crypto/kerberosIV/lib/krb/get_in_tkt.c
deleted file mode 100644
index 435632a665a0..000000000000
--- a/crypto/kerberosIV/lib/krb/get_in_tkt.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_in_tkt.c,v 1.15 1997/03/23 03:53:08 joda Exp $");
-
-/*
- * This file contains three routines: passwd_to_key() and
- * passwd_to_afskey() converts a password into a DES key, using the
- * normal strinttokey and the AFS one, respectively, and
- * krb_get_pw_in_tkt() gets an initial ticket for a user.
- */
-
-/*
- * passwd_to_key() and passwd_to_afskey: given a password, return a DES key.
- */
-
-int
-passwd_to_key(char *user, char *instance, char *realm, void *passwd,
- des_cblock *key)
-{
-#ifndef NOENCRYPTION
- des_string_to_key((char *)passwd, key);
-#endif
- return 0;
-}
-
-
-int
-passwd_to_afskey(char *user, char *instance, char *realm, void *passwd,
- des_cblock *key)
-{
-#ifndef NOENCRYPTION
- afs_string_to_key((char *)passwd, realm, key);
-#endif
- return (0);
-}
-
-/*
- * krb_get_pw_in_tkt() takes the name of the server for which the initial
- * ticket is to be obtained, the name of the principal the ticket is
- * for, the desired lifetime of the ticket, and the user's password.
- * It passes its arguments on to krb_get_in_tkt(), which contacts
- * Kerberos to get the ticket, decrypts it using the password provided,
- * and stores it away for future use.
- *
- * krb_get_pw_in_tkt() passes two additional arguments to krb_get_in_tkt():
- * the name of a routine (passwd_to_key()) to be used to get the
- * password in case the "password" argument is null and NULL for the
- * decryption procedure indicating that krb_get_in_tkt should use the
- * default method of decrypting the response from the KDC.
- *
- * The result of the call to krb_get_in_tkt() is returned.
- */
-
-int
-krb_get_pw_in_tkt(char *user, char *instance, char *realm, char *service,
- char *sinstance, int life, char *password)
-{
- char pword[100]; /* storage for the password */
- int code;
-
- /* Only request password once! */
- if (!password) {
- if (des_read_pw_string(pword, sizeof(pword)-1, "Password: ", 0)){
- memset(pword, 0, sizeof(pword));
- return INTK_BADPW;
- }
- password = pword;
- }
-
- code = krb_get_in_tkt(user,instance,realm,service,sinstance,life,
- passwd_to_key, NULL, password);
- if (code == INTK_BADPW)
- code = krb_get_in_tkt(user,instance,realm,service,sinstance,life,
- passwd_to_afskey, NULL, password);
- if (password == pword)
- memset(pword, 0, sizeof(pword));
- return(code);
-}
diff --git a/crypto/kerberosIV/lib/krb/get_krbrlm.c b/crypto/kerberosIV/lib/krb/get_krbrlm.c
deleted file mode 100644
index 8c5b0c99392e..000000000000
--- a/crypto/kerberosIV/lib/krb/get_krbrlm.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_krbrlm.c,v 1.16 1997/05/02 01:26:22 assar Exp $");
-
-/*
- * krb_get_lrealm takes a pointer to a string, and a number, n. It fills
- * in the string, r, with the name of the nth realm specified on the
- * first line of the kerberos config file (KRB_CONF, defined in "krb.h").
- * It returns 0 (KSUCCESS) on success, and KFAILURE on failure. If the
- * config file does not exist, and if n=1, a successful return will occur
- * with r = KRB_REALM (also defined in "krb.h").
- *
- * NOTE: for archaic & compatibility reasons, this routine will only return
- * valid results when n = 1.
- *
- * For the format of the KRB_CONF file, see comments describing the routine
- * krb_get_krbhst().
- */
-
-static int
-krb_get_lrealm_f(char *r, int n, const char *fname)
-{
- FILE *f;
- int ret = KFAILURE;
- f = fopen(fname, "r");
- if(f){
- char buf[REALM_SZ];
- if(fgets(buf, sizeof(buf), f)){
- char *p = buf + strspn(buf, " \t");
- p[strcspn(p, " \t\r\n")] = 0;
- p[REALM_SZ - 1] = 0;
- strcpy(r, p);
- ret = KSUCCESS;
- }
- fclose(f);
- }
- return ret;
-}
-
-int
-krb_get_lrealm(char *r, int n)
-{
- static const char *const files[] = KRB_CNF_FILES;
- int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- if (n > 1)
- return(KFAILURE); /* Temporary restriction */
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
- if(k_concat(fname, sizeof(fname), dir, "/krb.conf", NULL) == 0)
- if (krb_get_lrealm_f(r, n, fname) == KSUCCESS)
- return KSUCCESS;
- }
-
- for (i = 0; files[i] != 0; i++)
- if (krb_get_lrealm_f(r, n, files[i]) == KSUCCESS)
- return KSUCCESS;
-
- /* If nothing else works try LOCALDOMAIN, if it exists */
- if (n == 1)
- {
- char *t, hostname[MaxHostNameLen];
- k_gethostname(hostname, sizeof(hostname));
- t = krb_realmofhost(hostname);
- if (t) {
- strcpy (r, t);
- return KSUCCESS;
- }
- t = strchr(hostname, '.');
- if (t == 0)
- return KFAILURE; /* No domain part, you loose */
-
- t++; /* Skip leading dot and upcase the rest */
- for (; *t; t++, r++)
- *r = toupper(*t);
- *r = 0;
- return(KSUCCESS);
- }
- else
- return(KFAILURE);
-}
-
-/* For SunOS5 compat. */
-char *
-krb_get_default_realm(void)
-{
- static char local_realm[REALM_SZ]; /* local kerberos realm */
- if (krb_get_lrealm(local_realm, 1) != KSUCCESS)
- strcpy(local_realm, "NO.DEFAULT.REALM");
- return local_realm;
-}
diff --git a/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c b/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c
deleted file mode 100644
index c2905245efed..000000000000
--- a/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_svc_in_tkt.c,v 1.8 1997/03/23 03:53:09 joda Exp $");
-
-/*
- * This file contains two routines: srvtab_to_key(), which gets
- * a server's key from a srvtab file, and krb_get_svc_in_tkt() which
- * gets an initial ticket for a server.
- */
-
-/*
- * srvtab_to_key(): given a "srvtab" file (where the keys for the
- * service on a host are stored), return the private key of the
- * given service (user.instance@realm).
- *
- * srvtab_to_key() passes its arguments on to read_service_key(),
- * plus one additional argument, the key version number.
- * (Currently, the key version number is always 0; this value
- * is treated as a wildcard by read_service_key().)
- *
- * If the "srvtab" argument is null, KEYFILE (defined in "krb.h")
- * is passed in its place.
- *
- * It returns the return value of the read_service_key() call.
- * The service key is placed in "key".
- */
-
-int
-srvtab_to_key(char *user, char *instance, char *realm, void *srvtab,
- des_cblock *key)
-{
- if (!srvtab)
- srvtab = KEYFILE;
-
- return(read_service_key(user, instance, realm, 0, (char *)srvtab,
- (char *)key));
-}
-
-/*
- * krb_get_svc_in_tkt() passes its arguments on to krb_get_in_tkt(),
- * plus two additional arguments: a pointer to the srvtab_to_key()
- * function to be used to get the key from the key file and a NULL
- * for the decryption procedure indicating that krb_get_in_tkt should
- * use the default method of decrypting the response from the KDC.
- *
- * It returns the return value of the krb_get_in_tkt() call.
- */
-
-int
-krb_get_svc_in_tkt(char *user, char *instance, char *realm, char *service,
- char *sinstance, int life, char *srvtab)
-{
- return(krb_get_in_tkt(user, instance, realm, service, sinstance,
- life, srvtab_to_key, NULL, srvtab));
-}
diff --git a/crypto/kerberosIV/lib/krb/get_tf_fullname.c b/crypto/kerberosIV/lib/krb/get_tf_fullname.c
deleted file mode 100644
index 33733d0c0e7d..000000000000
--- a/crypto/kerberosIV/lib/krb/get_tf_fullname.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_tf_fullname.c,v 1.6 1997/03/23 03:53:10 joda Exp $");
-
-/*
- * This file contains a routine to extract the fullname of a user
- * from the ticket file.
- */
-
-/*
- * krb_get_tf_fullname() takes four arguments: the name of the
- * ticket file, and variables for name, instance, and realm to be
- * returned in. Since the realm of a ticket file is not really fully
- * supported, the realm used will be that of the the first ticket in
- * the file as this is the one that was obtained with a password by
- * krb_get_in_tkt().
- */
-
-int
-krb_get_tf_fullname(char *ticket_file, char *name, char *instance, char *realm)
-{
- int tf_status;
- CREDENTIALS c;
-
- if ((tf_status = tf_init(ticket_file, R_TKT_FIL)) != KSUCCESS)
- return(tf_status);
-
- if (((tf_status = tf_get_pname(c.pname)) != KSUCCESS) ||
- ((tf_status = tf_get_pinst(c.pinst)) != KSUCCESS))
- return (tf_status);
-
- if (name)
- strcpy(name, c.pname);
- if (instance)
- strcpy(instance, c.pinst);
- if ((tf_status = tf_get_cred(&c)) == KSUCCESS) {
- if (realm)
- strcpy(realm, c.realm);
- }
- else {
- if (tf_status == EOF)
- return(KFAILURE);
- else
- return(tf_status);
- }
- tf_close();
-
- return(tf_status);
-}
diff --git a/crypto/kerberosIV/lib/krb/get_tf_realm.c b/crypto/kerberosIV/lib/krb/get_tf_realm.c
deleted file mode 100644
index 1a3c7d1cb5b8..000000000000
--- a/crypto/kerberosIV/lib/krb/get_tf_realm.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: get_tf_realm.c,v 1.5 1997/03/23 03:53:10 joda Exp $");
-
-/*
- * This file contains a routine to extract the realm of a kerberos
- * ticket file.
- */
-
-/*
- * krb_get_tf_realm() takes two arguments: the name of a ticket
- * and a variable to store the name of the realm in.
- *
- */
-
-int
-krb_get_tf_realm(char *ticket_file, char *realm)
-{
- return(krb_get_tf_fullname(ticket_file, 0, 0, realm));
-}
diff --git a/crypto/kerberosIV/lib/krb/getaddrs.c b/crypto/kerberosIV/lib/krb/getaddrs.c
deleted file mode 100644
index d25ec1bac92d..000000000000
--- a/crypto/kerberosIV/lib/krb/getaddrs.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: getaddrs.c,v 1.19 1997/04/01 08:18:29 joda Exp $");
-
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif /* HAVE_SYS_SOCKIO_H */
-
-/*
- * Return number and list of all local adresses.
- */
-
-int
-k_get_all_addrs (struct in_addr **l)
-{
-#if !defined(SIOCGIFCONF) || !defined(SIOCGIFFLAGS) || !defined(SIOCGIFADDR)
- char name[MaxHostNameLen];
- struct hostent *he;
-
- if (k_gethostname(name, sizeof(name)) < 0)
- return -1;
- he = gethostbyname (name);
- if (he == NULL)
- return -1;
- *l = malloc(sizeof(**l));
- if (*l == NULL)
- return -1;
- memcpy (*l, he->h_addr_list[0], sizeof(*l));
- return 1;
-#else
- int fd;
- char buf[BUFSIZ];
- struct ifreq ifreq;
- struct ifconf ifconf;
- int num, j;
- char *p;
-
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (fd < 0)
- return -1;
-
- ifconf.ifc_len = sizeof(buf);
- ifconf.ifc_buf = buf;
- if(ioctl(fd, SIOCGIFCONF, &ifconf) < 0)
- return -1;
- num = ifconf.ifc_len / sizeof(struct ifreq);
- *l = malloc(num * sizeof(struct in_addr));
- if(*l == NULL) {
- close (fd);
- return -1;
- }
-
- j = 0;
- ifreq.ifr_name[0] = '\0';
- for (p = ifconf.ifc_buf; p < ifconf.ifc_buf + ifconf.ifc_len;) {
- struct ifreq *ifr = (struct ifreq *)p;
-#ifdef SOCKADDR_HAS_SA_LEN
- size_t sz = sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len;
-#else
- size_t sz = sizeof(*ifr);
-#endif
- if(strncmp(ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name))) {
- if(ioctl(fd, SIOCGIFFLAGS, ifr) < 0) {
- close (fd);
- free (*l);
- return -1;
- }
- if (ifr->ifr_flags & IFF_UP) {
- if(ioctl(fd, SIOCGIFADDR, ifr) < 0) {
- close (fd);
- free (*l);
- return -1;
- }
- (*l)[j++] = ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr;
- }
- ifreq = *ifr;
- }
- p = p + sz;
- }
- if (j != num)
- *l = realloc (*l, j * sizeof(struct in_addr));
- close (fd);
- return j;
-#endif /* SIOCGIFCONF */
-}
diff --git a/crypto/kerberosIV/lib/krb/getrealm.c b/crypto/kerberosIV/lib/krb/getrealm.c
deleted file mode 100644
index 05dfdabb5740..000000000000
--- a/crypto/kerberosIV/lib/krb/getrealm.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: getrealm.c,v 1.25 1997/05/02 14:29:14 assar Exp $");
-
-#define MATCH_SUBDOMAINS 0
-
-/*
- * krb_realmofhost.
- * Given a fully-qualified domain-style primary host name,
- * return the name of the Kerberos realm for the host.
- * If the hostname contains no discernable domain, or an error occurs,
- * return the local realm name, as supplied by get_krbrlm().
- * If the hostname contains a domain, but no translation is found,
- * the hostname's domain is converted to upper-case and returned.
- *
- * The format of each line of the translation file is:
- * domain_name kerberos_realm
- * -or-
- * host_name kerberos_realm
- *
- * domain_name should be of the form .XXX.YYY (e.g. .LCS.MIT.EDU)
- * host names should be in the usual form (e.g. FOO.BAR.BAZ)
- */
-
-/* To automagically find the correct realm of a host (without
- * krb.realms) add a text record for your domain with the name of your
- * realm, like this:
- *
- * krb4-realm IN TXT FOO.SE
- *
- * The search is recursive, so you can also add entries for specific
- * hosts. To find the realm of host a.b.c, it first tries
- * krb4-realm.a.b.c, then krb4-realm.b.c and so on.
- */
-
-static int
-dns_find_realm(char *hostname, char *realm)
-{
- char domain[MaxHostNameLen + sizeof("krb4-realm..")];
- char *p;
- int level = 0;
- struct dns_reply *r;
-
- p = hostname;
-
- while(1){
- snprintf(domain, sizeof(domain), "krb4-realm.%s.", p);
- r = dns_lookup(domain, "TXT");
- if(r){
- struct resource_record *rr = r->head;
- while(rr){
- if(rr->type == T_TXT){
- strncpy(realm, rr->u.txt, REALM_SZ);
- realm[REALM_SZ - 1] = 0;
- dns_free_data(r);
- return level;
- }
- rr = rr->next;
- }
- dns_free_data(r);
- }
- level++;
- p = strchr(p, '.');
- if(p == NULL)
- break;
- p++;
- }
- return -1;
-}
-
-
-static FILE *
-open_krb_realms(void)
-{
- static const char *const files[] = KRB_RLM_FILES;
- FILE *res;
- int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
-
- if(k_concat(fname, sizeof(fname), dir, "/krb.realms", NULL) == 0)
- if ((res = fopen(fname, "r")) != NULL)
- return res;
- }
-
- for (i = 0; files[i] != 0; i++)
- if ((res = fopen(files[i], "r")) != NULL)
- return res;
-
- return NULL;
-}
-
-char *
-krb_realmofhost(const char *host)
-{
- static char ret_realm[REALM_SZ];
- char *domain;
- FILE *trans_file;
- char trans_host[MaxHostNameLen];
- char trans_realm[REALM_SZ];
- char buf[1024];
-
- char phost[MaxHostNameLen];
-
- krb_name_to_name(host, phost, sizeof(phost));
-
- domain = strchr(phost, '.');
-
- /* prepare default */
- if(dns_find_realm(phost, ret_realm) < 0){
- if (domain) {
- char *cp;
-
- strncpy(ret_realm, &domain[1], REALM_SZ);
- ret_realm[REALM_SZ - 1] = 0;
- /* Upper-case realm */
- for (cp = ret_realm; *cp; cp++)
- *cp = toupper(*cp);
- } else {
- krb_get_lrealm(ret_realm, 1);
- }
- }
-
- if ((trans_file = open_krb_realms()) == NULL)
- return(ret_realm); /* krb_errno = KRB_NO_TRANS */
-
- while (fgets(buf, sizeof(buf), trans_file)) {
- char *save = NULL;
- char *tok = strtok_r(buf, " \t\r\n", &save);
- if(tok == NULL)
- continue;
- strncpy(trans_host, tok, MaxHostNameLen);
- trans_host[MaxHostNameLen - 1] = 0;
- tok = strtok_r(NULL, " \t\r\n", &save);
- if(tok == NULL)
- continue;
- strcpy(trans_realm, tok);
- trans_realm[REALM_SZ - 1] = 0;
- if (!strcasecmp(trans_host, phost)) {
- /* exact match of hostname, so return the realm */
- strcpy(ret_realm, trans_realm);
- fclose(trans_file);
- return(ret_realm);
- }
- if ((trans_host[0] == '.') && domain) {
- char *cp = domain;
- do {
- if(strcasecmp(trans_host, domain) == 0){
- /* domain match, save for later */
- strcpy(ret_realm, trans_realm);
- break;
- }
- cp = strchr(cp + 1, '.');
- } while(MATCH_SUBDOMAINS && cp);
- }
- }
- fclose(trans_file);
- return ret_realm;
-}
diff --git a/crypto/kerberosIV/lib/krb/getst.c b/crypto/kerberosIV/lib/krb/getst.c
deleted file mode 100644
index de9996264ee6..000000000000
--- a/crypto/kerberosIV/lib/krb/getst.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: getst.c,v 1.6 1997/03/23 03:53:11 joda Exp $");
-
-/*
- * getst() takes a file descriptor, a string and a count. It reads
- * from the file until either it has read "count" characters, or until
- * it reads a null byte. When finished, what has been read exists in
- * the given string "s". If "count" characters were actually read, the
- * last is changed to a null, so the returned string is always null-
- * terminated. getst() returns the number of characters read, including
- * the null terminator.
- */
-
-int
-getst(int fd, char *s, int n)
-{
- int count = n;
- while (read(fd, s, 1) > 0 && --count)
- if (*s++ == '\0')
- return (n - count);
- *s = '\0';
- return (n - count);
-}
diff --git a/crypto/kerberosIV/lib/krb/gettimeofday.c b/crypto/kerberosIV/lib/krb/gettimeofday.c
deleted file mode 100644
index 734ca5968ee8..000000000000
--- a/crypto/kerberosIV/lib/krb/gettimeofday.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-RCSID("$Id: gettimeofday.c,v 1.5 1997/04/01 08:18:29 joda Exp $");
-
-#ifndef HAVE_GETTIMEOFDAY
-/*
- * Simple gettimeofday that only returns seconds.
- */
-int
-gettimeofday (struct timeval *tp, void *ignore)
-{
- time_t t;
-
- t = time(NULL);
- tp->tv_sec = t;
- tp->tv_usec = 0;
- return 0;
-}
-#endif
diff --git a/crypto/kerberosIV/lib/krb/k_concat.c b/crypto/kerberosIV/lib/krb/k_concat.c
deleted file mode 100644
index e7daa5f047cb..000000000000
--- a/crypto/kerberosIV/lib/krb/k_concat.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: k_concat.c,v 1.5 1997/05/02 08:56:39 joda Exp $");
-
-int
-k_concat (char *s, size_t len, ...)
-{
- int ret;
- va_list args;
-
- va_start(args, len);
- ret = k_vconcat (s, len, args);
- va_end(args);
- return ret;
-}
-
-int
-k_vconcat (char *s, size_t len, va_list args)
-{
- const char *a;
-
- while ((a = va_arg(args, const char*))) {
- size_t n = strlen (a);
-
- if (n >= len)
- return -1;
- strncpy (s, a, n);
- s += n;
- len -= n;
- }
- *s = '\0';
- return 0;
-}
-
-size_t
-k_vmconcat (char **s, size_t max_len, va_list args)
-{
- const char *a;
- char *p, *q;
- size_t len = 0;
- *s = NULL;
- p = malloc(1);
- if(p == NULL)
- return 0;
- *p = 0;
- len = 1;
- while ((a = va_arg(args, const char*))) {
- size_t n = strlen (a);
-
- if(max_len && len + n > max_len){
- free(p);
- return 0;
- }
- q = realloc(p, len + n);
- if(q == NULL){
- free(p);
- return 0;
- }
- p = q;
- len += n;
- strcat(p, a);
- }
- *s = p;
- return len;
-}
-
-size_t
-k_mconcat (char **s, size_t max_len, ...)
-{
- int ret;
- va_list args;
-
- va_start(args, max_len);
- ret = k_vmconcat (s, max_len, args);
- va_end(args);
- return ret;
-}
-
diff --git a/crypto/kerberosIV/lib/krb/k_flock.c b/crypto/kerberosIV/lib/krb/k_flock.c
deleted file mode 100644
index 844c34c44305..000000000000
--- a/crypto/kerberosIV/lib/krb/k_flock.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: k_flock.c,v 1.8 1997/04/01 08:18:30 joda Exp $");
-
-#define K_OP_MASK (K_LOCK_SH | K_LOCK_EX | K_LOCK_UN)
-
-int
-k_flock(int fd, int operation)
-{
-#ifdef HAVE_FLOCK
- int op = 0;
- if (operation & K_LOCK_SH)
- op |= LOCK_SH;
- if (operation & K_LOCK_EX)
- op |= LOCK_EX;
- if (operation & K_LOCK_UN)
- op |= LOCK_UN;
- if (operation & K_LOCK_NB)
- op |= LOCK_NB;
-
- return flock(fd, op);
-#elif defined(HAVE_FCNTL) && defined(F_SETLK)
- struct flock arg;
- int code, cmd;
-
- arg.l_whence = SEEK_SET;
- arg.l_start = 0;
- arg.l_len = 0; /* means to EOF */
-
- if (operation & K_LOCK_NB)
- cmd = F_SETLK;
- else
- cmd = F_SETLKW; /* Blocking */
-
- switch (operation & K_OP_MASK) {
- case K_LOCK_UN:
- arg.l_type = F_UNLCK;
- code = fcntl(fd, F_SETLK, &arg);
- break;
- case K_LOCK_SH:
- arg.l_type = F_RDLCK;
- code = fcntl(fd, cmd, &arg);
- break;
- case K_LOCK_EX:
- arg.l_type = F_WRLCK;
- code = fcntl(fd, cmd, &arg);
- break;
- default:
- errno = EINVAL;
- code = -1;
- break;
- }
- return code;
-#else
- return -1;
-#endif /* !HAVE_FLOCK */
-}
diff --git a/crypto/kerberosIV/lib/krb/k_gethostname.c b/crypto/kerberosIV/lib/krb/k_gethostname.c
deleted file mode 100644
index 0f4d57f6581b..000000000000
--- a/crypto/kerberosIV/lib/krb/k_gethostname.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-RCSID("$Id: k_gethostname.c,v 1.10 1997/03/23 03:53:12 joda Exp $");
-
-#ifdef HAVE_SYS_UTSNAME_H
-#include <sys/utsname.h>
-#endif
-
-/*
- * Return the local host's name in "name", up to "namelen" characters.
- * "name" will be null-terminated if "namelen" is big enough.
- * The return code is 0 on success, -1 on failure. (The calling
- * interface is identical to gethostname(2).)
- */
-
-int
-k_gethostname(char *name, int namelen)
-{
-#if defined(HAVE_GETHOSTNAME)
- return gethostname(name, namelen);
-#elif defined(HAVE_UNAME)
- {
- struct utsname utsname;
- int ret;
-
- ret = uname (&utsname);
- if (ret < 0)
- return ret;
- strncpy (name, utsname.nodename, namelen);
- name[namelen-1] = '\0';
- return 0;
- }
-#else
- strncpy (name, "some.random.host", namelen);
- name[namelen-1] = '\0';
- return 0;
-#endif
-}
diff --git a/crypto/kerberosIV/lib/krb/k_getport.c b/crypto/kerberosIV/lib/krb/k_getport.c
deleted file mode 100644
index c5f9f15f5310..000000000000
--- a/crypto/kerberosIV/lib/krb/k_getport.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: k_getport.c,v 1.10 1997/04/01 08:18:30 joda Exp $");
-
-int
-k_getportbyname (const char *service, const char *proto, int default_port)
-{
-#ifdef HAVE_GETSERVBYNAME
- struct servent *sp;
-
- sp = getservbyname(service, proto);
- if(sp != NULL)
- return sp->s_port;
-
- krb_warning ("%s/%s unknown service, using default port %d\n",
- service, proto ? proto : "*", ntohs(default_port));
-#endif
- return default_port;
-}
diff --git a/crypto/kerberosIV/lib/krb/k_getsockinst.c b/crypto/kerberosIV/lib/krb/k_getsockinst.c
deleted file mode 100644
index 04676b1e4473..000000000000
--- a/crypto/kerberosIV/lib/krb/k_getsockinst.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: k_getsockinst.c,v 1.10 1997/05/02 14:29:17 assar Exp $");
-
-/*
- * Return in inst the name of the local interface bound to socket
- * fd. On Failure return the 'wildcard' instance "*".
- */
-
-int
-k_getsockinst(int fd, char *inst, size_t inst_size)
-{
- struct sockaddr_in addr;
- int len = sizeof(addr);
- struct hostent *hnam;
-
- if (getsockname(fd, (struct sockaddr *)&addr, &len) < 0)
- goto fail;
-
- hnam = gethostbyaddr((char *)&addr.sin_addr,
- sizeof(addr.sin_addr),
- addr.sin_family);
- if (hnam == 0)
- goto fail;
-
- strncpy (inst, hnam->h_name, inst_size);
- inst[inst_size - 1] = '\0';
- k_ricercar(inst); /* Canonicalize name */
- return 0; /* Success */
-
- fail:
- inst[0] = '*';
- inst[1] = 0;
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/krb/k_localtime.c b/crypto/kerberosIV/lib/krb/k_localtime.c
deleted file mode 100644
index a6ffb9b7e785..000000000000
--- a/crypto/kerberosIV/lib/krb/k_localtime.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: k_localtime.c,v 1.7 1997/04/01 08:18:31 joda Exp $");
-
-struct tm *k_localtime(u_int32_t *tp)
-{
- time_t t;
- t = *tp;
- return localtime(&t);
-}
diff --git a/crypto/kerberosIV/lib/krb/kdc_reply.c b/crypto/kerberosIV/lib/krb/kdc_reply.c
deleted file mode 100644
index aa012e06d20a..000000000000
--- a/crypto/kerberosIV/lib/krb/kdc_reply.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: kdc_reply.c,v 1.9 1997/04/15 21:52:14 assar Exp $");
-
-static int little_endian; /* XXX ugly */
-
-int
-kdc_reply_cred(KTEXT cip, CREDENTIALS *cred)
-{
- unsigned char *p = cip->dat;
-
- memcpy(cred->session, p, 8);
- p += 8;
-
- if(p + strlen((char*)p) > cip->dat + cip->length)
- return INTK_BADPW;
- p += krb_get_string(p, cred->service);
-
- if(p + strlen((char*)p) > cip->dat + cip->length)
- return INTK_BADPW;
- p += krb_get_string(p, cred->instance);
-
- if(p + strlen((char*)p) > cip->dat + cip->length)
- return INTK_BADPW;
- p += krb_get_string(p, cred->realm);
-
- if(p + 3 > cip->dat + cip->length)
- return INTK_BADPW;
- cred->lifetime = *p++;
- cred->kvno = *p++;
- cred->ticket_st.length = *p++;
-
- if(p + cred->ticket_st.length + 4 > cip->dat + cip->length)
- return INTK_BADPW;
- memcpy(cred->ticket_st.dat, p, cred->ticket_st.length);
- p += cred->ticket_st.length;
-
- p += krb_get_int(p, (u_int32_t *)&cred->issue_date, 4, little_endian);
-
- return KSUCCESS;
-}
-
-int
-kdc_reply_cipher(KTEXT reply, KTEXT cip)
-{
- unsigned char *p;
- unsigned char pvno;
- unsigned char type;
-
- char aname[ANAME_SZ];
- char inst[INST_SZ];
- char realm[REALM_SZ];
-
- u_int32_t kdc_time;
- u_int32_t exp_date;
- u_int32_t clen;
-
- p = reply->dat;
-
- pvno = *p++;
-
- if (pvno != KRB_PROT_VERSION )
- return INTK_PROT;
-
- type = *p++;
- little_endian = type & 1;
-
- type &= ~1;
-
- if(type == AUTH_MSG_ERR_REPLY){
- u_int32_t code;
- p += strlen((char*)p) + 1; /* name */
- p += strlen((char*)p) + 1; /* instance */
- p += strlen((char*)p) + 1; /* realm */
- p += 4; /* time */
- p += krb_get_int(p, &code, 4, little_endian);
- return code;
- }
- if(type != AUTH_MSG_KDC_REPLY)
- return INTK_PROT;
-
- p += krb_get_nir(p, aname, inst, realm);
- p += krb_get_int(p, &kdc_time, 4, little_endian);
- p++; /* number of tickets */
- p += krb_get_int(p, &exp_date, 4, little_endian);
- p++; /* master key version number */
- p += krb_get_int(p, &clen, 2, little_endian);
- cip->length = clen;
- memcpy(cip->dat, p, clen);
- p += clen;
-
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/klog.h b/crypto/kerberosIV/lib/krb/klog.h
deleted file mode 100644
index cee92d973c20..000000000000
--- a/crypto/kerberosIV/lib/krb/klog.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id: klog.h,v 1.5 1997/05/11 11:05:28 assar Exp $
- *
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * This file defines the types of log messages logged by klog. Each
- * type of message may be selectively turned on or off.
- */
-
-#ifndef KLOG_DEFS
-#define KLOG_DEFS
-
-#ifndef KRBLOG
-#define KRBLOG "/var/log/kerberos.log" /* master server */
-#endif
-#ifndef KRBSLAVELOG
-#define KRBSLAVELOG "/var/log/kerberos_slave.log" /* slave server */
-#endif
-#define NLOGTYPE 100 /* Maximum number of log msg types */
-
-#define L_NET_ERR 1 /* Error in network code */
-#define L_NET_INFO 2 /* Info on network activity */
-#define L_KRB_PERR 3 /* Kerberos protocol errors */
-#define L_KRB_PINFO 4 /* Kerberos protocol info */
-#define L_INI_REQ 5 /* Request for initial ticket */
-#define L_NTGT_INTK 6 /* Initial request not for TGT */
-#define L_DEATH_REQ 7 /* Request for server death */
-#define L_TKT_REQ 8 /* All ticket requests using a tgt */
-#define L_ERR_SEXP 9 /* Service expired */
-#define L_ERR_MKV 10 /* Master key version incorrect */
-#define L_ERR_NKY 11 /* User's key is null */
-#define L_ERR_NUN 12 /* Principal not unique */
-#define L_ERR_UNK 13 /* Principal Unknown */
-#define L_ALL_REQ 14 /* All requests */
-#define L_APPL_REQ 15 /* Application requests (using tgt) */
-#define L_KRB_PWARN 16 /* Protocol warning messages */
-
-char * klog __P((int type, const char *format, ...))
-#ifdef __GNUC__
-__attribute__ ((format (printf, 2, 3)))
-#endif
-;
-
-#endif /* KLOG_DEFS */
diff --git a/crypto/kerberosIV/lib/krb/kntoln.c b/crypto/kerberosIV/lib/krb/kntoln.c
deleted file mode 100644
index 88b8b25ebe01..000000000000
--- a/crypto/kerberosIV/lib/krb/kntoln.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-/*
- * krb_kntoln converts an auth name into a local name by looking up
- * the auth name in the /etc/aname file. The format of the aname
- * file is:
- *
- * +-----+-----+-----+-----+------+----------+-------+-------+
- * | anl | inl | rll | lnl | name | instance | realm | lname |
- * +-----+-----+-----+-----+------+----------+-------+-------+
- * | 1by | 1by | 1by | 1by | name | instance | realm | lname |
- * +-----+-----+-----+-----+------+----------+-------+-------+
- *
- * If the /etc/aname file can not be opened it will set the
- * local name to the auth name. Thus, in this case it performs as
- * the identity function.
- *
- * The name instance and realm are passed to krb_kntoln through
- * the AUTH_DAT structure (ad).
- *
- * Now here's what it *really* does:
- *
- * Given a Kerberos name in an AUTH_DAT structure, check that the
- * instance is null, and that the realm is the same as the local
- * realm, and return the principal's name in "lname". Return
- * KSUCCESS if all goes well, otherwise KFAILURE.
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: kntoln.c,v 1.7 1997/03/23 03:53:12 joda Exp $");
-
-int
-krb_kntoln(AUTH_DAT *ad, char *lname)
-{
- static char lrealm[REALM_SZ] = "";
-
- if (!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE))
- return(KFAILURE);
-
- if (strcmp(ad->pinst, ""))
- return(KFAILURE);
- if (strcmp(ad->prealm, lrealm))
- return(KFAILURE);
- strcpy(lname, ad->pname);
- return(KSUCCESS);
-}
-
-#if 0
-/* Posted to usenet by "Derrick J. Brashear" <shadow+@andrew.cmu.edu> */
-
-#include <krb.h>
-#include <ndbm.h>
-#include <stdio.h>
-#include <sys/file.h>
-#include <strings.h>
-#include <sys/syslog.h>
-#include <sys/errno.h>
-
-extern int errno;
-/*
- * antoln converts an authentication name into a local name by looking up
- * the authentication name in the /etc/aname dbm database.
- *
- * If the /etc/aname file can not be opened it will set the
- * local name to the principal name. Thus, in this case it performs as
- * the identity function.
- *
- * The name instance and realm are passed to antoln through
- * the AUTH_DAT structure (ad).
- */
-
-static char lrealm[REALM_SZ] = "";
-
-an_to_ln(ad,lname)
-AUTH_DAT *ad;
-char *lname;
-{
- static DBM *aname = NULL;
- char keyname[ANAME_SZ+INST_SZ+REALM_SZ+2];
-
- if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE))
- return(KFAILURE);
-
- if((strcmp(ad->pinst,"") && strcmp(ad->pinst,"root")) ||
-strcmp(ad->prealm,lrealm)) {
- datum val;
- datum key;
- /*
- * Non-local name (or) non-null and non-root instance.
- * Look up in dbm file.
- */
- if (!aname) {
- if ((aname = dbm_open("/etc/aname", O_RDONLY, 0))
- == NULL) return (KFAILURE);
- }
- /* Construct dbm lookup key. */
- an_to_a(ad, keyname);
- key.dptr = keyname;
- key.dsize = strlen(keyname)+1;
- flock(dbm_dirfno(aname), LOCK_SH);
- val = dbm_fetch(aname, key);
- flock(dbm_dirfno(aname), LOCK_UN);
- if (!val.dptr) {
- dbm_close(aname);
- return(KFAILURE);
- }
- /* Got it! */
- strcpy(lname,val.dptr);
- return(KSUCCESS);
- } else strcpy(lname,ad->pname);
- return(KSUCCESS);
-}
-
-an_to_a(ad, str)
- AUTH_DAT *ad;
- char *str;
-{
- strcpy(str, ad->pname);
- if(*ad->pinst) {
- strcat(str, ".");
- strcat(str, ad->pinst);
- }
- strcat(str, "@");
- strcat(str, ad->prealm);
-}
-
-/*
- * Parse a string of the form "user[.instance][@realm]"
- * into a struct AUTH_DAT.
- */
-
-a_to_an(str, ad)
- AUTH_DAT *ad;
- char *str;
-{
- char *buf = (char *)malloc(strlen(str)+1);
- char *rlm, *inst, *princ;
-
- if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE)) {
- free(buf);
- return(KFAILURE);
- }
- /* destructive string hacking is more fun.. */
- strcpy(buf, str);
-
- if (rlm = index(buf, '@')) {
- *rlm++ = '\0';
- }
- if (inst = index(buf, '.')) {
- *inst++ = '\0';
- }
- strcpy(ad->pname, buf);
- if(inst) strcpy(ad->pinst, inst);
- else *ad->pinst = '\0';
- if (rlm) strcpy(ad->prealm, rlm);
- else strcpy(ad->prealm, lrealm);
- free(buf);
- return(KSUCCESS);
-}
-#endif
diff --git a/crypto/kerberosIV/lib/krb/krb.def b/crypto/kerberosIV/lib/krb/krb.def
deleted file mode 100644
index da2e906ac7dc..000000000000
--- a/crypto/kerberosIV/lib/krb/krb.def
+++ /dev/null
@@ -1,92 +0,0 @@
-LIBRARY "krb" BASE=0x07000000
-
-DESCRIPTION "Dynamic link library for kerberos version 4"
-VERSION 1.0
-
-EXPORTS
- krb_get_err_text
-
- newTktMem
- getTktMem
- firstCred
- nextCredIndex
- currCredIndex
- nextFreeIndex
-
- k_flock
- k_localtime
- k_getsockinst
- k_getportbyname
- k_get_all_addrs
-
- krb_equiv
-
- afs_string_to_key
-
- krb_life_to_time
- krb_time_to_life
- krb_life_to_atime
- krb_atime_to_life
-
- tf_get_cred
- tf_get_pinst
- tf_get_pname
- tf_put_pinst
- tf_put_pname
- tf_init
- tf_create
- tf_save_cred
- tf_close
-
- krb_mk_priv
- krb_rd_priv
-
- create_auth_reply
- krb_get_phost
- krb_realmofhost
- tkt_string
- create_ciph
- decomp_ticket
- dest_tkt
- get_ad_tkt
- in_tkt
- k_gethostname
- k_isinst
- k_isname
- k_isrealm
- kname_parse
- krb_create_ticket
- krb_get_admhst
- krb_get_cred
- krb_get_in_tkt
- krb_get_krbhst
- krb_get_lrealm
- krb_get_default_realm
- krb_get_pw_in_tkt
- krb_get_svc_in_tkt
- krb_get_tf_fullname
- krb_get_tf_realm
- krb_kntoln
- krb_mk_req
- krb_net_read
- krb_net_write
- krb_rd_err
- krb_rd_req
- krb_recvauth
- krb_sendauth
- krb_set_key
- krb_set_lifetime
- read_service_key
- save_credentials
- send_to_kdc
- krb_mk_err
- krb_mk_safe
- krb_rd_safe
- ad_print
- cr_err_reply
- krb_set_tkt_string
- krb_get_default_principal
- krb_realm_parse
- krb_verify_user
- kset_logfile
- getst
diff --git a/crypto/kerberosIV/lib/krb/krb.mak b/crypto/kerberosIV/lib/krb/krb.mak
deleted file mode 100644
index 1236261a0818..000000000000
--- a/crypto/kerberosIV/lib/krb/krb.mak
+++ /dev/null
@@ -1,3065 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=krb - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to krb - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "krb - Win32 Release" && "$(CFG)" != "krb - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "krb.mak" CFG="krb - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "krb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "krb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "krb - Win32 Debug"
-RSC=rc.exe
-MTL=mktyplib.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : ".\Release\krb.dll"
-
-CLEAN :
- -@erase ".\Release\cr_err_reply.obj"
- -@erase ".\Release\create_auth_reply.obj"
- -@erase ".\Release\create_ciph.obj"
- -@erase ".\Release\create_ticket.obj"
- -@erase ".\Release\debug_decl.obj"
- -@erase ".\Release\decomp_ticket.obj"
- -@erase ".\Release\dllmain.obj"
- -@erase ".\Release\encrypt_ktext.obj"
- -@erase ".\Release\et_list.obj"
- -@erase ".\Release\get_ad_tkt.obj"
- -@erase ".\Release\get_cred.obj"
- -@erase ".\Release\get_default_principal.obj"
- -@erase ".\Release\get_host.obj"
- -@erase ".\Release\get_in_tkt.obj"
- -@erase ".\Release\get_krbrlm.obj"
- -@erase ".\Release\get_phost.obj"
- -@erase ".\Release\get_svc_in_tkt.obj"
- -@erase ".\Release\get_tf_fullname.obj"
- -@erase ".\Release\get_tf_realm.obj"
- -@erase ".\Release\getaddrs.obj"
- -@erase ".\Release\getrealm.obj"
- -@erase ".\Release\getst.obj"
- -@erase ".\Release\k_flock.obj"
- -@erase ".\Release\k_gethostname.obj"
- -@erase ".\Release\k_getport.obj"
- -@erase ".\Release\k_getsockinst.obj"
- -@erase ".\Release\k_localtime.obj"
- -@erase ".\Release\kdc_reply.obj"
- -@erase ".\Release\kntoln.obj"
- -@erase ".\Release\krb.dll"
- -@erase ".\Release\krb.exp"
- -@erase ".\Release\krb.lib"
- -@erase ".\Release\krb_check_auth.obj"
- -@erase ".\Release\krb_equiv.obj"
- -@erase ".\Release\krb_err_txt.obj"
- -@erase ".\Release\krb_get_in_tkt.obj"
- -@erase ".\Release\lifetime.obj"
- -@erase ".\Release\logging.obj"
- -@erase ".\Release\lsb_addr_comp.obj"
- -@erase ".\Release\mk_auth.obj"
- -@erase ".\Release\mk_err.obj"
- -@erase ".\Release\mk_priv.obj"
- -@erase ".\Release\mk_req.obj"
- -@erase ".\Release\mk_safe.obj"
- -@erase ".\Release\month_sname.obj"
- -@erase ".\Release\name2name.obj"
- -@erase ".\Release\netread.obj"
- -@erase ".\Release\netwrite.obj"
- -@erase ".\Release\one.obj"
- -@erase ".\Release\parse_name.obj"
- -@erase ".\Release\rd_err.obj"
- -@erase ".\Release\rd_priv.obj"
- -@erase ".\Release\rd_req.obj"
- -@erase ".\Release\rd_safe.obj"
- -@erase ".\Release\read_service_key.obj"
- -@erase ".\Release\realm_parse.obj"
- -@erase ".\Release\recvauth.obj"
- -@erase ".\Release\resolve.obj"
- -@erase ".\Release\rw.obj"
- -@erase ".\Release\save_credentials.obj"
- -@erase ".\Release\send_to_kdc.obj"
- -@erase ".\Release\sendauth.obj"
- -@erase ".\Release\stime.obj"
- -@erase ".\Release\str2key.obj"
- -@erase ".\Release\swab.obj"
- -@erase ".\Release\ticket_memory.obj"
- -@erase ".\Release\tkt_string.obj"
- -@erase ".\Release\unparse_name.obj"
- -@erase ".\Release\util.obj"
- -@erase ".\Release\verify_user.obj"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
-CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "." /I "..\..\include" /I\
- "..\..\include\win32" /I "..\des" /I "..\roken" /D "NDEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)/krb.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/krb.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\roken\Release\roken.lib ..\des\Release\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-LINK32_FLAGS=..\roken\Release\roken.lib ..\des\Release\des.lib wsock32.lib\
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib\
- shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo\
- /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)/krb.pdb" /machine:I386\
- /def:".\krb.def" /out:"$(OUTDIR)/krb.dll" /implib:"$(OUTDIR)/krb.lib"
-DEF_FILE= \
- ".\krb.def"
-LINK32_OBJS= \
- ".\Release\cr_err_reply.obj" \
- ".\Release\create_auth_reply.obj" \
- ".\Release\create_ciph.obj" \
- ".\Release\create_ticket.obj" \
- ".\Release\debug_decl.obj" \
- ".\Release\decomp_ticket.obj" \
- ".\Release\dllmain.obj" \
- ".\Release\encrypt_ktext.obj" \
- ".\Release\et_list.obj" \
- ".\Release\get_ad_tkt.obj" \
- ".\Release\get_cred.obj" \
- ".\Release\get_default_principal.obj" \
- ".\Release\get_host.obj" \
- ".\Release\get_in_tkt.obj" \
- ".\Release\get_krbrlm.obj" \
- ".\Release\get_phost.obj" \
- ".\Release\get_svc_in_tkt.obj" \
- ".\Release\get_tf_fullname.obj" \
- ".\Release\get_tf_realm.obj" \
- ".\Release\getaddrs.obj" \
- ".\Release\getrealm.obj" \
- ".\Release\getst.obj" \
- ".\Release\k_flock.obj" \
- ".\Release\k_gethostname.obj" \
- ".\Release\k_getport.obj" \
- ".\Release\k_getsockinst.obj" \
- ".\Release\k_localtime.obj" \
- ".\Release\kdc_reply.obj" \
- ".\Release\kntoln.obj" \
- ".\Release\krb_check_auth.obj" \
- ".\Release\krb_equiv.obj" \
- ".\Release\krb_err_txt.obj" \
- ".\Release\krb_get_in_tkt.obj" \
- ".\Release\lifetime.obj" \
- ".\Release\logging.obj" \
- ".\Release\lsb_addr_comp.obj" \
- ".\Release\mk_auth.obj" \
- ".\Release\mk_err.obj" \
- ".\Release\mk_priv.obj" \
- ".\Release\mk_req.obj" \
- ".\Release\mk_safe.obj" \
- ".\Release\month_sname.obj" \
- ".\Release\name2name.obj" \
- ".\Release\netread.obj" \
- ".\Release\netwrite.obj" \
- ".\Release\one.obj" \
- ".\Release\parse_name.obj" \
- ".\Release\rd_err.obj" \
- ".\Release\rd_priv.obj" \
- ".\Release\rd_req.obj" \
- ".\Release\rd_safe.obj" \
- ".\Release\read_service_key.obj" \
- ".\Release\realm_parse.obj" \
- ".\Release\recvauth.obj" \
- ".\Release\resolve.obj" \
- ".\Release\rw.obj" \
- ".\Release\save_credentials.obj" \
- ".\Release\send_to_kdc.obj" \
- ".\Release\sendauth.obj" \
- ".\Release\stime.obj" \
- ".\Release\str2key.obj" \
- ".\Release\swab.obj" \
- ".\Release\ticket_memory.obj" \
- ".\Release\tkt_string.obj" \
- ".\Release\unparse_name.obj" \
- ".\Release\util.obj" \
- ".\Release\verify_user.obj"
-
-".\Release\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\krb.dll"
-
-CLEAN :
- -@erase ".\Debug\cr_err_reply.obj"
- -@erase ".\Debug\create_auth_reply.obj"
- -@erase ".\Debug\create_ciph.obj"
- -@erase ".\Debug\create_ticket.obj"
- -@erase ".\Debug\debug_decl.obj"
- -@erase ".\Debug\decomp_ticket.obj"
- -@erase ".\Debug\dllmain.obj"
- -@erase ".\Debug\encrypt_ktext.obj"
- -@erase ".\Debug\et_list.obj"
- -@erase ".\Debug\get_ad_tkt.obj"
- -@erase ".\Debug\get_cred.obj"
- -@erase ".\Debug\get_default_principal.obj"
- -@erase ".\Debug\get_host.obj"
- -@erase ".\Debug\get_in_tkt.obj"
- -@erase ".\Debug\get_krbrlm.obj"
- -@erase ".\Debug\get_phost.obj"
- -@erase ".\Debug\get_svc_in_tkt.obj"
- -@erase ".\Debug\get_tf_fullname.obj"
- -@erase ".\Debug\get_tf_realm.obj"
- -@erase ".\Debug\getaddrs.obj"
- -@erase ".\Debug\getrealm.obj"
- -@erase ".\Debug\getst.obj"
- -@erase ".\Debug\k_flock.obj"
- -@erase ".\Debug\k_gethostname.obj"
- -@erase ".\Debug\k_getport.obj"
- -@erase ".\Debug\k_getsockinst.obj"
- -@erase ".\Debug\k_localtime.obj"
- -@erase ".\Debug\kdc_reply.obj"
- -@erase ".\Debug\kntoln.obj"
- -@erase ".\Debug\krb.dll"
- -@erase ".\Debug\krb.exp"
- -@erase ".\Debug\krb.ilk"
- -@erase ".\Debug\krb.lib"
- -@erase ".\Debug\krb.pdb"
- -@erase ".\Debug\krb_check_auth.obj"
- -@erase ".\Debug\krb_equiv.obj"
- -@erase ".\Debug\krb_err_txt.obj"
- -@erase ".\Debug\krb_get_in_tkt.obj"
- -@erase ".\Debug\lifetime.obj"
- -@erase ".\Debug\logging.obj"
- -@erase ".\Debug\lsb_addr_comp.obj"
- -@erase ".\Debug\mk_auth.obj"
- -@erase ".\Debug\mk_err.obj"
- -@erase ".\Debug\mk_priv.obj"
- -@erase ".\Debug\mk_req.obj"
- -@erase ".\Debug\mk_safe.obj"
- -@erase ".\Debug\month_sname.obj"
- -@erase ".\Debug\name2name.obj"
- -@erase ".\Debug\netread.obj"
- -@erase ".\Debug\netwrite.obj"
- -@erase ".\Debug\one.obj"
- -@erase ".\Debug\parse_name.obj"
- -@erase ".\Debug\rd_err.obj"
- -@erase ".\Debug\rd_priv.obj"
- -@erase ".\Debug\rd_req.obj"
- -@erase ".\Debug\rd_safe.obj"
- -@erase ".\Debug\read_service_key.obj"
- -@erase ".\Debug\realm_parse.obj"
- -@erase ".\Debug\recvauth.obj"
- -@erase ".\Debug\resolve.obj"
- -@erase ".\Debug\rw.obj"
- -@erase ".\Debug\save_credentials.obj"
- -@erase ".\Debug\send_to_kdc.obj"
- -@erase ".\Debug\sendauth.obj"
- -@erase ".\Debug\stime.obj"
- -@erase ".\Debug\str2key.obj"
- -@erase ".\Debug\swab.obj"
- -@erase ".\Debug\ticket_memory.obj"
- -@erase ".\Debug\tkt_string.obj"
- -@erase ".\Debug\unparse_name.obj"
- -@erase ".\Debug\util.obj"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
- -@erase ".\Debug\verify_user.obj"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I\
- "..\..\include\win32" /I "..\des" /I "..\roken" /D "_DEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)/krb.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/krb.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 ..\roken\Debug\roken.lib ..\des\Debug\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=..\roken\Debug\roken.lib ..\des\Debug\des.lib wsock32.lib\
- kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib\
- shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo\
- /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)/krb.pdb" /debug\
- /machine:I386 /def:".\krb.def" /out:"$(OUTDIR)/krb.dll"\
- /implib:"$(OUTDIR)/krb.lib"
-DEF_FILE= \
- ".\krb.def"
-LINK32_OBJS= \
- ".\Debug\cr_err_reply.obj" \
- ".\Debug\create_auth_reply.obj" \
- ".\Debug\create_ciph.obj" \
- ".\Debug\create_ticket.obj" \
- ".\Debug\debug_decl.obj" \
- ".\Debug\decomp_ticket.obj" \
- ".\Debug\dllmain.obj" \
- ".\Debug\encrypt_ktext.obj" \
- ".\Debug\et_list.obj" \
- ".\Debug\get_ad_tkt.obj" \
- ".\Debug\get_cred.obj" \
- ".\Debug\get_default_principal.obj" \
- ".\Debug\get_host.obj" \
- ".\Debug\get_in_tkt.obj" \
- ".\Debug\get_krbrlm.obj" \
- ".\Debug\get_phost.obj" \
- ".\Debug\get_svc_in_tkt.obj" \
- ".\Debug\get_tf_fullname.obj" \
- ".\Debug\get_tf_realm.obj" \
- ".\Debug\getaddrs.obj" \
- ".\Debug\getrealm.obj" \
- ".\Debug\getst.obj" \
- ".\Debug\k_flock.obj" \
- ".\Debug\k_gethostname.obj" \
- ".\Debug\k_getport.obj" \
- ".\Debug\k_getsockinst.obj" \
- ".\Debug\k_localtime.obj" \
- ".\Debug\kdc_reply.obj" \
- ".\Debug\kntoln.obj" \
- ".\Debug\krb_check_auth.obj" \
- ".\Debug\krb_equiv.obj" \
- ".\Debug\krb_err_txt.obj" \
- ".\Debug\krb_get_in_tkt.obj" \
- ".\Debug\lifetime.obj" \
- ".\Debug\logging.obj" \
- ".\Debug\lsb_addr_comp.obj" \
- ".\Debug\mk_auth.obj" \
- ".\Debug\mk_err.obj" \
- ".\Debug\mk_priv.obj" \
- ".\Debug\mk_req.obj" \
- ".\Debug\mk_safe.obj" \
- ".\Debug\month_sname.obj" \
- ".\Debug\name2name.obj" \
- ".\Debug\netread.obj" \
- ".\Debug\netwrite.obj" \
- ".\Debug\one.obj" \
- ".\Debug\parse_name.obj" \
- ".\Debug\rd_err.obj" \
- ".\Debug\rd_priv.obj" \
- ".\Debug\rd_req.obj" \
- ".\Debug\rd_safe.obj" \
- ".\Debug\read_service_key.obj" \
- ".\Debug\realm_parse.obj" \
- ".\Debug\recvauth.obj" \
- ".\Debug\resolve.obj" \
- ".\Debug\rw.obj" \
- ".\Debug\save_credentials.obj" \
- ".\Debug\send_to_kdc.obj" \
- ".\Debug\sendauth.obj" \
- ".\Debug\stime.obj" \
- ".\Debug\str2key.obj" \
- ".\Debug\swab.obj" \
- ".\Debug\ticket_memory.obj" \
- ".\Debug\tkt_string.obj" \
- ".\Debug\unparse_name.obj" \
- ".\Debug\util.obj" \
- ".\Debug\verify_user.obj"
-
-".\Debug\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "krb - Win32 Release"
-# Name "krb - Win32 Debug"
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb.def
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_tf_fullname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_T=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_T=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cr_err_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CR_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_CR_ER=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\create_auth_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CREAT=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_CREAT=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\create_ciph.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CREATE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_CREATE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\create_ticket.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CREATE_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_CREATE_=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\decomp_ticket.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_DECOM=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_DECOM=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\dllmain.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_DLLMA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\ticket_memory.h"\
-
-
-".\Release\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_DLLMA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- ".\ticket_memory.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\encrypt_ktext.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_ENCRY=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_ENCRY=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\et_list.c
-DEP_CPP_ET_LI=\
- "..\..\include\win32\config.h"\
-
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\et_list.obj" : $(SOURCE) $(DEP_CPP_ET_LI) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\et_list.obj" : $(SOURCE) $(DEP_CPP_ET_LI) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_ad_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_A=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_A=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_cred.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_C=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_C=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_default_principal.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_D=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_D=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_host.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_H=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_H=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_I=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_I=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_krbrlm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_K=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_K=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_phos
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_svc_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_S=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_S=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_phost.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_P=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_P=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb_equiv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_E=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KRB_E=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\getaddrs.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GETAD=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GETAD=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\getrealm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GETRE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GETRE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\getst.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GETST=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GETST=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_flock.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_FLO=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_FLO=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_gethostname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GET=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_GET=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_getport.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GETP=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_GETP=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_getsockinst.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GETS=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_GETS=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_localtime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_LOC=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_LOC=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\kdc_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KDC_R=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KDC_R=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\kntoln.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KNTOL=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Release\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KNTOL=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb_check_auth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_C=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KRB_C=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_tf_realm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_TF=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_TF=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\rd_safe.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_SA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RD_SA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb_get_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_G=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KRB_G=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\lifetime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_LIFET=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_LIFET=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\lsb_addr_comp.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_LSB_A=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_LSB_A=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mk_auth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_AU=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_AU=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mk_err.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_ER=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mk_priv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_PR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_PR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mk_req.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_RE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_RE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\mk_safe.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_SA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_SA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\month_sname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MONTH=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MONTH=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\name2name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_NAME2=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_NAME2=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\netread.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_NETRE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_NETRE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\netwrite.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_NETWR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_NETWR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\one.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\one.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\one.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\parse_name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_PARSE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_PARSE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\rd_err.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RD_ER=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\rd_priv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_PR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RD_PR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\rd_req.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_RE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RD_RE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb_err_txt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KRB_ER=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\send_to_kdc.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_SEND_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_SEND_=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\realm_parse.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_REALM=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_REALM=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\recvauth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RECVA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RECVA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\resolve.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RESOL=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\resolve.h"\
-
-
-".\Release\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RESOL=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\rw.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RW_C68=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- "..\des\version.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C68) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RW_C68=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\des\version.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C68) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\save_credentials.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_SAVE_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_SAVE_=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\read_service_key.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_READ_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_READ_=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\verify_user.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_VERIF=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_VERIF=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\stime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_STIME=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_STIME=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\swab.c
-DEP_CPP_SWAB_=\
- "..\..\include\win32\config.h"\
-
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\swab.obj" : $(SOURCE) $(DEP_CPP_SWAB_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\swab.obj" : $(SOURCE) $(DEP_CPP_SWAB_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\ticket_memory.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_TICKE=\
- ".\krb_locl.h"\
- ".\ticket_memory.h"\
-
-
-".\Release\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_TICKE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\ticket_memory.h"\
-
-
-".\Debug\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\tkt_string.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_TKT_S=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_TKT_S=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\unparse_name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_UNPAR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_UNPAR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\util.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_UTIL_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_UTIL_=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\sendauth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_SENDA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_SENDA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\logging.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_LOGGI=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\klog.h"\
- ".\krb_locl.h"\
-
-
-".\Release\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_LOGGI=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\klog.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\str2key.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_STR2K=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_STR2K=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\debug_decl.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_DEBUG=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_DEBUG=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/crypto/kerberosIV/lib/krb/krb_check_auth.c b/crypto/kerberosIV/lib/krb/krb_check_auth.c
deleted file mode 100644
index 8bddbf55739b..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_check_auth.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: krb_check_auth.c,v 1.4 1997/04/01 08:18:33 joda Exp $");
-
-/*
- *
- * Receive an mutual-authenticator for a server in `packet', with
- * `checksum', `session', and `schedule' having the appropriate values
- * and return the data in `msg_data'.
- *
- * Return KSUCCESS if the received checksum is correct.
- *
- */
-
-int
-krb_check_auth(KTEXT packet,
- u_int32_t checksum,
- MSG_DAT *msg_data,
- des_cblock *session,
- struct des_ks_struct *schedule,
- struct sockaddr_in *laddr,
- struct sockaddr_in *faddr)
-{
- int ret;
- u_int32_t checksum2;
-
- ret = krb_rd_priv (packet->dat, packet->length, schedule, session, faddr,
- laddr, msg_data);
- if (ret != RD_AP_OK)
- return ret;
- if (msg_data->app_length != 4)
- return KFAILURE;
- krb_get_int (msg_data->app_data, &checksum2, 4, 0);
- if (checksum2 == checksum + 1)
- return KSUCCESS;
- else
- return KFAILURE;
-}
diff --git a/crypto/kerberosIV/lib/krb/krb_equiv.c b/crypto/kerberosIV/lib/krb/krb_equiv.c
deleted file mode 100644
index 06f42f5ff61e..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_equiv.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/*
- * int krb_equiv(u_int32_t ipaddr_a, u_int32_t ipaddr_b);
- *
- * Given two IP adresses return true if they match
- * or are considered to belong to the same host.
- *
- * For example if /etc/krb.equiv looks like
- *
- * 130.237.223.3 192.16.126.3 # alv alv1
- * 130.237.223.4 192.16.126.4 # byse byse1
- * 130.237.228.152 192.16.126.9 # topsy topsy1
- *
- * krb_equiv(alv, alv1) would return true but
- * krb_equiv(alv, byse1) would not.
- *
- * A comment starts with an '#' and ends with '\n'.
- *
- */
-#include "krb_locl.h"
-
-RCSID("$Id: krb_equiv.c,v 1.13 1997/04/01 08:18:33 joda Exp $");
-
-int krb_ignore_ip_address = 0;
-
-int
-krb_equiv(u_int32_t a, u_int32_t b)
-{
- FILE *fil;
- char line[256];
- int hit_a, hit_b;
- int iscomment;
-
- if (a == b) /* trivial match, also the common case */
- return 1;
-
- if (krb_ignore_ip_address)
- return 1; /* if we have decided not to compare */
-
- a = ntohl(a);
- b = ntohl(b);
-
- fil = fopen(KRB_EQUIV, "r");
- if (fil == NULL) /* open failed */
- return 0;
-
- hit_a = hit_b = 0;
- iscomment = 0;
- while (fgets(line, sizeof(line)-1, fil) != NULL) /* for each line */
- {
- char *t = line;
- int len = strlen(t);
-
- /* for each item on this line */
- while (*t != 0) /* more addresses on this line? */
- if (*t == '\n') {
- iscomment = hit_a = hit_b = 0;
- break;
- } else if (iscomment)
- t = line + len - 1;
- else if (*t == '#') { /* rest is comment */
- iscomment = 1;
- ++t;
- } else if (*t == '\\' ) /* continuation */
- break;
- else if (isspace(*t)) /* skip space */
- t++;
- else if (isdigit(*t)) /* an address? */
- {
- u_int32_t tmp;
- u_int32_t tmpa, tmpb, tmpc, tmpd;
-
- sscanf(t, "%d.%d.%d.%d", &tmpa, &tmpb, &tmpc, &tmpd);
- tmp = (tmpa << 24) | (tmpb << 16) | (tmpc << 8) | tmpd;
-
- while (*t == '.' || isdigit(*t)) /* done with this address */
- t++;
-
- if (tmp != -1) { /* an address (and not broadcast) */
- u_int32_t mask = (u_int32_t)~0;
-
- if (*t == '/') {
- ++t;
- mask <<= 32 - atoi(t);
-
- while(isdigit(*t))
- ++t;
- }
-
- if ((tmp & mask) == (a & mask))
- hit_a = 1;
- if ((tmp & mask) == (b & mask))
- hit_b = 1;
- if (hit_a && hit_b) {
- fclose(fil);
- return 1;
- }
- }
- }
- else
- ++t; /* garbage on this line, skip it */
-
- }
-
- fclose(fil);
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/krb/krb_err.et b/crypto/kerberosIV/lib/krb/krb_err.et
deleted file mode 100644
index 4e32aed5d102..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_err.et
+++ /dev/null
@@ -1,257 +0,0 @@
-# Copyright 1987,1988 Massachusetts Institute of Technology
-#
-# For copying and distribution information, see the file
-# "mit-copyright.h".
-#
-# $Id: krb_err.et,v 1.4 1996/10/27 13:30:28 bg Exp $
-#
- error_table krb
-
- ec KRBET_KSUCCESS,
- "Kerberos successful"
-
- ec KRBET_KDC_NAME_EXP,
- "Kerberos principal expired"
-
- ec KRBET_KDC_SERVICE_EXP,
- "Kerberos service expired"
-
- ec KRBET_KDC_AUTH_EXP,
- "Kerberos auth expired"
-
- ec KRBET_KDC_PKT_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_P_MKEY_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_S_MKEY_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_BYTE_ORDER,
- "Kerberos error: byte order unknown"
-
- ec KRBET_KDC_PR_UNKNOWN,
- "Kerberos principal unknown"
-
- ec KRBET_KDC_PR_N_UNIQUE,
- "Kerberos principal not unique"
-
- ec KRBET_KDC_NULL_KEY,
- "Kerberos principal has null key"
-
- ec KRBET_KRB_RES11,
- "Reserved 11"
-
- ec KRBET_KRB_RES12,
- "Reserved 12"
-
- ec KRBET_KRB_RES13,
- "Reserved 13"
-
- ec KRBET_KRB_RES14,
- "Reserved 14"
-
- ec KRBET_KRB_RES15,
- "Reserved 15"
-
- ec KRBET_KRB_RES16,
- "Reserved 16"
-
- ec KRBET_KRB_RES17,
- "Reserved 17"
-
- ec KRBET_KRB_RES18,
- "Reserved 18"
-
- ec KRBET_KRB_RES19,
- "Reserved 19"
-
- ec KRBET_KDC_GEN_ERR,
- "Generic error from Kerberos KDC"
-
- ec KRBET_GC_TKFIL,
- "Can't read Kerberos ticket file"
-
- ec KRBET_GC_NOTKT,
- "Can't find Kerberos ticket or TGT"
-
- ec KRBET_KRB_RES23,
- "Reserved 23"
-
- ec KRBET_KRB_RES24,
- "Reserved 24"
-
- ec KRBET_KRB_RES25,
- "Reserved 25"
-
- ec KRBET_MK_AP_TGTEXP,
- "Kerberos TGT Expired"
-
- ec KRBET_KRB_RES27,
- "Reserved 27"
-
- ec KRBET_KRB_RES28,
- "Reserved 28"
-
- ec KRBET_KRB_RES29,
- "Reserved 29"
-
- ec KRBET_KRB_RES30,
- "Reserved 30"
-
- ec KRBET_RD_AP_UNDEC,
- "Kerberos error: Can't decode authenticator"
-
- ec KRBET_RD_AP_EXP,
- "Kerberos ticket expired"
-
- ec KRBET_RD_AP_NYV,
- "Kerberos ticket not yet valid"
-
- ec KRBET_RD_AP_REPEAT,
- "Kerberos error: Repeated request"
-
- ec KRBET_RD_AP_NOT_US,
- "The kerberos ticket isn't for us"
-
- ec KRBET_RD_AP_INCON,
- "Kerberos request inconsistent"
-
- ec KRBET_RD_AP_TIME,
- "Kerberos error: delta_t too big"
-
- ec KRBET_RD_AP_BADD,
- "Kerberos error: incorrect net address"
-
- ec KRBET_RD_AP_VERSION,
- "Kerberos protocol version mismatch"
-
- ec KRBET_RD_AP_MSG_TYPE,
- "Kerberos error: invalid msg type"
-
- ec KRBET_RD_AP_MODIFIED,
- "Kerberos error: message stream modified"
-
- ec KRBET_RD_AP_ORDER,
- "Kerberos error: message out of order"
-
- ec KRBET_RD_AP_UNAUTHOR,
- "Kerberos error: unauthorized request"
-
- ec KRBET_KRB_RES44,
- "Reserved 44"
-
- ec KRBET_KRB_RES45,
- "Reserved 45"
-
- ec KRBET_KRB_RES46,
- "Reserved 46"
-
- ec KRBET_KRB_RES47,
- "Reserved 47"
-
- ec KRBET_KRB_RES48,
- "Reserved 48"
-
- ec KRBET_KRB_RES49,
- "Reserved 49"
-
- ec KRBET_KRB_RES50,
- "Reserved 50"
-
- ec KRBET_GT_PW_NULL,
- "Kerberos error: current PW is null"
-
- ec KRBET_GT_PW_BADPW,
- "Kerberos error: Incorrect current password"
-
- ec KRBET_GT_PW_PROT,
- "Kerberos protocol error"
-
- ec KRBET_GT_PW_KDCERR,
- "Error returned by Kerberos KDC"
-
- ec KRBET_GT_PW_NULLTKT,
- "Null Kerberos ticket returned by KDC"
-
- ec KRBET_SKDC_RETRY,
- "Kerberos error: Retry count exceeded"
-
- ec KRBET_SKDC_CANT,
- "Kerberos error: Can't send request"
-
- ec KRBET_KRB_RES58,
- "Reserved 58"
-
- ec KRBET_KRB_RES59,
- "Reserved 59"
-
- ec KRBET_KRB_RES60,
- "Reserved 60"
-
- ec KRBET_INTK_W_NOTALL,
- "Kerberos error: not all tickets returned"
-
- ec KRBET_INTK_BADPW,
- "Kerberos error: incorrect password"
-
- ec KRBET_INTK_PROT,
- "Kerberos error: Protocol Error"
-
- ec KRBET_KRB_RES64,
- "Reserved 64"
-
- ec KRBET_KRB_RES65,
- "Reserved 65"
-
- ec KRBET_KRB_RES66,
- "Reserved 66"
-
- ec KRBET_KRB_RES67,
- "Reserved 67"
-
- ec KRBET_KRB_RES68,
- "Reserved 68"
-
- ec KRBET_KRB_RES69,
- "Reserved 69"
-
- ec KRBET_INTK_ERR,
- "Other error"
-
- ec KRBET_AD_NOTGT,
- "Don't have Kerberos ticket-granting ticket"
-
- ec KRBET_KRB_RES72,
- "Can't get Kerberos inter-realm ticket-granting ticket"
-
- ec KRBET_KRB_RES73,
- "Reserved 73"
-
- ec KRBET_KRB_RES74,
- "Reserved 74"
-
- ec KRBET_KRB_RES75,
- "Reserved 75"
-
- ec KRBET_NO_TKT_FIL,
- "No ticket file found"
-
- ec KRBET_TKT_FIL_ACC,
- "Couldn't access ticket file"
-
- ec KRBET_TKT_FIL_LCK,
- "Couldn't lock ticket file"
-
- ec KRBET_TKT_FIL_FMT,
- "Bad ticket file format"
-
- ec KRBET_TKT_FIL_INI,
- "tf_init not called first"
-
- ec KRBET_KNAME_FMT,
- "Bad Kerberos name format"
-
- end
-
diff --git a/crypto/kerberosIV/lib/krb/krb_err_txt.c b/crypto/kerberosIV/lib/krb/krb_err_txt.c
deleted file mode 100644
index 161aa0ffcca6..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_err_txt.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: krb_err_txt.c,v 1.12 1997/04/02 05:37:10 joda Exp $");
-
-/*
- * This file contains an array of error text strings.
- * The associated error codes (which are defined in "krb.h")
- * follow the string in the comments at the end of each line.
- */
-
-const char *krb_err_txt[256] = {
- "OK", /* 000 */
- "Principal expired (kerberos)", /* 001 */
- "Service expired (kerberos)", /* 002 */
- "Authentication expired (kerberos)", /* 003 */
- "Unknown protocol version number (kerberos)", /* 004 */
- "Principal: Incorrect master key version (kerberos)", /* 005 */
- "Service: Incorrect master key version (kerberos)", /* 006 */
- "Bad byte order (kerberos)", /* 007 */
- "Principal unknown (kerberos)", /* 008 */
- "Principal not unique (kerberos)", /* 009 */
- "Principal has null key (kerberos)", /* 010 */
- "Timeout in request (kerberos)", /* 011 */
- "Reserved error message 12 (kerberos)", /* 012 */
- "Reserved error message 13 (kerberos)", /* 013 */
- "Reserved error message 14 (kerberos)", /* 014 */
- "Reserved error message 15 (kerberos)", /* 015 */
- "Reserved error message 16 (kerberos)", /* 016 */
- "Reserved error message 17 (kerberos)", /* 017 */
- "Reserved error message 18 (kerberos)", /* 018 */
- "Reserved error message 19 (kerberos)", /* 019 */
- "Permission Denied (kerberos)", /* 020 */
- "Can't read ticket file (krb_get_cred)", /* 021 */
- "Can't find ticket (krb_get_cred)", /* 022 */
- "Reserved error message 23 (krb_get_cred)", /* 023 */
- "Reserved error message 24 (krb_get_cred)", /* 024 */
- "Reserved error message 25 (krb_get_cred)", /* 025 */
- "Ticket granting ticket expired (krb_mk_req)", /* 026 */
- "Reserved error message 27 (krb_mk_req)", /* 027 */
- "Reserved error message 28 (krb_mk_req)", /* 028 */
- "Reserved error message 29 (krb_mk_req)", /* 029 */
- "Reserved error message 30 (krb_mk_req)", /* 030 */
- "Can't decode authenticator (krb_rd_req)", /* 031 */
- "Ticket expired (krb_rd_req)", /* 032 */
- "Ticket issue date too far in the future (krb_rd_req)",/* 033 */
- "Repeat request (krb_rd_req)", /* 034 */
- "Ticket for wrong server (krb_rd_req)", /* 035 */
- "Request inconsistent (krb_rd_req)", /* 036 */
- "Time is out of bounds (krb_rd_req)", /* 037 */
- "Incorrect network address (krb_rd_req)", /* 038 */
- "Protocol version mismatch (krb_rd_req)", /* 039 */
- "Illegal message type (krb_rd_req)", /* 040 */
- "Message integrity error (krb_rd_req)", /* 041 */
- "Message duplicate or out of order (krb_rd_req)", /* 042 */
- "Unauthorized request (krb_rd_req)", /* 043 */
- "Reserved error message 44 (krb_rd_req)", /* 044 */
- "Reserved error message 45 (krb_rd_req)", /* 045 */
- "Reserved error message 46 (krb_rd_req)", /* 046 */
- "Reserved error message 47 (krb_rd_req)", /* 047 */
- "Reserved error message 48 (krb_rd_req)", /* 048 */
- "Reserved error message 49 (krb_rd_req)", /* 049 */
- "Reserved error message 50 (krb_rd_req)", /* 050 */
- "Current password is NULL (get_pw_tkt)", /* 051 */
- "Current password incorrect (get_pw_tkt)", /* 052 */
- "Protocol error (gt_pw_tkt)", /* 053 */
- "Error returned by KDC (gt_pw_tkt)", /* 054 */
- "Null ticket returned by KDC (gt_pw_tkt)", /* 055 */
- "Retry count exceeded (send_to_kdc)", /* 056 */
- "Can't send request (send_to_kdc)", /* 057 */
- "Reserved error message 58 (send_to_kdc)", /* 058 */
- "Reserved error message 59 (send_to_kdc)", /* 059 */
- "Reserved error message 60 (send_to_kdc)", /* 060 */
- "Warning: Not ALL tickets returned", /* 061 */
- "Password incorrect", /* 062 */
- "Protocol error (get_in_tkt)", /* 063 */
- "Reserved error message 64 (get_in_tkt)", /* 064 */
- "Reserved error message 65 (get_in_tkt)", /* 065 */
- "Reserved error message 66 (get_in_tkt)", /* 066 */
- "Reserved error message 67 (get_in_tkt)", /* 067 */
- "Reserved error message 68 (get_in_tkt)", /* 068 */
- "Reserved error message 69 (get_in_tkt)", /* 069 */
- "Generic error (get_in_tkt)(can't write ticket file)", /* 070 */
- "Don't have ticket granting ticket (get_ad_tkt)", /* 071 */
- "Can't get inter-realm ticket granting ticket (get_ad_tkt)", /* 072 */
- "Reserved error message 73 (get_ad_tkt)", /* 073 */
- "Reserved error message 74 (get_ad_tkt)", /* 074 */
- "Reserved error message 75 (get_ad_tkt)", /* 075 */
- "No ticket file (tf_util)", /* 076 */
- "Can't access ticket file (tf_util)", /* 077 */
- "Can't lock ticket file; try later (tf_util)", /* 078 */
- "Bad ticket file format (tf_util)", /* 079 */
- "Read ticket file before tf_init (tf_util)", /* 080 */
- "Bad Kerberos name format (kname_parse)", /* 081 */
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "(reserved)",
- "Generic kerberos error (kfailure)", /* 255 */
-};
-
-static const char err_failure[] = "Illegal error code passed (krb_get_err_text)";
-
-const char *
-krb_get_err_text(int code)
-{
- if(code < 0 || code >= MAX_KRB_ERRORS)
- return err_failure;
- return krb_err_txt[code];
-}
diff --git a/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c b/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c
deleted file mode 100644
index d3e6cc171a70..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: krb_get_in_tkt.c,v 1.20 1997/04/01 08:18:34 joda Exp $");
-
-/*
- * decrypt_tkt(): Given user, instance, realm, passwd, key_proc
- * and the cipher text sent from the KDC, decrypt the cipher text
- * using the key returned by key_proc.
- */
-
-static int
-decrypt_tkt(char *user, char *instance, char *realm,
- void *arg, key_proc_t key_proc, KTEXT *cip)
-{
- des_cblock key; /* Key for decrypting cipher */
- int ret;
-
- ret = key_proc(user, instance, realm, arg, &key);
- if (ret != 0)
- return ret;
-
- encrypt_ktext(*cip, &key, DES_DECRYPT);
-
- memset(&key, 0, sizeof(key));
- return 0;
-}
-
-/*
- * krb_get_in_tkt() gets a ticket for a given principal to use a given
- * service and stores the returned ticket and session key for future
- * use.
- *
- * The "user", "instance", and "realm" arguments give the identity of
- * the client who will use the ticket. The "service" and "sinstance"
- * arguments give the identity of the server that the client wishes
- * to use. (The realm of the server is the same as the Kerberos server
- * to whom the request is sent.) The "life" argument indicates the
- * desired lifetime of the ticket; the "key_proc" argument is a pointer
- * to the routine used for getting the client's private key to decrypt
- * the reply from Kerberos. The "decrypt_proc" argument is a pointer
- * to the routine used to decrypt the reply from Kerberos; and "arg"
- * is an argument to be passed on to the "key_proc" routine.
- *
- * If all goes well, krb_get_in_tkt() returns INTK_OK, otherwise it
- * returns an error code: If an AUTH_MSG_ERR_REPLY packet is returned
- * by Kerberos, then the error code it contains is returned. Other
- * error codes returned by this routine include INTK_PROT to indicate
- * wrong protocol version, INTK_BADPW to indicate bad password (if
- * decrypted ticket didn't make sense), INTK_ERR if the ticket was for
- * the wrong server or the ticket store couldn't be initialized.
- *
- * The format of the message sent to Kerberos is as follows:
- *
- * Size Variable Field
- * ---- -------- -----
- *
- * 1 byte KRB_PROT_VERSION protocol version number
- * 1 byte AUTH_MSG_KDC_REQUEST | message type
- * HOST_BYTE_ORDER local byte order in lsb
- * string user client's name
- * string instance client's instance
- * string realm client's realm
- * 4 bytes tlocal.tv_sec timestamp in seconds
- * 1 byte life desired lifetime
- * string service service's name
- * string sinstance service's instance
- */
-
-int
-krb_get_in_tkt(char *user, char *instance, char *realm,
- char *service, char *sinstance, int life,
- key_proc_t key_proc, decrypt_proc_t decrypt_proc, void *arg)
-{
- KTEXT_ST pkt_st;
- KTEXT pkt = &pkt_st; /* Packet to KDC */
- KTEXT_ST rpkt_st;
- KTEXT rpkt = &rpkt_st; /* Returned packet */
-
- int kerror;
- struct timeval tv;
-
- /* BUILD REQUEST PACKET */
-
- unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_KDC_REQUEST, p, 1);
-
- p += krb_put_nir(user, instance, realm, p);
-
- gettimeofday(&tv, NULL);
- p += krb_put_int(tv.tv_sec, p, 4);
- p += krb_put_int(life, p, 1);
-
- p += krb_put_nir(service, sinstance, NULL, p);
-
- pkt->length = p - pkt->dat;
-
- rpkt->length = 0;
-
- /* SEND THE REQUEST AND RECEIVE THE RETURN PACKET */
-
- if ((kerror = send_to_kdc(pkt, rpkt, realm))) return(kerror);
-
- p = rpkt->dat;
-
- {
- CREDENTIALS cred;
- KTEXT_ST cip;
- KTEXT foo = &cip; /* braindamage */
-
- kerror = kdc_reply_cipher(rpkt, &cip);
- if(kerror != KSUCCESS)
- return kerror;
-
- if (decrypt_proc == NULL)
- decrypt_proc = decrypt_tkt;
- (*decrypt_proc)(user, instance, realm, arg, key_proc, &foo);
-
- kerror = kdc_reply_cred(&cip, &cred);
- if(kerror != KSUCCESS)
- return kerror;
-
- if (strcmp(cred.service, service) ||
- strcmp(cred.instance, sinstance) ||
- strcmp(cred.realm, realm)) /* not what we asked for */
- return INTK_ERR; /* we need a better code here XXX */
-
- if (abs((int)(tv.tv_sec - cred.issue_date)) > CLOCK_SKEW) {
- return RD_AP_TIME; /* XXX should probably be better code */
- }
-
- /* initialize ticket cache */
-
- return tf_setup(&cred, user, instance);
- }
-}
diff --git a/crypto/kerberosIV/lib/krb/krb_locl.h b/crypto/kerberosIV/lib/krb/krb_locl.h
deleted file mode 100644
index 4475883188ea..000000000000
--- a/crypto/kerberosIV/lib/krb/krb_locl.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: krb_locl.h,v 1.42 1997/05/20 18:40:45 bg Exp $ */
-
-#ifndef __krb_locl_h
-#define __krb_locl_h
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "protos.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-#include <stdarg.h>
-
-#include <errno.h>
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_IO_H
-#include <io.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_ARPA_NAMESER_H
-#include <arpa/nameser.h>
-#endif
-#ifdef HAVE_RESOLV_H
-#include <resolv.h>
-#endif
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <krb.h>
-#include <prot.h>
-
-#include "resolve.h"
-
-/* --- */
-
-/* Globals! */
-extern int krb_debug;
-extern int krb_ap_req_debug;
-
-/* Utils */
-int krb_name_to_name(const char *, char *, size_t);
-
-void encrypt_ktext(KTEXT cip, des_cblock *key, int encrypt);
-int kdc_reply_cred(KTEXT cip, CREDENTIALS *cred);
-int kdc_reply_cipher(KTEXT reply, KTEXT cip);
-
-#ifndef HAVE_GETTIMEOFDAY
-int gettimeofday (struct timeval *, void *);
-#endif
-
-void k_ricercar(char*);
-
-/* safe multiple strcat */
-int k_concat(char*, size_t, ...);
-int k_vconcat(char*, size_t, va_list);
-
-/* mallocing versions of the above */
-size_t k_vmconcat (char**, size_t, va_list);
-size_t k_mconcat (char**, size_t, ...);
-
-/* used in rd_safe.c and mk_safe.c */
-
-void fixup_quad_cksum(void *start, size_t len, des_cblock *key,
- void *new_checksum, void *old_checksum, int little);
-
-#endif /* __krb_locl_h */
diff --git a/crypto/kerberosIV/lib/krb/kuserok.c b/crypto/kerberosIV/lib/krb/kuserok.c
deleted file mode 100644
index e3d5e6b9f9c5..000000000000
--- a/crypto/kerberosIV/lib/krb/kuserok.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: kuserok.c,v 1.21 1997/04/01 08:18:35 joda Exp $");
-
-#define OK 0
-#define NOTOK 1
-#define MAX_USERNAME 10
-
-/*
- * Given a Kerberos principal and a local username, determine whether
- * user is authorized to login according to the authorization file
- * ("~luser/.klogin" by default). Returns OK if authorized, NOTOK if
- * not authorized.
- *
- * IMPORTANT CHANGE: To eliminate the need of making a distinction
- * between the 3 cases:
- *
- * 1. We can't verify that a .klogin file doesn't exist (no home dir).
- * 2. It's there but we aren't allowed to read it.
- * 3. We can read it and ~luser@LOCALREALM is (not) included.
- *
- * We instead make the assumption that luser@LOCALREALM is *always*
- * included. Thus it is impossible to have an empty .klogin file and
- * also to exclude luser@LOCALREALM from it. Root is treated differently
- * since it's home should always be available.
- *
- * OLD STRATEGY:
- * If there is no account for "luser" on the local machine, returns
- * NOTOK. If there is no authorization file, and the given Kerberos
- * name "kdata" translates to the same name as "luser" (using
- * krb_kntoln()), returns OK. Otherwise, if the authorization file
- * can't be accessed, returns NOTOK. Otherwise, the file is read for
- * a matching principal name, instance, and realm. If one is found,
- * returns OK, if none is found, returns NOTOK.
- *
- * The file entries are in the format:
- *
- * name.instance@realm
- *
- * one entry per line.
- *
- */
-
-int
-krb_kuserok(char *name, char *instance, char *realm, char *luser)
-{
- struct passwd *pwd;
- char lrealm[REALM_SZ];
- FILE *f;
- char line[1024];
- char file[MaxPathLen];
- struct stat st;
-
- pwd = getpwnam(luser);
- if(pwd == NULL)
- return NOTOK;
- if(krb_get_lrealm(lrealm, 1))
- return NOTOK;
- if(pwd->pw_uid != 0 &&
- strcmp(name, luser) == 0 &&
- strcmp(instance, "") == 0 &&
- strcmp(realm, lrealm) == 0)
- return OK;
- strcpy(file, pwd->pw_dir);
- strcat(file, "/.klogin");
-
- f = fopen(file, "r");
- if(f == NULL)
- return NOTOK;
-
- /* this is not a working test in filesystems like AFS and DFS */
- if(fstat(fileno(f), &st) < 0){
- fclose(f);
- return NOTOK;
- }
-
- if(st.st_uid != pwd->pw_uid){
- fclose(f);
- return NOTOK;
- }
-
- while(fgets(line, sizeof(line), f)){
- char fname[ANAME_SZ], finst[INST_SZ], frealm[REALM_SZ];
- if(line[strlen(line) - 1] != '\n')
- /* read till end of line */
- while(1){
- int c = fgetc(f);
- if(c == '\n' || c == EOF)
- break;
- }
- else
- line[strlen(line) - 1] = 0;
-
- if(kname_parse(fname, finst, frealm, line))
- continue;
- if(strcmp(name, fname))
- continue;
- if(strcmp(instance, finst))
- continue;
- if(frealm[0] == 0)
- strcpy(frealm, lrealm);
- if(strcmp(realm, frealm))
- continue;
- fclose(f);
- return OK;
- }
- fclose(f);
- return NOTOK;
-}
-
-/* compatibility interface */
-
-int
-kuserok(AUTH_DAT *auth, char *luser)
-{
- return krb_kuserok(auth->pname, auth->pinst, auth->prealm, luser);
-}
-
diff --git a/crypto/kerberosIV/lib/krb/lifetime.c b/crypto/kerberosIV/lib/krb/lifetime.c
deleted file mode 100644
index 1866996669cf..000000000000
--- a/crypto/kerberosIV/lib/krb/lifetime.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Ticket lifetime. This defines the table used to lookup lifetime
- * for the fixed part of rande of the one byte lifetime field. Values
- * less than 0x80 are intrpreted as the number of 5 minute intervals.
- * Values from 0x80 to 0xBF should be looked up in this table. The
- * value of 0x80 is the same using both methods: 10 and two-thirds
- * hours . The lifetime of 0xBF is 30 days. The intervening values
- * of have a fixed ratio of roughly 1.06914. The value 0xFF is
- * defined to mean a ticket has no expiration time. This should be
- * used advisedly since individual servers may impose defacto
- * upperbounds on ticket lifetimes.
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: lifetime.c,v 1.9 1997/05/02 14:29:18 assar Exp $");
-
-/* If you want to disable this feature */
-int krb_no_long_lifetimes = 0;
-
-#define TKTLIFENUMFIXED 64
-#define TKTLIFEMINFIXED 0x80
-#define TKTLIFEMAXFIXED 0xBF
-#define TKTLIFENOEXPIRE 0xFF
-#define MAXTKTLIFETIME (30*24*3600) /* 30 days */
-#ifndef NEVERDATE
-#define NEVERDATE ((unsigned long)0x7fffffffL)
-#endif
-
-static const int tkt_lifetimes[TKTLIFENUMFIXED] = {
- 38400, /* 10.67 hours, 0.44 days */
- 41055, /* 11.40 hours, 0.48 days */
- 43894, /* 12.19 hours, 0.51 days */
- 46929, /* 13.04 hours, 0.54 days */
- 50174, /* 13.94 hours, 0.58 days */
- 53643, /* 14.90 hours, 0.62 days */
- 57352, /* 15.93 hours, 0.66 days */
- 61318, /* 17.03 hours, 0.71 days */
- 65558, /* 18.21 hours, 0.76 days */
- 70091, /* 19.47 hours, 0.81 days */
- 74937, /* 20.82 hours, 0.87 days */
- 80119, /* 22.26 hours, 0.93 days */
- 85658, /* 23.79 hours, 0.99 days */
- 91581, /* 25.44 hours, 1.06 days */
- 97914, /* 27.20 hours, 1.13 days */
- 104684, /* 29.08 hours, 1.21 days */
- 111922, /* 31.09 hours, 1.30 days */
- 119661, /* 33.24 hours, 1.38 days */
- 127935, /* 35.54 hours, 1.48 days */
- 136781, /* 37.99 hours, 1.58 days */
- 146239, /* 40.62 hours, 1.69 days */
- 156350, /* 43.43 hours, 1.81 days */
- 167161, /* 46.43 hours, 1.93 days */
- 178720, /* 49.64 hours, 2.07 days */
- 191077, /* 53.08 hours, 2.21 days */
- 204289, /* 56.75 hours, 2.36 days */
- 218415, /* 60.67 hours, 2.53 days */
- 233517, /* 64.87 hours, 2.70 days */
- 249664, /* 69.35 hours, 2.89 days */
- 266926, /* 74.15 hours, 3.09 days */
- 285383, /* 79.27 hours, 3.30 days */
- 305116, /* 84.75 hours, 3.53 days */
- 326213, /* 90.61 hours, 3.78 days */
- 348769, /* 96.88 hours, 4.04 days */
- 372885, /* 103.58 hours, 4.32 days */
- 398668, /* 110.74 hours, 4.61 days */
- 426234, /* 118.40 hours, 4.93 days */
- 455705, /* 126.58 hours, 5.27 days */
- 487215, /* 135.34 hours, 5.64 days */
- 520904, /* 144.70 hours, 6.03 days */
- 556921, /* 154.70 hours, 6.45 days */
- 595430, /* 165.40 hours, 6.89 days */
- 636601, /* 176.83 hours, 7.37 days */
- 680618, /* 189.06 hours, 7.88 days */
- 727680, /* 202.13 hours, 8.42 days */
- 777995, /* 216.11 hours, 9.00 days */
- 831789, /* 231.05 hours, 9.63 days */
- 889303, /* 247.03 hours, 10.29 days */
- 950794, /* 264.11 hours, 11.00 days */
- 1016537, /* 282.37 hours, 11.77 days */
- 1086825, /* 301.90 hours, 12.58 days */
- 1161973, /* 322.77 hours, 13.45 days */
- 1242318, /* 345.09 hours, 14.38 days */
- 1328218, /* 368.95 hours, 15.37 days */
- 1420057, /* 394.46 hours, 16.44 days */
- 1518247, /* 421.74 hours, 17.57 days */
- 1623226, /* 450.90 hours, 18.79 days */
- 1735464, /* 482.07 hours, 20.09 days */
- 1855462, /* 515.41 hours, 21.48 days */
- 1983758, /* 551.04 hours, 22.96 days */
- 2120925, /* 589.15 hours, 24.55 days */
- 2267576, /* 629.88 hours, 26.25 days */
- 2424367, /* 673.44 hours, 28.06 days */
- 2592000}; /* 720.00 hours, 30.00 days */
-
-/*
- * krb_life_to_time - takes a start time and a Kerberos standard
- * lifetime char and returns the corresponding end time. There are
- * four simple cases to be handled. The first is a life of 0xff,
- * meaning no expiration, and results in an end time of 0xffffffff.
- * The second is when life is less than the values covered by the
- * table. In this case, the end time is the start time plus the
- * number of 5 minute intervals specified by life. The third case
- * returns start plus the MAXTKTLIFETIME if life is greater than
- * TKTLIFEMAXFIXED. The last case, uses the life value (minus
- * TKTLIFEMINFIXED) as an index into the table to extract the lifetime
- * in seconds, which is added to start to produce the end time.
- */
-u_int32_t
-krb_life_to_time(u_int32_t start, int life_)
-{
- unsigned char life = (unsigned char) life_;
-
- if (krb_no_long_lifetimes) return start + life*5*60;
-
- if (life == TKTLIFENOEXPIRE) return NEVERDATE;
- if (life < TKTLIFEMINFIXED) return start + life*5*60;
- if (life > TKTLIFEMAXFIXED) return start + MAXTKTLIFETIME;
- return start + tkt_lifetimes[life - TKTLIFEMINFIXED];
-}
-
-/*
- * krb_time_to_life - takes start and end times for the ticket and
- * returns a Kerberos standard lifetime char, possibily using the
- * tkt_lifetimes table for lifetimes above 127*5 minutes. First, the
- * special case of (end == NEVERDATE) is handled to mean no
- * expiration. Then negative lifetimes and those greater than the
- * maximum ticket lifetime are rejected. Then lifetimes less than the
- * first table entry are handled by rounding the requested lifetime
- * *up* to the next 5 minute interval. The final step is to search
- * the table for the smallest entry *greater than or equal* to the
- * requested entry.
- */
-int krb_time_to_life(u_int32_t start, u_int32_t end)
-{
- int i;
- long lifetime = end - start;
-
- if (krb_no_long_lifetimes) return (lifetime + 5*60 - 1)/(5*60);
-
- if (end >= NEVERDATE) return TKTLIFENOEXPIRE;
- if (lifetime > MAXTKTLIFETIME || lifetime <= 0) return 0;
- if (lifetime < tkt_lifetimes[0]) return (lifetime + 5*60 - 1)/(5*60);
- for (i=0; i<TKTLIFENUMFIXED; i++) {
- if (lifetime <= tkt_lifetimes[i]) {
- return i+TKTLIFEMINFIXED;
- }
- }
- return 0;
-}
-
-char *
-krb_life_to_atime(int life)
-{
- static char atime[11+1+2+1+2+1+2+1];
- unsigned long when;
- int secs, mins, hours;
-
- if (life == TKTLIFENOEXPIRE && !krb_no_long_lifetimes)
- return("Forever");
- when = krb_life_to_time(0, life);
- secs = when%60;
- when /= 60;
- mins = when%60;
- when /= 60;
- hours = when%24;
- when /= 24;
- snprintf(atime, sizeof(atime), "%d+%02d:%02d:%02d", (int)when, hours, mins, secs);
- return(atime);
-}
-
-int
-krb_atime_to_life(char *atime)
-{
- unsigned long when = 0;
- char *cp;
- int colon = 0, plus = 0;
- int n = 0;
-
- if (strcasecmp(atime, "forever") == 0)
- return(TKTLIFENOEXPIRE);
-
- for (cp=atime; *cp; cp++) {
- switch(*cp) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- n = n*10 + *cp-'0';
- break;
- case '+':
- plus++;
- when += n;
- when *= 24;
- n = 0;
- break;
- case ':':
- colon++;
- when += n;
- when *= 60;
- n = 0;
- break;
- default:
- break;
- }
- }
- when += n;
- if (plus == 0 && colon == 0)
- return((unsigned char)when);
- while (colon < 2) {
- when *= 60;
- colon++;
- }
- return(krb_time_to_life(0,when));
-}
diff --git a/crypto/kerberosIV/lib/krb/logging.c b/crypto/kerberosIV/lib/krb/logging.c
deleted file mode 100644
index 15e5bde9707f..000000000000
--- a/crypto/kerberosIV/lib/krb/logging.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-#include <klog.h>
-
-RCSID("$Id: logging.c,v 1.14 1997/05/11 09:01:40 assar Exp $");
-
-struct krb_log_facility {
- char filename[MaxPathLen];
- FILE *file;
- krb_log_func_t func;
-};
-
-int
-krb_vlogger(struct krb_log_facility *f, const char *format, va_list args)
-{
- FILE *file = NULL;
- int ret;
-
- if (f->file != NULL)
- file = f->file;
- else if (f->filename && f->filename[0])
- file = fopen(f->filename, "a");
-
- ret = f->func(file, format, args);
-
- if (file != f->file)
- fclose(file);
- return ret;
-}
-
-int
-krb_logger(struct krb_log_facility *f, const char *format, ...)
-{
- va_list args;
- int ret;
- va_start(args, format);
- ret = krb_vlogger(f, format, args);
- va_end(args);
- return ret;
-}
-
-/*
- * If FILE * is given log to it, otherwise, log to filename. When
- * given a file name the file is opened and closed for each log
- * record.
- */
-int
-krb_openlog(struct krb_log_facility *f,
- char *filename,
- FILE *file,
- krb_log_func_t func)
-{
- strcpy(f->filename, filename);
- f->file = file;
- f->func = func;
- return KSUCCESS;
-}
-
-/* ------------------------------------------------------------
- Compatibility functions from warning.c
- ------------------------------------------------------------ */
-
-static int
-log_tty(FILE *f, const char *format, va_list args)
-{
- if (f != NULL && isatty(fileno(f)))
- vfprintf(f, format, args);
- return KSUCCESS;
-}
-
-/* stderr */
-static struct krb_log_facility std_log = { "/dev/tty", NULL, log_tty };
-
-static void
-init_std_log ()
-{
- static int done = 0;
-
- if (!done) {
- std_log.file = stderr;
- done = 1;
- }
-}
-
-/*
- *
- */
-void
-krb_set_warnfn (krb_warnfn_t newfunc)
-{
- init_std_log ();
- std_log.func = newfunc;
-}
-
-/*
- *
- */
-krb_warnfn_t
-krb_get_warnfn (void)
-{
- init_std_log ();
- return std_log.func;
-}
-
-/*
- * Log warnings to stderr if it's a tty.
- */
-void
-krb_warning (const char *format, ...)
-{
- va_list args;
-
- init_std_log ();
- va_start(args, format);
- krb_vlogger(&std_log, format, args);
- va_end(args);
-}
-
-/* ------------------------------------------------------------
- Compatibility functions from klog.c and log.c
- ------------------------------------------------------------ */
-
-/*
- * Used by kerberos and kadmind daemons and in libkrb (rd_req.c).
- *
- * By default they log to the kerberos server log-file (KRBLOG) to be
- * backwards compatible.
- */
-
-static int
-log_with_timestamp_and_nl(FILE *file, const char *format, va_list args)
-{
- time_t now;
- if(file == NULL)
- return KFAILURE;
- time(&now);
- fputs(krb_stime(&now), file);
- fputs(": ", file);
- vfprintf(file, format, args);
- fputs("\n", file);
- fflush(file);
- return KSUCCESS;
-}
-
-static struct krb_log_facility
-file_log = { KRBLOG, NULL, log_with_timestamp_and_nl };
-
-/*
- * kset_logfile() changes the name of the file to which
- * messages are logged. If kset_logfile() is not called,
- * the logfile defaults to KRBLOG, defined in "krb.h".
- */
-
-void
-kset_logfile(char *filename)
-{
- krb_openlog(&file_log, filename, NULL, log_with_timestamp_and_nl);
-}
-
-/*
- * krb_log() and klog() is used to add entries to the logfile.
- *
- * The log entry consists of a timestamp and the given arguments
- * printed according to the given "format" string.
- *
- * The log file is opened and closed for each log entry.
- *
- * If the given log type "type" is unknown, or if the log file
- * cannot be opened, no entry is made to the log file.
- *
- * CHANGE: the type is always ignored
- *
- * The return value of klog() is always a pointer to the formatted log
- * text string "logtxt".
- */
-
-/* Used in kerberos.c only. */
-char *
-klog(int type, const char *format, ...)
-{
- static char logtxt[1024];
-
- va_list ap;
-
- va_start(ap, format);
- vsnprintf(logtxt, sizeof(logtxt), format, ap);
- va_end(ap);
-
- krb_logger(&file_log, "%s", logtxt);
-
- return logtxt;
-}
-
-/* Used in kadmind and rd_req.c */
-void
-krb_log(const char *format, ...)
-{
- va_list args;
-
- va_start(args, format);
- krb_vlogger(&file_log, format, args);
- va_end(args);
-}
diff --git a/crypto/kerberosIV/lib/krb/lsb_addr_comp.c b/crypto/kerberosIV/lib/krb/lsb_addr_comp.c
deleted file mode 100644
index bc3c484dd613..000000000000
--- a/crypto/kerberosIV/lib/krb/lsb_addr_comp.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: lsb_addr_comp.c,v 1.9 1997/04/01 08:18:37 joda Exp $");
-
-#include "lsb_addr_comp.h"
-
-int
-krb_lsb_antinet_ulong_cmp(u_int32_t x, u_int32_t y)
-{
- int i;
- u_int32_t a = 0, b = 0;
- u_int8_t *p = (u_int8_t*) &x;
- u_int8_t *q = (u_int8_t*) &y;
-
- for(i = sizeof(u_int32_t) - 1; i >= 0; i--){
- a = (a << 8) | p[i];
- b = (b << 8) | q[i];
- }
- if(a > b)
- return 1;
- if(a < b)
- return -1;
- return 0;
-}
-
-int
-krb_lsb_antinet_ushort_cmp(u_int16_t x, u_int16_t y)
-{
- int i;
- u_int16_t a = 0, b = 0;
- u_int8_t *p = (u_int8_t*) &x;
- u_int8_t *q = (u_int8_t*) &y;
-
- for(i = sizeof(u_int16_t) - 1; i >= 0; i--){
- a = (a << 8) | p[i];
- b = (b << 8) | q[i];
- }
- if(a > b)
- return 1;
- if(a < b)
- return -1;
- return 0;
-}
-
-u_int32_t
-lsb_time(time_t t, struct sockaddr_in *src, struct sockaddr_in *dst)
-{
- /*
- * direction bit is the sign bit of the timestamp. Ok until
- * 2038??
- */
- /* For compatibility with broken old code, compares are done in VAX
- byte order (LSBFIRST) */
- if (krb_lsb_antinet_ulong_less(src->sin_addr.s_addr, /* src < recv */
- dst->sin_addr.s_addr) < 0)
- t = -t;
- else if (krb_lsb_antinet_ulong_less(src->sin_addr.s_addr,
- dst->sin_addr.s_addr)==0)
- if (krb_lsb_antinet_ushort_less(src->sin_port, dst->sin_port) < 0)
- t = -t;
- /*
- * all that for one tiny bit! Heaven help those that talk to
- * themselves.
- */
- t = t & 0xffffffff;
- return t;
-}
diff --git a/crypto/kerberosIV/lib/krb/lsb_addr_comp.h b/crypto/kerberosIV/lib/krb/lsb_addr_comp.h
deleted file mode 100644
index 21adf062c3eb..000000000000
--- a/crypto/kerberosIV/lib/krb/lsb_addr_comp.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * $Id: lsb_addr_comp.h,v 1.6 1996/10/05 00:18:02 joda Exp $
- *
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Comparison macros to emulate LSBFIRST comparison results of network
- * byte-order quantities
- */
-
-#ifndef LSB_ADDR_COMP_DEFS
-#define LSB_ADDR_COMP_DEFS
-
-/* Compare x and y in VAX byte order, result is -1, 0 or 1. */
-
-#define krb_lsb_antinet_ulong_less(x, y) (((x) == (y)) ? 0 : krb_lsb_antinet_ulong_cmp(x, y))
-
-#define krb_lsb_antinet_ushort_less(x, y) (((x) == (y)) ? 0 : krb_lsb_antinet_ushort_cmp(x, y))
-
-int krb_lsb_antinet_ulong_cmp(u_int32_t x, u_int32_t y);
-int krb_lsb_antinet_ushort_cmp(u_int16_t x, u_int16_t y);
-u_int32_t lsb_time(time_t t, struct sockaddr_in *src, struct sockaddr_in *dst);
-
-#endif /* LSB_ADDR_COMP_DEFS */
diff --git a/crypto/kerberosIV/lib/krb/mk_auth.c b/crypto/kerberosIV/lib/krb/mk_auth.c
deleted file mode 100644
index 7cfb36bb2a46..000000000000
--- a/crypto/kerberosIV/lib/krb/mk_auth.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: mk_auth.c,v 1.4 1997/04/01 08:18:35 joda Exp $");
-
-/*
- * Generate an authenticator for service.instance@realm.
- * instance is canonicalized by `krb_get_phost'
- * realm is set to the local realm if realm == NULL
- * The ticket acquired by `krb_mk_req' is returned in `ticket' and the
- * authenticator in `buf'.
- * Options control the behaviour (see krb_sendauth).
- */
-
-int
-krb_mk_auth(int32_t options,
- KTEXT ticket,
- char *service,
- char *instance,
- char *realm,
- u_int32_t checksum,
- char *version,
- KTEXT buf)
-{
- char realinst[INST_SZ];
- char realrealm[REALM_SZ];
- int ret;
- unsigned char *p;
-
- if (options & KOPT_DONT_CANON)
- strncpy(realinst, instance, sizeof(realinst));
- else
- strncpy(realinst, krb_get_phost (instance), sizeof(realinst));
-
- if (realm == NULL) {
- ret = krb_get_lrealm (realrealm, 1);
- if (ret != KSUCCESS)
- return ret;
- realm = realrealm;
- }
-
- if(!(options & KOPT_DONT_MK_REQ)) {
- ret = krb_mk_req (ticket, service, realinst, realm, checksum);
- if (ret != KSUCCESS)
- return ret;
- }
-
- p = buf->dat;
-
- memcpy (p, KRB_SENDAUTH_VERS, KRB_SENDAUTH_VLEN);
- p += KRB_SENDAUTH_VLEN;
- memcpy (p, version, KRB_SENDAUTH_VLEN);
- p += KRB_SENDAUTH_VLEN;
- p += krb_put_int(ticket->length, p, 4);
- memcpy(p, ticket->dat, ticket->length);
- p += ticket->length;
- buf->length = p - buf->dat;
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/mk_err.c b/crypto/kerberosIV/lib/krb/mk_err.c
deleted file mode 100644
index 710587a5e075..000000000000
--- a/crypto/kerberosIV/lib/krb/mk_err.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: mk_err.c,v 1.6 1997/03/23 03:53:14 joda Exp $");
-
-/*
- * This routine creates a general purpose error reply message. It
- * doesn't use KTEXT because application protocol may have long
- * messages, and may want this part of buffer contiguous to other
- * stuff.
- *
- * The error reply is built in "p", using the error code "e" and
- * error text "e_string" given. The length of the error reply is
- * returned.
- *
- * The error reply is in the following format:
- *
- * unsigned char KRB_PROT_VERSION protocol version no.
- * unsigned char AUTH_MSG_APPL_ERR message type
- * (least significant
- * bit of above) HOST_BYTE_ORDER local byte order
- * 4 bytes e given error code
- * string e_string given error text
- */
-
-int32_t
-krb_mk_err(u_char *p, int32_t e, char *e_string)
-{
- unsigned char *start = p;
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_APPL_ERR, p, 1);
-
- p += krb_put_int(e, p, 4);
- p += krb_put_string(e_string, p);
- return p - start;
-}
diff --git a/crypto/kerberosIV/lib/krb/mk_priv.c b/crypto/kerberosIV/lib/krb/mk_priv.c
deleted file mode 100644
index b6a9cc4a24b6..000000000000
--- a/crypto/kerberosIV/lib/krb/mk_priv.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: mk_priv.c,v 1.18 1997/04/01 08:18:37 joda Exp $");
-
-/* application include files */
-#include "lsb_addr_comp.h"
-
-/*
- * krb_mk_priv() constructs an AUTH_MSG_PRIVATE message. It takes
- * some user data "in" of "length" bytes and creates a packet in "out"
- * consisting of the user data, a timestamp, and the sender's network
- * address.
- * The packet is encrypted by pcbc_encrypt(), using the given
- * "key" and "schedule".
- * The length of the resulting packet "out" is
- * returned.
- *
- * It is similar to krb_mk_safe() except for the additional key
- * schedule argument "schedule" and the fact that the data is encrypted
- * rather than appended with a checksum. The protocol version is
- * KRB_PROT_VERSION, defined in "krb.h".
- *
- * The "out" packet consists of:
- *
- * Size Variable Field
- * ---- -------- -----
- *
- * 1 byte KRB_PROT_VERSION protocol version number
- * 1 byte AUTH_MSG_PRIVATE | message type plus local
- * HOST_BYTE_ORDER byte order in low bit
- *
- * 4 bytes c_length length of data
- * we encrypt from here with pcbc_encrypt
- *
- * 4 bytes length length of user data
- * length in user data
- * 1 byte msg_time_5ms timestamp milliseconds
- * 4 bytes sender->sin.addr.s_addr sender's IP address
- *
- * 4 bytes msg_time_sec or timestamp seconds with
- * -msg_time_sec direction in sign bit
- *
- * 0<=n<=7 bytes pad to 8 byte multiple zeroes
- */
-
-int32_t
-krb_mk_priv(void *in, void *out, u_int32_t length,
- struct des_ks_struct *schedule, des_cblock *key,
- struct sockaddr_in *sender, struct sockaddr_in *receiver)
-{
- unsigned char *p = (unsigned char*)out;
- unsigned char *cipher;
-
- struct timeval tv;
- u_int32_t src_addr;
- u_int32_t len;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_PRIVATE, p, 1);
-
- len = 4 + length + 1 + 4 + 4;
- len = (len + 7) & ~7;
- p += krb_put_int(len, p, 4);
-
- cipher = p;
-
- p += krb_put_int(length, p, 4);
-
- memcpy(p, in, length);
- p += length;
-
- gettimeofday(&tv, NULL);
-
- *p++ =tv.tv_usec / 5000;
-
- src_addr = sender->sin_addr.s_addr;
- p += krb_put_address(src_addr, p);
-
- p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4);
-
- memset(p, 0, 7);
-
- des_pcbc_encrypt((des_cblock *)cipher, (des_cblock *)cipher,
- len, schedule, key, DES_ENCRYPT);
-
- return (cipher - (unsigned char*)out) + len;
-}
diff --git a/crypto/kerberosIV/lib/krb/mk_req.c b/crypto/kerberosIV/lib/krb/mk_req.c
deleted file mode 100644
index 313ea0408f17..000000000000
--- a/crypto/kerberosIV/lib/krb/mk_req.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: mk_req.c,v 1.17 1997/05/30 17:42:38 bg Exp $");
-
-static int lifetime = 255; /* But no longer than TGT says. */
-
-
-static void
-build_request(KTEXT req, char *name, char *inst, char *realm,
- u_int32_t checksum)
-{
- struct timeval tv;
- unsigned char *p = req->dat;
-
- p += krb_put_nir(name, inst, realm, p);
-
- p += krb_put_int(checksum, p, 4);
-
-
- /* Fill in the times on the request id */
- gettimeofday(&tv, NULL);
-
- *p++ = tv.tv_usec / 5000; /* 5ms */
-
- p += krb_put_int(tv.tv_sec, p, 4);
-
- /* Fill to a multiple of 8 bytes for DES */
- req->length = ((p - req->dat + 7)/8) * 8;
-}
-
-
-/*
- * krb_mk_req takes a text structure in which an authenticator is to
- * be built, the name of a service, an instance, a realm,
- * and a checksum. It then retrieves a ticket for
- * the desired service and creates an authenticator in the text
- * structure passed as the first argument. krb_mk_req returns
- * KSUCCESS on success and a Kerberos error code on failure.
- *
- * The peer procedure on the other end is krb_rd_req. When making
- * any changes to this routine it is important to make corresponding
- * changes to krb_rd_req.
- *
- * The authenticator consists of the following:
- *
- * authent->dat
- *
- * unsigned char KRB_PROT_VERSION protocol version no.
- * unsigned char AUTH_MSG_APPL_REQUEST message type
- * (least significant
- * bit of above) HOST_BYTE_ORDER local byte ordering
- * unsigned char kvno from ticket server's key version
- * string realm server's realm
- * unsigned char tl ticket length
- * unsigned char idl request id length
- * text ticket->dat ticket for server
- * text req_id->dat request id
- *
- * The ticket information is retrieved from the ticket cache or
- * fetched from Kerberos. The request id (called the "authenticator"
- * in the papers on Kerberos) contains the following:
- *
- * req_id->dat
- *
- * string cr.pname {name, instance, and
- * string cr.pinst realm of principal
- * string myrealm making this request}
- * 4 bytes checksum checksum argument given
- * unsigned char tv_local.tf_usec time (milliseconds)
- * 4 bytes tv_local.tv_sec time (seconds)
- *
- * req_id->length = 3 strings + 3 terminating nulls + 5 bytes for time,
- * all rounded up to multiple of 8.
- */
-
-int
-krb_mk_req(KTEXT authent, char *service, char *instance, char *realm,
- int32_t checksum)
-{
- KTEXT_ST req_st;
- KTEXT req_id = &req_st;
-
- CREDENTIALS cr; /* Credentials used by retr */
- KTEXT ticket = &(cr.ticket_st); /* Pointer to tkt_st */
- int retval; /* Returned by krb_get_cred */
-
- char myrealm[REALM_SZ];
-
- unsigned char *p = authent->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
-
- p += krb_put_int(AUTH_MSG_APPL_REQUEST, p, 1);
-
- /* Get the ticket and move it into the authenticator */
- if (krb_ap_req_debug)
- krb_warning("Realm: %s\n", realm);
-
- retval = krb_get_cred(service,instance,realm,&cr);
-
- if (retval == RET_NOTKT) {
- retval = get_ad_tkt(service, instance, realm, lifetime);
- if (retval == KSUCCESS)
- retval = krb_get_cred(service, instance, realm, &cr);
- }
-
- if (retval != KSUCCESS)
- return retval;
-
-
- /*
- * With multi realm ticket files either find a matching TGT or
- * else use the first TGT for inter-realm authentication.
- *
- * In myrealm hold the realm of the principal "owning" the
- * corresponding ticket-granting-ticket.
- */
-
- retval = krb_get_cred(KRB_TICKET_GRANTING_TICKET, realm, realm, 0);
- if (retval == KSUCCESS)
- strncpy(myrealm, realm, REALM_SZ);
- else
- retval = krb_get_tf_realm(TKT_FILE, myrealm);
-
- if (retval != KSUCCESS)
- return retval;
-
- if (krb_ap_req_debug)
- krb_warning("serv=%s.%s@%s princ=%s.%s@%s\n", service, instance, realm,
- cr.pname, cr.pinst, myrealm);
-
- p += krb_put_int(cr.kvno, p, 1);
-
- p += krb_put_string(realm, p);
-
- p += krb_put_int(ticket->length, p, 1);
-
- build_request(req_id, cr.pname, cr.pinst, myrealm, checksum);
-
- encrypt_ktext(req_id, &cr.session, DES_ENCRYPT);
-
- p += krb_put_int(req_id->length, p, 1);
-
- memcpy(p, ticket->dat, ticket->length);
-
- p += ticket->length;
-
- memcpy(p, req_id->dat, req_id->length);
-
- p += req_id->length;
-
- authent->length = p - authent->dat;
-
- memset(&cr, 0, sizeof(cr));
- memset(&req_st, 0, sizeof(req_st));
-
- if (krb_ap_req_debug)
- krb_warning("Authent->length = %d\n", authent->length);
-
- return KSUCCESS;
-}
-
-/*
- * krb_set_lifetime sets the default lifetime for additional tickets
- * obtained via krb_mk_req().
- *
- * It returns the previous value of the default lifetime.
- */
-
-int
-krb_set_lifetime(int newval)
-{
- int olife = lifetime;
-
- lifetime = newval;
- return(olife);
-}
diff --git a/crypto/kerberosIV/lib/krb/mk_safe.c b/crypto/kerberosIV/lib/krb/mk_safe.c
deleted file mode 100644
index df5ca21ed0a7..000000000000
--- a/crypto/kerberosIV/lib/krb/mk_safe.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: mk_safe.c,v 1.21 1997/04/19 23:18:03 joda Exp $");
-
-/* application include files */
-#include "lsb_addr_comp.h"
-
-
-/* from rd_safe.c */
-extern int dqc_type;
-void fixup_quad_cksum(void*, size_t, des_cblock*, void*, void*, int);
-
-/*
- * krb_mk_safe() constructs an AUTH_MSG_SAFE message. It takes some
- * user data "in" of "length" bytes and creates a packet in "out"
- * consisting of the user data, a timestamp, and the sender's network
- * address, followed by a checksum computed on the above, using the
- * given "key". The length of the resulting packet is returned.
- *
- * The "out" packet consists of:
- *
- * Size Variable Field
- * ---- -------- -----
- *
- * 1 byte KRB_PROT_VERSION protocol version number
- * 1 byte AUTH_MSG_SAFE | message type plus local
- * HOST_BYTE_ORDER byte order in low bit
- *
- * ===================== begin checksum ================================
- *
- * 4 bytes length length of user data
- * length in user data
- * 1 byte msg_time_5ms timestamp milliseconds
- * 4 bytes sender->sin.addr.s_addr sender's IP address
- *
- * 4 bytes msg_time_sec or timestamp seconds with
- * -msg_time_sec direction in sign bit
- *
- * ======================= end checksum ================================
- *
- * 16 bytes big_cksum quadratic checksum of
- * above using "key"
- */
-
-int32_t
-krb_mk_safe(void *in, void *out, u_int32_t length, des_cblock *key,
- struct sockaddr_in *sender, struct sockaddr_in *receiver)
-{
- unsigned char * p = (unsigned char*)out;
- struct timeval tv;
- unsigned char *start;
- u_int32_t src_addr;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_SAFE, p, 1);
-
- start = p;
-
- p += krb_put_int(length, p, 4);
-
- memcpy(p, in, length);
- p += length;
-
- gettimeofday(&tv, NULL);
-
- *p++ = tv.tv_usec/5000; /* 5ms */
-
- src_addr = sender->sin_addr.s_addr;
- p += krb_put_address(src_addr, p);
-
- p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4);
-
- {
- /* We are faking big endian mode, so we need to fix the
- * checksum (that is byte order dependent). We always send a
- * checksum of the new type, unless we know that we are
- * talking to an old client (this requires a call to
- * krb_rd_safe first).
- */
- unsigned char new_checksum[16];
- unsigned char old_checksum[16];
- fixup_quad_cksum(start, p - start, key, new_checksum, old_checksum, 0);
-
- if((dqc_type == DES_QUAD_GUESS && DES_QUAD_DEFAULT == DES_QUAD_OLD) ||
- dqc_type == DES_QUAD_OLD)
- memcpy(p, old_checksum, 16);
- else
- memcpy(p, new_checksum, 16);
- }
- p += 16;
-
- return p - (unsigned char*)out;
-}
diff --git a/crypto/kerberosIV/lib/krb/month_sname.c b/crypto/kerberosIV/lib/krb/month_sname.c
deleted file mode 100644
index aaceee5f094b..000000000000
--- a/crypto/kerberosIV/lib/krb/month_sname.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: month_sname.c,v 1.5 1997/03/23 03:53:14 joda Exp $");
-
-/*
- * Given an integer 1-12, month_sname() returns a string
- * containing the first three letters of the corresponding
- * month. Returns 0 if the argument is out of range.
- */
-
-const char *month_sname(int n)
-{
- static const char *name[] = {
- "Jan","Feb","Mar","Apr","May","Jun",
- "Jul","Aug","Sep","Oct","Nov","Dec"
- };
- return((n < 1 || n > 12) ? 0 : name [n-1]);
-}
diff --git a/crypto/kerberosIV/lib/krb/name2name.c b/crypto/kerberosIV/lib/krb/name2name.c
deleted file mode 100644
index fa95b8914fb0..000000000000
--- a/crypto/kerberosIV/lib/krb/name2name.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: name2name.c,v 1.15 1997/04/30 04:30:36 assar Exp $");
-
-/* convert host to a more fully qualified domain name, returns 0 if
- * phost is the same as host, 1 otherwise. phost should be
- * phost_size bytes long.
- */
-
-int
-krb_name_to_name(const char *host, char *phost, size_t phost_size)
-{
- struct hostent *hp;
- struct in_addr adr;
- const char *tmp;
-
- adr.s_addr = inet_addr(host);
- hp = gethostbyname(host);
- if (hp == NULL && adr.s_addr != INADDR_NONE)
- hp = gethostbyaddr((char *)&adr, sizeof(adr), AF_INET);
- if (hp == NULL)
- tmp = host;
- else
- tmp = hp->h_name;
- strncpy (phost, tmp, phost_size);
- phost[phost_size - 1] = '\0';
-
- if (strcmp(phost, host) == 0)
- return 0;
- else
- return 1;
-}
-
-/* lowercase and truncate */
-
-void
-k_ricercar(char *name)
-{
- char *p = name;
- while(*p && *p != '.'){
- if(isupper(*p))
- *p = tolower(*p);
- p++;
- }
- if(*p == '.')
- *p = 0;
-}
-
-/*
- * This routine takes an alias for a host name and returns the first
- * field, in lower case, of its domain name.
- *
- * Example: "fOo.BAR.com" -> "foo"
- */
-
-char *
-krb_get_phost(const char *alias)
-{
- static char phost[MaxHostNameLen+1];
-
- krb_name_to_name(alias, phost, sizeof(phost));
- k_ricercar(phost);
- return phost;
-}
diff --git a/crypto/kerberosIV/lib/krb/netread.c b/crypto/kerberosIV/lib/krb/netread.c
deleted file mode 100644
index cbc1bd12ce28..000000000000
--- a/crypto/kerberosIV/lib/krb/netread.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: netread.c,v 1.6 1997/03/23 03:53:15 joda Exp $");
-
-/*
- * krb_net_read() reads from the file descriptor "fd" to the buffer
- * "buf", until either 1) "len" bytes have been read or 2) cannot
- * read anymore from "fd". It returns the number of bytes read
- * or a read() error. (The calling interface is identical to
- * read(2).)
- *
- * XXX must not use non-blocking I/O
- */
-
-int
-krb_net_read (int fd, void *v, size_t len)
-{
- int cc, len2 = 0;
- char *buf = v;
-
- do {
- cc = read(fd, buf, len);
- if (cc < 0)
- return(cc); /* errno is already set */
- else if (cc == 0) {
- return(len2);
- } else {
- buf += cc;
- len2 += cc;
- len -= cc;
- }
- } while (len > 0);
- return(len2);
-}
diff --git a/crypto/kerberosIV/lib/krb/netwrite.c b/crypto/kerberosIV/lib/krb/netwrite.c
deleted file mode 100644
index 0703d91b321f..000000000000
--- a/crypto/kerberosIV/lib/krb/netwrite.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: netwrite.c,v 1.7 1997/03/23 03:53:15 joda Exp $");
-
-/*
- * krb_net_write() writes "len" bytes from "buf" to the file
- * descriptor "fd". It returns the number of bytes written or
- * a write() error. (The calling interface is identical to
- * write(2).)
- *
- * XXX must not use non-blocking I/O
- */
-
-int
-krb_net_write(int fd, const void *v, size_t len)
-{
- int cc;
- int wrlen = len;
- const char *buf = (const char*)v;
-
- do {
- cc = write(fd, buf, wrlen);
- if (cc < 0)
- return(cc);
- else {
- buf += cc;
- wrlen -= cc;
- }
- } while (wrlen > 0);
- return(len);
-}
diff --git a/crypto/kerberosIV/lib/krb/one.c b/crypto/kerberosIV/lib/krb/one.c
deleted file mode 100644
index d43b2840e08c..000000000000
--- a/crypto/kerberosIV/lib/krb/one.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
- WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- distribute this software and its documentation for any purpose and
- without fee is hereby granted, provided that the above copyright
- notice appear in all copies and that both that copyright notice and
- this permission notice appear in supporting documentation, and that
- the name of M.I.T. not be used in advertising or publicity pertaining
- to distribution of the software without specific, written prior
- permission. M.I.T. makes no representations about the suitability of
- this software for any purpose. It is provided "as is" without express
- or implied warranty.
-
- */
-
-/*
- * definition of variable set to 1.
- * used in krb_conf.h to determine host byte order.
- */
-
-int krbONE = 1;
diff --git a/crypto/kerberosIV/lib/krb/parse_name.c b/crypto/kerberosIV/lib/krb/parse_name.c
deleted file mode 100644
index 1184330bd3c3..000000000000
--- a/crypto/kerberosIV/lib/krb/parse_name.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: parse_name.c,v 1.4 1997/04/01 08:18:39 joda Exp $");
-
-int
-krb_parse_name(const char *fullname, krb_principal *principal)
-{
- const char *p;
- char *ns, *np;
- enum {n, i, r} pos = n;
- int quote = 0;
- ns = np = principal->name;
-
- principal->name[0] = 0;
- principal->instance[0] = 0;
- principal->realm[0] = 0;
-
- for(p = fullname; *p; p++){
- if(np - ns == ANAME_SZ - 1) /* XXX they have the same size */
- return KNAME_FMT;
- if(quote){
- *np++ = *p;
- quote = 0;
- continue;
- }
- if(*p == '\\')
- quote = 1;
- else if(*p == '.' && pos == n){
- *np = 0;
- ns = np = principal->instance;
- pos = i;
- }else if(*p == '@' && (pos == n || pos == i)){
- *np = 0;
- ns = np = principal->realm;
- pos = r;
- }else
- *np++ = *p;
- }
- *np = 0;
- if(quote || principal->name[0] == 0)
- return KNAME_FMT;
- return KSUCCESS;
-}
-
-int
-kname_parse(char *np, char *ip, char *rp, char *fullname)
-{
- krb_principal p;
- int ret;
- if((ret = krb_parse_name(fullname, &p)) == 0){
- strcpy(np, p.name);
- strcpy(ip, p.instance);
- if(p.realm[0])
- strcpy(rp, p.realm);
- }
- return ret;
-}
-/*
- * k_isname() returns 1 if the given name is a syntactically legitimate
- * Kerberos name; returns 0 if it's not.
- */
-
-int
-k_isname(char *s)
-{
- char c;
- int backslash = 0;
-
- if (!*s)
- return 0;
- if (strlen(s) > ANAME_SZ - 1)
- return 0;
- while ((c = *s++)) {
- if (backslash) {
- backslash = 0;
- continue;
- }
- switch(c) {
- case '\\':
- backslash = 1;
- break;
- case '.':
- return 0;
- /* break; */
- case '@':
- return 0;
- /* break; */
- }
- }
- return 1;
-}
-
-
-/*
- * k_isinst() returns 1 if the given name is a syntactically legitimate
- * Kerberos instance; returns 0 if it's not.
- */
-
-int
-k_isinst(char *s)
-{
- char c;
- int backslash = 0;
-
- if (strlen(s) > INST_SZ - 1)
- return 0;
- while ((c = *s++)) {
- if (backslash) {
- backslash = 0;
- continue;
- }
- switch(c) {
- case '\\':
- backslash = 1;
- break;
- case '.':
-#if INSTANCE_DOTS_OK
- break;
-#else /* INSTANCE_DOTS_OK */
- return 0;
-#endif /* INSTANCE_DOTS_OK */
- /* break; */
- case '@':
- return 0;
- /* break; */
- }
- }
- return 1;
-}
-
-/*
- * k_isrealm() returns 1 if the given name is a syntactically legitimate
- * Kerberos realm; returns 0 if it's not.
- */
-
-int
-k_isrealm(char *s)
-{
- char c;
- int backslash = 0;
-
- if (!*s)
- return 0;
- if (strlen(s) > REALM_SZ - 1)
- return 0;
- while ((c = *s++)) {
- if (backslash) {
- backslash = 0;
- continue;
- }
- switch(c) {
- case '\\':
- backslash = 1;
- break;
- case '@':
- return 0;
- /* break; */
- }
- }
- return 1;
-}
diff --git a/crypto/kerberosIV/lib/krb/prot.h b/crypto/kerberosIV/lib/krb/prot.h
deleted file mode 100644
index e4825e1df911..000000000000
--- a/crypto/kerberosIV/lib/krb/prot.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * $Id: prot.h,v 1.7 1997/03/23 03:52:27 joda Exp $
- *
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Include file with authentication protocol information.
- */
-
-#ifndef PROT_DEFS
-#define PROT_DEFS
-
-#define KRB_SERVICE "kerberos-iv"
-#define KRB_PORT 750 /* PC's don't have
- * /etc/services */
-#define KRB_PROT_VERSION 4
-#define MAX_PKT_LEN 1000
-#define MAX_TXT_LEN 1000
-
-/* Macro's to obtain various fields from a packet */
-
-#define pkt_version(packet) (unsigned int) *(packet->dat)
-#define pkt_msg_type(packet) (unsigned int) *(packet->dat+1)
-#define pkt_a_name(packet) (packet->dat+2)
-#define pkt_a_inst(packet) \
- (packet->dat+3+strlen((char *)pkt_a_name(packet)))
-#define pkt_a_realm(packet) \
- (pkt_a_inst(packet)+1+strlen((char *)pkt_a_inst(packet)))
-
-/* Macro to obtain realm from application request */
-#define apreq_realm(auth) (auth->dat + 3)
-
-#define pkt_time_ws(packet) (char *) \
- (packet->dat+5+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-
-#define pkt_no_req(packet) (unsigned short) \
- *(packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-#define pkt_x_date(packet) (char *) \
- (packet->dat+10+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-#define pkt_err_code(packet) ( (char *) \
- (packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet))))
-#define pkt_err_text(packet) \
- (packet->dat+13+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-
-/* Routines to create and read packets may be found in prot.c */
-
-KTEXT create_auth_reply(char *pname, char *pinst, char *prealm,
- int32_t time_ws, int n, u_int32_t x_date,
- int kvno, KTEXT cipher);
-#ifdef DEBUG
-KTEXT krb_create_death_packet(char *a_name);
-#endif
-
-/* Message types , always leave lsb for byte order */
-
-#define AUTH_MSG_KDC_REQUEST 1<<1
-#define AUTH_MSG_KDC_REPLY 2<<1
-#define AUTH_MSG_APPL_REQUEST 3<<1
-#define AUTH_MSG_APPL_REQUEST_MUTUAL 4<<1
-#define AUTH_MSG_ERR_REPLY 5<<1
-#define AUTH_MSG_PRIVATE 6<<1
-#define AUTH_MSG_SAFE 7<<1
-#define AUTH_MSG_APPL_ERR 8<<1
-#define AUTH_MSG_KDC_FORWARD 9<<1
-#define AUTH_MSG_KDC_RENEW 10<<1
-#define AUTH_MSG_DIE 63<<1
-
-/* values for kerb error codes */
-
-#define KERB_ERR_OK 0
-#define KERB_ERR_NAME_EXP 1
-#define KERB_ERR_SERVICE_EXP 2
-#define KERB_ERR_AUTH_EXP 3
-#define KERB_ERR_PKT_VER 4
-#define KERB_ERR_NAME_MAST_KEY_VER 5
-#define KERB_ERR_SERV_MAST_KEY_VER 6
-#define KERB_ERR_BYTE_ORDER 7
-#define KERB_ERR_PRINCIPAL_UNKNOWN 8
-#define KERB_ERR_PRINCIPAL_NOT_UNIQUE 9
-#define KERB_ERR_NULL_KEY 10
-#define KERB_ERR_TIMEOUT 11
-
-/* sendauth - recvauth */
-
-/*
- * If the protocol changes, you will need to change the version string
- * be sure to support old versions of krb_sendauth!
- */
-
-#define KRB_SENDAUTH_VERS "AUTHV0.1" /* MUST be KRB_SENDAUTH_VLEN chars */
-
-#endif /* PROT_DEFS */
diff --git a/crypto/kerberosIV/lib/krb/rd_err.c b/crypto/kerberosIV/lib/krb/rd_err.c
deleted file mode 100644
index 3382eabddf89..000000000000
--- a/crypto/kerberosIV/lib/krb/rd_err.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: rd_err.c,v 1.8 1997/04/01 08:18:40 joda Exp $");
-
-/*
- * Given an AUTH_MSG_APPL_ERR message, "in" and its length "in_length",
- * return the error code from the message in "code" and the text in
- * "m_data" as follows:
- *
- * m_data->app_data points to the error text
- * m_data->app_length points to the length of the error text
- *
- * If all goes well, return RD_AP_OK. If the version number
- * is wrong, return RD_AP_VERSION, and if it's not an AUTH_MSG_APPL_ERR
- * type message, return RD_AP_MSG_TYPE.
- *
- * The AUTH_MSG_APPL_ERR message format can be found in mk_err.c
- */
-
-int
-krb_rd_err(u_char *in, u_int32_t in_length, int32_t *code, MSG_DAT *m_data)
-{
- unsigned char *p = (unsigned char*)in;
-
- unsigned char pvno, type;
- int little_endian;
-
- pvno = *p++;
- if(pvno != KRB_PROT_VERSION)
- return RD_AP_VERSION;
-
- type = *p++;
- little_endian = type & 1;
- type &= ~1;
-
- if(type != AUTH_MSG_APPL_ERR)
- return RD_AP_MSG_TYPE;
-
- p += krb_get_int(p, (u_int32_t *)&code, 4, little_endian);
-
- m_data->app_data = p;
- m_data->app_length = in_length; /* XXX is this correct? */
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/rd_priv.c b/crypto/kerberosIV/lib/krb/rd_priv.c
deleted file mode 100644
index 58ecd9f7e38e..000000000000
--- a/crypto/kerberosIV/lib/krb/rd_priv.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: rd_priv.c,v 1.24 1997/05/14 17:53:29 joda Exp $");
-
-/* application include files */
-#include "lsb_addr_comp.h"
-
-/*
- * krb_rd_priv() decrypts and checks the integrity of an
- * AUTH_MSG_PRIVATE message. Given the message received, "in",
- * the length of that message, "in_length", the key "schedule"
- * and "key", and the network addresses of the
- * "sender" and "receiver" of the message, krb_rd_safe() returns
- * RD_AP_OK if the message is okay, otherwise some error code.
- *
- * The message data retrieved from "in" are returned in the structure
- * "m_data". The pointer to the application data
- * (m_data->app_data) refers back to the appropriate place in "in".
- *
- * See the file "mk_priv.c" for the format of the AUTH_MSG_PRIVATE
- * message. The structure containing the extracted message
- * information, MSG_DAT, is defined in "krb.h".
- */
-
-int32_t
-krb_rd_priv(void *in, u_int32_t in_length,
- struct des_ks_struct *schedule, des_cblock *key,
- struct sockaddr_in *sender, struct sockaddr_in *receiver,
- MSG_DAT *m_data)
-{
- unsigned char *p = (unsigned char*)in;
- int little_endian;
- u_int32_t clen;
- struct timeval tv;
- u_int32_t src_addr;
- int delta_t;
-
- unsigned char pvno, type;
-
- pvno = *p++;
- if(pvno != KRB_PROT_VERSION)
- return RD_AP_VERSION;
-
- type = *p++;
- little_endian = type & 1;
- type &= ~1;
-
- p += krb_get_int(p, &clen, 4, little_endian);
-
- if(clen + 2 > in_length)
- return RD_AP_MODIFIED;
-
- des_pcbc_encrypt((des_cblock*)p, (des_cblock*)p, clen,
- schedule, key, DES_DECRYPT);
-
- p += krb_get_int(p, &m_data->app_length, 4, little_endian);
- if(m_data->app_length + 17 > in_length)
- return RD_AP_MODIFIED;
-
- m_data->app_data = p;
- p += m_data->app_length;
-
- m_data->time_5ms = *p++;
-
- p += krb_get_address(p, &src_addr);
-
- if (!krb_equiv(src_addr, sender->sin_addr.s_addr))
- return RD_AP_BADD;
-
- p += krb_get_int(p, (u_int32_t *)&m_data->time_sec, 4, little_endian);
-
- m_data->time_sec = lsb_time(m_data->time_sec, sender, receiver);
-
- gettimeofday(&tv, NULL);
-
- /* check the time integrity of the msg */
- delta_t = abs((int)((long) tv.tv_sec - m_data->time_sec));
- if (delta_t > CLOCK_SKEW)
- return RD_AP_TIME;
- if (krb_debug)
- krb_warning("\ndelta_t = %d", (int) delta_t);
-
- /*
- * caller must check timestamps for proper order and
- * replays, since server might have multiple clients
- * each with its own timestamps and we don't assume
- * tightly synchronized clocks.
- */
-
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/rd_req.c b/crypto/kerberosIV/lib/krb/rd_req.c
deleted file mode 100644
index 1a3e848137b0..000000000000
--- a/crypto/kerberosIV/lib/krb/rd_req.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: rd_req.c,v 1.24 1997/05/11 11:05:28 assar Exp $");
-
-static struct timeval t_local = { 0, 0 };
-
-/*
- * Keep the following information around for subsequent calls
- * to this routine by the same server using the same key.
- */
-
-static des_key_schedule serv_key; /* Key sched to decrypt ticket */
-static des_cblock ky; /* Initialization vector */
-static int st_kvno; /* version number for this key */
-static char st_rlm[REALM_SZ]; /* server's realm */
-static char st_nam[ANAME_SZ]; /* service name */
-static char st_inst[INST_SZ]; /* server's instance */
-
-/*
- * This file contains two functions. krb_set_key() takes a DES
- * key or password string and returns a DES key (either the original
- * key, or the password converted into a DES key) and a key schedule
- * for it.
- *
- * krb_rd_req() reads an authentication request and returns information
- * about the identity of the requestor, or an indication that the
- * identity information was not authentic.
- */
-
-/*
- * krb_set_key() takes as its first argument either a DES key or a
- * password string. The "cvt" argument indicates how the first
- * argument "key" is to be interpreted: if "cvt" is null, "key" is
- * taken to be a DES key; if "cvt" is non-null, "key" is taken to
- * be a password string, and is converted into a DES key using
- * string_to_key(). In either case, the resulting key is returned
- * in the external static variable "ky". A key schedule is
- * generated for "ky" and returned in the external static variable
- * "serv_key".
- *
- * This routine returns the return value of des_key_sched.
- *
- * krb_set_key() needs to be in the same .o file as krb_rd_req() so that
- * the key set by krb_set_key() is available in private storage for
- * krb_rd_req().
- */
-
-int
-krb_set_key(void *key, int cvt)
-{
-#ifdef NOENCRYPTION
- memset(ky, 0, sizeof(ky));
- return KSUCCESS;
-#else /* Encrypt */
- if (cvt)
- des_string_to_key((char*)key, &ky);
- else
- memcpy((char*)ky, key, 8);
- return(des_key_sched(&ky, serv_key));
-#endif /* NOENCRYPTION */
-}
-
-
-/*
- * krb_rd_req() takes an AUTH_MSG_APPL_REQUEST or
- * AUTH_MSG_APPL_REQUEST_MUTUAL message created by krb_mk_req(),
- * checks its integrity and returns a judgement as to the requestor's
- * identity.
- *
- * The "authent" argument is a pointer to the received message.
- * The "service" and "instance" arguments name the receiving server,
- * and are used to get the service's ticket to decrypt the ticket
- * in the message, and to compare against the server name inside the
- * ticket. "from_addr" is the network address of the host from which
- * the message was received; this is checked against the network
- * address in the ticket. If "from_addr" is zero, the check is not
- * performed. "ad" is an AUTH_DAT structure which is
- * filled in with information about the sender's identity according
- * to the authenticator and ticket sent in the message. Finally,
- * "fn" contains the name of the file containing the server's key.
- * (If "fn" is NULL, the server's key is assumed to have been set
- * by krb_set_key(). If "fn" is the null string ("") the default
- * file KEYFILE, defined in "krb.h", is used.)
- *
- * krb_rd_req() returns RD_AP_OK if the authentication information
- * was genuine, or one of the following error codes (defined in
- * "krb.h"):
- *
- * RD_AP_VERSION - wrong protocol version number
- * RD_AP_MSG_TYPE - wrong message type
- * RD_AP_UNDEC - couldn't decipher the message
- * RD_AP_INCON - inconsistencies found
- * RD_AP_BADD - wrong network address
- * RD_AP_TIME - client time (in authenticator)
- * too far off server time
- * RD_AP_NYV - Kerberos time (in ticket) too
- * far off server time
- * RD_AP_EXP - ticket expired
- *
- * For the message format, see krb_mk_req().
- *
- * Mutual authentication is not implemented.
- */
-
-int
-krb_rd_req(KTEXT authent, /* The received message */
- char *service, /* Service name */
- char *instance, /* Service instance */
- int32_t from_addr, /* Net address of originating host */
- AUTH_DAT *ad, /* Structure to be filled in */
- char *fn) /* Filename to get keys from */
-{
- static KTEXT_ST ticket; /* Temp storage for ticket */
- static KTEXT tkt = &ticket;
- static KTEXT_ST req_id_st; /* Temp storage for authenticator */
- KTEXT req_id = &req_id_st;
-
- char realm[REALM_SZ]; /* Realm of issuing kerberos */
-
- unsigned char skey[KKEY_SZ]; /* Session key from ticket */
- char sname[SNAME_SZ]; /* Service name from ticket */
- char iname[INST_SZ]; /* Instance name from ticket */
- char r_aname[ANAME_SZ]; /* Client name from authenticator */
- char r_inst[INST_SZ]; /* Client instance from authenticator */
- char r_realm[REALM_SZ]; /* Client realm from authenticator */
- u_int32_t r_time_sec; /* Coarse time from authenticator */
- unsigned long delta_t; /* Time in authenticator - local time */
- long tkt_age; /* Age of ticket */
- static unsigned char s_kvno;/* Version number of the server's key
- * Kerberos used to encrypt ticket */
-
- struct timeval tv;
- int status;
-
- int pvno;
- int type;
- int little_endian;
-
- unsigned char *p;
-
- if (authent->length <= 0)
- return(RD_AP_MODIFIED);
-
- p = authent->dat;
-
- /* get msg version, type and byte order, and server key version */
-
- pvno = *p++;
-
- if(pvno != KRB_PROT_VERSION)
- return RD_AP_VERSION;
-
- type = *p++;
-
- little_endian = type & 1;
- type &= ~1;
-
- if(type != AUTH_MSG_APPL_REQUEST && type != AUTH_MSG_APPL_REQUEST_MUTUAL)
- return RD_AP_MSG_TYPE;
-
- s_kvno = *p++;
-
- p += krb_get_string(p, realm);
-
- /*
- * If "fn" is NULL, key info should already be set; don't
- * bother with ticket file. Otherwise, check to see if we
- * already have key info for the given server and key version
- * (saved in the static st_* variables). If not, go get it
- * from the ticket file. If "fn" is the null string, use the
- * default ticket file.
- */
- if (fn && (strcmp(st_nam,service) || strcmp(st_inst,instance) ||
- strcmp(st_rlm,realm) || (st_kvno != s_kvno))) {
- if (*fn == 0) fn = KEYFILE;
- st_kvno = s_kvno;
- if (read_service_key(service, instance, realm, s_kvno,
- fn, (char *)skey))
- return(RD_AP_UNDEC);
- if ((status = krb_set_key((char*)skey, 0)))
- return(status);
- strcpy(st_rlm, realm);
- strcpy(st_nam, service);
- strcpy(st_inst, instance);
- }
-
- tkt->length = *p++;
-
- req_id->length = *p++;
-
- if(tkt->length + (p - authent->dat) > authent->length)
- return RD_AP_MODIFIED;
-
- memcpy(tkt->dat, p, tkt->length);
- p += tkt->length;
-
- if (krb_ap_req_debug)
- krb_log("ticket->length: %d",tkt->length);
-
- /* Decrypt and take apart ticket */
- if (decomp_ticket(tkt, &ad->k_flags, ad->pname, ad->pinst, ad->prealm,
- &ad->address, ad->session, &ad->life,
- &ad->time_sec, sname, iname, &ky, serv_key))
- return RD_AP_UNDEC;
-
- if (krb_ap_req_debug) {
- krb_log("Ticket Contents.");
- krb_log(" Aname: %s.%s",ad->pname, ad->prealm);
- krb_log(" Service: %s", krb_unparse_name_long(sname, iname, NULL));
- }
-
- /* Extract the authenticator */
-
- if(req_id->length + (p - authent->dat) > authent->length)
- return RD_AP_MODIFIED;
-
- memcpy(req_id->dat, p, req_id->length);
- p = req_id->dat;
-
-#ifndef NOENCRYPTION
- /* And decrypt it with the session key from the ticket */
- if (krb_ap_req_debug) krb_log("About to decrypt authenticator");
-
- encrypt_ktext(req_id, &ad->session, DES_DECRYPT);
-
- if (krb_ap_req_debug) krb_log("Done.");
-#endif /* NOENCRYPTION */
-
- /* cast req_id->length to int? */
-#define check_ptr() if ((ptr - (char *) req_id->dat) > req_id->length) return(RD_AP_MODIFIED);
-
- p += krb_get_nir(p, r_aname, r_inst, r_realm); /* XXX no rangecheck */
-
- p += krb_get_int(p, &ad->checksum, 4, little_endian);
-
- p++; /* time_5ms is not used */
-
- p += krb_get_int(p, &r_time_sec, 4, little_endian);
-
- /* Check for authenticity of the request */
- if (krb_ap_req_debug)
- krb_log("Principal: %s.%s@%s / %s.%s@%s",ad->pname,ad->pinst, ad->prealm,
- r_aname, r_inst, r_realm);
- if (strcmp(ad->pname, r_aname) != 0 ||
- strcmp(ad->pinst, r_inst) != 0 ||
- strcmp(ad->prealm, r_realm) != 0)
- return RD_AP_INCON;
-
- if (krb_ap_req_debug)
- krb_log("Address: %x %x", ad->address, from_addr);
-
- if (from_addr && (!krb_equiv(ad->address, from_addr)))
- return RD_AP_BADD;
-
- gettimeofday(&tv, NULL);
- delta_t = abs((int)(tv.tv_sec - r_time_sec));
- if (delta_t > CLOCK_SKEW) {
- if (krb_ap_req_debug)
- krb_log("Time out of range: %lu - %lu = %lu",
- (unsigned long)t_local.tv_sec,
- (unsigned long)r_time_sec,
- (unsigned long)delta_t);
- return RD_AP_TIME;
- }
-
- /* Now check for expiration of ticket */
-
- tkt_age = tv.tv_sec - ad->time_sec;
- if (krb_ap_req_debug)
- krb_log("Time: %ld Issue Date: %lu Diff: %ld Life %x",
- (long)tv.tv_sec,
- (unsigned long)ad->time_sec,
- tkt_age,
- ad->life);
-
- if ((tkt_age < 0) && (-tkt_age > CLOCK_SKEW))
- return RD_AP_NYV;
-
- if (tv.tv_sec > krb_life_to_time(ad->time_sec, ad->life))
- return RD_AP_EXP;
-
- /* All seems OK */
- ad->reply.length = 0;
-
- return(RD_AP_OK);
-}
diff --git a/crypto/kerberosIV/lib/krb/rd_safe.c b/crypto/kerberosIV/lib/krb/rd_safe.c
deleted file mode 100644
index 8471df02648c..000000000000
--- a/crypto/kerberosIV/lib/krb/rd_safe.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: rd_safe.c,v 1.24 1997/04/19 23:18:20 joda Exp $");
-
-/* application include files */
-#include "lsb_addr_comp.h"
-
-/* Generate two checksums in the given byteorder of the data, one
- * new-form and one old-form. It has to be done this way to be
- * compatible with the old version of des_quad_cksum.
- */
-
-/* des_quad_chsum-type; 0 == unknown, 1 == new PL10++, 2 == old */
-int dqc_type = DES_QUAD_DEFAULT;
-
-void
-fixup_quad_cksum(void *start, size_t len, des_cblock *key,
- void *new_checksum, void *old_checksum, int little)
-{
- des_quad_cksum((des_cblock*)start, (des_cblock*)new_checksum, len, 2, key);
- if(HOST_BYTE_ORDER){
- if(little){
- memcpy(old_checksum, new_checksum, 16);
- }else{
- u_int32_t *tmp = (u_int32_t*)new_checksum;
- memcpy(old_checksum, new_checksum, 16);
- swap_u_16(old_checksum);
- swap_u_long(tmp[0]);
- swap_u_long(tmp[1]);
- swap_u_long(tmp[2]);
- swap_u_long(tmp[3]);
- }
- }else{
- if(little){
- u_int32_t *tmp = (u_int32_t*)new_checksum;
- swap_u_long(tmp[0]);
- swap_u_long(tmp[1]);
- swap_u_long(tmp[2]);
- swap_u_long(tmp[3]);
- memcpy(old_checksum, new_checksum, 16);
- }else{
- u_int32_t tmp[4];
- tmp[0] = ((u_int32_t*)new_checksum)[3];
- tmp[1] = ((u_int32_t*)new_checksum)[2];
- tmp[2] = ((u_int32_t*)new_checksum)[1];
- tmp[3] = ((u_int32_t*)new_checksum)[0];
- memcpy(old_checksum, tmp, 16);
- }
- }
-}
-
-/*
- * krb_rd_safe() checks the integrity of an AUTH_MSG_SAFE message.
- * Given the message received, "in", the length of that message,
- * "in_length", the "key" to compute the checksum with, and the
- * network addresses of the "sender" and "receiver" of the message,
- * krb_rd_safe() returns RD_AP_OK if message is okay, otherwise
- * some error code.
- *
- * The message data retrieved from "in" is returned in the structure
- * "m_data". The pointer to the application data (m_data->app_data)
- * refers back to the appropriate place in "in".
- *
- * See the file "mk_safe.c" for the format of the AUTH_MSG_SAFE
- * message. The structure containing the extracted message
- * information, MSG_DAT, is defined in "krb.h".
- */
-
-int32_t
-krb_rd_safe(void *in, u_int32_t in_length, des_cblock *key,
- struct sockaddr_in *sender, struct sockaddr_in *receiver,
- MSG_DAT *m_data)
-{
- unsigned char *p = (unsigned char*)in, *start;
-
- unsigned char pvno, type;
- int little_endian;
- struct timeval tv;
- u_int32_t src_addr;
- int delta_t;
-
-
- pvno = *p++;
- if(pvno != KRB_PROT_VERSION)
- return RD_AP_VERSION;
-
- type = *p++;
- little_endian = type & 1;
- type &= ~1;
- if(type != AUTH_MSG_SAFE)
- return RD_AP_MSG_TYPE;
-
- start = p;
-
- p += krb_get_int(p, &m_data->app_length, 4, little_endian);
-
- if(m_data->app_length + 31 > in_length)
- return RD_AP_MODIFIED;
-
- m_data->app_data = p;
-
- p += m_data->app_length;
-
- m_data->time_5ms = *p++;
-
- p += krb_get_address(p, &src_addr);
-
- if (!krb_equiv(src_addr, sender->sin_addr.s_addr))
- return RD_AP_BADD;
-
- p += krb_get_int(p, (u_int32_t *)&m_data->time_sec, 4, little_endian);
- m_data->time_sec = lsb_time(m_data->time_sec, sender, receiver);
-
- gettimeofday(&tv, NULL);
-
- delta_t = abs((int)((long) tv.tv_sec - m_data->time_sec));
- if (delta_t > CLOCK_SKEW) return RD_AP_TIME;
-
- /*
- * caller must check timestamps for proper order and replays, since
- * server might have multiple clients each with its own timestamps
- * and we don't assume tightly synchronized clocks.
- */
-
- {
- unsigned char new_checksum[16];
- unsigned char old_checksum[16];
- fixup_quad_cksum(start, p - start, key,
- new_checksum, old_checksum, little_endian);
- if((dqc_type == DES_QUAD_GUESS || dqc_type == DES_QUAD_NEW) &&
- memcmp(new_checksum, p, 16) == 0)
- dqc_type = DES_QUAD_NEW;
- else if((dqc_type == DES_QUAD_GUESS || dqc_type == DES_QUAD_OLD) &&
- memcmp(old_checksum, p, 16) == 0)
- dqc_type = DES_QUAD_OLD;
- else
- return RD_AP_MODIFIED;
- }
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/read_service_key.c b/crypto/kerberosIV/lib/krb/read_service_key.c
deleted file mode 100644
index 6de5db273539..000000000000
--- a/crypto/kerberosIV/lib/krb/read_service_key.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: read_service_key.c,v 1.8 1997/03/23 03:53:16 joda Exp $");
-
-/*
- * The private keys for servers on a given host are stored in a
- * "srvtab" file (typically "/etc/srvtab"). This routine extracts
- * a given server's key from the file.
- *
- * read_service_key() takes the server's name ("service"), "instance",
- * and "realm" and a key version number "kvno", and looks in the given
- * "file" for the corresponding entry, and if found, returns the entry's
- * key field in "key".
- *
- * If "instance" contains the string "*", then it will match
- * any instance, and the chosen instance will be copied to that
- * string. For this reason it is important that the there is enough
- * space beyond the "*" to receive the entry.
- *
- * If "kvno" is 0, it is treated as a wild card and the first
- * matching entry regardless of the "vno" field is returned.
- *
- * This routine returns KSUCCESS on success, otherwise KFAILURE.
- *
- * The format of each "srvtab" entry is as follows:
- *
- * Size Variable Field in file
- * ---- -------- -------------
- * string serv server name
- * string inst server instance
- * string realm server realm
- * 1 byte vno server key version #
- * 8 bytes key server's key
- * ... ... ...
- */
-
-
-int
-read_service_key(char *service, /* Service Name */
- char *instance, /* Instance name or "*" */
- char *realm, /* Realm */
- int kvno, /* Key version number */
- char *file, /* Filename */
- char *key) /* Pointer to key to be filled in */
-{
- char serv[SNAME_SZ];
- char inst[INST_SZ];
- char rlm[REALM_SZ];
- unsigned char vno; /* Key version number */
- int wcard;
-
- int stab;
-
- if ((stab = open(file, O_RDONLY, 0)) < 0)
- return(KFAILURE);
-
- wcard = (instance[0] == '*') && (instance[1] == '\0');
-
- while (getst(stab,serv,SNAME_SZ) > 0) { /* Read sname */
- getst(stab,inst,INST_SZ); /* Instance */
- getst(stab,rlm,REALM_SZ); /* Realm */
- /* Vers number */
- if (read(stab, &vno, 1) != 1) {
- close(stab);
- return(KFAILURE);
- }
- /* Key */
- if (read(stab,key,8) != 8) {
- close(stab);
- return(KFAILURE);
- }
- /* Is this the right service */
- if (strcmp(serv,service))
- continue;
- /* How about instance */
- if (!wcard && strcmp(inst,instance))
- continue;
- if (wcard)
- strncpy(instance,inst,INST_SZ);
- /* Is this the right realm */
- if (strcmp(rlm,realm))
- continue;
-
- /* How about the key version number */
- if (kvno && kvno != (int) vno)
- continue;
-
- close(stab);
- return(KSUCCESS);
- }
-
- /* Can't find the requested service */
- close(stab);
- return(KFAILURE);
-}
diff --git a/crypto/kerberosIV/lib/krb/realm_parse.c b/crypto/kerberosIV/lib/krb/realm_parse.c
deleted file mode 100644
index 2ce852a340d4..000000000000
--- a/crypto/kerberosIV/lib/krb/realm_parse.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: realm_parse.c,v 1.10 1997/06/01 03:14:50 assar Exp $");
-
-static int
-realm_parse(char *realm, int length, const char *file)
-{
- FILE *F;
- char tr[128];
- char *p;
-
- if ((F = fopen(file,"r")) == NULL)
- return -1;
-
- while(fgets(tr, sizeof(tr), F)){
- char *unused = NULL;
- p = strtok_r(tr, " \t\n\r", &unused);
- if(p && strcasecmp(p, realm) == 0){
- fclose(F);
- strncpy(realm, p, length);
- return 0;
- }
- }
- fclose(F);
- return -1;
-}
-
-static const char *const files[] = KRB_CNF_FILES;
-
-int
-krb_realm_parse(char *realm, int length)
-{
- int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
-
- if(k_concat(fname, sizeof(fname), dir, "/krb.conf", NULL) == 0)
- if (realm_parse(realm, length, fname) == 0)
- return 0;
- }
-
- for (i = 0; files[i] != NULL; i++)
- if (realm_parse(realm, length, files[i]) == 0)
- return 0;
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/krb/recvauth.c b/crypto/kerberosIV/lib/krb/recvauth.c
deleted file mode 100644
index 6c968974c4c1..000000000000
--- a/crypto/kerberosIV/lib/krb/recvauth.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: recvauth.c,v 1.17 1997/03/23 03:53:16 joda Exp $");
-
-/*
- * krb_recvauth() reads (and optionally responds to) a message sent
- * using krb_sendauth(). The "options" argument is a bit-field of
- * selected options (see "sendauth.c" for options description).
- * The only option relevant to krb_recvauth() is KOPT_DO_MUTUAL
- * (mutual authentication requested). The "fd" argument supplies
- * a file descriptor to read from (and write to, if mutual authenti-
- * cation is requested).
- *
- * Part of the received message will be a Kerberos ticket sent by the
- * client; this is read into the "ticket" argument. The "service" and
- * "instance" arguments supply the server's Kerberos name. If the
- * "instance" argument is the string "*", it is treated as a wild card
- * and filled in during the krb_rd_req() call (see read_service_key()).
- *
- * The "faddr" and "laddr" give the sending (client) and receiving
- * (local server) network addresses. ("laddr" may be left NULL unless
- * mutual authentication is requested, in which case it must be set.)
- *
- * The authentication information extracted from the message is returned
- * in "kdata". The "filename" argument indicates the file where the
- * server's key can be found. (It is passed on to krb_rd_req().) If
- * left null, the default "/etc/srvtab" will be used.
- *
- * If mutual authentication is requested, the session key schedule must
- * be computed in order to reply; this schedule is returned in the
- * "schedule" argument. A string containing the application version
- * number from the received message is returned in "version", which
- * should be large enough to hold a KRB_SENDAUTH_VLEN-character string.
- *
- * See krb_sendauth() for the format of the received client message.
- *
- * krb_recvauth() first reads the protocol version string from the
- * given file descriptor. If it doesn't match the current protocol
- * version (KRB_SENDAUTH_VERS), the old-style format is assumed. In
- * that case, the string of characters up to the first space is read
- * and interpreted as the ticket length, then the ticket is read.
- *
- * If the first string did match KRB_SENDAUTH_VERS, krb_recvauth()
- * next reads the application protocol version string. Then the
- * ticket length and ticket itself are read.
- *
- * The ticket is decrypted and checked by the call to krb_rd_req().
- * If no mutual authentication is required, the result of the
- * krb_rd_req() call is retured by this routine. If mutual authenti-
- * cation is required, a message in the following format is returned
- * on "fd":
- *
- * Size Variable Field
- * ---- -------- -----
- *
- * 4 bytes tkt_len length of ticket or -1
- * if error occurred
- *
- * priv_len tmp_buf "private" message created
- * by krb_mk_priv() which
- * contains the incremented
- * checksum sent by the client
- * encrypted in the session
- * key. (This field is not
- * present in case of error.)
- *
- * If all goes well, KSUCCESS is returned; otherwise KFAILURE or some
- * other error code is returned.
- */
-
-static int
-send_error_reply(int fd)
-{
- unsigned char tmp[4] = { 255, 255, 255, 255 };
- if(krb_net_write(fd, tmp, sizeof(tmp)) != sizeof(tmp))
- return -1;
- return 0;
-}
-
-int
-krb_recvauth(int32_t options, /* bit-pattern of options */
- int fd, /* file descr. to read from */
- KTEXT ticket, /* storage for client's ticket */
- char *service, /* service expected */
- char *instance, /* inst expected (may be filled in) */
- struct sockaddr_in *faddr, /* address of foreign host on fd */
- struct sockaddr_in *laddr, /* local address */
- AUTH_DAT *kdata, /* kerberos data (returned) */
- char *filename, /* name of file with service keys */
- struct des_ks_struct *schedule, /* key schedule (return) */
- char *version) /* version string (filled in) */
-{
- int cc;
- char krb_vers[KRB_SENDAUTH_VLEN + 1]; /* + 1 for the null terminator */
- int rem;
- int32_t priv_len;
- u_char tmp_buf[MAX_KTXT_LEN+max(KRB_SENDAUTH_VLEN+1,21)];
-
- /* read the protocol version number */
- if (krb_net_read(fd, krb_vers, KRB_SENDAUTH_VLEN) != KRB_SENDAUTH_VLEN)
- return(errno);
- krb_vers[KRB_SENDAUTH_VLEN] = '\0';
-
- /* read the application version string */
- if (krb_net_read(fd, version, KRB_SENDAUTH_VLEN) != KRB_SENDAUTH_VLEN)
- return(errno);
- version[KRB_SENDAUTH_VLEN] = '\0';
-
- /* get the length of the ticket */
- {
- char tmp[4];
- if (krb_net_read(fd, tmp, 4) != 4)
- return -1;
- krb_get_int(tmp, &ticket->length, 4, 0);
- }
-
- /* sanity check */
- if (ticket->length <= 0 || ticket->length > MAX_KTXT_LEN) {
- if (options & KOPT_DO_MUTUAL) {
- if(send_error_reply(fd))
- return -1;
- return KFAILURE;
- } else
- return KFAILURE; /* XXX there may still be junk on the fd? */
- }
-
- /* read the ticket */
- if (krb_net_read(fd, ticket->dat, ticket->length) != ticket->length)
- return -1;
- /*
- * now have the ticket. decrypt it to get the authenticated
- * data.
- */
- rem = krb_rd_req(ticket, service, instance, faddr->sin_addr.s_addr,
- kdata, filename);
-
- /* if we are doing mutual auth, compose a response */
- if (options & KOPT_DO_MUTUAL) {
- if (rem != KSUCCESS){
- /* the krb_rd_req failed */
- if(send_error_reply(fd))
- return -1;
- return rem;
- }
-
- /* add one to the (formerly) sealed checksum, and re-seal it
- for return to the client */
- {
- unsigned char cs[4];
- krb_put_int(kdata->checksum + 1, cs, 4);
-#ifndef NOENCRYPTION
- des_key_sched(&kdata->session,schedule);
-#endif
- priv_len = krb_mk_priv(cs,
- tmp_buf+4,
- 4,
- schedule,
- &kdata->session,
- laddr,
- faddr);
- }
- /* mk_priv will never fail */
- priv_len += krb_put_int(priv_len, tmp_buf, 4);
-
- if((cc = krb_net_write(fd, tmp_buf, priv_len)) != priv_len)
- return -1;
- }
- return rem;
-}
diff --git a/crypto/kerberosIV/lib/krb/resolve.c b/crypto/kerberosIV/lib/krb/resolve.c
deleted file mode 100644
index 7777c0e854b2..000000000000
--- a/crypto/kerberosIV/lib/krb/resolve.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-#include "resolve.h"
-
-RCSID("$Id: resolve.c,v 1.11 1997/06/01 04:19:20 assar Exp $");
-
-#if defined(HAVE_RES_SEARCH) && defined(HAVE_DN_EXPAND)
-
-#define DECL(X) {#X, T_##X}
-
-static struct stot{
- char *name;
- int type;
-}stot[] = {
- DECL(A),
- DECL(NS),
- DECL(CNAME),
- DECL(PTR),
- DECL(MX),
- DECL(TXT),
- DECL(AFSDB),
- DECL(SRV),
- {NULL, 0}
-};
-
-static int
-string_to_type(const char *name)
-{
- struct stot *p = stot;
- for(p = stot; p->name; p++)
- if(strcasecmp(name, p->name) == 0)
- return p->type;
- return -1;
-}
-
-#if 0
-static char *
-type_to_string(int type)
-{
- struct stot *p = stot;
- for(p = stot; p->name; p++)
- if(type == p->type)
- return p->name;
- return NULL;
-}
-#endif
-
-void
-dns_free_data(struct dns_reply *r)
-{
- struct resource_record *rr;
- if(r->q.domain)
- free(r->q.domain);
- for(rr = r->head; rr;){
- struct resource_record *tmp = rr;
- if(rr->domain)
- free(rr->domain);
- if(rr->u.data)
- free(rr->u.data);
- rr = rr->next;
- free(tmp);
- }
- free (r);
-}
-
-static struct dns_reply*
-parse_reply(unsigned char *data, int len)
-{
- unsigned char *p;
- char host[128];
- int status;
-
- struct dns_reply *r;
- struct resource_record **rr;
-
- r = (struct dns_reply*)malloc(sizeof(struct dns_reply));
- memset(r, 0, sizeof(struct dns_reply));
-
- p = data;
- memcpy(&r->h, p, sizeof(HEADER));
- p += sizeof(HEADER);
- status = dn_expand(data, data + len, p, host, sizeof(host));
- if(status < 0){
- dns_free_data(r);
- return NULL;
- }
- r->q.domain = strdup(host);
- p += status;
- r->q.type = (p[0] << 8 | p[1]);
- p += 2;
- r->q.class = (p[0] << 8 | p[1]);
- p += 2;
- rr = &r->head;
- while(p < data + len){
- int type, class, ttl, size;
- status = dn_expand(data, data + len, p, host, sizeof(host));
- if(status < 0){
- dns_free_data(r);
- return NULL;
- }
- p += status;
- type = (p[0] << 8) | p[1];
- p += 2;
- class = (p[0] << 8) | p[1];
- p += 2;
- ttl = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
- p += 4;
- size = (p[0] << 8) | p[1];
- p += 2;
- *rr = (struct resource_record*)calloc(1,
- sizeof(struct resource_record));
- (*rr)->domain = strdup(host);
- (*rr)->type = type;
- (*rr)->class = class;
- (*rr)->ttl = ttl;
- (*rr)->size = size;
- switch(type){
- case T_NS:
- case T_CNAME:
- case T_PTR:
- status = dn_expand(data, data + len, p, host, sizeof(host));
- if(status < 0){
- dns_free_data(r);
- return NULL;
- }
- (*rr)->u.txt = strdup(host);
- break;
- case T_MX:
- case T_AFSDB:{
- status = dn_expand(data, data + len, p + 2, host, sizeof(host));
- if(status < 0){
- dns_free_data(r);
- return NULL;
- }
- (*rr)->u.mx = (struct mx_record*)malloc(sizeof(struct mx_record) +
- strlen(host));
- (*rr)->u.mx->preference = (p[0] << 8) | p[1];
- strcpy((*rr)->u.mx->domain, host);
- break;
- }
- case T_SRV:{
- status = dn_expand(data, data + len, p + 6, host, sizeof(host));
- if(status < 0){
- dns_free_data(r);
- return NULL;
- }
- (*rr)->u.srv =
- (struct srv_record*)malloc(sizeof(struct srv_record) +
- strlen(host));
- (*rr)->u.srv->priority = (p[0] << 8) | p[1];
- (*rr)->u.srv->weight = (p[2] << 8) | p[3];
- (*rr)->u.srv->port = (p[4] << 8) | p[5];
- strcpy((*rr)->u.srv->target, host);
- break;
- }
- case T_TXT:{
- (*rr)->u.txt = (char*)malloc(size + 1);
- strncpy((*rr)->u.txt, (char*)p + 1, *p);
- (*rr)->u.txt[*p] = 0;
- break;
- }
-
- default:
- (*rr)->u.data = (unsigned char*)malloc(size);
- memcpy((*rr)->u.data, p, size);
- }
- p += size;
- rr = &(*rr)->next;
- }
- *rr = NULL;
- return r;
-}
-
-
-
-struct dns_reply *
-dns_lookup(const char *domain, const char *type_name)
-{
- unsigned char reply[1024];
- int len;
- int type;
- struct dns_reply *r = NULL;
-
- type = string_to_type(type_name);
- len = res_search(domain, C_IN, type, reply, sizeof(reply));
- if(len >= 0)
- r = parse_reply(reply, len);
- return r;
-}
-
-#else /* defined(HAVE_RES_SEARCH) && defined(HAVE_DN_EXPAND) */
-
-struct dns_reply *
-dns_lookup(const char *domain, const char *type_name)
-{
- return NULL;
-}
-
-void
-dns_free_data(struct dns_reply *r)
-{
-}
-
-#endif
-
-#ifdef TEST
-
-int
-main(int argc, char **argv)
-{
- struct dns_reply *r;
- struct resource_record *rr;
- r = dns_lookup(argv[1], argv[2]);
- if(r == NULL){
- printf("No reply.\n");
- return 1;
- }
- for(rr = r->head; rr;rr=rr->next){
- printf("%s %s %d ", rr->domain, type_to_string(rr->type), rr->ttl);
- switch(rr->type){
- case T_NS:
- printf("%s\n", (char*)rr->data);
- break;
- case T_A:
- printf("%d.%d.%d.%d\n",
- ((unsigned char*)rr->data)[0],
- ((unsigned char*)rr->data)[1],
- ((unsigned char*)rr->data)[2],
- ((unsigned char*)rr->data)[3]);
- break;
- case T_MX:
- case T_AFSDB:{
- struct mx_record *mx = (struct mx_record*)rr->data;
- printf("%d %s\n", mx->preference, mx->domain);
- break;
- }
- case T_SRV:{
- struct srv_record *srv = (struct srv_record*)rr->data;
- printf("%d %d %d %s\n", srv->priority, srv->weight,
- srv->port, srv->target);
- break;
- }
- default:
- printf("\n");
- break;
- }
- }
-
- return 0;
-}
-#endif
diff --git a/crypto/kerberosIV/lib/krb/resolve.h b/crypto/kerberosIV/lib/krb/resolve.h
deleted file mode 100644
index dac9993f91fa..000000000000
--- a/crypto/kerberosIV/lib/krb/resolve.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: resolve.h,v 1.5 1997/05/14 17:41:25 joda Exp $ */
-
-/* THIS IS NOT (yet) A PUBLIC INTERFACE */
-
-
-#ifndef __RESOLVE_H__
-#define __RESOLVE_H__
-
-/* We use these, but they are not always present in <arpa/nameser.h> */
-
-#ifndef T_TXT
-#define T_TXT 16
-#endif
-#ifndef T_AFSDB
-#define T_AFSDB 18
-#endif
-#ifndef T_SRV
-#define T_SRV 33
-#endif
-
-struct dns_query{
- char *domain;
- unsigned type;
- unsigned class;
-};
-
-struct mx_record{
- unsigned preference;
- char domain[1];
-};
-
-struct srv_record{
- unsigned priority;
- unsigned weight;
- unsigned port;
- char target[1];
-};
-
-struct resource_record{
- char *domain;
- unsigned type;
- unsigned class;
- unsigned ttl;
- unsigned size;
- union {
- void *data;
- struct mx_record *mx;
- struct mx_record *afsdb; /* mx and afsdb are identical */
- struct srv_record *srv;
- struct in_addr *a;
- char *txt;
- }u;
- struct resource_record *next;
-};
-
-
-#ifndef HAVE_ARPA_NAMESER_H /* XXX */
-typedef int HEADER; /* will never be used */
-#endif
-
-struct dns_reply{
- HEADER h;
- struct dns_query q;
- struct resource_record *head;
-};
-
-
-struct dns_reply* dns_lookup(const char *, const char *);
-
-void dns_free_data(struct dns_reply *r);
-
-#endif /* __RESOLVE_H__ */
diff --git a/crypto/kerberosIV/lib/krb/rw.c b/crypto/kerberosIV/lib/krb/rw.c
deleted file mode 100644
index 4b136aa097be..000000000000
--- a/crypto/kerberosIV/lib/krb/rw.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/* Almost all programs use these routines (implicitly) so it's a good
- * place to put the version string. */
-
-#include "version.h"
-
-#include "krb_locl.h"
-
-RCSID("$Id: rw.c,v 1.8 1997/04/01 08:18:44 joda Exp $");
-
-int
-krb_get_int(void *f, u_int32_t *to, int size, int lsb)
-{
- int i;
- unsigned char *from = (unsigned char *)f;
-
- *to = 0;
- if(lsb){
- for(i = size-1; i >= 0; i--)
- *to = (*to << 8) | from[i];
- }else{
- for(i = 0; i < size; i++)
- *to = (*to << 8) | from[i];
- }
- return size;
-}
-
-int
-krb_put_int(u_int32_t from, void *to, int size)
-{
- int i;
- unsigned char *p = (unsigned char *)to;
- for(i = size - 1; i >= 0; i--){
- p[i] = from & 0xff;
- from >>= 8;
- }
- return size;
-}
-
-
-/* addresses are always sent in network byte order */
-
-int
-krb_get_address(void *from, u_int32_t *to)
-{
- unsigned char *p = (unsigned char*)from;
- *to = htonl((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
- return 4;
-}
-
-int
-krb_put_address(u_int32_t addr, void *to)
-{
- return krb_put_int(ntohl(addr), to, 4);
-}
-
-int
-krb_put_string(char *from, void *to)
-{
- strcpy((char *)to, from);
- return strlen(from) + 1;
-}
-
-int
-krb_get_string(void *from, char *to)
-{
- return krb_put_string(from, to);
-}
-
-int
-krb_get_nir(void *from, char *name, char *instance, char *realm)
-{
- char *p = (char *)from;
-
- p += krb_get_string(p, name);
- p += krb_get_string(p, instance);
- if(realm)
- p += krb_get_string(p, realm);
- return p - (char *)from;
-}
-
-int
-krb_put_nir(char *name, char *instance, char *realm, void *to)
-{
- char *p = (char *)to;
- p += krb_put_string(name, p);
- p += krb_put_string(instance, p);
- if(realm)
- p += krb_put_string(realm, p);
- return p - (char *)to;
-}
diff --git a/crypto/kerberosIV/lib/krb/save_credentials.c b/crypto/kerberosIV/lib/krb/save_credentials.c
deleted file mode 100644
index cfd6c07eeceb..000000000000
--- a/crypto/kerberosIV/lib/krb/save_credentials.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: save_credentials.c,v 1.5 1997/03/23 03:53:17 joda Exp $");
-
-/*
- * This routine takes a ticket and associated info and calls
- * tf_save_cred() to store them in the ticket cache. The peer
- * routine for extracting a ticket and associated info from the
- * ticket cache is krb_get_cred(). When changes are made to
- * this routine, the corresponding changes should be made
- * in krb_get_cred() as well.
- *
- * Returns KSUCCESS if all goes well, otherwise an error returned
- * by the tf_init() or tf_save_cred() routines.
- */
-
-int
-save_credentials(char *service, /* Service name */
- char *instance, /* Instance */
- char *realm, /* Auth domain */
- unsigned char *session, /* Session key */
- int lifetime, /* Lifetime */
- int kvno, /* Key version number */
- KTEXT ticket, /* The ticket itself */
- int32_t issue_date) /* The issue time */
-{
- int tf_status; /* return values of the tf_util calls */
-
- /* Open and lock the ticket file for writing */
- if ((tf_status = tf_init(TKT_FILE, W_TKT_FIL)) != KSUCCESS)
- return(tf_status);
-
- /* Save credentials by appending to the ticket file */
- tf_status = tf_save_cred(service, instance, realm, session,
- lifetime, kvno, ticket, issue_date);
- tf_close();
- return (tf_status);
-}
diff --git a/crypto/kerberosIV/lib/krb/send_to_kdc.c b/crypto/kerberosIV/lib/krb/send_to_kdc.c
deleted file mode 100644
index 828b34d15138..000000000000
--- a/crypto/kerberosIV/lib/krb/send_to_kdc.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: send_to_kdc.c,v 1.39 1997/05/15 21:02:31 joda Exp $");
-
-struct host {
- struct sockaddr_in addr;
- int proto;
-};
-
-static const char *prog = "send_to_kdc";
-static send_recv(KTEXT pkt, KTEXT rpkt, int f,
- struct sockaddr_in *_to, struct host *addrs,
- int h_hosts);
-
-/*
- * This file contains two routines, send_to_kdc() and send_recv().
- * send_recv() is a static routine used by send_to_kdc().
- */
-
-/*
- * send_to_kdc() sends a message to the Kerberos authentication
- * server(s) in the given realm and returns the reply message.
- * The "pkt" argument points to the message to be sent to Kerberos;
- * the "rpkt" argument will be filled in with Kerberos' reply.
- * The "realm" argument indicates the realm of the Kerberos server(s)
- * to transact with. If the realm is null, the local realm is used.
- *
- * If more than one Kerberos server is known for a given realm,
- * different servers will be queried until one of them replies.
- * Several attempts (retries) are made for each server before
- * giving up entirely.
- *
- * If an answer was received from a Kerberos host, KSUCCESS is
- * returned. The following errors can be returned:
- *
- * SKDC_CANT - can't get local realm
- * - can't find "kerberos" in /etc/services database
- * - can't open socket
- * - can't bind socket
- * - all ports in use
- * - couldn't find any Kerberos host
- *
- * SKDC_RETRY - couldn't get an answer from any Kerberos server,
- * after several retries
- */
-
-int
-send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm)
-{
- int i;
- int no_host; /* was a kerberos host found? */
- int retry;
- int n_hosts;
- int retval;
- struct hostent *host;
- char lrealm[REALM_SZ];
- struct krb_host *k_host;
- struct host *hosts = malloc(sizeof(*hosts));
-
- if (hosts == NULL)
- return SKDC_CANT;
-
- /*
- * If "realm" is non-null, use that, otherwise get the
- * local realm.
- */
- if (realm)
- strcpy(lrealm, realm);
- else
- if (krb_get_lrealm(lrealm,1)) {
- if (krb_debug)
- krb_warning("%s: can't get local realm\n", prog);
- return(SKDC_CANT);
- }
- if (krb_debug)
- krb_warning("lrealm is %s\n", lrealm);
-
- no_host = 1;
- /* get an initial allocation */
- n_hosts = 0;
- for (i = 1; (k_host = krb_get_host(i, lrealm, 0)); ++i) {
- char *p;
-
- if (krb_debug)
- krb_warning("Getting host entry for %s...", k_host->host);
- host = gethostbyname(k_host->host);
- if (krb_debug) {
- krb_warning("%s.\n",
- host ? "Got it" : "Didn't get it");
- }
- if (!host)
- continue;
- no_host = 0; /* found at least one */
- while ((p = *(host->h_addr_list)++)) {
- hosts = realloc(hosts, sizeof(*hosts) * (n_hosts + 1));
- if (hosts == NULL)
- return SKDC_CANT;
- memset (&hosts[n_hosts].addr, 0, sizeof(hosts[n_hosts].addr));
- hosts[n_hosts].addr.sin_family = host->h_addrtype;
- hosts[n_hosts].addr.sin_port = htons(k_host->port);
- hosts[n_hosts].proto = k_host->proto;
- memcpy(&hosts[n_hosts].addr.sin_addr, p,
- sizeof(hosts[n_hosts].addr.sin_addr));
- ++n_hosts;
- if (send_recv(pkt, rpkt, hosts[n_hosts-1].proto,
- &hosts[n_hosts-1].addr, hosts, n_hosts)) {
- retval = KSUCCESS;
- goto rtn;
- }
- if (krb_debug) {
- krb_warning("Timeout, error, or wrong descriptor\n");
- }
- }
- }
- if (no_host) {
- if (krb_debug)
- krb_warning("%s: can't find any Kerberos host.\n",
- prog);
- retval = SKDC_CANT;
- goto rtn;
- }
- /* retry each host in sequence */
- for (retry = 0; retry < CLIENT_KRB_RETRY; ++retry) {
- for (i = 0; i < n_hosts; ++i) {
- if (send_recv(pkt, rpkt,
- hosts[i].proto,
- &hosts[i].addr,
- hosts,
- n_hosts)) {
- retval = KSUCCESS;
- goto rtn;
- }
- }
- }
- retval = SKDC_RETRY;
-rtn:
- free(hosts);
- return(retval);
-}
-
-/*
- * try to send out and receive message.
- * return 1 on success, 0 on failure
- */
-
-static int
-send_recv_it(KTEXT pkt, KTEXT rpkt, int stream, int f,
- struct sockaddr_in *_to, struct host *addrs, int n_hosts)
-{
- fd_set readfds;
- int numsent;
-
- /* CLIENT_KRB_TIMEOUT indicates the time to wait before
- * retrying a server. It's defined in "krb.h".
- */
- struct timeval timeout;
- timeout.tv_sec = CLIENT_KRB_TIMEOUT;
- timeout.tv_usec = 0;
-
- if (krb_debug) {
- if (_to->sin_family == AF_INET)
- krb_warning("Sending message to %s...",
- inet_ntoa(_to->sin_addr));
- else
- krb_warning("Sending message...");
- }
- if(stream){
- unsigned char tmp[4];
- krb_put_int(pkt->length, tmp, 4);
- if((numsent = send(f, tmp, 4, 0)) != 4){
- if (krb_debug)
- krb_warning("sent only %d/%d\n", numsent, 4);
- return 0;
- }
- }
- if ((numsent = send(f, pkt->dat, pkt->length, 0)) != pkt->length) {
- if (krb_debug)
- krb_warning("sent only %d/%d\n",numsent, pkt->length);
- return 0;
- }
- if (krb_debug)
- krb_warning("Sent\nWaiting for reply...");
- FD_ZERO(&readfds);
- FD_SET(f, &readfds);
- /* select - either recv is ready, or timeout */
- /* see if timeout or error or wrong descriptor */
- if (select(f + 1, &readfds, 0, 0, &timeout) < 1
- || !FD_ISSET(f, &readfds)) {
- if (krb_debug)
- krb_warning("select failed: errno = %d", errno);
- return 0;
- }
- if(stream){
- if(krb_net_read(f, rpkt->dat, sizeof(rpkt->dat)) <= 0)
- return 0;
- }else{
- if (recv (f, rpkt->dat, sizeof(rpkt->dat), 0) < 0) {
- if (krb_debug)
- krb_warning("recvfrom: errno = %d\n", errno);
- return 0;
- }
- }
- return 1;
-}
-
-static int
-send_recv(KTEXT pkt, KTEXT rpkt, int proto, struct sockaddr_in *_to,
- struct host *addrs, int n_hosts)
-{
- int f;
- int ret = 0;
- if(proto == IPPROTO_UDP)
- f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- else if(proto == IPPROTO_TCP)
- f = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- else{
- krb_warning("Unknown protocol `%d'.\n", proto);
- return 0;
- }
-
- if(connect(f, (struct sockaddr*)_to, sizeof(*_to)) < 0)
- krb_warning("Connecting socket: errno = %d\n", errno);
- else
- ret = send_recv_it(pkt, rpkt, proto == IPPROTO_TCP, f,
- _to, addrs, n_hosts);
-
- close(f);
- return ret;
-}
-
diff --git a/crypto/kerberosIV/lib/krb/sendauth.c b/crypto/kerberosIV/lib/krb/sendauth.c
deleted file mode 100644
index 4240bcf98257..000000000000
--- a/crypto/kerberosIV/lib/krb/sendauth.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: sendauth.c,v 1.15 1997/04/18 14:11:36 joda Exp $");
-
-/*
- * krb_sendauth() transmits a ticket over a file descriptor for a
- * desired service, instance, and realm, doing mutual authentication
- * with the server if desired.
- */
-
-/*
- * The first argument to krb_sendauth() contains a bitfield of
- * options (the options are defined in "krb.h"):
- *
- * KOPT_DONT_CANON Don't canonicalize instance as a hostname.
- * (If this option is not chosen, krb_get_phost()
- * is called to canonicalize it.)
- *
- * KOPT_DONT_MK_REQ Don't request server ticket from Kerberos.
- * A ticket must be supplied in the "ticket"
- * argument.
- * (If this option is not chosen, and there
- * is no ticket for the given server in the
- * ticket cache, one will be fetched using
- * krb_mk_req() and returned in "ticket".)
- *
- * KOPT_DO_MUTUAL Do mutual authentication, requiring that the
- * receiving server return the checksum+1 encrypted
- * in the session key. The mutual authentication
- * is done using krb_mk_priv() on the other side
- * (see "recvauth.c") and krb_rd_priv() on this
- * side.
- *
- * The "fd" argument is a file descriptor to write to the remote
- * server on. The "ticket" argument is used to store the new ticket
- * from the krb_mk_req() call. If the KOPT_DONT_MK_REQ options is
- * chosen, the ticket must be supplied in the "ticket" argument.
- * The "service", "inst", and "realm" arguments identify the ticket.
- * If "realm" is null, the local realm is used.
- *
- * The following arguments are only needed if the KOPT_DO_MUTUAL option
- * is chosen:
- *
- * The "checksum" argument is a number that the server will add 1 to
- * to authenticate itself back to the client; the "msg_data" argument
- * holds the returned mutual-authentication message from the server
- * (i.e., the checksum+1); the "cred" structure is used to hold the
- * session key of the server, extracted from the ticket file, for use
- * in decrypting the mutual authentication message from the server;
- * and "schedule" holds the key schedule for that decryption. The
- * the local and server addresses are given in "laddr" and "faddr".
- *
- * The application protocol version number (of up to KRB_SENDAUTH_VLEN
- * characters) is passed in "version".
- *
- * If all goes well, KSUCCESS is returned, otherwise some error code.
- *
- * The format of the message sent to the server is:
- *
- * Size Variable Field
- * ---- -------- -----
- *
- * KRB_SENDAUTH_VLEN KRB_SENDAUTH_VER sendauth protocol
- * bytes version number
- *
- * KRB_SENDAUTH_VLEN version application protocol
- * bytes version number
- *
- * 4 bytes ticket->length length of ticket
- *
- * ticket->length ticket->dat ticket itself
- */
-
-int
-krb_sendauth(int32_t options, /* bit-pattern of options */
- int fd, /* file descriptor to write onto */
- KTEXT ticket, /* where to put ticket (return); or
- * supplied in case of KOPT_DONT_MK_REQ */
- char *service, /* service name, instance, realm */
- char *instance,
- char *realm,
- u_int32_t checksum, /* checksum to include in request */
- MSG_DAT *msg_data, /* mutual auth MSG_DAT (return) */
- CREDENTIALS *cred, /* credentials (return) */
- struct des_ks_struct *schedule, /* key schedule (return) */
- struct sockaddr_in *laddr, /* local address */
- struct sockaddr_in *faddr, /* address of foreign host on fd */
- char *version) /* version string */
-{
- int ret;
- KTEXT_ST buf;
- char realrealm[REALM_SZ];
-
- if (realm == NULL) {
- ret = krb_get_lrealm (realrealm, 1);
- if (ret != KSUCCESS)
- return ret;
- realm = realrealm;
- }
- ret = krb_mk_auth (options, ticket, service, instance, realm, checksum,
- version, &buf);
- if (ret != KSUCCESS)
- return ret;
- ret = krb_net_write(fd, buf.dat, buf.length);
- if(ret < 0)
- return -1;
-
- if (options & KOPT_DO_MUTUAL) {
- char tmp[4];
- u_int32_t len;
- char inst[INST_SZ];
-
- ret = krb_net_read (fd, tmp, 4);
- if (ret < 0)
- return -1;
-
- krb_get_int (tmp, &len, 4, 0);
- if (len == 0xFFFFFFFF || len > sizeof(buf.dat))
- return KFAILURE;
- buf.length = len;
- ret = krb_net_read (fd, buf.dat, len);
- if (ret < 0)
- return -1;
-
- if (options & KOPT_DONT_CANON)
- strncpy (inst, instance, sizeof(inst));
- else
- strncpy (inst, krb_get_phost(instance), sizeof(inst));
-
- ret = krb_get_cred (service, inst, realm, cred);
- if (ret != KSUCCESS)
- return ret;
-
- des_key_sched(&cred->session, schedule);
-
- ret = krb_check_auth (&buf, checksum, msg_data, &cred->session,
- schedule, laddr, faddr);
- if (ret != KSUCCESS)
- return ret;
- }
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/sizetest.c b/crypto/kerberosIV/lib/krb/sizetest.c
deleted file mode 100644
index d64bbeb88ecc..000000000000
--- a/crypto/kerberosIV/lib/krb/sizetest.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "krb_locl.h"
-
-RCSID("$Id: sizetest.c,v 1.5 1996/11/15 18:39:19 bg Exp $");
-
-static
-void
-err(const char *msg)
-{
- fputs(msg, stderr);
- exit(1);
-}
-
-int
-main()
-{
- if (sizeof(u_int8_t) < 1)
- err("sizeof(u_int8_t) is smaller than 1 byte\n");
- if (sizeof(u_int16_t) < 2)
- err("sizeof(u_int16_t) is smaller than 2 bytes\n");
- if (sizeof(u_int32_t) < 4)
- err("sizeof(u_int32_t) is smaller than 4 bytes\n");
-
- if (sizeof(u_int8_t) > 1)
- fputs("warning: sizeof(u_int8_t) is larger than 1 byte, "
- "some stuff may not work properly!\n", stderr);
-
- {
- u_int8_t u = 1;
- int i;
- for (i = 0; u != 0 && i < 100; i++)
- u <<= 1;
-
- if (i < 8)
- err("u_int8_t is smaller than 8 bits\n");
- else if (i > 8)
- fputs("warning: u_int8_t is larger than 8 bits, "
- "some stuff may not work properly!\n", stderr);
- }
-
- exit(0);
-}
diff --git a/crypto/kerberosIV/lib/krb/stime.c b/crypto/kerberosIV/lib/krb/stime.c
deleted file mode 100644
index ec57d8fd301b..000000000000
--- a/crypto/kerberosIV/lib/krb/stime.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * $Id: stime.c,v 1.6 1997/05/02 14:29:20 assar Exp $
- *
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: stime.c,v 1.6 1997/05/02 14:29:20 assar Exp $");
-
-/*
- * Given a pointer to a long containing the number of seconds
- * since the beginning of time (midnight 1 Jan 1970 GMT), return
- * a string containing the local time in the form:
- *
- * "25-Jan-1988 10:17:56"
- */
-
-const char *
-krb_stime(time_t *t)
-{
- static char st[40];
- struct tm *tm;
-
- tm = localtime(t);
- snprintf(st, sizeof(st),
- "%2d-%s-%04d %02d:%02d:%02d",tm->tm_mday,
- month_sname(tm->tm_mon + 1),tm->tm_year + 1900,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
- return st;
-}
diff --git a/crypto/kerberosIV/lib/krb/str2key.c b/crypto/kerberosIV/lib/krb/str2key.c
deleted file mode 100644
index 2b00fc176eda..000000000000
--- a/crypto/kerberosIV/lib/krb/str2key.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* This defines the Andrew string_to_key function. It accepts a password
- * string as input and converts its via a one-way encryption algorithm to a DES
- * encryption key. It is compatible with the original Andrew authentication
- * service password database.
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: str2key.c,v 1.10 1997/03/23 03:53:19 joda Exp $");
-
-static void
-mklower(char *s)
-{
- for (; *s; s++)
- if ('A' <= *s && *s <= 'Z')
- *s = *s - 'A' + 'a';
-}
-
-/*
- * Short passwords, i.e 8 characters or less.
- */
-static void
-afs_cmu_StringToKey (char *str, char *cell, des_cblock *key)
-{
- char password[8+1]; /* crypt is limited to 8 chars anyway */
- int i;
- int passlen;
-
- memset (key, 0, sizeof(key));
- memset(password, 0, sizeof(password));
-
- strncpy (password, cell, 8);
- passlen = strlen (str);
- if (passlen > 8) passlen = 8;
-
- for (i=0; i<passlen; i++)
- password[i] = str[i] ^ cell[i]; /* make sure cell is zero padded */
-
- for (i=0; i<8; i++)
- if (password[i] == '\0') password[i] = 'X';
-
- /* crypt only considers the first 8 characters of password but for some
- reason returns eleven characters of result (plus the two salt chars). */
- strncpy((char *)key, (char *)crypt(password, "#~") + 2, sizeof(des_cblock));
-
- /* parity is inserted into the LSB so leftshift each byte up one bit. This
- allows ascii characters with a zero MSB to retain as much significance
- as possible. */
- { char *keybytes = (char *)key;
- unsigned int temp;
-
- for (i = 0; i < 8; i++) {
- temp = (unsigned int) keybytes[i];
- keybytes[i] = (unsigned char) (temp << 1);
- }
- }
- des_fixup_key_parity (key);
-}
-
-/*
- * Long passwords, i.e 9 characters or more.
- */
-static void
-afs_transarc_StringToKey (char *str, char *cell, des_cblock *key)
-{
- des_key_schedule schedule;
- des_cblock temp_key;
- des_cblock ivec;
- char password[512];
- int passlen;
-
- strncpy (password, str, sizeof(password));
- if ((passlen = strlen (password)) < sizeof(password)-1)
- strncat (password, cell, sizeof(password)-passlen);
- if ((passlen = strlen(password)) > sizeof(password)) passlen = sizeof(password);
-
- memcpy(&ivec, "kerberos", 8);
- memcpy(&temp_key, "kerberos", 8);
- des_fixup_key_parity (&temp_key);
- des_key_sched (&temp_key, schedule);
- des_cbc_cksum ((des_cblock *)password, &ivec, passlen, schedule, &ivec);
-
- memcpy(&temp_key, &ivec, 8);
- des_fixup_key_parity (&temp_key);
- des_key_sched (&temp_key, schedule);
- des_cbc_cksum ((des_cblock *)password, key, passlen, schedule, &ivec);
-
- des_fixup_key_parity (key);
-}
-
-void
-afs_string_to_key(char *str, char *cell, des_cblock *key)
-{
- char realm[REALM_SZ+1];
- strncpy(realm, cell, REALM_SZ);
- realm[REALM_SZ] = 0;
- mklower(realm);
-
- if (strlen(str) > 8)
- afs_transarc_StringToKey (str, realm, key);
- else
- afs_cmu_StringToKey (str, realm, key);
-}
diff --git a/crypto/kerberosIV/lib/krb/swab.c b/crypto/kerberosIV/lib/krb/swab.c
deleted file mode 100644
index d68ce3d52246..000000000000
--- a/crypto/kerberosIV/lib/krb/swab.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: swab.c,v 1.4 1997/04/01 08:18:45 joda Exp $");
-#endif
-
-#ifndef HAVE_SWAB
-void
-swab (char *from, char *to, int nbytes)
-{
- while(nbytes >= 2) {
- *(to + 1) = *from;
- *to = *(from + 1);
- to += 2;
- from += 2;
- nbytes -= 2;
- }
-}
-#endif
diff --git a/crypto/kerberosIV/lib/krb/tf_util.c b/crypto/kerberosIV/lib/krb/tf_util.c
deleted file mode 100644
index a196448e1f16..000000000000
--- a/crypto/kerberosIV/lib/krb/tf_util.c
+++ /dev/null
@@ -1,645 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: tf_util.c,v 1.24 1997/04/20 06:24:32 assar Exp $");
-
-
-#define TOO_BIG -1
-#define TF_LCK_RETRY ((unsigned)2) /* seconds to sleep before
- * retry if ticket file is
- * locked */
-#define TF_LCK_RETRY_COUNT (50) /* number of retries */
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-/*
- * fd must be initialized to something that won't ever occur as a real
- * file descriptor. Since open(2) returns only non-negative numbers as
- * valid file descriptors, and tf_init always stuffs the return value
- * from open in here even if it is an error flag, we must
- * a. Initialize fd to a negative number, to indicate that it is
- * not initially valid.
- * b. When checking for a valid fd, assume that negative values
- * are invalid (ie. when deciding whether tf_init has been
- * called.)
- * c. In tf_close, be sure it gets reinitialized to a negative
- * number.
- */
-static int fd = -1;
-static int curpos; /* Position in tfbfr */
-static int lastpos; /* End of tfbfr */
-static char tfbfr[BUFSIZ]; /* Buffer for ticket data */
-
-static int tf_gets(char *s, int n);
-static int tf_read(void *s, int n);
-
-/*
- * This file contains routines for manipulating the ticket cache file.
- *
- * The ticket file is in the following format:
- *
- * principal's name (null-terminated string)
- * principal's instance (null-terminated string)
- * CREDENTIAL_1
- * CREDENTIAL_2
- * ...
- * CREDENTIAL_n
- * EOF
- *
- * Where "CREDENTIAL_x" consists of the following fixed-length
- * fields from the CREDENTIALS structure (see "krb.h"):
- *
- * char service[ANAME_SZ]
- * char instance[INST_SZ]
- * char realm[REALM_SZ]
- * C_Block session
- * int lifetime
- * int kvno
- * KTEXT_ST ticket_st
- * u_int32_t issue_date
- *
- * Short description of routines:
- *
- * tf_init() opens the ticket file and locks it.
- *
- * tf_get_pname() returns the principal's name.
- *
- * tf_put_pname() writes the principal's name to the ticket file.
- *
- * tf_get_pinst() returns the principal's instance (may be null).
- *
- * tf_put_pinst() writes the instance.
- *
- * tf_get_cred() returns the next CREDENTIALS record.
- *
- * tf_save_cred() appends a new CREDENTIAL record to the ticket file.
- *
- * tf_close() closes the ticket file and releases the lock.
- *
- * tf_gets() returns the next null-terminated string. It's an internal
- * routine used by tf_get_pname(), tf_get_pinst(), and tf_get_cred().
- *
- * tf_read() reads a given number of bytes. It's an internal routine
- * used by tf_get_cred().
- */
-
-/*
- * tf_init() should be called before the other ticket file routines.
- * It takes the name of the ticket file to use, "tf_name", and a
- * read/write flag "rw" as arguments.
- *
- * It tries to open the ticket file, checks the mode, and if everything
- * is okay, locks the file. If it's opened for reading, the lock is
- * shared. If it's opened for writing, the lock is exclusive.
- *
- * Returns KSUCCESS if all went well, otherwise one of the following:
- *
- * NO_TKT_FIL - file wasn't there
- * TKT_FIL_ACC - file was in wrong mode, etc.
- * TKT_FIL_LCK - couldn't lock the file, even after a retry
- */
-
-int
-tf_init(char *tf_name, int rw)
-{
- /* Unix implementation */
- int wflag;
- struct stat stat_buf;
- int i_retry;
-
- switch (rw) {
- case R_TKT_FIL:
- wflag = 0;
- break;
- case W_TKT_FIL:
- wflag = 1;
- break;
- default:
- if (krb_debug)
- krb_warning("tf_init: illegal parameter\n");
- return TKT_FIL_ACC;
- }
- if (lstat(tf_name, &stat_buf) < 0)
- switch (errno) {
- case ENOENT:
- return NO_TKT_FIL;
- default:
- return TKT_FIL_ACC;
- }
- /* The old code tried to guess when the calling program was
- * running set-uid, this is now removed - the kerberos library
- * does not (or shouldn't) know anything about user-ids.
-
- * All library functions now assume that the right userids are set
- * upon entry, therefore there is no need to test permissions like
- * before. If the file is openable, just open it.
- */
-
- if(!S_ISREG(stat_buf.st_mode))
- return TKT_FIL_ACC;
-
-
- /*
- * If "wflag" is set, open the ticket file in append-writeonly mode
- * and lock the ticket file in exclusive mode. If unable to lock
- * the file, sleep and try again. If we fail again, return with the
- * proper error message.
- */
-
- curpos = sizeof(tfbfr);
-
-
- if (wflag) {
- fd = open(tf_name, O_RDWR | O_BINARY, 0600);
- if (fd < 0) {
- return TKT_FIL_ACC;
- }
- for (i_retry = 0; i_retry < TF_LCK_RETRY_COUNT; i_retry++) {
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
- if (krb_debug)
- krb_warning("tf_init: retry %d of write lock of `%s'.\n",
- i_retry, tf_name);
- sleep (TF_LCK_RETRY);
- } else {
- return KSUCCESS; /* all done */
- }
- }
- close (fd);
- fd = -1;
- return TKT_FIL_LCK;
- }
- /*
- * Otherwise "wflag" is not set and the ticket file should be opened
- * for read-only operations and locked for shared access.
- */
-
- fd = open(tf_name, O_RDONLY | O_BINARY, 0600);
- if (fd < 0) {
- return TKT_FIL_ACC;
- }
-
- for (i_retry = 0; i_retry < TF_LCK_RETRY_COUNT; i_retry++) {
- if (k_flock(fd, K_LOCK_SH | K_LOCK_NB) < 0) {
- if (krb_debug)
- krb_warning("tf_init: retry %d of read lock of `%s'.\n",
- i_retry, tf_name);
- sleep (TF_LCK_RETRY);
- } else {
- return KSUCCESS; /* all done */
- }
- }
- /* failure */
- close(fd);
- fd = -1;
- return TKT_FIL_LCK;
-}
-
-/*
- * tf_create() should be called when creating a new ticket file.
- * The only argument is the name of the ticket file.
- * After calling this, it should be possible to use other tf_* functions.
- *
- * New algoritm for creating ticket file:
- * 1. try to erase contents of existing file.
- * 2. try to remove old file.
- * 3. try to open with O_CREAT and O_EXCL
- * 4. if this fails, someone has created a file in between 1 and 2 and
- * we should fail. Otherwise, all is wonderful.
- */
-
-int
-tf_create(char *tf_name)
-{
- struct stat statbuf;
- char garbage[BUFSIZ];
-
- fd = open(tf_name, O_RDWR | O_BINARY, 0);
- if (fd >= 0) {
- if (fstat (fd, &statbuf) == 0) {
- int i;
-
- for (i = 0; i < statbuf.st_size; i += sizeof(garbage))
- write (fd, garbage, sizeof(garbage));
- }
- close (fd);
- }
-
- if (unlink (tf_name) && errno != ENOENT)
- return TKT_FIL_ACC;
-
- fd = open(tf_name, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
- if (fd < 0)
- return TKT_FIL_ACC;
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
- sleep(TF_LCK_RETRY);
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
- close(fd);
- fd = -1;
- return TKT_FIL_LCK;
- }
- }
- return KSUCCESS;
-}
-
-/*
- * tf_get_pname() reads the principal's name from the ticket file. It
- * should only be called after tf_init() has been called. The
- * principal's name is filled into the "p" parameter. If all goes well,
- * KSUCCESS is returned. If tf_init() wasn't called, TKT_FIL_INI is
- * returned. If the name was null, or EOF was encountered, or the name
- * was longer than ANAME_SZ, TKT_FIL_FMT is returned.
- */
-
-int
-tf_get_pname(char *p)
-{
- if (fd < 0) {
- if (krb_debug)
- krb_warning("tf_get_pname called before tf_init.\n");
- return TKT_FIL_INI;
- }
- if (tf_gets(p, ANAME_SZ) < 2) /* can't be just a null */
- {
- if (krb_debug)
- krb_warning ("tf_get_pname: pname < 2.\n");
- return TKT_FIL_FMT;
- }
- return KSUCCESS;
-}
-
-/*
- * tf_put_pname() sets the principal's name in the ticket file. Call
- * after tf_create().
- */
-
-int
-tf_put_pname(char *p)
-{
- unsigned count;
-
- if (fd < 0) {
- if (krb_debug)
- krb_warning("tf_put_pname called before tf_create.\n");
- return TKT_FIL_INI;
- }
- count = strlen(p)+1;
- if (write(fd,p,count) != count)
- return(KFAILURE);
- return KSUCCESS;
-}
-
-/*
- * tf_get_pinst() reads the principal's instance from a ticket file.
- * It should only be called after tf_init() and tf_get_pname() have been
- * called. The instance is filled into the "inst" parameter. If all
- * goes well, KSUCCESS is returned. If tf_init() wasn't called,
- * TKT_FIL_INI is returned. If EOF was encountered, or the instance
- * was longer than ANAME_SZ, TKT_FIL_FMT is returned. Note that the
- * instance may be null.
- */
-
-int
-tf_get_pinst(char *inst)
-{
- if (fd < 0) {
- if (krb_debug)
- krb_warning("tf_get_pinst called before tf_init.\n");
- return TKT_FIL_INI;
- }
- if (tf_gets(inst, INST_SZ) < 1)
- {
- if (krb_debug)
- krb_warning("tf_get_pinst: inst_sz < 1.\n");
- return TKT_FIL_FMT;
- }
- return KSUCCESS;
-}
-
-/*
- * tf_put_pinst writes the principal's instance to the ticket file.
- * Call after tf_create.
- */
-
-int
-tf_put_pinst(char *inst)
-{
- unsigned count;
-
- if (fd < 0) {
- if (krb_debug)
- krb_warning("tf_put_pinst called before tf_create.\n");
- return TKT_FIL_INI;
- }
- count = strlen(inst)+1;
- if (write(fd,inst,count) != count)
- return(KFAILURE);
- return KSUCCESS;
-}
-
-/*
- * tf_get_cred() reads a CREDENTIALS record from a ticket file and fills
- * in the given structure "c". It should only be called after tf_init(),
- * tf_get_pname(), and tf_get_pinst() have been called. If all goes well,
- * KSUCCESS is returned. Possible error codes are:
- *
- * TKT_FIL_INI - tf_init wasn't called first
- * TKT_FIL_FMT - bad format
- * EOF - end of file encountered
- */
-
-int
-tf_get_cred(CREDENTIALS *c)
-{
- KTEXT ticket = &c->ticket_st; /* pointer to ticket */
- int k_errno;
-
- if (fd < 0) {
- if (krb_debug)
- krb_warning ("tf_get_cred called before tf_init.\n");
- return TKT_FIL_INI;
- }
- if ((k_errno = tf_gets(c->service, SNAME_SZ)) < 2)
- switch (k_errno) {
- case TOO_BIG:
- if (krb_debug)
- krb_warning("tf_get_cred: too big service cred.\n");
- case 1: /* can't be just a null */
- tf_close();
- if (krb_debug)
- krb_warning("tf_get_cred: null service cred.\n");
- return TKT_FIL_FMT;
- case 0:
- return EOF;
- }
- if ((k_errno = tf_gets(c->instance, INST_SZ)) < 1)
- switch (k_errno) {
- case TOO_BIG:
- if (krb_debug)
- krb_warning ("tf_get_cred: too big instance cred.\n");
- return TKT_FIL_FMT;
- case 0:
- return EOF;
- }
- if ((k_errno = tf_gets(c->realm, REALM_SZ)) < 2)
- switch (k_errno) {
- case TOO_BIG:
- if (krb_debug)
- krb_warning ("tf_get_cred: too big realm cred.\n");
- case 1: /* can't be just a null */
- tf_close();
- if (krb_debug)
- krb_warning ("tf_get_cred: null realm cred.\n");
- return TKT_FIL_FMT;
- case 0:
- return EOF;
- }
- if (
- tf_read((c->session), DES_KEY_SZ) < 1 ||
- tf_read(&(c->lifetime), sizeof(c->lifetime)) < 1 ||
- tf_read(&(c->kvno), sizeof(c->kvno)) < 1 ||
- tf_read(&(ticket->length), sizeof(ticket->length))
- < 1 ||
- /* don't try to read a silly amount into ticket->dat */
- ticket->length > MAX_KTXT_LEN ||
- tf_read((ticket->dat), ticket->length) < 1 ||
- tf_read(&(c->issue_date), sizeof(c->issue_date)) < 1
- ) {
- tf_close();
- if (krb_debug)
- krb_warning ("tf_get_cred: failed tf_read.\n");
- return TKT_FIL_FMT;
- }
- return KSUCCESS;
-}
-
-/*
- * tf_close() closes the ticket file and sets "fd" to -1. If "fd" is
- * not a valid file descriptor, it just returns. It also clears the
- * buffer used to read tickets.
- *
- * The return value is not defined.
- */
-
-void
-tf_close(void)
-{
- if (!(fd < 0)) {
- k_flock(fd, K_LOCK_UN);
- close(fd);
- fd = -1; /* see declaration of fd above */
- }
- memset(tfbfr, 0, sizeof(tfbfr));
-}
-
-/*
- * tf_gets() is an internal routine. It takes a string "s" and a count
- * "n", and reads from the file until either it has read "n" characters,
- * or until it reads a null byte. When finished, what has been read exists
- * in "s". If it encounters EOF or an error, it closes the ticket file.
- *
- * Possible return values are:
- *
- * n the number of bytes read (including null terminator)
- * when all goes well
- *
- * 0 end of file or read error
- *
- * TOO_BIG if "count" characters are read and no null is
- * encountered. This is an indication that the ticket
- * file is seriously ill.
- */
-
-static int
-tf_gets(char *s, int n)
-{
- int count;
-
- if (fd < 0) {
- if (krb_debug)
- krb_warning ("tf_gets called before tf_init.\n");
- return TKT_FIL_INI;
- }
- for (count = n - 1; count > 0; --count) {
- if (curpos >= sizeof(tfbfr)) {
- lastpos = read(fd, tfbfr, sizeof(tfbfr));
- curpos = 0;
- }
- if (curpos == lastpos) {
- tf_close();
- return 0;
- }
- *s = tfbfr[curpos++];
- if (*s++ == '\0')
- return (n - count);
- }
- tf_close();
- return TOO_BIG;
-}
-
-/*
- * tf_read() is an internal routine. It takes a string "s" and a count
- * "n", and reads from the file until "n" bytes have been read. When
- * finished, what has been read exists in "s". If it encounters EOF or
- * an error, it closes the ticket file.
- *
- * Possible return values are:
- *
- * n the number of bytes read when all goes well
- *
- * 0 on end of file or read error
- */
-
-static int
-tf_read(void *v, int n)
-{
- char *s = (char *)v;
- int count;
-
- for (count = n; count > 0; --count) {
- if (curpos >= sizeof(tfbfr)) {
- lastpos = read(fd, tfbfr, sizeof(tfbfr));
- curpos = 0;
- }
- if (curpos == lastpos) {
- tf_close();
- return 0;
- }
- *s++ = tfbfr[curpos++];
- }
- return n;
-}
-
-/*
- * tf_save_cred() appends an incoming ticket to the end of the ticket
- * file. You must call tf_init() before calling tf_save_cred().
- *
- * The "service", "instance", and "realm" arguments specify the
- * server's name; "session" contains the session key to be used with
- * the ticket; "kvno" is the server key version number in which the
- * ticket is encrypted, "ticket" contains the actual ticket, and
- * "issue_date" is the time the ticket was requested (local host's time).
- *
- * Returns KSUCCESS if all goes well, TKT_FIL_INI if tf_init() wasn't
- * called previously, and KFAILURE for anything else that went wrong.
- */
-
-int
-tf_save_cred(char *service, /* Service name */
- char *instance, /* Instance */
- char *realm, /* Auth domain */
- unsigned char *session, /* Session key */
- int lifetime, /* Lifetime */
- int kvno, /* Key version number */
- KTEXT ticket, /* The ticket itself */
- u_int32_t issue_date) /* The issue time */
-{
- int count; /* count for write */
-
- if (fd < 0) { /* fd is ticket file as set by tf_init */
- if (krb_debug)
- krb_warning ("tf_save_cred called before tf_init.\n");
- return TKT_FIL_INI;
- }
- /* Find the end of the ticket file */
- lseek(fd, 0L, SEEK_END);
-
- /* Write the ticket and associated data */
- /* Service */
- count = strlen(service) + 1;
- if (write(fd, service, count) != count)
- goto bad;
- /* Instance */
- count = strlen(instance) + 1;
- if (write(fd, instance, count) != count)
- goto bad;
- /* Realm */
- count = strlen(realm) + 1;
- if (write(fd, realm, count) != count)
- goto bad;
- /* Session key */
- if (write(fd, session, 8) != 8)
- goto bad;
- /* Lifetime */
- if (write(fd, &lifetime, sizeof(int)) != sizeof(int))
- goto bad;
- /* Key vno */
- if (write(fd, &kvno, sizeof(int)) != sizeof(int))
- goto bad;
- /* Tkt length */
- if (write(fd, &(ticket->length), sizeof(int)) !=
- sizeof(int))
- goto bad;
- /* Ticket */
- count = ticket->length;
- if (write(fd, ticket->dat, count) != count)
- goto bad;
- /* Issue date */
- if (write(fd, &issue_date, sizeof(issue_date)) != sizeof(issue_date))
- goto bad;
-
- return (KSUCCESS);
-bad:
- return (KFAILURE);
-}
-
-int
-tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
-{
- int ret;
- ret = tf_create(tkt_string());
- if (ret != KSUCCESS)
- return ret;
-
- if (tf_put_pname(pname) != KSUCCESS ||
- tf_put_pinst(pinst) != KSUCCESS) {
- tf_close();
- return INTK_ERR;
- }
-
- ret = tf_save_cred(cred->service, cred->instance, cred->realm,
- cred->session, cred->lifetime, cred->kvno,
- &cred->ticket_st, cred->issue_date);
- tf_close();
- return ret;
-}
-
-int
-in_tkt(char *pname, char *pinst)
-{
- int ret;
-
- ret = tf_create (tkt_string());
- if (ret != KSUCCESS)
- return ret;
-
- if (tf_put_pname(pname) != KSUCCESS ||
- tf_put_pinst(pinst) != KSUCCESS) {
- tf_close();
- return INTK_ERR;
- }
-
- tf_close();
- return KSUCCESS;
-}
diff --git a/crypto/kerberosIV/lib/krb/ticket_memory.c b/crypto/kerberosIV/lib/krb/ticket_memory.c
deleted file mode 100644
index 04e20b648d66..000000000000
--- a/crypto/kerberosIV/lib/krb/ticket_memory.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/* ticket_memory.c - Storage for tickets in memory
- * Author: d93-jka@nada.kth.se - June 1996
- */
-
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-#include "krb_locl.h"
-#include "ticket_memory.h"
-
-RCSID("$Id: ticket_memory.c,v 1.9 1997/04/20 18:07:36 assar Exp $");
-
-void msg(char *text, int error);
-
-/* Global variables for memory mapping. */
-HANDLE SharedMemoryHandle;
-tktmem *SharedMemory;
-
-static int CredIndex = -1;
-
-int
-newTktMem(const char *tf_name)
-{
- if(!SharedMemory)
- {
- unsigned int MemorySize = sizeof(tktmem);
- unsigned int MemorySizeHi = sizeof(tktmem)>>16;
- unsigned int MemorySizeLo = MemorySize&0xFFFF;
- SharedMemoryHandle = CreateFileMapping((HANDLE)(int)-1, 0,
- PAGE_READWRITE,
- MemorySizeHi, MemorySizeLo,
- "krb_memory");
-
- if(!SharedMemoryHandle)
- {
- msg("Could not create shared memory.", GetLastError());
- return KFAILURE;
- }
-
- SharedMemory = MapViewOfFile(SharedMemoryHandle,
- FILE_MAP_WRITE, 0, 0, 0);
- if(!SharedMemory)
- {
- msg("Unable to alloc shared memory.", GetLastError());
- return KFAILURE;
- }
- if(GetLastError() != ERROR_ALREADY_EXISTS)
- {
- if(tf_name)
- strcpy(SharedMemory->tmname, tf_name);
- SharedMemory->last_cred_no = 0;
- }
- }
-
- CredIndex = 0;
- return KSUCCESS;
-}
-
-int
-freeTktMem(const char *tf_name)
-{
- if(SharedMemory)
- {
- UnmapViewOfFile(SharedMemory);
- CloseHandle(SharedMemoryHandle);
- }
- return KSUCCESS;
-}
-
-
-
-tktmem *
-getTktMem(const char *tf_name)
-{
- return SharedMemory;
-}
-
-void
-firstCred(void)
-{
- if(getTktMem(0)->last_cred_no > 0)
- CredIndex = 0;
- else
- CredIndex = -1;
-}
-
-int
-nextCredIndex(void)
-{
- const tktmem *mem;
- int last;
- mem = getTktMem(0);
- last = mem->last_cred_no;
- if(CredIndex >= 0 && CredIndex < last )
- return CredIndex++;
- else
- return CredIndex = -1;
-}
-
-int
-currCredIndex(void)
-{
- const tktmem *mem;
- int last;
- mem = getTktMem(0);
- last = mem->last_cred_no;
- if(CredIndex >= 0 && CredIndex < last)
- return CredIndex;
- else
- return CredIndex = -1;
-}
-
-int
-nextFreeIndex(void)
-{
- tktmem *mem = getTktMem(0);
- if(mem->last_cred_no > CRED_VEC_SZ)
- return -1;
- else
- return mem->last_cred_no++;
-}
-
-/*
- * in_tkt() is used to initialize the ticket store. It creates the
- * file to contain the tickets and writes the given user's name "pname"
- * and instance "pinst" in the file. in_tkt() returns KSUCCESS on
- * success, or KFAILURE if something goes wrong.
- */
-
-int
-in_tkt(char *pname, char *pinst)
-{
- /* Here goes code to initialize shared memory, to store tickets in. */
- /* Implemented somewhere else. */
- return KFAILURE;
-}
-
-/*
- * dest_tkt() is used to destroy the ticket store upon logout.
- * If the ticket file does not exist, dest_tkt() returns RET_TKFIL.
- * Otherwise the function returns RET_OK on success, KFAILURE on
- * failure.
- *
- * The ticket file (TKT_FILE) is defined in "krb.h".
- */
-
-int
-dest_tkt(void)
-{
- /* Here goes code to destroy tickets in shared memory. */
- /* Not implemented yet. */
- return KFAILURE;
-}
-
-/* Short description of routines:
- *
- * tf_init() opens the ticket file and locks it.
- *
- * tf_get_pname() returns the principal's name.
- *
- * tf_put_pname() writes the principal's name to the ticket file.
- *
- * tf_get_pinst() returns the principal's instance (may be null).
- *
- * tf_put_pinst() writes the instance.
- *
- * tf_get_cred() returns the next CREDENTIALS record.
- *
- * tf_save_cred() appends a new CREDENTIAL record to the ticket file.
- *
- * tf_close() closes the ticket file and releases the lock.
- *
- * tf_gets() returns the next null-terminated string. It's an internal
- * routine used by tf_get_pname(), tf_get_pinst(), and tf_get_cred().
- *
- * tf_read() reads a given number of bytes. It's an internal routine
- * used by tf_get_cred().
- */
-
-/*
- * tf_init() should be called before the other ticket file routines.
- * It takes the name of the ticket file to use, "tf_name", and a
- * read/write flag "rw" as arguments.
- *
- * Returns KSUCCESS if all went well, otherwise one of the following:
- *
- * NO_TKT_FIL - file wasn't there
- * TKT_FIL_ACC - file was in wrong mode, etc.
- * TKT_FIL_LCK - couldn't lock the file, even after a retry
- */
-
-int
-tf_init(char *tf_name, int rw)
-{
- if(!getTktMem(tf_name))
- return NO_TKT_FIL;
- firstCred();
- return KSUCCESS;
-}
-
-/*
- * tf_create() should be called when creating a new ticket file.
- * The only argument is the name of the ticket file.
- * After calling this, it should be possible to use other tf_* functions.
- */
-
-int
-tf_create(char *tf_name)
-{
- if(newTktMem(tf_name) != KSUCCESS)
- return NO_TKT_FIL;
- return KSUCCESS;
-}
-
-/*
- * tf_get_pname() reads the principal's name from the ticket file. It
- * should only be called after tf_init() has been called. The
- * principal's name is filled into the "p" parameter. If all goes well,
- * KSUCCESS is returned. If tf_init() wasn't called, TKT_FIL_INI is
- * returned. If the name was null, or EOF was encountered, or the name
- * was longer than ANAME_SZ, TKT_FIL_FMT is returned.
- */
-
-int
-tf_get_pname(char *p)
-{
- tktmem *TktStore;
-
- if(!(TktStore = getTktMem(0)))
- return KFAILURE;
- if(!TktStore->pname)
- return KFAILURE;
- strcpy(p, TktStore->pname);
- return KSUCCESS;
-}
-
-/*
- * tf_put_pname() sets the principal's name in the ticket file. Call
- * after tf_create().
- */
-
-int
-tf_put_pname(char *p)
-{
- tktmem *TktStore;
-
- if(!(TktStore = getTktMem(0)))
- return KFAILURE;
- if(!TktStore->pname)
- return KFAILURE;
- strcpy(TktStore->pname, p);
- return KSUCCESS;
-}
-
-/*
- * tf_get_pinst() reads the principal's instance from a ticket file.
- * It should only be called after tf_init() and tf_get_pname() have been
- * called. The instance is filled into the "inst" parameter. If all
- * goes well, KSUCCESS is returned. If tf_init() wasn't called,
- * TKT_FIL_INI is returned. If EOF was encountered, or the instance
- * was longer than ANAME_SZ, TKT_FIL_FMT is returned. Note that the
- * instance may be null.
- */
-
-int
-tf_get_pinst(char *inst)
-{
- tktmem *TktStore;
-
- if(!(TktStore = getTktMem(0)))
- return KFAILURE;
- if(!TktStore->pinst)
- return KFAILURE;
- strcpy(inst, TktStore->pinst);
- return KSUCCESS;
-}
-
-/*
- * tf_put_pinst writes the principal's instance to the ticket file.
- * Call after tf_create.
- */
-
-int
-tf_put_pinst(char *inst)
-{
- tktmem *TktStore;
-
- if(!(TktStore = getTktMem(0)))
- return KFAILURE;
- if(!TktStore->pinst)
- return KFAILURE;
- strcpy(TktStore->pinst, inst);
- return KSUCCESS;
-}
-
-/*
- * tf_get_cred() reads a CREDENTIALS record from a ticket file and fills
- * in the given structure "c". It should only be called after tf_init(),
- * tf_get_pname(), and tf_get_pinst() have been called. If all goes well,
- * KSUCCESS is returned. Possible error codes are:
- *
- * TKT_FIL_INI - tf_init wasn't called first
- * TKT_FIL_FMT - bad format
- * EOF - end of file encountered
- */
-
-int
-tf_get_cred(CREDENTIALS *c)
-{
- int index;
- CREDENTIALS *cred;
- tktmem *TktStore;
-
- if(!(TktStore = getTktMem(0)))
- return KFAILURE;
- if((index = nextCredIndex()) == -1)
- return EOF;
- if(!(cred = TktStore->cred_vec+index))
- return KFAILURE;
- if(!c)
- return KFAILURE;
- memcpy(c, cred, sizeof(*c));
- return KSUCCESS;
-}
-
-/*
- * tf_close() closes the ticket file and sets "fd" to -1. If "fd" is
- * not a valid file descriptor, it just returns. It also clears the
- * buffer used to read tickets.
- */
-
-void
-tf_close(void)
-{
-}
-
-/*
- * tf_save_cred() appends an incoming ticket to the end of the ticket
- * file. You must call tf_init() before calling tf_save_cred().
- *
- * The "service", "instance", and "realm" arguments specify the
- * server's name; "session" contains the session key to be used with
- * the ticket; "kvno" is the server key version number in which the
- * ticket is encrypted, "ticket" contains the actual ticket, and
- * "issue_date" is the time the ticket was requested (local host's time).
- *
- * Returns KSUCCESS if all goes well, TKT_FIL_INI if tf_init() wasn't
- * called previously, and KFAILURE for anything else that went wrong.
- */
-
-int
-tf_save_cred(char *service, /* Service name */
- char *instance, /* Instance */
- char *realm, /* Auth domain */
- unsigned char *session, /* Session key */
- int lifetime, /* Lifetime */
- int kvno, /* Key version number */
- KTEXT ticket, /* The ticket itself */
- u_int32_t issue_date) /* The issue time */
-{
- CREDENTIALS *cred;
- tktmem *mem = getTktMem(0);
- int last = nextFreeIndex();
-
- if(last == -1)
- return KFAILURE;
- cred = mem->cred_vec+last;
- strcpy(cred->service, service);
- strcpy(cred->instance, instance);
- strcpy(cred->realm, realm);
- strcpy(cred->session, session);
- cred->lifetime = lifetime;
- cred->kvno = kvno;
- memcpy(&(cred->ticket_st), ticket, sizeof(*ticket));
- cred->issue_date = issue_date;
- strcpy(cred->pname, mem->pname);
- strcpy(cred->pinst, mem->pinst);
- return KSUCCESS;
-}
-
-
-int
-tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
-{
- int ret;
- ret = tf_create(tkt_string());
- if (ret != KSUCCESS)
- return ret;
-
- if (tf_put_pname(pname) != KSUCCESS ||
- tf_put_pinst(pinst) != KSUCCESS) {
- tf_close();
- return INTK_ERR;
- }
-
- ret = tf_save_cred(cred->service, cred->instance, cred->realm,
- cred->session, cred->lifetime, cred->kvno,
- &cred->ticket_st, cred->issue_date);
- tf_close();
- return ret;
-}
diff --git a/crypto/kerberosIV/lib/krb/ticket_memory.h b/crypto/kerberosIV/lib/krb/ticket_memory.h
deleted file mode 100644
index e85e1a4cc6a3..000000000000
--- a/crypto/kerberosIV/lib/krb/ticket_memory.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-/* ticket_memory.h - Storage for tickets in memory
- * Author: d93-jka@nada.kth.se - June 1996
- */
-
-/* $Id: ticket_memory.h,v 1.6 1997/04/20 06:25:12 assar Exp $ */
-
-#ifndef TICKET_MEMORY_H
-#define TICKET_MEMORY_H
-
-#include "krb_locl.h"
-
-#define CRED_VEC_SZ 20
-
-typedef struct _tktmem
-{
- char tmname[64];
- char pname[ANAME_SZ]; /* Principal's name */
- char pinst[INST_SZ]; /* Principal's instance */
- int last_cred_no;
- CREDENTIALS cred_vec[CRED_VEC_SZ];
-} tktmem;
-
-int newTktMem(const char *tf_name);
-int freeTktMem(const char *tf_name);
-tktmem *getTktMem(const char *tf_name);
-void firstCred(void);
-int nextCredIndex(void);
-int currCredIndex(void);
-int nextFreeIndex(void);
-
-#endif /* TICKET_MEMORY_H */
diff --git a/crypto/kerberosIV/lib/krb/tkt_string.c b/crypto/kerberosIV/lib/krb/tkt_string.c
deleted file mode 100644
index 2914abb12dca..000000000000
--- a/crypto/kerberosIV/lib/krb/tkt_string.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: tkt_string.c,v 1.10 1997/05/02 14:54:26 assar Exp $");
-
-/*
- * This routine is used to generate the name of the file that holds
- * the user's cache of server tickets and associated session keys.
- *
- * If it is set, krb_ticket_string contains the ticket file name.
- * Otherwise, the filename is constructed as follows:
- *
- * If it is set, the environment variable "KRBTKFILE" will be used as
- * the ticket file name. Otherwise TKT_ROOT (defined in "krb.h") and
- * the user's uid are concatenated to produce the ticket file name
- * (e.g., "/tmp/tkt123"). A pointer to the string containing the ticket
- * file name is returned.
- */
-
-static char krb_ticket_string[MaxPathLen] = "";
-
-#ifndef HAVE_GETUID
-int getuid(void)
-{
- return 27;
-}
-#endif
-
-char *tkt_string(void)
-{
- char *env;
-
- if (!*krb_ticket_string) {
- if ((env = getenv("KRBTKFILE"))) {
- strncpy(krb_ticket_string, env,
- sizeof(krb_ticket_string)-1);
- krb_ticket_string[sizeof(krb_ticket_string)-1] = '\0';
- } else {
- snprintf(krb_ticket_string, sizeof(krb_ticket_string),
- "%s%u",TKT_ROOT,(unsigned)getuid());
- }
- }
- return krb_ticket_string;
-}
-
-/*
- * This routine is used to set the name of the file that holds the user's
- * cache of server tickets and associated session keys.
- *
- * The value passed in is copied into local storage.
- *
- * NOTE: This routine should be called during initialization, before other
- * Kerberos routines are called; otherwise tkt_string() above may be called
- * and return an undesired ticket file name until this routine is called.
- */
-
-void
-krb_set_tkt_string(char *val)
-{
-
- strncpy(krb_ticket_string, val, sizeof(krb_ticket_string)-1);
- krb_ticket_string[sizeof(krb_ticket_string)-1] = '\0';
-
- return;
-}
diff --git a/crypto/kerberosIV/lib/krb/unparse_name.c b/crypto/kerberosIV/lib/krb/unparse_name.c
deleted file mode 100644
index ddb938f49d53..000000000000
--- a/crypto/kerberosIV/lib/krb/unparse_name.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: unparse_name.c,v 1.7 1997/04/01 08:18:46 joda Exp $");
-
-static void
-quote_string(char *quote, char *from, char *to)
-{
- while(*from){
- if(strchr(quote, *from))
- *to++ = '\\';
- *to++ = *from++;
- }
- *to = 0;
-}
-
-/* To be compatible with old functions, we quote differently in each
- part of the principal*/
-
-char *
-krb_unparse_name_r(krb_principal *pr, char *fullname)
-{
- quote_string("'@\\", pr->name, fullname);
- if(pr->instance[0]){
- strcat(fullname, ".");
- quote_string("@\\", pr->instance, fullname + strlen(fullname));
- }
- if(pr->realm[0]){
- strcat(fullname, "@");
- quote_string("\\", pr->realm, fullname + strlen(fullname));
- }
- return fullname;
-}
-
-char *
-krb_unparse_name_long_r(char *name, char *instance, char *realm,
- char *fullname)
-{
- krb_principal pr;
- memset(&pr, 0, sizeof(pr));
- strcpy(pr.name, name);
- if(instance)
- strcpy(pr.instance, instance);
- if(realm)
- strcpy(pr.realm, realm);
- return krb_unparse_name_r(&pr, fullname);
-}
-
-char *
-krb_unparse_name(krb_principal *pr)
-{
- static char principal[MAX_K_NAME_SZ];
- krb_unparse_name_r(pr, principal);
- return principal;
-}
-
-char *
-krb_unparse_name_long(char *name, char *instance, char *realm)
-{
- krb_principal pr;
- memset(&pr, 0, sizeof(pr));
- strcpy(pr.name, name);
- if(instance)
- strcpy(pr.instance, instance);
- if(realm)
- strcpy(pr.realm, realm);
- return krb_unparse_name(&pr);
-}
diff --git a/crypto/kerberosIV/lib/krb/util.c b/crypto/kerberosIV/lib/krb/util.c
deleted file mode 100644
index 7b77bb8b0d32..000000000000
--- a/crypto/kerberosIV/lib/krb/util.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *
- * Copyright 1988 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * Miscellaneous debug printing utilities
- */
-
-#include "krb_locl.h"
-
-RCSID("$Id: util.c,v 1.6 1996/10/05 00:18:34 joda Exp $");
-
-/*
- * Print some of the contents of the given authenticator structure
- * (AUTH_DAT defined in "krb.h"). Fields printed are:
- *
- * pname, pinst, prealm, netaddr, flags, cksum, timestamp, session
- */
-
-void
-ad_print(AUTH_DAT *x)
-{
- /*
- * Print the contents of an auth_dat struct.
- */
- struct in_addr address;
- address.s_addr = x->address;
- printf("\n%s %s %s %s flags %u cksum 0x%X\n\ttkt_tm 0x%X sess_key",
- x->pname, x->pinst, x->prealm,
- inet_ntoa(address), x->k_flags,
- x->checksum, x->time_sec);
- printf("[8] =");
-#ifdef NOENCRYPTION
- placebo_cblock_print(x->session);
-#else
- des_cblock_print_file(&x->session,stdout);
-#endif
- /* skip reply for now */
-}
-
-/*
- * Print in hex the 8 bytes of the given session key.
- *
- * Printed format is: " 0x { x, x, x, x, x, x, x, x }"
- */
-
-#ifdef NOENCRYPTION
-placebo_cblock_print(x)
- des_cblock x;
-{
- unsigned char *y = (unsigned char *) x;
- int i = 0;
-
- printf(" 0x { ");
-
- while (i++ <8) {
- printf("%x",*y++);
- if (i<8) printf(", ");
- }
- printf(" }");
-}
-#endif
diff --git a/crypto/kerberosIV/lib/krb/verify_user.c b/crypto/kerberosIV/lib/krb/verify_user.c
deleted file mode 100644
index ce22b59a049c..000000000000
--- a/crypto/kerberosIV/lib/krb/verify_user.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "krb_locl.h"
-
-RCSID("$Id: verify_user.c,v 1.8 1997/04/01 08:18:46 joda Exp $");
-
-/* Verify user with password. If secure, also verify against local
- * service key, this can (usually) only be done by root.
- *
- * As a side effect, fresh tickets are obtained.
- *
- * Returns zero if ok, a positive kerberos error or -1 for system
- * errors.
- */
-
-int
-krb_verify_user(char *name, char *instance, char *realm, char *password,
- int secure, char *linstance)
-{
- int ret;
- ret = krb_get_pw_in_tkt(name, instance, realm,
- KRB_TICKET_GRANTING_TICKET,
- realm,
- DEFAULT_TKT_LIFE, password);
- if(ret != KSUCCESS)
- return ret;
-
- if(secure){
- struct hostent *hp;
- int32_t addr;
-
- KTEXT_ST ticket;
- AUTH_DAT auth;
-
- char lrealm[REALM_SZ];
- char hostname[MaxHostNameLen];
- char *phost;
-
- if (k_gethostname(hostname, sizeof(hostname)) == -1) {
- dest_tkt();
- return -1;
- }
-
- hp = gethostbyname(hostname);
- if(hp == NULL){
- dest_tkt();
- return -1;
- }
- memcpy(&addr, hp->h_addr, sizeof(addr));
-
- ret = krb_get_lrealm(lrealm, 1);
- if(ret != KSUCCESS){
- dest_tkt();
- return ret;
- }
- phost = krb_get_phost(hostname);
-
- if (linstance == NULL)
- linstance = "rcmd";
-
- ret = krb_mk_req(&ticket, linstance, phost, lrealm, 33);
- if(ret != KSUCCESS){
- dest_tkt();
- return ret;
- }
-
- ret = krb_rd_req(&ticket, linstance, phost, addr, &auth, "");
- if(ret != KSUCCESS){
- dest_tkt();
- return ret;
- }
- }
- return 0;
-}
-
diff --git a/crypto/kerberosIV/lib/roken/Makefile.in b/crypto/kerberosIV/lib/roken/Makefile.in
deleted file mode 100644
index 26f31425789d..000000000000
--- a/crypto/kerberosIV/lib/roken/Makefile.in
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# $Id: Makefile.in,v 1.34 1997/05/28 05:23:39 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-CPP = @CPP@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = # @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)roken
-#LIBEXT = @LIBEXT@ Always build archive library and don't install!
-LIBEXT = a
-LIBPREFIX = @LIBPREFIX@
-SHLIBEXT = @SHLIBEXT@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-
-SOURCES = \
- chown.c daemon.c err.c errx.c fchown.c get_window_size.c \
- getcwd.c getdtablesize.c getopt.c getusershell.c \
- hstrerror.c inaddr2str.c inet_aton.c \
- initgroups.c k_getpwnam.c k_getpwuid.c lstat.c \
- memmove.c mini_inetd.c mkstemp.c putenv.c rcmd.c setegid.c \
- setenv.c seteuid.c signal.c snprintf.c \
- strcasecmp.c strdup.c strerror.c strftime.c \
- strlwr.c strnlen.c strtok_r.c strupr.c tm2time.c \
- unsetenv.c verify.c verr.c verrx.c vwarn.c \
- vwarnx.c warn.c warnerr.c warnx.c
-
-OBJECTS = k_getpwuid.o k_getpwnam.o signal.o tm2time.o \
- verify.o inaddr2str.o mini_inetd.o get_window_size.o \
- warnerr.o snprintf.o @LIBOBJS@
-
-all: $(LIB)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
-
-install: all
-
-uninstall:
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) *.o *.a
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-$(LIBNAME).a: $(OBJECTS)
- rm -f $@
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS)
-
-$(OBJECTS): ../../include/config.h
diff --git a/crypto/kerberosIV/lib/roken/chown.c b/crypto/kerberosIV/lib/roken/chown.c
deleted file mode 100644
index 28550d982c1f..000000000000
--- a/crypto/kerberosIV/lib/roken/chown.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: chown.c,v 1.2 1997/04/01 08:18:58 joda Exp $");
-#endif
-
-#include "roken.h"
-
-int
-chown(const char *path, uid_t owner, gid_t group)
-{
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/roken/daemon.c b/crypto/kerberosIV/lib/roken/daemon.c
deleted file mode 100644
index ffab298c76b0..000000000000
--- a/crypto/kerberosIV/lib/roken/daemon.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*-
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)daemon.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-RCSID("$Id: daemon.c,v 1.2 1997/05/28 05:38:09 assar Exp $");
-
-#ifndef HAVE_DAEMON
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "roken.h"
-
-int
-daemon(nochdir, noclose)
- int nochdir, noclose;
-{
- int fd;
-
- switch (fork()) {
- case -1:
- return (-1);
- case 0:
- break;
- default:
- _exit(0);
- }
-
- if (setsid() == -1)
- return (-1);
-
- if (!nochdir)
- (void)chdir("/");
-
- if (!noclose && (fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
- (void)dup2(fd, STDIN_FILENO);
- (void)dup2(fd, STDOUT_FILENO);
- (void)dup2(fd, STDERR_FILENO);
- if (fd > 2)
- (void)close (fd);
- }
- return (0);
-}
-
-#endif /* HAVE_DAEMON */
diff --git a/crypto/kerberosIV/lib/roken/err.c b/crypto/kerberosIV/lib/roken/err.c
deleted file mode 100644
index 029faa92c4d5..000000000000
--- a/crypto/kerberosIV/lib/roken/err.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: err.c,v 1.5 1997/03/30 08:05:37 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-err(int eval, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- verr(eval, fmt, ap);
- va_end(ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/err.h b/crypto/kerberosIV/lib/roken/err.h
deleted file mode 100644
index 6f25435250b7..000000000000
--- a/crypto/kerberosIV/lib/roken/err.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: err.h,v 1.13 1997/05/02 14:29:30 assar Exp $ */
-
-#ifndef __ERR_H__
-#define __ERR_H__
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-extern const char *__progname;
-
-#if !defined(__GNUC__) && !defined(__attribute__)
-#define __attribute__(x)
-#endif
-
-void warnerr(int doexit, int eval, int doerrno, const char *fmt, va_list ap)
- __attribute__ ((format (printf, 4, 0)));
-
-void verr(int eval, const char *fmt, va_list ap)
- __attribute__ ((noreturn, format (printf, 2, 0)));
-void err(int eval, const char *fmt, ...)
- __attribute__ ((noreturn, format (printf, 2, 3)));
-void verrx(int eval, const char *fmt, va_list ap)
- __attribute__ ((noreturn, format (printf, 2, 0)));
-void errx(int eval, const char *fmt, ...)
- __attribute__ ((noreturn, format (printf, 2, 3)));
-void vwarn(const char *fmt, va_list ap)
- __attribute__ ((format (printf, 1, 0)));
-void warn(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-void vwarnx(const char *fmt, va_list ap)
- __attribute__ ((format (printf, 1, 0)));
-void warnx(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-
-#endif /* __ERR_H__ */
diff --git a/crypto/kerberosIV/lib/roken/errx.c b/crypto/kerberosIV/lib/roken/errx.c
deleted file mode 100644
index 18969d51de67..000000000000
--- a/crypto/kerberosIV/lib/roken/errx.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: errx.c,v 1.5 1997/03/30 08:05:38 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-errx(int eval, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- verrx(eval, fmt, ap);
- va_end(ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/fchown.c b/crypto/kerberosIV/lib/roken/fchown.c
deleted file mode 100644
index 2a94e3ac8704..000000000000
--- a/crypto/kerberosIV/lib/roken/fchown.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: fchown.c,v 1.2 1997/04/01 08:18:58 joda Exp $");
-#endif
-
-#include "roken.h"
-
-int
-fchown(int fd, uid_t owner, gid_t group)
-{
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/roken/get_window_size.c b/crypto/kerberosIV/lib/roken/get_window_size.c
deleted file mode 100644
index d31d18d431a8..000000000000
--- a/crypto/kerberosIV/lib/roken/get_window_size.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: get_window_size.c,v 1.4 1997/04/01 08:18:59 joda Exp $");
-#endif
-
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#if 0 /* Where were those needed? /confused */
-#ifdef HAVE_SYS_PROC_H
-#include <sys/proc.h>
-#endif
-
-#ifdef HAVE_SYS_TTY_H
-#include <sys/tty.h>
-#endif
-#endif
-
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#endif
-
-#include <roken.h>
-
-int
-get_window_size(int fd, struct winsize *wp)
-{
-#if defined(TIOCGWINSZ)
- return ioctl(fd, TIOCGWINSZ, wp);
-#elif defined(TIOCGSIZE)
- struct ttysize ts;
- int error;
-
- if ((error = ioctl(0, TIOCGSIZE, &ts)) != 0)
- return (error);
- wp->ws_row = ts.ts_lines;
- wp->ws_col = ts.ts_cols;
- wp->ws_xpixel = 0;
- wp->ws_ypixel = 0;
- return 0;
-#elif defined(HAVE__SCRSIZE)
- int dst[2];
-
- _scrsize(dst);
- wp->ws_row = dst[1];
- wp->ws_col = dst[0];
- wp->ws_xpixel = 0;
- wp->ws_ypixel = 0;
- return 0;
-#else
- return -1;
-#endif
-}
diff --git a/crypto/kerberosIV/lib/roken/getcwd.c b/crypto/kerberosIV/lib/roken/getcwd.c
deleted file mode 100644
index a27451fd9931..000000000000
--- a/crypto/kerberosIV/lib/roken/getcwd.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: getcwd.c,v 1.7 1997/04/01 08:19:00 joda Exp $");
-#endif
-
-#include <unistd.h>
-#include <sys/param.h>
-
-#include "protos.h"
-#include "roken.h"
-
-char*
-getcwd(char *path, size_t size)
-{
- char xxx[MaxPathLen];
- char *ret;
- ret = getwd(xxx);
- if(ret)
- strncpy(path, xxx, size);
- return ret;
-}
diff --git a/crypto/kerberosIV/lib/roken/getdtablesize.c b/crypto/kerberosIV/lib/roken/getdtablesize.c
deleted file mode 100644
index afd47d2b23f2..000000000000
--- a/crypto/kerberosIV/lib/roken/getdtablesize.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: getdtablesize.c,v 1.8 1997/04/20 05:51:06 assar Exp $");
-#endif
-
-#include "roken.h"
-
-#include <sys/types.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <unistd.h>
-
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-
-#ifdef HAVE_SYS_SYSCTL_H
-#include <sys/sysctl.h>
-#endif
-
-int getdtablesize(void)
-{
- int files = -1;
-#if defined(HAVE_SYSCONF) && defined(_SC_OPEN_MAX)
- files = sysconf(_SC_OPEN_MAX);
-#else /* !defined(HAVE_SYSCONF) */
-#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_NOFILE)
- struct rlimit res;
- if (getrlimit(RLIMIT_NOFILE, &res) == 0)
- files = res.rlim_cur;
-#else /* !definded(HAVE_GETRLIMIT) */
-#if defined(HAVE_SYSCTL) && defined(CTL_KERN) && defined(KERN_MAXFILES)
- int mib[2];
- size_t len;
-
- mib[0] = CTL_KERN;
- mib[1] = KERN_MAXFILES;
- len = sizeof(files);
- sysctl(&mib, 2, &files, sizeof(nfil), NULL, 0);
-#endif /* defined(HAVE_SYSCTL) */
-#endif /* !definded(HAVE_GETRLIMIT) */
-#endif /* !defined(HAVE_SYSCONF) */
-
-#ifdef OPEN_MAX
- if (files < 0)
- files = OPEN_MAX;
-#endif
-
-#ifdef NOFILE
- if (files < 0)
- files = NOFILE;
-#endif
-
- return files;
-}
diff --git a/crypto/kerberosIV/lib/roken/getopt.c b/crypto/kerberosIV/lib/roken/getopt.c
deleted file mode 100644
index fea4635fb524..000000000000
--- a/crypto/kerberosIV/lib/roken/getopt.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1987, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getopt.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#ifndef __STDC__
-#define const
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/*
- * get option letter from argument vector
- */
-int opterr = 1, /* if error message should be printed */
- optind = 1, /* index into parent argv vector */
- optopt, /* character checked for validity */
- optreset; /* reset getopt */
-char *optarg; /* argument associated with option */
-
-#define BADCH (int)'?'
-#define BADARG (int)':'
-#define EMSG ""
-
-int
-getopt(nargc, nargv, ostr)
- int nargc;
- char * const *nargv;
- const char *ostr;
-{
- static char *place = EMSG; /* option letter processing */
- char *oli; /* option letter list index */
- char *p;
-
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc || *(place = nargv[optind]) != '-') {
- place = EMSG;
- return(EOF);
- }
- if (place[1] && *++place == '-') { /* found "--" */
- ++optind;
- place = EMSG;
- return(EOF);
- }
- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- !(oli = strchr(ostr, optopt))) {
- /*
- * if the user didn't specify '-' as an option,
- * assume it means EOF.
- */
- if (optopt == (int)'-')
- return(EOF);
- if (!*place)
- ++optind;
- if (opterr && *ostr != ':') {
- if (!(p = strrchr(*nargv, '/')))
- p = *nargv;
- else
- ++p;
- fprintf(stderr, "%s: illegal option -- %c\n",
- p, optopt);
- }
- return(BADCH);
- }
- if (*++oli != ':') { /* don't need argument */
- optarg = NULL;
- if (!*place)
- ++optind;
- }
- else { /* need an argument */
- if (*place) /* no white space */
- optarg = place;
- else if (nargc <= ++optind) { /* no arg */
- place = EMSG;
- if (!(p = strrchr(*nargv, '/')))
- p = *nargv;
- else
- ++p;
- if (*ostr == ':')
- return(BADARG);
- if (opterr)
- fprintf(stderr,
- "%s: option requires an argument -- %c\n",
- p, optopt);
- return(BADCH);
- }
- else /* white space */
- optarg = nargv[optind];
- place = EMSG;
- ++optind;
- }
- return(optopt); /* dump back option letter */
-}
diff --git a/crypto/kerberosIV/lib/roken/getusershell.c b/crypto/kerberosIV/lib/roken/getusershell.c
deleted file mode 100644
index 87a48ece19b5..000000000000
--- a/crypto/kerberosIV/lib/roken/getusershell.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 1985, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-RCSID("$Id: getusershell.c,v 1.8 1997/04/20 06:18:03 assar Exp $");
-
-#ifndef HAVE_GETUSERSHELL
-
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifndef _PATH_SHELLS
-#define _PATH_SHELLS "/etc/shells"
-#endif
-
-#ifndef _PATH_BSHELL
-#define _PATH_BSHELL "/bin/sh"
-#endif
-
-#ifndef _PATH_CSHELL
-#define _PATH_CSHELL "/bin/csh"
-#endif
-
-/*
- * Local shells should NOT be added here. They should be added in
- * /etc/shells.
- */
-
-static char *okshells[] = { _PATH_BSHELL, _PATH_CSHELL, NULL };
-static char **curshell, **shells, *strings;
-static char **initshells (void);
-
-/*
- * Get a list of shells from _PATH_SHELLS, if it exists.
- */
-char *
-getusershell()
-{
- char *ret;
-
- if (curshell == NULL)
- curshell = initshells();
- ret = *curshell;
- if (ret != NULL)
- curshell++;
- return (ret);
-}
-
-void
-endusershell()
-{
-
- if (shells != NULL)
- free(shells);
- shells = NULL;
- if (strings != NULL)
- free(strings);
- strings = NULL;
- curshell = NULL;
-}
-
-void
-setusershell()
-{
-
- curshell = initshells();
-}
-
-static char **
-initshells()
-{
- char **sp, *cp;
- FILE *fp;
- struct stat statb;
-
- if (shells != NULL)
- free(shells);
- shells = NULL;
- if (strings != NULL)
- free(strings);
- strings = NULL;
- if ((fp = fopen(_PATH_SHELLS, "r")) == NULL)
- return (okshells);
- if (fstat(fileno(fp), &statb) == -1) {
- fclose(fp);
- return (okshells);
- }
- if ((strings = malloc((u_int)statb.st_size)) == NULL) {
- fclose(fp);
- return (okshells);
- }
- shells = calloc((unsigned)statb.st_size / 3, sizeof (char *));
- if (shells == NULL) {
- fclose(fp);
- free(strings);
- strings = NULL;
- return (okshells);
- }
- sp = shells;
- cp = strings;
- while (fgets(cp, MaxPathLen + 1, fp) != NULL) {
- while (*cp != '#' && *cp != '/' && *cp != '\0')
- cp++;
- if (*cp == '#' || *cp == '\0')
- continue;
- *sp++ = cp;
- while (!isspace(*cp) && *cp != '#' && *cp != '\0')
- cp++;
- *cp++ = '\0';
- }
- *sp = NULL;
- fclose(fp);
- return (shells);
-}
-#endif /* HAVE_GETUSERSHELL */
diff --git a/crypto/kerberosIV/lib/roken/hstrerror.c b/crypto/kerberosIV/lib/roken/hstrerror.c
deleted file mode 100644
index 9e47cb57dbb5..000000000000
--- a/crypto/kerberosIV/lib/roken/hstrerror.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: hstrerror.c,v 1.17 1997/06/01 03:37:25 assar Exp $");
-#endif
-
-#include "roken.h"
-
-#ifndef HAVE_HSTRERROR
-
-#include <stdio.h>
-#include <netdb.h>
-
-#ifndef HAVE_H_ERRNO
-int h_errno = -17; /* Some magic number */
-#endif
-
-#if !(defined(HAVE_H_ERRLIST) && defined(HAVE_H_NERR))
-static const char *const h_errlist[] = {
- "Resolver Error 0 (no error)",
- "Unknown host", /* 1 HOST_NOT_FOUND */
- "Host name lookup failure", /* 2 TRY_AGAIN */
- "Unknown server error", /* 3 NO_RECOVERY */
- "No address associated with name", /* 4 NO_ADDRESS */
-};
-
-static
-const
-int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
-#else
-
-#ifndef HAVE_H_ERRLIST_DECLARATION
-extern const char *h_errlist[];
-extern int h_nerr;
-#endif
-
-#endif
-
-char *
-hstrerror(int herr)
-{
- if (0 <= herr && herr < h_nerr)
- return (char *) h_errlist[herr];
- else if(herr == -17)
- return "unknown error";
- else
- return "Error number out of range (hstrerror)";
-}
-
-#endif
diff --git a/crypto/kerberosIV/lib/roken/inaddr2str.c b/crypto/kerberosIV/lib/roken/inaddr2str.c
deleted file mode 100644
index af158aa29374..000000000000
--- a/crypto/kerberosIV/lib/roken/inaddr2str.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: inaddr2str.c,v 1.6 1997/04/01 08:19:02 joda Exp $");
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#include "roken.h"
-
-/*
- * Get a verified name for `addr'.
- * If unable to find it in the DNS, return x.y.z.a
- */
-
-void
-inaddr2str(struct in_addr addr, char *s, size_t len)
-{
- struct hostent *h;
- char *p;
-
- h = gethostbyaddr ((const char *)&addr, sizeof(addr), AF_INET);
- if (h) {
- h = gethostbyname (h->h_name);
- if(h)
- while ((p = *(h->h_addr_list)++))
- if (memcmp (p, &addr, sizeof(addr)) == 0) {
- strncpy (s, h->h_name, len);
- s[len - 1] = '\0';
- return;
- }
- }
- strncpy (s, inet_ntoa (addr), len);
- s[len - 1] = '\0';
- return;
-}
diff --git a/crypto/kerberosIV/lib/roken/inet_aton.c b/crypto/kerberosIV/lib/roken/inet_aton.c
deleted file mode 100644
index c97ef744c73b..000000000000
--- a/crypto/kerberosIV/lib/roken/inet_aton.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: inet_aton.c,v 1.10 1997/05/20 19:57:03 bg Exp $");
-#endif
-
-#include "roken.h"
-
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-/* Minimal implementation of inet_aton.
- * Cannot distinguish between failure and a local broadcast address. */
-
-int
-inet_aton(const char *cp, struct in_addr *addr)
-{
- addr->s_addr = inet_addr(cp);
- return (addr->s_addr == INADDR_NONE) ? 0 : 1;
-}
diff --git a/crypto/kerberosIV/lib/roken/initgroups.c b/crypto/kerberosIV/lib/roken/initgroups.c
deleted file mode 100644
index a68aa6354aa5..000000000000
--- a/crypto/kerberosIV/lib/roken/initgroups.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: initgroups.c,v 1.2 1997/04/01 08:19:03 joda Exp $");
-#endif
-
-#include "roken.h"
-
-int
-initgroups(const char *name, gid_t basegid)
-{
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/roken/k_getpwnam.c b/crypto/kerberosIV/lib/roken/k_getpwnam.c
deleted file mode 100644
index 580b1a282888..000000000000
--- a/crypto/kerberosIV/lib/roken/k_getpwnam.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: k_getpwnam.c,v 1.6 1997/04/01 08:19:03 joda Exp $");
-#endif /* HAVE_CONFIG_H */
-
-#include "roken.h"
-#ifdef HAVE_SHADOW_H
-#include <shadow.h>
-#endif
-
-struct passwd *
-k_getpwnam (char *user)
-{
- struct passwd *p;
-
- p = getpwnam (user);
-#ifdef HAVE_GETSPNAM
- if(p)
- {
- struct spwd *spwd;
-
- spwd = getspnam (user);
- if (spwd)
- p->pw_passwd = spwd->sp_pwdp;
- endspent ();
- }
-#else
- endpwent ();
-#endif
- return p;
-}
diff --git a/crypto/kerberosIV/lib/roken/k_getpwuid.c b/crypto/kerberosIV/lib/roken/k_getpwuid.c
deleted file mode 100644
index a3a8f0437787..000000000000
--- a/crypto/kerberosIV/lib/roken/k_getpwuid.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: k_getpwuid.c,v 1.6 1997/04/01 08:19:04 joda Exp $");
-#endif /* HAVE_CONFIG_H */
-
-#include "roken.h"
-#ifdef HAVE_SHADOW_H
-#include <shadow.h>
-#endif
-
-struct passwd *
-k_getpwuid (uid_t uid)
-{
- struct passwd *p;
-
- p = getpwuid (uid);
-#ifdef HAVE_GETSPUID
- if (p)
- {
- struct spwd *spwd;
-
- spwd = getspuid (uid);
- if (spwd)
- p->pw_passwd = spwd->sp_pwdp;
- endspent ();
- }
-#else
- endpwent ();
-#endif
- return p;
-}
diff --git a/crypto/kerberosIV/lib/roken/lstat.c b/crypto/kerberosIV/lib/roken/lstat.c
deleted file mode 100644
index 881ad9aed566..000000000000
--- a/crypto/kerberosIV/lib/roken/lstat.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: lstat.c,v 1.3 1997/04/01 08:19:04 joda Exp $");
-#endif
-
-#include "roken.h"
-
-int
-lstat(const char *path, struct stat *buf)
-{
- return stat(path, buf);
-}
diff --git a/crypto/kerberosIV/lib/roken/memmove.c b/crypto/kerberosIV/lib/roken/memmove.c
deleted file mode 100644
index 315ff05a1ef0..000000000000
--- a/crypto/kerberosIV/lib/roken/memmove.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: memmove.c,v 1.5 1997/04/01 08:19:05 joda Exp $");
-#endif
-
-/*
- * memmove for systems that doesn't have it
- */
-
-#include <sys/types.h>
-
-void* memmove(void *s1, const void *s2, size_t n)
-{
- char *s=(char*)s2, *d=(char*)s1;
-
- if(d > s){
- s+=n-1;
- d+=n-1;
- while(n){
- *d--=*s--;
- n--;
- }
- }else if(d < s)
- while(n){
- *d++=*s++;
- n--;
- }
- return s1;
-}
diff --git a/crypto/kerberosIV/lib/roken/mini_inetd.c b/crypto/kerberosIV/lib/roken/mini_inetd.c
deleted file mode 100644
index ccfcfe75eaf0..000000000000
--- a/crypto/kerberosIV/lib/roken/mini_inetd.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: mini_inetd.c,v 1.10 1997/05/02 14:30:07 assar Exp $");
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#include <roken.h>
-
-void
-mini_inetd (int port)
-{
- struct sockaddr_in sa;
- int s = socket(AF_INET, SOCK_STREAM, 0);
- int s2;
- int one = 1;
- if(s < 0){
- perror("socket");
- exit(1);
- }
-#if defined(SO_REUSEADDR) && defined(HAVE_SETSOCKOPT)
- if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&one,
- sizeof(one)) < 0){
- perror("setsockopt");
- exit(1);
- }
-#endif
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_port = port;
- sa.sin_addr.s_addr = INADDR_ANY;
- if(bind(s, (struct sockaddr*)&sa, sizeof(sa)) < 0){
- perror("bind");
- exit(1);
- }
- if(listen(s, SOMAXCONN) < 0){
- perror("listen");
- exit(1);
- }
- s2 = accept(s, NULL, 0);
- if(s2 < 0){
- perror("accept");
- exit(1);
- }
- close(s);
- dup2(s2, STDIN_FILENO);
- dup2(s2, STDOUT_FILENO);
- /* dup2(s2, STDERR_FILENO); */
- close(s2);
-}
diff --git a/crypto/kerberosIV/lib/roken/mkstemp.c b/crypto/kerberosIV/lib/roken/mkstemp.c
deleted file mode 100644
index e55398a518e2..000000000000
--- a/crypto/kerberosIV/lib/roken/mkstemp.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <errno.h>
-
-RCSID("$Id: mkstemp.c,v 1.2 1997/05/25 02:36:43 joda Exp $");
-
-#ifndef HAVE_MKSTEMP
-
-int
-mkstemp(char *template)
-{
- int start, i;
- pid_t val;
- val = getpid();
- start = strlen(template) - 1;
- while(template[start] == 'X') {
- template[start] = '0' + val % 10;
- val /= 10;
- start--;
- }
-
- do{
- int fd;
- fd = open(template, O_RDWR | O_CREAT | O_EXCL, 0600);
- if(fd >= 0 || errno != EEXIST)
- return fd;
- i = start + 1;
- do{
- if(template[i] == 0)
- return -1;
- template[i]++;
- if(template[i] == '9' + 1)
- template[i] = 'a';
- if(template[i] <= 'z')
- break;
- template[i] = 'a';
- i++;
- }while(1);
- }while(1);
-}
-
-#endif
diff --git a/crypto/kerberosIV/lib/roken/putenv.c b/crypto/kerberosIV/lib/roken/putenv.c
deleted file mode 100644
index 20d5a10dadf0..000000000000
--- a/crypto/kerberosIV/lib/roken/putenv.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: putenv.c,v 1.5 1997/04/01 08:19:06 joda Exp $");
-#endif
-
-#include <stdlib.h>
-
-extern char **environ;
-
-/*
- * putenv --
- * String points to a string of the form name=value.
- *
- * Makes the value of the environment variable name equal to
- * value by altering an existing variable or creating a new one.
- */
-int putenv(const char *string)
-{
- int i;
- int len;
-
- len = string - strchr(string, '=') + 1;
-
- if(environ == NULL){
- environ = malloc(sizeof(char*));
- if(environ == NULL)
- return 1;
- environ[0] = NULL;
- }
-
- for(i = 0; environ[i]; i++)
- if(strncmp(string, environ[i], len)){
- environ[len] = string;
- return 0;
- }
- environ = realloc(environ, sizeof(char*) * (i + 1));
- if(environ == NULL)
- return 1;
- environ[i] = string;
- environ[i+1] = NULL;
- return 0;
-}
-
diff --git a/crypto/kerberosIV/lib/roken/rcmd.c b/crypto/kerberosIV/lib/roken/rcmd.c
deleted file mode 100644
index 6064d5074ac9..000000000000
--- a/crypto/kerberosIV/lib/roken/rcmd.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: rcmd.c,v 1.2 1997/04/01 08:19:06 joda Exp $");
-#endif
-
-#include "roken.h"
-#include <stdio.h>
-
-int
-rcmd(char **ahost,
- unsigned short inport,
- const char *locuser,
- const char *remuser,
- const char *cmd,
- int *fd2p)
-{
- fprintf(stderr, "Only kerberized services are implemented\n");
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/roken/roken.def b/crypto/kerberosIV/lib/roken/roken.def
deleted file mode 100644
index 13e357217546..000000000000
--- a/crypto/kerberosIV/lib/roken/roken.def
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBRARY roken
-EXPORTS
- gettimeofday
- strcasecmp
diff --git a/crypto/kerberosIV/lib/roken/roken.h b/crypto/kerberosIV/lib/roken/roken.h
deleted file mode 100644
index 1204e3e2580e..000000000000
--- a/crypto/kerberosIV/lib/roken/roken.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: roken.h,v 1.63 1997/05/28 05:38:09 assar Exp $ */
-
-#ifndef __ROKEN_H__
-#define __ROKEN_H__
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <signal.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#endif
-
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-
-#include "protos.h"
-
-#if !defined(HAVE_SETSID) && defined(HAVE__SETSID)
-#define setsid _setsid
-#endif
-
-#ifndef HAVE_PUTENV
-int putenv(const char *string);
-#endif
-
-#ifndef HAVE_SETENV
-int setenv(const char *var, const char *val, int rewrite);
-#endif
-
-#ifndef HAVE_UNSETENV
-void unsetenv(const char *name);
-#endif
-
-#ifndef HAVE_GETUSERSHELL
-char *getusershell(void);
-#endif
-
-#if !defined(__GNUC__) && !defined(__attribute__)
-#define __attribute__(x)
-#endif
-
-#ifndef HAVE_SNPRINTF
-int snprintf (char *str, size_t sz, const char *format, ...)
- __attribute__ ((format (printf, 3, 4)));
-#endif
-
-#ifndef HAVE_VSNPRINTF
-int vsnprintf (char *str, size_t sz, const char *format, va_list ap)
- __attribute__((format (printf, 3, 0)));
-#endif
-
-#ifndef HAVE_ASPRINTF
-int asprintf (char **ret, const char *format, ...)
- __attribute__ ((format (printf, 2, 3)));
-#endif
-
-#ifndef HAVE_VASPRINTF
-int vasprintf (char **ret, const char *format, va_list ap)
- __attribute__((format (printf, 2, 0)));
-#endif
-
-#ifndef HAVE_ASNPRINTF
-int asnprintf (char **ret, size_t max_sz, const char *format, ...)
- __attribute__ ((format (printf, 3, 4)));
-#endif
-
-#ifndef HAVE_VASNPRINTF
-int vasnprintf (char **ret, size_t max_sz, const char *format, va_list ap)
- __attribute__((format (printf, 3, 0)));
-#endif
-
-#ifndef HAVE_STRDUP
-char * strdup(const char *old);
-#endif
-
-#ifndef HAVE_STRLWR
-char * strlwr(char *);
-#endif
-
-#ifndef HAVE_STRNLEN
-int strnlen(char*, int);
-#endif
-
-#ifndef HAVE_STRTOK_R
-char *strtok_r(char *s1, const char *s2, char **lasts);
-#endif
-
-#ifndef HAVE_STRUPR
-char * strupr(char *);
-#endif
-
-#ifndef HAVE_GETDTABLESIZE
-int getdtablesize(void);
-#endif
-
-#if IRIX != 4 /* fix for compiler bug */
-#ifdef RETSIGTYPE
-typedef RETSIGTYPE (*SigAction)(/* int??? */);
-SigAction signal(int iSig, SigAction pAction); /* BSD compatible */
-#endif
-#endif
-
-#ifndef SIG_ERR
-#define SIG_ERR ((RETSIGTYPE (*)())-1)
-#endif
-
-#if !defined(HAVE_STRERROR) && !defined(strerror)
-char *strerror(int eno);
-#endif
-
-#ifndef HAVE_HSTRERROR
-char *hstrerror(int herr);
-#endif
-
-#ifndef HAVE_H_ERRNO_DECLARATION
-extern int h_errno;
-#endif
-
-#ifndef HAVE_INET_ATON
-/* Minimal implementation of inet_aton. Doesn't handle hex numbers. */
-int inet_aton(const char *cp, struct in_addr *adr);
-#endif
-
-#if !defined(HAVE_GETCWD)
-char* getcwd(char *path, size_t size);
-#endif
-
-#ifndef HAVE_GETENT
-int getent(char *cp, char *name);
-#endif
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-struct passwd *k_getpwnam (char *user);
-struct passwd *k_getpwuid (uid_t uid);
-#endif
-
-#ifndef HAVE_SETEUID
-int seteuid(int euid);
-#endif
-
-#ifndef HAVE_SETEGID
-int setegid(int egid);
-#endif
-
-#ifndef HAVE_LSTAT
-int lstat(const char *path, struct stat *buf);
-#endif
-
-#ifndef HAVE_MKSTEMP
-int mkstemp(char *);
-#endif
-
-#ifndef HAVE_INITGROUPS
-int initgroups(const char *name, gid_t basegid);
-#endif
-
-#ifndef HAVE_FCHOWN
-int fchown(int fd, uid_t owner, gid_t group);
-#endif
-
-#ifndef HAVE_CHOWN
-int chown(const char *path, uid_t owner, gid_t group);
-#endif
-
-#ifndef HAVE_RCMD
-int rcmd(char **ahost, unsigned short inport, const char *locuser,
- const char *remuser, const char *cmd, int *fd2p);
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-
-time_t tm2time (struct tm tm, int local);
-
-int unix_verify_user(char *user, char *password);
-
-void inaddr2str(struct in_addr addr, char *s, size_t len);
-
-void mini_inetd (int port);
-
-#ifndef HAVE_STRUCT_WINSIZE
-struct winsize {
- unsigned short ws_row, ws_col;
- unsigned short ws_xpixel, ws_ypixel;
-};
-#endif
-
-int get_window_size(int fd, struct winsize *);
-
-#ifndef INADDR_NONE
-#define INADDR_NONE 0xffffffff
-#endif
-
-#ifndef SOMAXCONN
-#define SOMAXCONN 5
-#endif
-
-#ifndef STDIN_FILENO
-#define STDIN_FILENO 0
-#endif
-
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef max
-#define max(a,b) (((a)>(b))?(a):(b))
-#endif
-
-#ifndef min
-#define min(a,b) (((a)<(b))?(a):(b))
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-/* Misc definitions for old syslogs */
-
-#ifndef LOG_DAEMON
-#define openlog(id,option,facility) openlog((id),(option))
-#define LOG_DAEMON 0
-#endif
-#ifndef LOG_ODELAY
-#define LOG_ODELAY 0
-#endif
-#ifndef LOG_NDELAY
-#define LOG_NDELAY 0x08
-#endif
-#ifndef LOG_CONS
-#define LOG_CONS 0
-#endif
-#ifndef LOG_AUTH
-#define LOG_AUTH 0
-#endif
-#ifndef LOG_AUTHPRIV
-#define LOG_AUTHPRIV LOG_AUTH
-#endif
-#endif
-
-#ifndef HAVE_OPTARG_DECLARATION
-extern char *optarg;
-#endif
-#ifndef HAVE_OPTIND_DECLARATION
-extern int optind;
-#endif
-#ifndef HAVE_OPTERR_DECLARATION
-extern int opterr;
-#endif
-
-#ifndef HAVE___PROGNAME_DECLARATION
-extern const char *__progname;
-#endif
-
-void set_progname(char *argv0);
-
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-
-#ifndef _PATH_DEVNULL
-#define _PATH_DEVNULL "/dev/null"
-#endif
-
-#endif /* __ROKEN_H__ */
diff --git a/crypto/kerberosIV/lib/roken/roken.mak b/crypto/kerberosIV/lib/roken/roken.mak
deleted file mode 100644
index d0c4a6fa67e5..000000000000
--- a/crypto/kerberosIV/lib/roken/roken.mak
+++ /dev/null
@@ -1,278 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=roken - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to roken - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "roken - Win32 Release" && "$(CFG)" != "roken - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "roken.mak" CFG="roken - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "roken - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "roken - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "roken - Win32 Debug"
-RSC=rc.exe
-MTL=mktyplib.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "roken - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : ".\Release\roken.dll"
-
-CLEAN :
- -@erase ".\Release\gettimeofday.obj"
- -@erase ".\Release\roken.dll"
- -@erase ".\Release\roken.exp"
- -@erase ".\Release\roken.lib"
- -@erase ".\Release\strcasecmp.obj"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\krb" /I "..\des" /I "..\..\include" /I "..\..\include\win32" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
-CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "..\krb" /I "..\des" /I "..\..\include" /I\
- "..\..\include\win32" /I "." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D\
- "HAVE_CONFIG_H" /Fp"$(INTDIR)/roken.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/roken.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/roken.pdb" /machine:I386 /def:".\roken.def"\
- /out:"$(OUTDIR)/roken.dll" /implib:"$(OUTDIR)/roken.lib"
-DEF_FILE= \
- ".\roken.def"
-LINK32_OBJS= \
- ".\Release\gettimeofday.obj" \
- ".\Release\strcasecmp.obj"
-
-".\Release\roken.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "roken - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\roken.dll"
-
-CLEAN :
- -@erase ".\Debug\gettimeofday.obj"
- -@erase ".\Debug\roken.dll"
- -@erase ".\Debug\roken.exp"
- -@erase ".\Debug\roken.ilk"
- -@erase ".\Debug\roken.lib"
- -@erase ".\Debug\roken.pdb"
- -@erase ".\Debug\strcasecmp.obj"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\krb" /I "..\des" /I "..\..\include" /I "..\..\include\win32" /I "." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\krb" /I "..\des" /I\
- "..\..\include" /I "..\..\include\win32" /I "." /D "_DEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)/roken.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/roken.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/roken.pdb" /debug /machine:I386 /def:".\roken.def"\
- /out:"$(OUTDIR)/roken.dll" /implib:"$(OUTDIR)/roken.lib"
-DEF_FILE= \
- ".\roken.def"
-LINK32_OBJS= \
- ".\Debug\gettimeofday.obj" \
- ".\Debug\strcasecmp.obj"
-
-".\Debug\roken.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "roken - Win32 Release"
-# Name "roken - Win32 Debug"
-
-!IF "$(CFG)" == "roken - Win32 Release"
-
-!ELSEIF "$(CFG)" == "roken - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=\TEMP\jimpa3\lib\krb\gettimeofday.c
-DEP_CPP_GETTI=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\krb\krb.h"\
- "..\krb\krb_locl.h"\
- "..\krb\prot.h"\
- "..\krb\resolve.h"\
- ".\roken.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-!IF "$(CFG)" == "roken - Win32 Release"
-
-
-".\Release\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "roken - Win32 Debug"
-
-
-".\Debug\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\roken.def
-
-!IF "$(CFG)" == "roken - Win32 Release"
-
-!ELSEIF "$(CFG)" == "roken - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\strcasecmp.c
-DEP_CPP_STRCA=\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-!IF "$(CFG)" == "roken - Win32 Release"
-
-
-".\Release\strcasecmp.obj" : $(SOURCE) $(DEP_CPP_STRCA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "roken - Win32 Debug"
-
-
-".\Debug\strcasecmp.obj" : $(SOURCE) $(DEP_CPP_STRCA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/crypto/kerberosIV/lib/roken/setegid.c b/crypto/kerberosIV/lib/roken/setegid.c
deleted file mode 100644
index b79bdd51adad..000000000000
--- a/crypto/kerberosIV/lib/roken/setegid.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: setegid.c,v 1.7 1997/04/01 08:19:07 joda Exp $");
-#endif
-
-#include <unistd.h>
-
-#include "roken.h"
-
-int
-setegid(int egid)
-{
-#ifdef HAVE_SETREGID
- return setregid(-1, egid);
-#endif
-
-#ifdef HAVE_SETRESGID
- return setresgid(-1, egid, -1);
-#endif
-
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/roken/setenv.c b/crypto/kerberosIV/lib/roken/setenv.c
deleted file mode 100644
index c83591f65090..000000000000
--- a/crypto/kerberosIV/lib/roken/setenv.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: setenv.c,v 1.8 1997/05/02 14:29:32 assar Exp $");
-#endif
-
-#include "roken.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-/*
- * This is the easy way out, use putenv to implement setenv. We might
- * leak some memory but that is ok since we are usally about to exec
- * anyway.
- */
-
-int
-setenv(const char *var, const char *val, int rewrite)
-{
- char *t;
-
- if (!rewrite && getenv(var) != 0)
- return 0;
-
- asprintf (&t, "%s=%s", var, val);
- if (t == NULL)
- return -1;
-
- if (putenv(t) == 0)
- return 0;
- else
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/roken/seteuid.c b/crypto/kerberosIV/lib/roken/seteuid.c
deleted file mode 100644
index b83131821bf3..000000000000
--- a/crypto/kerberosIV/lib/roken/seteuid.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: seteuid.c,v 1.7 1997/04/01 08:19:08 joda Exp $");
-#endif
-
-#include <unistd.h>
-
-#include "roken.h"
-
-int
-seteuid(int euid)
-{
-#ifdef HAVE_SETREUID
- return setreuid(-1, euid);
-#endif
-
-#ifdef HAVE_SETRESUID
- return setresuid(-1, euid, -1);
-#endif
-
- return -1;
-}
diff --git a/crypto/kerberosIV/lib/roken/signal.c b/crypto/kerberosIV/lib/roken/signal.c
deleted file mode 100644
index a39a19451c24..000000000000
--- a/crypto/kerberosIV/lib/roken/signal.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: signal.c,v 1.8 1997/04/01 08:19:09 joda Exp $");
-#endif
-
-#include <signal.h>
-
-/*
- * We would like to always use this signal but there is a link error
- * on NEXTSTEP
- */
-#ifndef NeXT
-/*
- * Bugs:
- *
- * Do we need any extra hacks for SIGCLD and/or SIGCHLD?
- */
-
-typedef RETSIGTYPE (*SigAction)(/* int??? */);
-
-SigAction
-signal(int iSig, SigAction pAction)
-{
- struct sigaction saNew, saOld;
-
- saNew.sa_handler = pAction;
- sigemptyset(&saNew.sa_mask);
- saNew.sa_flags = 0;
-
- if (iSig == SIGALRM)
- {
-#ifdef SA_INTERRUPT
- saNew.sa_flags |= SA_INTERRUPT;
-#endif
- }
- else
- {
-#ifdef SA_RESTART
- saNew.sa_flags |= SA_RESTART;
-#endif
- }
-
- if (sigaction(iSig, &saNew, &saOld) < 0)
- return(SIG_ERR);
-
- return(saOld.sa_handler);
-}
-#endif
diff --git a/crypto/kerberosIV/lib/roken/snprintf.c b/crypto/kerberosIV/lib/roken/snprintf.c
deleted file mode 100644
index b0757e551df1..000000000000
--- a/crypto/kerberosIV/lib/roken/snprintf.c
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: snprintf.c,v 1.13 1997/05/25 02:00:31 assar Exp $");
-#endif
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <roken.h>
-
-/*
- * Common state
- */
-
-struct state {
- char *str;
- char *s;
- char *theend;
- size_t sz;
- size_t max_sz;
- int (*append_char)(struct state *, char);
- int (*reserve)(struct state *, size_t);
- /* XXX - methods */
-};
-
-static int
-sn_reserve (struct state *state, size_t n)
-{
- return state->s + n > state->theend;
-}
-
-static int
-sn_append_char (struct state *state, char c)
-{
- if (sn_reserve (state, 1)) {
- *state->s++ = '\0';
- return 1;
- } else {
- *state->s++ = c;
- return 0;
- }
-}
-
-static int
-as_reserve (struct state *state, size_t n)
-{
- while (state->s + n > state->theend) {
- int off = state->s - state->str;
- char *tmp;
-
- if (state->max_sz && state->sz >= state->max_sz)
- return 1;
-
- if (state->max_sz)
- state->sz = min(state->max_sz, state->sz*2);
- else
- state->sz *= 2;
- tmp = realloc (state->str, state->sz);
- if (tmp == NULL)
- return 1;
- state->str = tmp;
- state->s = state->str + off;
- state->theend = state->str + state->sz - 1;
- }
- return 0;
-}
-
-static int
-as_append_char (struct state *state, char c)
-{
- if(as_reserve (state, 1))
- return 1;
- else {
- *state->s++ = c;
- return 0;
- }
-}
-
-static int
-append_number (struct state *state,
- unsigned long num, unsigned base, char *rep,
- int width, int zerop, int minusp)
-{
- int i, len;
-
- len = 0;
- if (num == 0) {
- ++len;
- if((*state->append_char) (state, '0'))
- return 1;
- }
- while (num > 0) {
- ++len;
- if ((*state->append_char) (state, rep[num % base]))
- return 1;
- num /= base;
- }
- if (minusp) {
- ++len;
- if ((*state->append_char) (state, '-'))
- return 1;
- }
-
- for (i = 0; i < len / 2; ++i) {
- char c;
-
- c = state->s[-i-1];
- state->s[-i-1] = state->s[-len+i];
- state->s[-len+i] = c;
- }
-
- if (width > len) {
- if ((*state->reserve) (state, width - len))
- return 1;
-
-#ifdef HAVE_MEMMOVE
- memmove (state->s + width - 2 * len, state->s - len, len);
-#else
- bcopy (state->s - len, state->s + width - 2 * len, len);
-#endif
- for (i = 0; i < width - len; ++i)
- state->s[-len+i] = (zerop ? '0' : ' ');
- state->s += width - len;
-
- }
- return 0;
-}
-
-static int
-append_string (struct state *state,
- char *arg,
- int prec)
-{
- if (prec) {
- while (*arg && prec--)
- if ((*state->append_char) (state, *arg++))
- return 1;
- } else {
- while (*arg)
- if ((*state->append_char) (state, *arg++))
- return 1;
- }
- return 0;
-}
-
-/*
- * This can't be made into a function...
- */
-
-#define PARSE_INT_FORMAT(res, arg, unsig) \
-if (long_flag) \
- res = va_arg(arg, unsig long); \
-else if (short_flag) \
- res = va_arg(arg, unsig short); \
-else \
- res = va_arg(arg, unsig int)
-
-/*
- * zyxprintf - return 0 or -1
- */
-
-static int
-xyzprintf (struct state *state, const char *format, va_list ap)
-{
- char c;
-
- while((c = *format++)) {
- if (c == '%') {
- int zerop = 0;
- int width = 0;
- int prec = 0;
- int long_flag = 0;
- int short_flag = 0;
-
- c = *format++;
-
- /* flags */
- if (c == '0') {
- zerop = 1;
- c = *format++;
- }
-
- /* width */
- if (isdigit(c))
- do {
- width = width * 10 + c - '0';
- c = *format++;
- } while(isdigit(c));
- else if(c == '*') {
- width = va_arg(ap, int);
- c = *format++;
- }
-
- /* precision */
- if (c == '.') {
- c = *format++;
- if (isdigit(c))
- do {
- prec = prec * 10 + c - '0';
- c = *format++;
- } while(isdigit(c));
- else if (c == '*') {
- prec = va_arg(ap, int);
- c = *format++;
- }
- }
-
- /* size */
-
- if (c == 'h') {
- short_flag = 1;
- c = *format++;
- } else if (c == 'l') {
- long_flag = 1;
- c = *format++;
- }
-
- switch (c) {
- case 'c' :
- if ((*state->append_char)(state, (unsigned char)va_arg(ap, int)))
- return -1;
- break;
- case 's' :
- if (append_string(state,
- va_arg(ap, char*),
- prec))
- return -1;
- break;
- case 'd' :
- case 'i' : {
- long arg;
- unsigned long num;
- int minusp = 0;
-
- PARSE_INT_FORMAT(arg, ap, );
-
- if (arg < 0) {
- minusp = 1;
- num = -arg;
- } else
- num = arg;
-
- if (append_number (state, num, 10, "0123456789",
- width, zerop, minusp))
- return -1;
- break;
- }
- case 'u' : {
- unsigned long arg;
-
- PARSE_INT_FORMAT(arg, ap, unsigned);
-
- if (append_number (state, arg, 10, "0123456789",
- width, zerop, 0))
- return -1;
- break;
- }
- case 'o' : {
- unsigned long arg;
-
- PARSE_INT_FORMAT(arg, ap, unsigned);
-
- if (append_number (state, arg, 010, "01234567",
- width, zerop, 0))
- return -1;
- break;
- }
- case 'x' : {
- unsigned long arg;
-
- PARSE_INT_FORMAT(arg, ap, unsigned);
-
- if (append_number (state, arg, 0x10, "0123456789abcdef",
- width, zerop, 0))
- return -1;
- break;
- }
- case 'X' :{
- unsigned long arg;
-
- PARSE_INT_FORMAT(arg, ap, unsigned);
-
- if (append_number (state, arg, 0x10, "0123456789ABCDEF",
- width, zerop, 0))
- return -1;
- break;
- }
- case 'p' : {
- unsigned long arg = (unsigned long)va_arg(ap, void*);
-
- if (append_number (state, arg, 0x10, "0123456789ABCDEF",
- width, zerop, 0))
- return -1;
- break;
- }
- case '%' :
- if ((*state->append_char)(state, c))
- return -1;
- break;
- default :
- if ( (*state->append_char)(state, '%')
- || (*state->append_char)(state, c))
- return -1;
- break;
- }
- } else
- if ((*state->append_char) (state, c))
- return -1;
- }
- return 0;
-}
-
-#ifndef HAVE_SNPRINTF
-int
-snprintf (char *str, size_t sz, const char *format, ...)
-{
- va_list args;
- int ret;
-
- va_start(args, format);
- ret = vsnprintf (str, sz, format, args);
-
-#ifdef PARANOIA
- {
- int ret2;
- char *tmp;
-
- tmp = malloc (sz);
- if (tmp == NULL)
- abort ();
-
- ret2 = vsprintf (tmp, format, args);
- if (ret != ret2 || strcmp(str, tmp))
- abort ();
- free (tmp);
- }
-#endif
-
- va_end(args);
- return ret;
-}
-#endif
-
-#ifndef HAVE_ASPRINTF
-int
-asprintf (char **ret, const char *format, ...)
-{
- va_list args;
- int val;
-
- va_start(args, format);
- val = vasprintf (ret, format, args);
-
-#ifdef PARANOIA
- {
- int ret2;
- char *tmp;
- tmp = malloc (val + 1);
- if (tmp == NULL)
- abort ();
-
- ret2 = vsprintf (tmp, format, args);
- if (val != ret2 || strcmp(*ret, tmp))
- abort ();
- free (tmp);
- }
-#endif
-
- va_end(args);
- return val;
-}
-#endif
-
-#ifndef HAVE_ASNPRINTF
-int
-asnprintf (char **ret, size_t max_sz, const char *format, ...)
-{
- va_list args;
- int val;
-
- va_start(args, format);
- val = vasnprintf (ret, max_sz, format, args);
-
-#ifdef PARANOIA
- {
- int ret2;
- char *tmp;
- tmp = malloc (val + 1);
- if (tmp == NULL)
- abort ();
-
- ret2 = vsprintf (tmp, format, args);
- if (val != ret2 || strcmp(*ret, tmp))
- abort ();
- free (tmp);
- }
-#endif
-
- va_end(args);
- return val;
-}
-#endif
-
-#ifndef HAVE_VASPRINTF
-int
-vasprintf (char **ret, const char *format, va_list args)
-{
- return vasnprintf (ret, 0, format, args);
-}
-#endif
-
-
-#ifndef HAVE_VASNPRINTF
-int
-vasnprintf (char **ret, size_t max_sz, const char *format, va_list args)
-{
- int st;
- size_t len;
- struct state state;
-
- state.max_sz = max_sz;
- if (max_sz)
- state.sz = min(1, max_sz);
- else
- state.sz = 1;
- state.str = malloc(state.sz);
- if (state.str == NULL) {
- *ret = NULL;
- return -1;
- }
- state.s = state.str;
- state.theend = state.s + state.sz - 1;
- state.append_char = as_append_char;
- state.reserve = as_reserve;
-
- st = xyzprintf (&state, format, args);
- if (st) {
- free (state.str);
- *ret = NULL;
- return -1;
- } else {
- char *tmp;
-
- *state.s = '\0';
- len = state.s - state.str;
- tmp = realloc (state.str, len+1);
- if (state.str == NULL) {
- free (state.str);
- *ret = NULL;
- return -1;
- }
- *ret = tmp;
- return len;
- }
-}
-#endif
-
-#ifndef HAVE_VSNPRINTF
-int
-vsnprintf (char *str, size_t sz, const char *format, va_list args)
-{
- struct state state;
- int ret;
-
- state.max_sz = 0;
- state.sz = sz;
- state.str = str;
- state.s = str;
- state.theend = str + sz - 1;
- state.append_char = sn_append_char;
- state.reserve = sn_reserve;
-
- ret = xyzprintf (&state, format, args);
- *state.s = '\0';
- if (ret)
- return sz;
- else
- return state.s - state.str;
-}
-#endif
-
diff --git a/crypto/kerberosIV/lib/roken/strcasecmp.c b/crypto/kerberosIV/lib/roken/strcasecmp.c
deleted file mode 100644
index a268c295e067..000000000000
--- a/crypto/kerberosIV/lib/roken/strcasecmp.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1987, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strcasecmp.c,v 1.3 1997/04/20 18:04:23 assar Exp $");
-#endif
-
-#include <string.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#include <sys/cdefs.h>
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strcasecmp.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * This array is designed for mapping upper and lower case letter
- * together for a case independent comparison. The mappings are
- * based upon ascii character sequences.
- */
-static const unsigned char charmap[] = {
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
- '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
- '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
- '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
- '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
- '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
- '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
- '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
- '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
-};
-
-int
-strcasecmp(const char *s1, const char *s2)
-{
- const unsigned char *cm = charmap,
- *us1 = (const unsigned char *)s1,
- *us2 = (const unsigned char *)s2;
-
- while (cm[*us1] == cm[*us2++])
- if (*us1++ == '\0')
- return (0);
- return (cm[*us1] - cm[*--us2]);
-}
-
-int
-strncasecmp(const char *s1, const char *s2, size_t n)
-{
- if (n != 0) {
- const unsigned char *cm = charmap,
- *us1 = (const unsigned char *)s1,
- *us2 = (const unsigned char *)s2;
-
- do {
- if (cm[*us1] != cm[*us2++])
- return (cm[*us1] - cm[*--us2]);
- if (*us1++ == '\0')
- break;
- } while (--n != 0);
- }
- return (0);
-}
diff --git a/crypto/kerberosIV/lib/roken/strdup.c b/crypto/kerberosIV/lib/roken/strdup.c
deleted file mode 100644
index b16992ff272a..000000000000
--- a/crypto/kerberosIV/lib/roken/strdup.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strdup.c,v 1.9 1997/04/01 08:19:10 joda Exp $");
-#endif
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef HAVE_STRDUP
-char *
-strdup(const char *old)
-{
- char *t = malloc(strlen(old)+1);
- if (t != 0)
- strcpy(t, old);
- return t;
-}
-#endif
diff --git a/crypto/kerberosIV/lib/roken/strerror.c b/crypto/kerberosIV/lib/roken/strerror.c
deleted file mode 100644
index 3d7b45c08822..000000000000
--- a/crypto/kerberosIV/lib/roken/strerror.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strerror.c,v 1.8 1997/05/02 14:29:33 assar Exp $");
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-extern int sys_nerr;
-extern char *sys_errlist[];
-
-char*
-strerror(int eno)
-{
- static char emsg[1024];
-
- if(eno < 0 || eno >= sys_nerr)
- snprintf(emsg, sizeof(emsg), "Error %d occurred.", eno);
- else
- strcpy(emsg, sys_errlist[eno]);
-
- return emsg;
-}
diff --git a/crypto/kerberosIV/lib/roken/strftime.c b/crypto/kerberosIV/lib/roken/strftime.c
deleted file mode 100644
index 3473778fd826..000000000000
--- a/crypto/kerberosIV/lib/roken/strftime.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <sys/types.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#define TM_YEAR_BASE 1900 /* from <tzfile.h> */
-#include <string.h>
-
-static char *afmt[] = {
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
-};
-static char *Afmt[] = {
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
- "Saturday",
-};
-static char *bfmt[] = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
- "Oct", "Nov", "Dec",
-};
-static char *Bfmt[] = {
- "January", "February", "March", "April", "May", "June", "July",
- "August", "September", "October", "November", "December",
-};
-
-static size_t gsize;
-static char *pt;
-
-static int _add (char *);
-static int _conv (int, int, int);
-#ifdef HAVE_MKTIME
-static int _secs (const struct tm *);
-#endif /* HAVE_MKTIME */
-static size_t _fmt (const char *, const struct tm *);
-
-size_t
-strftime(char *s, size_t maxsize, const char *format, const struct tm *t)
-{
-
- pt = s;
- if ((gsize = maxsize) < 1)
- return(0);
- if (_fmt(format, t)) {
- *pt = '\0';
- return(maxsize - gsize);
- }
- return(0);
-}
-
-static size_t
-_fmt(const char *format, const struct tm *t)
-{
- for (; *format; ++format) {
- if (*format == '%')
- switch(*++format) {
- case '\0':
- --format;
- break;
- case 'A':
- if (t->tm_wday < 0 || t->tm_wday > 6)
- return(0);
- if (!_add(Afmt[t->tm_wday]))
- return(0);
- continue;
- case 'a':
- if (t->tm_wday < 0 || t->tm_wday > 6)
- return(0);
- if (!_add(afmt[t->tm_wday]))
- return(0);
- continue;
- case 'B':
- if (t->tm_mon < 0 || t->tm_mon > 11)
- return(0);
- if (!_add(Bfmt[t->tm_mon]))
- return(0);
- continue;
- case 'b':
- case 'h':
- if (t->tm_mon < 0 || t->tm_mon > 11)
- return(0);
- if (!_add(bfmt[t->tm_mon]))
- return(0);
- continue;
- case 'C':
- if (!_fmt("%a %b %e %H:%M:%S %Y", t))
- return(0);
- continue;
- case 'c':
- if (!_fmt("%m/%d/%y %H:%M:%S", t))
- return(0);
- continue;
- case 'D':
- if (!_fmt("%m/%d/%y", t))
- return(0);
- continue;
- case 'd':
- if (!_conv(t->tm_mday, 2, '0'))
- return(0);
- continue;
- case 'e':
- if (!_conv(t->tm_mday, 2, ' '))
- return(0);
- continue;
- case 'H':
- if (!_conv(t->tm_hour, 2, '0'))
- return(0);
- continue;
- case 'I':
- if (!_conv(t->tm_hour % 12 ?
- t->tm_hour % 12 : 12, 2, '0'))
- return(0);
- continue;
- case 'j':
- if (!_conv(t->tm_yday + 1, 3, '0'))
- return(0);
- continue;
- case 'k':
- if (!_conv(t->tm_hour, 2, ' '))
- return(0);
- continue;
- case 'l':
- if (!_conv(t->tm_hour % 12 ?
- t->tm_hour % 12 : 12, 2, ' '))
- return(0);
- continue;
- case 'M':
- if (!_conv(t->tm_min, 2, '0'))
- return(0);
- continue;
- case 'm':
- if (!_conv(t->tm_mon + 1, 2, '0'))
- return(0);
- continue;
- case 'n':
- if (!_add("\n"))
- return(0);
- continue;
- case 'p':
- if (!_add(t->tm_hour >= 12 ? "PM" : "AM"))
- return(0);
- continue;
- case 'R':
- if (!_fmt("%H:%M", t))
- return(0);
- continue;
- case 'r':
- if (!_fmt("%I:%M:%S %p", t))
- return(0);
- continue;
- case 'S':
- if (!_conv(t->tm_sec, 2, '0'))
- return(0);
- continue;
-#ifdef HAVE_MKTIME
- case 's':
- if (!_secs(t))
- return(0);
- continue;
-#endif /* HAVE_MKTIME */
- case 'T':
- case 'X':
- if (!_fmt("%H:%M:%S", t))
- return(0);
- continue;
- case 't':
- if (!_add("\t"))
- return(0);
- continue;
- case 'U':
- if (!_conv((t->tm_yday + 7 - t->tm_wday) / 7,
- 2, '0'))
- return(0);
- continue;
- case 'W':
- if (!_conv((t->tm_yday + 7 -
- (t->tm_wday ? (t->tm_wday - 1) : 6))
- / 7, 2, '0'))
- return(0);
- continue;
- case 'w':
- if (!_conv(t->tm_wday, 1, '0'))
- return(0);
- continue;
- case 'x':
- if (!_fmt("%m/%d/%y", t))
- return(0);
- continue;
- case 'y':
- if (!_conv((t->tm_year + TM_YEAR_BASE)
- % 100, 2, '0'))
- return(0);
- continue;
- case 'Y':
- if (!_conv(t->tm_year + TM_YEAR_BASE, 4, '0'))
- return(0);
- continue;
-#ifdef notdef
- case 'Z':
- if (!t->tm_zone || !_add(t->tm_zone))
- return(0);
- continue;
-#endif
- case '%':
- /*
- * X311J/88-090 (4.12.3.5): if conversion char is
- * undefined, behavior is undefined. Print out the
- * character itself as printf(3) does.
- */
- default:
- break;
- }
- if (!gsize--)
- return(0);
- *pt++ = *format;
- }
- return(gsize);
-}
-
-#ifdef HAVE_MKTIME
-static int
-_secs(const struct tm *t)
-{
- static char buf[15];
- time_t s;
- char *p;
- struct tm tmp;
-
- /* Make a copy, mktime(3) modifies the tm struct. */
- tmp = *t;
- s = mktime(&tmp);
- for (p = buf + sizeof(buf) - 2; s > 0 && p > buf; s /= 10)
- *p-- = s % 10 + '0';
- return(_add(++p));
-}
-#endif /* HAVE_MKTIME */
-
-static int
-_conv(int n, int digits, int pad)
-{
- static char buf[10];
- char *p;
-
- for (p = buf + sizeof(buf) - 2; n > 0 && p > buf; n /= 10, --digits)
- *p-- = n % 10 + '0';
- while (p > buf && digits-- > 0)
- *p-- = pad;
- return(_add(++p));
-}
-
-static int
-_add(str)
- char *str;
-{
- for (;; ++pt, --gsize) {
- if (!gsize)
- return(0);
- if (!(*pt = *str++))
- return(1);
- }
-}
diff --git a/crypto/kerberosIV/lib/roken/strlwr.c b/crypto/kerberosIV/lib/roken/strlwr.c
deleted file mode 100644
index 0222d8cbbdae..000000000000
--- a/crypto/kerberosIV/lib/roken/strlwr.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strlwr.c,v 1.3 1997/04/01 08:19:11 joda Exp $");
-#endif
-#include <string.h>
-#include <ctype.h>
-
-#include <roken.h>
-
-#ifndef HAVE_STRLWR
-char *
-strlwr(char *str)
-{
- char *s;
-
- for(s = str; *s; s++)
- *s = tolower(*s);
- return str;
-}
-#endif
diff --git a/crypto/kerberosIV/lib/roken/strnlen.c b/crypto/kerberosIV/lib/roken/strnlen.c
deleted file mode 100644
index 51588f69b51f..000000000000
--- a/crypto/kerberosIV/lib/roken/strnlen.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strnlen.c,v 1.5 1997/04/01 08:19:11 joda Exp $");
-#endif
-
-#include "roken.h"
-
-int
-strnlen(char *s, int len)
-{
- int i;
- for(i = 0; i < len && s[i]; i++)
- ;
- return i;
-}
diff --git a/crypto/kerberosIV/lib/roken/strtok_r.c b/crypto/kerberosIV/lib/roken/strtok_r.c
deleted file mode 100644
index 49164d9dde28..000000000000
--- a/crypto/kerberosIV/lib/roken/strtok_r.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strtok_r.c,v 1.4 1997/05/19 03:05:47 assar Exp $");
-#endif
-
-#include <string.h>
-
-#include "roken.h"
-
-#ifndef HAVE_STRTOK_R
-
-char *
-strtok_r(char *s1, const char *s2, char **lasts)
-{
- char *ret;
-
- if (s1 == NULL)
- s1 = *lasts;
- while(*s1 && strchr(s2, *s1))
- ++s1;
- if(*s1 == '\0')
- return NULL;
- ret = s1;
- while(*s1 && !strchr(s2, *s1))
- ++s1;
- if(*s1)
- *s1++ = '\0';
- *lasts = s1;
- return ret;
-}
-
-#endif /* HAVE_STRTOK_R */
diff --git a/crypto/kerberosIV/lib/roken/strupr.c b/crypto/kerberosIV/lib/roken/strupr.c
deleted file mode 100644
index c5674f76c6f8..000000000000
--- a/crypto/kerberosIV/lib/roken/strupr.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: strupr.c,v 1.3 1997/04/01 08:19:13 joda Exp $");
-#endif
-#include <string.h>
-#include <ctype.h>
-
-#include <roken.h>
-
-#ifndef HAVE_STRUPR
-char *
-strupr(char *str)
-{
- char *s;
-
- for(s = str; *s; s++)
- *s = toupper(*s);
- return str;
-}
-#endif
diff --git a/crypto/kerberosIV/lib/roken/tm2time.c b/crypto/kerberosIV/lib/roken/tm2time.c
deleted file mode 100644
index f4423ffe092e..000000000000
--- a/crypto/kerberosIV/lib/roken/tm2time.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: tm2time.c,v 1.6 1997/04/20 05:51:30 assar Exp $");
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#include "roken.h"
-
-time_t
-tm2time (struct tm tm, int local)
-{
- time_t t;
-
- tm.tm_isdst = -1;
-
- t = mktime (&tm);
-
- if (!local)
- t += t - mktime (gmtime (&t));
- return t;
-}
diff --git a/crypto/kerberosIV/lib/roken/unsetenv.c b/crypto/kerberosIV/lib/roken/unsetenv.c
deleted file mode 100644
index 67fb750138d4..000000000000
--- a/crypto/kerberosIV/lib/roken/unsetenv.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: unsetenv.c,v 1.6 1997/04/01 08:19:14 joda Exp $");
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "roken.h"
-
-extern char **environ;
-
-/*
- * unsetenv --
- */
-void
-unsetenv(const char *name)
-{
- int len;
- const char *np;
- char **p;
-
- if (name == 0 || environ == 0)
- return;
-
- for (np = name; *np && *np != '='; np++)
- /* nop */;
- len = np - name;
-
- for (p = environ; *p != 0; p++)
- if (strncmp(*p, name, len) == 0 && (*p)[len] == '=')
- break;
-
- for (; *p != 0; p++)
- *p = *(p + 1);
-}
-
diff --git a/crypto/kerberosIV/lib/roken/verify.c b/crypto/kerberosIV/lib/roken/verify.c
deleted file mode 100644
index 65eafccb7e01..000000000000
--- a/crypto/kerberosIV/lib/roken/verify.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: verify.c,v 1.12 1997/04/01 08:19:15 joda Exp $");
-#endif
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-#include "roken.h"
-
-int
-unix_verify_user(char *user, char *password)
-{
- struct passwd *pw;
-
- pw = k_getpwnam(user);
- if(pw == NULL)
- return -1;
- if(strlen(pw->pw_passwd) == 0 && strlen(password) == 0)
- return 0;
- if(strcmp(crypt(password, pw->pw_passwd), pw->pw_passwd) == 0)
- return 0;
- return -1;
-}
-
diff --git a/crypto/kerberosIV/lib/roken/verr.c b/crypto/kerberosIV/lib/roken/verr.c
deleted file mode 100644
index f5d8f25c48dc..000000000000
--- a/crypto/kerberosIV/lib/roken/verr.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: verr.c,v 1.6 1997/03/30 08:05:38 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-verr(int eval, const char *fmt, va_list ap)
-{
- warnerr(1, eval, 1, fmt, ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/verrx.c b/crypto/kerberosIV/lib/roken/verrx.c
deleted file mode 100644
index bc25aa0cd8a4..000000000000
--- a/crypto/kerberosIV/lib/roken/verrx.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: verrx.c,v 1.6 1997/03/30 08:05:39 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-verrx(int eval, const char *fmt, va_list ap)
-{
- warnerr(1, eval, 0, fmt, ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/vwarn.c b/crypto/kerberosIV/lib/roken/vwarn.c
deleted file mode 100644
index 144dd088f1fc..000000000000
--- a/crypto/kerberosIV/lib/roken/vwarn.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: vwarn.c,v 1.6 1997/03/30 08:05:39 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-vwarn(const char *fmt, va_list ap)
-{
- warnerr(0, 0, 1, fmt, ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/vwarnx.c b/crypto/kerberosIV/lib/roken/vwarnx.c
deleted file mode 100644
index 540c2a650797..000000000000
--- a/crypto/kerberosIV/lib/roken/vwarnx.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: vwarnx.c,v 1.6 1997/03/30 08:05:40 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-vwarnx(const char *fmt, va_list ap)
-{
- warnerr(0, 0, 0, fmt, ap);
-}
-
diff --git a/crypto/kerberosIV/lib/roken/warn.c b/crypto/kerberosIV/lib/roken/warn.c
deleted file mode 100644
index 5af5d8de1925..000000000000
--- a/crypto/kerberosIV/lib/roken/warn.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: warn.c,v 1.5 1997/03/30 08:05:40 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-warn(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- vwarn(fmt, ap);
- va_end(ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/warnerr.c b/crypto/kerberosIV/lib/roken/warnerr.c
deleted file mode 100644
index 61fa26a2cbd2..000000000000
--- a/crypto/kerberosIV/lib/roken/warnerr.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: warnerr.c,v 1.6 1997/04/02 14:59:54 bg Exp $");
-#endif
-
-#include "roken.h"
-#include "err.h"
-
-#ifndef HAVE___PROGNAME
-const char *__progname;
-#endif
-
-void
-set_progname(char *argv0)
-{
-#ifndef HAVE___PROGNAME
- char *p;
- if(argv0 == NULL)
- return;
- p = strrchr(argv0, '/');
- if(p == NULL)
- p = argv0;
- else
- p++;
- __progname = p;
-#endif
-}
-
-void
-warnerr(int doexit, int eval, int doerrno, const char *fmt, va_list ap)
-{
- int sverrno = errno;
- if(__progname != NULL){
- fprintf(stderr, "%s", __progname);
- if(fmt != NULL || doerrno)
- fprintf(stderr, ": ");
- }
- if (fmt != NULL){
- vfprintf(stderr, fmt, ap);
- if(doerrno)
- fprintf(stderr, ": ");
- }
- if(doerrno)
- fprintf(stderr, "%s", strerror(sverrno));
- fprintf(stderr, "\n");
- if(doexit)
- exit(eval);
-}
diff --git a/crypto/kerberosIV/lib/roken/warnx.c b/crypto/kerberosIV/lib/roken/warnx.c
deleted file mode 100644
index bf7b07664d38..000000000000
--- a/crypto/kerberosIV/lib/roken/warnx.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: warnx.c,v 1.5 1997/03/30 08:05:41 joda Exp $");
-#endif
-
-#include "err.h"
-
-void
-warnx(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- vwarnx(fmt, ap);
- va_end(ap);
-}
diff --git a/crypto/kerberosIV/lib/roken/xdbm.h b/crypto/kerberosIV/lib/roken/xdbm.h
deleted file mode 100644
index c3e4781bc244..000000000000
--- a/crypto/kerberosIV/lib/roken/xdbm.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: xdbm.h,v 1.2 1997/04/01 08:19:16 joda Exp $ */
-
-/* Generic *dbm include file */
-
-#ifndef __XDBM_H__
-#define __XDBM_H__
-
-#ifdef HAVE_NDBM_H
-#include <ndbm.h>
-#elif defined(HAVE_DBM_H)
-#include <dbm.h>
-#elif defined(HAVE_RPCSVC_DBM_H)
-#include <rpcsvc/dbm.h>
-#endif
-
-/* Macros to convert ndbm names to dbm names.
- * Note that dbm_nextkey() cannot be simply converted using a macro, since
- * it is invoked giving the database, and nextkey() needs the previous key.
- *
- * Instead, all routines call "dbm_next" instead.
- */
-
-#ifndef NDBM
-typedef char DBM;
-
-#define dbm_open(file, flags, mode) ((dbminit(file) == 0)?"":((char *)0))
-#define dbm_fetch(db, key) fetch(key)
-#define dbm_store(db, key, content, flag) store(key, content)
-#define dbm_delete(db, key) delete(key)
-#define dbm_firstkey(db) firstkey()
-#define dbm_next(db,key) nextkey(key)
-#define dbm_close(db) dbmclose()
-#else
-#define dbm_next(db,key) dbm_nextkey(db)
-#endif
-
-#endif /* __XDBM_H__ */
diff --git a/crypto/kerberosIV/lib/sl/Makefile.in b/crypto/kerberosIV/lib/sl/Makefile.in
deleted file mode 100644
index b89799b8cc6c..000000000000
--- a/crypto/kerberosIV/lib/sl/Makefile.in
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# $Id: Makefile.in,v 1.8 1997/05/06 03:47:56 assar Exp $
-#
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-
-PICFLAGS = @PICFLAGS@
-
-LIBNAME = $(LIBPREFIX)sl
-LIBEXT = @LIBEXT@
-SHLIBEXT = @SHLIBEXT@
-LIBPREFIX = @LIBPREFIX@
-LDSHARED = @LDSHARED@
-LIB = $(LIBNAME).$(LIBEXT)
-PROGS =
-
-LIB_SOURCES = sl.c
-
-SOURCES = $(LIB_SOURCES)
-
-LIB_OBJECTS = sl.o
-
-OBJECTS = $(LIB_OBJECTS)
-
-all: $(LIB) $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) -I$(srcdir)/../des $(CFLAGS) $(PICFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
-
-uninstall:
- rm -f $(libdir)/$(LIB)
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f $(LIB) $(PROGS) *.o *.a
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *~
-
-realclean: distclean
- rm -f TAGS
-
-$(LIBNAME).a: $(LIB_OBJECTS)
- rm -f $@
- $(AR) cr $@ $(LIB_OBJECTS)
- -$(RANLIB) $@
-
-$(LIBNAME).$(SHLIBEXT): $(LIB_OBJECTS)
- rm -f $@
- $(LDSHARED) -o $@ $(LIB_OBJECTS)
-
-$(OBJECTS): ../../include/config.h
-
-.PHONY: all install uninstall check clean mostlyclean distclean realclean
diff --git a/crypto/kerberosIV/lib/sl/sl.c b/crypto/kerberosIV/lib/sl/sl.c
deleted file mode 100644
index adf71f534107..000000000000
--- a/crypto/kerberosIV/lib/sl/sl.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: sl.c,v 1.12 1997/06/01 03:15:07 assar Exp $");
-#endif
-
-#include "sl_locl.h"
-
-static SL_cmd *
-sl_match (SL_cmd *cmds, char *cmd, int exactp)
-{
- SL_cmd *c, *current = NULL, *partial_cmd = NULL;
- int partial_match = 0;
-
- for (c = cmds; c->name; ++c) {
- if (c->func)
- current = c;
- if (strcmp (cmd, c->name) == 0)
- return current;
- else if (strncmp (cmd, c->name, strlen(cmd)) == 0 &&
- partial_cmd != current) {
- ++partial_match;
- partial_cmd = current;
- }
- }
- if (partial_match == 1 && !exactp)
- return partial_cmd;
- else
- return NULL;
-}
-
-void
-sl_help (SL_cmd *cmds, int argc, char **argv)
-{
- SL_cmd *c, *prev_c;
-
- if (argc == 1) {
- prev_c = NULL;
- for (c = cmds; c->name; ++c) {
- if (c->func) {
- if(prev_c)
- printf ("\n\t%s%s", prev_c->usage ? prev_c->usage : "",
- prev_c->usage ? "\n" : "");
- prev_c = c;
- printf ("%s", c->name);
- } else
- printf (", %s", c->name);
- }
- if(prev_c)
- printf ("\n\t%s%s", prev_c->usage ? prev_c->usage : "",
- prev_c->usage ? "\n" : "");
- } else {
- c = sl_match (cmds, argv[1], 0);
- if (c == NULL)
- printf ("No such command: %s. Try \"help\" for a list of all commands\n",
- argv[1]);
- else {
- printf ("%s\t%s", c->name, c->usage);
- if((++c)->name && c->func == NULL) {
- printf ("\nSynonyms:");
- while (c->name && c->func == NULL)
- printf ("\t%s", (c++)->name);
- }
- printf ("\n");
- }
- }
-}
-
-#ifdef HAVE_READLINE
-
-char *readline(char *prompt);
-void add_history(char *p);
-
-#else
-
-static char *
-readline(char *prompt)
-{
- char buf[BUFSIZ];
- printf ("%s", prompt);
- fflush (stdout);
- if(fgets(buf, sizeof(buf), stdin) == NULL)
- return NULL;
- if (buf[strlen(buf) - 1] == '\n')
- buf[strlen(buf) - 1] = '\0';
- return strdup(buf);
-}
-
-static void
-add_history(char *p)
-{
-}
-
-#endif
-
-int
-sl_loop (SL_cmd *cmds, char *prompt)
-{
- unsigned max_count;
- char **ptr;
-
- max_count = 17;
- ptr = malloc(max_count * sizeof(*ptr));
- if (ptr == NULL) {
- printf ("sl_loop: failed to allocate %u bytes of memory\n",
- (int) max_count * sizeof(*ptr));
- return -1;
- }
-
- for (;;) {
- char *buf;
- unsigned count;
- SL_cmd *c;
-
- buf = readline(prompt);
- if(buf == NULL)
- break;
-
- if(*buf)
- add_history(buf);
- count = 0;
- {
- char *foo = NULL;
- char *p;
-
- for(p = strtok_r (buf, " \t", &foo);
- p;
- p = strtok_r (NULL, " \t", &foo)) {
- if(count == max_count) {
- max_count *= 2;
- ptr = realloc (ptr, max_count * sizeof(*ptr));
- if (ptr == NULL) {
- printf ("sl_loop: failed to allocate %u "
- "bytes of memory\n",
- (unsigned) max_count * sizeof(*ptr));
- return -1;
- }
- }
- ptr[count++] = p;
- }
- }
- if (count > 0) {
- c = sl_match (cmds, ptr[0], 0);
- if (c)
- (*c->func)(count, ptr);
- else
- printf ("Unrecognized command: %s\n", ptr[0]);
- }
- free(buf);
- }
- free (ptr);
- return 0;
-}
diff --git a/crypto/kerberosIV/lib/sl/sl.h b/crypto/kerberosIV/lib/sl/sl.h
deleted file mode 100644
index 158e5901d0a2..000000000000
--- a/crypto/kerberosIV/lib/sl/sl.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: sl.h,v 1.2 1997/04/01 08:19:18 joda Exp $ */
-
-#ifndef _SL_H
-#define _SL_H
-
-typedef void (*cmd_func)(int, char **);
-
-struct sl_cmd {
- char *name;
- cmd_func func;
- char *usage;
- char *help;
-};
-
-typedef struct sl_cmd SL_cmd;
-
-void sl_help (SL_cmd *, int argc, char **argv);
-int sl_loop (SL_cmd *, char *prompt);
-
-#endif /* _SL_H */
diff --git a/crypto/kerberosIV/lib/sl/sl_locl.h b/crypto/kerberosIV/lib/sl/sl_locl.h
deleted file mode 100644
index ddf25bbbdc90..000000000000
--- a/crypto/kerberosIV/lib/sl/sl_locl.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: sl_locl.h,v 1.3 1997/04/01 08:19:18 joda Exp $ */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <roken.h>
-#include <protos.h>
-
-#include <sl.h>
diff --git a/crypto/kerberosIV/man/Makefile.in b/crypto/kerberosIV/man/Makefile.in
deleted file mode 100644
index a1b6e741c46e..000000000000
--- a/crypto/kerberosIV/man/Makefile.in
+++ /dev/null
@@ -1,95 +0,0 @@
-# Makefile.in,v 1.2 1994/05/13 05:02:46 assar Exp
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = /bin/sh
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-mandir = @mandir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-MANRX = .*\.\([0-9]\)
-CATRX = \(.*\)\.cat\([0-9]\)
-CATSUFFIX=@CATSUFFIX@
-
-MAN1 = afslog.1 kauth.1 ftp.1 kdestroy.1 kinit.1 kpasswd.1 \
- login.1 rlogin.1 su.1 kerberos.1 klist.1 ksrvtgt.1 pagsh.1 \
- rcp.1 rsh.1 telnet.1 kx.1 rxterm.1 rxtelnet.1 tenletxr.1 \
- des.1 movemail.1 \
- otp.1 otpprint.1
-
-CAT1 = afslog.cat1 kauth.cat1 ftp.cat1 login.cat1 \
- pagsh.cat1 rcp.cat1 rlogin.cat1 rsh.cat1 su.cat1 telnet.cat1 kx.cat1 \
- rxterm.cat1 rxtelnet.cat1 tenletxr.cat1 movemail.cat1 \
- otp.cat1 otpprint.cat1
-
-MAN3 = acl_check.3 kafs.3 kerberos.3 krb_set_tkt_string.3 des_crypt.3 \
- krb_realmofhost.3 kuserok.3 getusershell.3 krb_sendauth.3 \
- tf_util.3
-
-CAT3 = getusershell.cat3 kafs.cat3
-
-MAN5 = krb.conf.5 krb.realms.5 krb.equiv.5 login.access.5 ftpusers.5
-
-CAT5 = login.access.cat5 krb.equiv.cat5 ftpusers.cat5
-
-MAN8 = ext_srvtab.8 kdb_destroy.8 kdb_util.8 ksrvutil.8 telnetd.8 rlogind.8 \
- kadmin.8 kdb_edit.8 kstash.8 kadmind.8 kdb_init.8 rshd.8 kauthd.8 \
- popper.8 kxd.8 kerberos.8
-
-CAT8 = ftpd.cat8 rshd.cat8 telnetd.cat8 ksrvutil.cat8 rlogind.cat8 \
- kauthd.cat8 kprop.cat8 kpropd.cat8 kxd.cat8 kerberos.cat8
-
-all:
-
-cat: $(CAT1) $(CAT3) $(CAT5) $(CAT8)
-
-%.cat1: %.1
- `grog -Tascii $<` > $@
-%.cat3: %.3
- `grog -Tascii $<` > $@
-%.cat5: %.5
- `grog -Tascii $<` > $@
-%.cat8: %.8
- `grog -Tascii $<` > $@
-
-
-Wall:
-
-install: all
- for x in man1 man3 man5 man8 cat1 cat3 cat5 cat8; do \
- $(MKINSTALLDIRS) $(mandir)/$$x; done
- (cd $(srcdir); \
- for x in $(MAN1) $(MAN3) $(MAN5) $(MAN8); do \
- s=`echo $$x | sed 's!$(MANRX)!\1!'` ; \
- $(INSTALL_DATA) $$x $(mandir)/man$$s; done ;\
- for x in $(CAT1) $(CAT3) $(CAT5) $(CAT8); do \
- s=`echo $$x | sed 's!$(CATRX)!\2!'`; \
- b=`echo $$x | sed 's!$(CATRX)!\1!'`; \
- $(INSTALL_DATA) $$x $(mandir)/cat$$s/$$b.$(CATSUFFIX);\
- done )
-
-uninstall:
- for x in $(MAN1) $(MAN3) $(MAN5) $(MAN8); do \
- s=`echo $$x | sed 's!$(MANRX)!\1!'` ; \
- rm -f $(mandir)/man$$s/$$x; done
- for x in $(CAT1) $(CAT3) $(CAT5) $(CAT8); do \
- s=`echo $$x | sed 's!$(CATRX)!\2!'`; \
- b=`echo $$x | sed 's!$(CATRX)!\1!'`; \
- rm -f $(mandir)/cat$$s/$$b.$(CATSUFFIX); done
-
-clean:
-
-mostlyclean: clean
-
-distclean:
- rm -f Makefile *~
-
-realclean:
-
diff --git a/crypto/kerberosIV/man/acl_check.3 b/crypto/kerberosIV/man/acl_check.3
deleted file mode 100644
index 53bb7c8bf961..000000000000
--- a/crypto/kerberosIV/man/acl_check.3
+++ /dev/null
@@ -1,182 +0,0 @@
-.\" $Id: acl_check.3,v 1.2 1996/06/12 21:29:08 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH ACL_CHECK 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-acl_canonicalize_principal, acl_check, acl_exact_match, acl_add,
-acl_delete, acl_initialize \- Access control list routines
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-cc <files> \-lacl \-lkrb
-.PP
-.ft B
-#include <krb.h>
-.PP
-.ft B
-acl_canonicalize_principal(principal, buf)
-char *principal;
-char *buf;
-.PP
-.ft B
-acl_check(acl, principal)
-char *acl;
-char *principal;
-.PP
-.ft B
-acl_exact_match(acl, principal)
-char *acl;
-char *principal;
-.PP
-.ft B
-acl_add(acl, principal)
-char *acl;
-char *principal;
-.PP
-.ft B
-acl_delete(acl, principal)
-char *acl;
-char *principal;
-.PP
-.ft B
-acl_initialize(acl_file, mode)
-char *acl_file;
-int mode;
-.fi
-.ft R
-.SH DESCRIPTION
-.SS Introduction
-.PP
-An access control list (ACL) is a list of principals, where each
-principal is represented by a text string which cannot contain
-whitespace. The library allows application programs to refer to named
-access control lists to test membership and to atomically add and
-delete principals using a natural and intuitive interface. At
-present, the names of access control lists are required to be Unix
-filenames, and refer to human-readable Unix files; in the future, when
-a networked ACL server is implemented, the names may refer to a
-different namespace specific to the ACL service.
-.PP
-.SS Principal Names
-.PP
-Principal names have the form
-.nf
-.in +5n
-<name>[.<instance>][@<realm>]
-.in -5n
-e.g.:
-.in +5n
-asp
-asp.root
-asp@ATHENA.MIT.EDU
-asp.@ATHENA.MIT.EDU
-asp.root@ATHENA.MIT.EDU
-.in -5n
-.fi
-It is possible for principals to be underspecified. If an instance is
-missing, it is assumed to be "". If realm is missing, it is assumed
-to be the local realm as determined by
-.IR krb_get_lrealm (3).
-The canonical form contains all of name, instance,
-and realm; the acl_add and acl_delete routines will always
-leave the file in that form. Note that the canonical form of
-asp@ATHENA.MIT.EDU is actually asp.@ATHENA.MIT.EDU.
-.SS Routines
-.PP
-.I acl_canonicalize_principal
-stores the canonical form of
-.I principal
-in
-.IR buf .
-.I Buf
-must contain enough
-space to store a principal, given the limits on the sizes of name,
-instance, and realm specified as ANAME_SZ, INST_SZ, and REALM_SZ,
-respectively, in
-.IR /usr/include/krb.h .
-.PP
-.I acl_check
-returns nonzero if
-.I principal
-appears in
-.IR acl .
-Returns 0 if principal
-does not appear in acl, or if an error occurs. Canonicalizes
-principal before checking, and allows the ACL to contain wildcards. The
-only supported wildcards are entries of the form
-name.*@realm, *.*@realm, and *.*@*. An asterisk matches any value for the
-its component field. For example, "jtkohl.*@*" would match principal
-jtkohl, with any instance and any realm.
-.PP
-.I acl_exact_match
-performs like
-.IR acl_check ,
-but does no canonicalization or wildcard matching.
-.PP
-.I acl_add
-atomically adds
-.I principal
-to
-.IR acl .
-Returns 0 if successful, nonzero otherwise. It is considered a failure
-if
-.I principal
-is already in
-.IR acl .
-This routine will canonicalize
-.IR principal ,
-but will treat wildcards literally.
-.PP
-.I acl_delete
-atomically deletes
-.I principal
-from
-.IR acl .
-Returns 0 if successful,
-nonzero otherwise. It is considered a failure if
-.I principal
-is not
-already in
-.IR acl .
-This routine will canonicalize
-.IR principal ,
-but will treat wildcards literally.
-.PP
-.I acl_initialize
-initializes
-.IR acl_file .
-If the file
-.I acl_file
-does not exist,
-.I acl_initialize
-creates it with mode
-.IR mode .
-If the file
-.I acl_file
-exists,
-.I acl_initialize
-removes all members. Returns 0 if successful,
-nonzero otherwise. WARNING: Mode argument is likely to change with
-the eventual introduction of an ACL service.
-.SH NOTES
-In the presence of concurrency, there is a very small chance that
-.I acl_add
-or
-.I acl_delete
-could report success even though it would have
-had no effect. This is a necessary side effect of using lock files
-for concurrency control rather than flock(2), which is not supported
-by NFS.
-.PP
-The current implementation caches ACLs in memory in a hash-table
-format for increased efficiency in checking membership; one effect of
-the caching scheme is that one file descriptor will be kept open for
-each ACL cached, up to a maximum of 8.
-.SH SEE ALSO
-kerberos(3), krb_get_lrealm(3)
-.SH AUTHOR
-James Aspnes (MIT Project Athena)
diff --git a/crypto/kerberosIV/man/ext_srvtab.8 b/crypto/kerberosIV/man/ext_srvtab.8
deleted file mode 100644
index 4f2c12006be5..000000000000
--- a/crypto/kerberosIV/man/ext_srvtab.8
+++ /dev/null
@@ -1,62 +0,0 @@
-.\" $Id: ext_srvtab.8,v 1.3 1997/04/02 21:09:51 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH EXT_SRVTAB 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-ext_srvtab \- extract service key files from Kerberos key distribution center database
-.SH SYNOPSIS
-ext_srvtab [
-.B \-n
-] [
-.B \-r realm
-] [
-.B hostname ...
-]
-.SH DESCRIPTION
-.I ext_srvtab
-extracts service key files from the Kerberos key distribution center
-(KDC) database.
-.PP
-Upon execution, it prompts the user to enter the master key string for
-the database. If the
-.B \-n
-option is specified, the master key is instead fetched from the master
-key cache file.
-.PP
-For each
-.I hostname
-specified on the command line,
-.I ext_srvtab
-creates the service key file
-.IR hostname -new-srvtab,
-containing all the entries in the database with an instance field of
-.I hostname.
-This new file contains all the keys registered for Kerberos-mediated
-service providing programs which use the
-.IR krb_get_phost (3)
-principal and instance conventions to run on the host
-.IR hostname .
-If the
-.B \-r
-option is specified, the realm fields in the extracted file will
-match the given realm rather than the local realm.
-.SH DIAGNOSTICS
-.TP 20n
-"verify_master_key: Invalid master key, does not match database."
-The master key string entered was incorrect.
-.SH FILES
-.TP 20n
-.IR hostname -new-srvtab
-Service key file generated for
-.I hostname
-.TP
-/var/kerberos/principal.pag, /var/kerberos/principal.dir
-DBM files containing database
-.TP
-/.k
-Master key cache file.
-.SH SEE ALSO
-read_service_key(3), krb_get_phost(3)
diff --git a/crypto/kerberosIV/man/getusershell.3 b/crypto/kerberosIV/man/getusershell.3
deleted file mode 100644
index 84dc3ad932ba..000000000000
--- a/crypto/kerberosIV/man/getusershell.3
+++ /dev/null
@@ -1,99 +0,0 @@
-.\" $NetBSD: getusershell.3,v 1.3 1995/02/27 04:13:24 cgd Exp $
-.\"
-.\" Copyright (c) 1985, 1991, 1993
-.\" The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
-.\"
-.\" @(#)getusershell.3 8.1 (Berkeley) 6/4/93
-.\"
-.Dd June 4, 1993
-.Dt GETUSERSHELL 3
-.Os BSD 4.3
-.Sh NAME
-.Nm getusershell ,
-.Nm setusershell ,
-.Nm endusershell
-.Nd get legal user shells
-.Sh SYNOPSIS
-.Ft char *
-.Fn getusershell void
-.Ft void
-.Fn setusershell void
-.Ft void
-.Fn endusershell void
-.Sh DESCRIPTION
-The
-.Fn getusershell
-function
-returns a pointer to a legal user shell as defined by the
-system manager in the file
-.Pa /etc/shells .
-If
-.Pa /etc/shells
-is unreadable or does not exist,
-.Fn getusershell
-behaves as if
-.Pa /bin/sh
-and
-.Pa /bin/csh
-were listed in the file.
-.Pp
-The
-.Fn getusershell
-function
-reads the next
-line (opening the file if necessary);
-.Fn setusershell
-rewinds the file;
-.Fn endusershell
-closes it.
-.Sh FILES
-.Bl -tag -width /etc/shells -compact
-.It Pa /etc/shells
-.El
-.Sh DIAGNOSTICS
-The routine
-.Fn getusershell
-returns a null pointer (0) on
-.Dv EOF .
-.Sh SEE ALSO
-.Xr shells 5
-.Sh HISTORY
-The
-.Fn getusershell
-function appeared in
-.Bx 4.3 .
-.Sh BUGS
-The
-.Fn getusershell
-function leaves its result in an internal static object and returns
-a pointer to that object. Subsequent calls to
-.Fn getusershell
-will modify the same object.
diff --git a/crypto/kerberosIV/man/kadmin.8 b/crypto/kerberosIV/man/kadmin.8
deleted file mode 100644
index 3139b2513cc8..000000000000
--- a/crypto/kerberosIV/man/kadmin.8
+++ /dev/null
@@ -1,176 +0,0 @@
-.\" $Id: kadmin.8,v 1.4 1997/04/02 21:09:53 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KADMIN 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kadmin \- network utility for Kerberos database administration
-.SH SYNOPSIS
-.B kadmin [-u user] [-r default_realm] [-m] [-t]
-.SH DESCRIPTION
-This utility provides a unified administration interface to
-the
-Kerberos
-master database.
-Kerberos
-administrators
-use
-.I kadmin
-to register new users and services to the master database,
-and to change information about existing database entries.
-For instance, an administrator can use
-.I kadmin
-to change a user's
-Kerberos
-password.
-A Kerberos administrator is a user with an ``admin'' instance
-whose name appears on one of the Kerberos administration access control
-lists. If the \-u option is used,
-.I user
-will be used as the administrator instead of the local user.
-If the \-r option is used,
-.I default_realm
-will be used as the default realm for transactions. Otherwise,
-the local realm will be used by default.
-If the \-m option is used, multiple requests will be permitted
-on only one entry of the admin password. Some sites won't
-support this option. The \-t option is used to tell kadmin to use the
-existing ticket file instead of creating a new one.
-
-The
-.I kadmin
-program communicates over the network with the
-.I kadmind
-program, which runs on the machine housing the Kerberos master
-database.
-The
-.I kadmind
-creates new entries and makes modifications to the database.
-
-When you enter the
-.I kadmin
-command,
-the program displays a message that welcomes you and explains
-how to ask for help.
-Then
-.I kadmin
-waits for you to enter commands (which are described below).
-It then asks you for your
-.I admin
-password before accessing the database.
-
-All commands can be abbreviated as long as they are unique. Some
-short versions of the commands are also recognized for backwards
-compatibility.
-
-Use the
-.I add_new_key
-(or
-.I ank
-for short)
-command to register a new principal
-with the master database.
-The command requires one argument,
-the principal's name. The name
-given can be fully qualified using
-the standard
-.I name.instance@realm
-convention.
-You are asked to enter your
-.I admin
-password,
-then prompted twice to enter the principal's
-new password. If no realm is specified,
-the local realm is used unless another was
-given on the commandline with the \-r flag.
-If no instance is
-specified, a null instance is used. If
-a realm other than the default realm is specified,
-you will need to supply your admin password for
-the other realm.
-
-Use the
-.I change_password (cpw)
-to change a principal's
-Kerberos
-password.
-The command requires one argument,
-the principal's
-name.
-You are asked to enter your
-.I admin
-password,
-then prompted twice to enter the principal's new password.
-The name
-given can be fully qualified using
-the standard
-.I name.instance@realm
-convention.
-
-Use the
-.I change_key (ckey)
-if you have a need to change the raw key of a particular principal.
-In other words, if you do not want to input a DES key instead of a
-password that will get converted into a DES key.
-
-Use the
-.I change_admin_password (cap)
-to change your
-.I admin
-instance password.
-This command requires no arguments.
-It prompts you for your old
-.I admin
-password, then prompts you twice to enter the new
-.I admin
-password. If this is your first command,
-the default realm is used. Otherwise, the realm
-used in the last command is used.
-
-Use the
-.I del_entry (del)
-to remove an entry from the kerberos database.
-
-Use the
-.I mod_entry (mod)
-to modify a particular entry, for example to change the expire date.
-
-Use the
-.I destroy_tickets (dest)
-command to destroy your admin tickets explicitly.
-
-Use the
-.I list_requests (lr)
-command to get a list of possible commands.
-
-Use the
-.I help
-command to display
-.IR kadmin's
-various help messages.
-If entered without an argument,
-.I help
-displays a general help message.
-You can get detailed information on specific
-.I kadmin
-commands
-by entering
-.I help
-.IR command_name .
-
-To quit the program, type
-.IR quit .
-
-.SH BUGS
-The user interface is primitive, and the command names could be better.
-
-.SH "SEE ALSO"
-kerberos(1), kadmind(8), kpasswd(1), ksrvutil(8)
-.br
-``A Subsystem Utilities Package for UNIX'' by Ken Raeburn
-.SH AUTHORS
-Jeffrey I. Schiller, MIT Project Athena
-.br
-Emanuel Jay Berkenbilt, MIT Project Athena
diff --git a/crypto/kerberosIV/man/kadmind.8 b/crypto/kerberosIV/man/kadmind.8
deleted file mode 100644
index 477511bb1d33..000000000000
--- a/crypto/kerberosIV/man/kadmind.8
+++ /dev/null
@@ -1,125 +0,0 @@
-.\" $Id: kadmind.8,v 1.4 1997/04/02 21:09:53 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KADMIND 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kadmind \- network daemon for Kerberos database administration
-.SH SYNOPSIS
-.B kadmind
-[
-.B \-n
-] [
-.B \-m
-] [
-.B \-h
-] [
-.B \-r realm
-] [
-.B \-f filename
-] [
-.B \-d dbname
-] [
-.B \-a acldir
-]
-.SH DESCRIPTION
-.I kadmind
-is the network database server for the Kerberos password-changing and
-administration tools.
-.PP
-Upon execution, it fetches the master key from the key cache file.
-.PP
-If the
-.B \-m
-option is specified, it instead prompts the user to enter the master
-key string for the database.
-.PP
-The
-.B \-n
-option is a no-op and is left for compatibility reasons.
-.PP
-If the
-.B \-r
-.I realm
-option is specified, the admin server will pretend that its
-local realm is
-.I realm
-instead of the actual local realm of the host it is running on.
-This makes it possible to run a server for a foreign kerberos
-realm.
-.PP
-If the
-.B \-f
-.I filename
-option is specified, then that file is used to hold the log information
-instead of the default.
-.PP
-If the
-.B \-d
-.I dbname
-option is specified, then that file is used as the database name instead
-of the default.
-.PP
-If the
-.B \-a
-.I acldir
-option is specified, then
-.I acldir
-is used as the directory in which to search for access control lists
-instead of the default.
-.PP
-If the
-.B \-h
-option is specified,
-.I kadmind
-prints out a short summary of the permissible control arguments, and
-then exits.
-.PP
-When performing requests on behalf of clients,
-.I kadmind
-checks access control lists (ACLs) to determine the authorization of the client
-to perform the requested action.
-Currently four distinct access types are supported:
-.TP 1i
-Addition
-(.add ACL file). If a principal is on this list, it may add new
-principals to the database.
-.TP
-Retrieval
-(.get ACL file). If a principal is on this list, it may retrieve
-database entries. NOTE: A principal's private key is never returned by
-the get functions.
-.TP
-Modification
-(.mod ACL file). If a principal is on this list, it may modify entries
-in the database.
-.TP
-Deletions
-(.del ACL file). If a principal is on this list, if may delete
-entries from the database.
-.PP
-A principal is always granted authorization to change its own password.
-.SH FILES
-.TP 20n
-/kerberos/admin_server.syslog
-Default log file.
-.TP
-/kerberos
-Default access control list directory.
-.TP
-admin_acl.{add,get,mod}
-Access control list files (within the directory)
-.TP
-/kerberos/principal.pag, /kerberos/principal.dir
-Default DBM files containing database
-.TP
-/.k
-Master key cache file.
-.SH "SEE ALSO"
-kerberos(1), kpasswd(1), kadmin(8), acl_check(3)
-.SH AUTHORS
-Douglas A. Church, MIT Project Athena
-.br
-John T. Kohl, Project Athena/Digital Equipment Corporation
diff --git a/crypto/kerberosIV/man/kafs.3 b/crypto/kerberosIV/man/kafs.3
deleted file mode 100644
index 041fd23517b9..000000000000
--- a/crypto/kerberosIV/man/kafs.3
+++ /dev/null
@@ -1,122 +0,0 @@
-.\" $Id: kafs.3,v 1.1 1997/05/07 21:49:02 joda Exp $
-.\"
-.Dd May 7, 1997
-.Os KTH-KRB
-.Dt KAFS 3
-.Sh NAME
-.Nm k_hasafs ,
-.Nm k_afsklog ,
-.Nm k_afsklog_uid ,
-.Nm k_pioctl ,
-.Nm k_unlog ,
-.Nm k_setpag ,
-.Nm k_afs_cell_of_file
-.Nd AFS library
-.Sh SYNOPSIS
-.Fd #include <kafs.h>
-.Ft int
-.Fn k_afsklog "char *cell" "char *realm"
-.Ft int
-.Fn k_afsklog_uid "char *cell" "char *realm" "uid_t uid"
-.Ft int
-.Fn k_afs_cell_of_file "const char *path" "char *cell" "int len"
-.Ft int
-.Fn k_hasafs
-.Ft int
-.Fn k_pioctl "char *a_path" "int o_opcode" "struct ViceIoctl *a_paramsP" "int a_followSymlinks"
-.Ft int
-.Fn k_setpag
-.Ft int
-.Fn k_unlog
-.Sh DESCRIPTION
-.Fn k_hasafs
-initializes some library internal structures, and tests for the
-presense of AFS in the kernel, none of the other functions should be
-called before
-.Fn k_hasafs
-is called, or if it fails.
-
-.Fn k_afsklog ,
-and
-.Fn k_afsklog_uid
-obtains new tokens (and possibly tickets) for the specified
-.Fa cell
-and
-.Fa realm .
-If
-.Fa cell
-is
-.Dv NULL ,
-the local cell is used. If
-.Fa realm
-is
-.Dv NULL ,
-the function tries to guess what realm to use. Unless you have some good knowledge of what cell or realm to use, you should pass
-.Dv NULL .
-.Fn k_afsklog
-will use the real user-id for the
-.Dv ViceId
-field in the token,
-.Fn k_afsklog_uid
-will use
-.Fa uid .
-
-.Fn k_afs_cell_of_file
-will in
-.Fa cell
-return the cell of a specified file, no more than
-.Fa len
-characters is put in
-.Fa cell .
-
-.Fn k_pioctl
-does a
-.Fn pioctl
-syscall with the specified arguments. This function is equivalent to
-.Fn lpioctl .
-
-.Fn k_setpag
-initializes a new PAG.
-
-.Fn k_unlog
-removes destroys all tokens in the current PAG.
-
-.Sh RETURN VALUES
-.Fn k_hasafs
-returns 1 if AFS is present in the kernel, 0 otherwise.
-.Fn k_afsklog
-and
-.Fn k_afsklog_uid
-returns 0 on success, or a kerberos error number on failure.
-.Fn k_afs_cell_of_file ,
-.Fn k_pioctl ,
-.Fn k_setpag ,
-and
-.Fn k_unlog
-all return the value of the underlaying system call, 0 on success.
-.Sh EXAMPLES
-The following code from
-.Nm login
-will obtain a new PAG and tokens for the local cell and the cell of
-the users home directory.
-.Bd -literal
-if (k_hasafs()) {
- char cell[64];
- k_setpag();
- if(k_afs_cell_of_file(pwd->pw_dir, cell, sizeof(cell)) == 0)
- k_afsklog(cell, 0);
- k_afsklog(0, 0);
-}
-.Ed
-.Sh ERRORS
-If any of these functions (appart from
-.Fn k_hasafs )
-is called without AFS beeing present in the kernel, the process will
-usually (depending on the operating system) receive a SIGSYS signal.
-.Sh SEE ALSO
-.Rs
-.%A Transarc Corporation
-.%J AFS-3 Programmer's Reference
-.%T File Server/Cache Manager Interface
-.%D 1991
-.Re \ No newline at end of file
diff --git a/crypto/kerberosIV/man/kauth.1 b/crypto/kerberosIV/man/kauth.1
deleted file mode 100644
index cc71b2913672..000000000000
--- a/crypto/kerberosIV/man/kauth.1
+++ /dev/null
@@ -1,65 +0,0 @@
-.\" $Id: kauth.1,v 1.1 1996/05/04 01:49:34 d91-jda Exp $
-.\"
-.Dd May 4, 1996
-.Dt KAUTH 1
-.Os KTH-KRB
-.Sh NAME
-.Nm kauth
-.Nd
-overworked Kerberos login program
-.Sh SYNOPSIS
-.Nm
-.Op Fl n Ar name
-.Op Fl r Ar remote user
-.Op Fl t Pa remote ticket file
-.Op Fl h Ar hosts...
-.Op Fl l Ar lifetime
-.Op Fl f Pa srvtab
-.Op Fl c Ar cell
-.Op Ar command ...
-.Sh DESCRIPTION
-The
-.Nm
-command obtains ticket granting tickets as well as AFS ticket and
-tokens. It also does a whole lot of other stuff.
-.Pp
-The following flags are supported:
-.Bl -tag -width xxxx
-.It Fl n
-Principal to get tickets for. If no other arguments are present this
-can be given without the
-.Fl n
-flag.
-.It Fl h
-Remote hosts to obtain tickets for. This works similar to the MIT
-Athena Kerberos 4 patchlevel 10 command
-.Xr rkinit 1 ,
-however not in a compatible way. It requires that the remote host runs
-the
-.Xr kauthd 8 ,
-server. The
-.Fl r
-and
-.Fl t
-flags are useful only with this option.
-.It Fl r
-User on the remote host that should own the ticket file.
-.It Fl t
-Ticket file on remote host.
-.It Fl l
-Lifetime of tickets i minutes
-.It Fl f
-Srvtab to get service keys from. Default is
-.Pa /etc/srvtab .
-This is mainly used with batch services that need to run
-authenticated. If any command is given, it will be executed in an
-authenticated fashion and when the program exits the tickets are
-destroyed. For long running jobs the tickets will be renewed.
-.It Fl c
-AFS cell to get tokens for, default is your local cell.
-.El
-.Sh SEE ALSO
-.Xr kinit 1 ,
-.Xr kauthd 8
-.Sh BUGS
-There is no help-switch.
diff --git a/crypto/kerberosIV/man/kauthd.8 b/crypto/kerberosIV/man/kauthd.8
deleted file mode 100644
index 4978ff2c5c71..000000000000
--- a/crypto/kerberosIV/man/kauthd.8
+++ /dev/null
@@ -1,27 +0,0 @@
-.\" $Id: kauthd.8,v 1.2 1996/09/28 22:04:48 assar Exp $
-.\"
-.Dd September 27, 1996
-.Dt KAUTHD 8
-.Os KTH-KRB
-.Sh NAME
-.Nm kauthd
-.Nd
-remote Kerberos login daemon
-.Sh SYNOPSIS
-.Nm
-.Sh DESCRIPTION
-Daemon for the
-.Xr kauth 1
-command.
-.Pp
-Options supported by
-.Nm kauthd :
-.Bl -tag -width Ds
-.It Fl i
-Interactive. Do not expect to be started by
-.Nm inetd,
-but allocate and listen to the socket yourself. Handy for testing
-and debugging.
-.El
-.Sh SEE ALSO
-.Xr kauth 1
diff --git a/crypto/kerberosIV/man/kdb_destroy.8 b/crypto/kerberosIV/man/kdb_destroy.8
deleted file mode 100644
index c6e47396fa0f..000000000000
--- a/crypto/kerberosIV/man/kdb_destroy.8
+++ /dev/null
@@ -1,32 +0,0 @@
-.\" $Id: kdb_destroy.8,v 1.3 1997/04/02 21:09:54 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KDB_DESTROY 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kdb_destroy \- destroy Kerberos key distribution center database
-.SH SYNOPSIS
-kdb_destroy
-.SH DESCRIPTION
-.I kdb_destroy
-deletes a Kerberos key distribution center database.
-.PP
-The user is prompted to verify that the database should be destroyed. A
-response beginning with `y' or `Y' confirms deletion.
-Any other response aborts deletion.
-.SH DIAGNOSTICS
-.TP 20n
-"Database cannot be deleted at /var/kerberos/principal"
-The attempt to delete the database failed (probably due to a system or
-access permission error).
-.TP
-"Database not deleted."
-The user aborted the deletion.
-.SH FILES
-.TP 20n
-/var/kerberos/principal.pag, /var/kerberos/principal.dir
-DBM files containing database
-.SH SEE ALSO
-kdb_init(8)
diff --git a/crypto/kerberosIV/man/kdb_edit.8 b/crypto/kerberosIV/man/kdb_edit.8
deleted file mode 100644
index 14f7e92a0fd0..000000000000
--- a/crypto/kerberosIV/man/kdb_edit.8
+++ /dev/null
@@ -1,54 +0,0 @@
-.\" $Id: kdb_edit.8,v 1.3 1997/04/02 21:09:54 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KDB_EDIT 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kdb_edit \- Kerberos key distribution center database editing utility
-.SH SYNOPSIS
-kdb_edit [
-.B \-n
-]
-.SH DESCRIPTION
-.I kdb_edit
-is used to create or change principals stored in the Kerberos key
-distribution center (KDC) database.
-.PP
-When executed,
-.I kdb_edit
-prompts for the master key string and verifies that it matches the
-master key stored in the database.
-If the
-.B \-n
-option is specified, the master key is instead fetched from the master
-key cache file.
-.PP
-Once the master key has been verified,
-.I kdb_edit
-begins a prompt loop. The user is prompted for the principal and
-instance to be modified. If the entry is not found the user may create
-it.
-Once an entry is found or created, the user may set the password,
-expiration date, maximum ticket lifetime, and attributes.
-Default expiration dates, maximum ticket lifetimes, and attributes are
-presented in brackets; if the user presses return the default is selected.
-There is no default password.
-The password RANDOM is interpreted specially, and if entered
-the user may have the program select a random DES key for the
-principal.
-.PP
-Upon successfully creating or changing the entry, ``Edit O.K.'' is
-printed.
-.SH DIAGNOSTICS
-.TP 20n
-"verify_master_key: Invalid master key, does not match database."
-The master key string entered was incorrect.
-.SH FILES
-.TP 20n
-/var/kerberos/principal.pag, /var/kerberos/principal.dir
-DBM files containing database
-.TP
-/.k
-Master key cache file.
diff --git a/crypto/kerberosIV/man/kdb_init.8 b/crypto/kerberosIV/man/kdb_init.8
deleted file mode 100644
index f019dd4a413e..000000000000
--- a/crypto/kerberosIV/man/kdb_init.8
+++ /dev/null
@@ -1,37 +0,0 @@
-.\" $Id: kdb_init.8,v 1.3 1997/04/02 21:09:54 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KDB_INIT 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kdb_init \- Initialize Kerberos key distribution center database
-.SH SYNOPSIS
-kdb_init [
-.B realm
-]
-.SH DESCRIPTION
-.I kdb_init
-initializes a Kerberos key distribution center database, creating the
-necessary principals.
-.PP
-If the optional
-.I realm
-argument is not present,
-.I kdb_init
-prompts for a realm name.
-After determining the realm to be created, it prompts for
-a master key password. The master key password is used to encrypt
-every encryption key stored in the database.
-.SH DIAGNOSTICS
-.TP 20n
-"/var/kerberos/principal: File exists"
-An attempt was made to create a database on a machine which already had
-an existing database.
-.SH FILES
-.TP 20n
-/var/kerberos/principal.pag, /var/kerberos/principal.dir
-DBM files containing database
-.SH SEE ALSO
-kdb_destroy(8)
diff --git a/crypto/kerberosIV/man/kdb_util.8 b/crypto/kerberosIV/man/kdb_util.8
deleted file mode 100644
index 0e3c201a514c..000000000000
--- a/crypto/kerberosIV/man/kdb_util.8
+++ /dev/null
@@ -1,68 +0,0 @@
-.\" $Id: kdb_util.8,v 1.3 1997/04/02 20:45:38 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KDB_UTIL 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kdb_util \- Kerberos key distribution center database utility
-.SH SYNOPSIS
-kdb_util
-.B operation filename
-.SH DESCRIPTION
-.I kdb_util
-allows the Kerberos key distribution center (KDC) database administrator to
-perform utility functions on the database.
-.PP
-.I Operation
-must be one of the following:
-.TP 10n
-.I load
-initializes the KDC database with the records described by the
-text contained in the file
-.IR filename .
-Any existing database is overwritten.
-.TP
-.I dump
-dumps the KDC database into a text representation in the file
-.IR filename .
-.TP
-.I slave_dump
-performs a database dump like the
-.I dump
-operation, and additionally creates a semaphore file signalling the
-propagation software that an update is available for distribution to
-slave KDC databases.
-.TP
-.I merge
-merges in the entries from
-.IR filename
-into the database.
-.TP
-.I new_master_key
-prompts for the old and new master key strings, and then dumps the KDC
-database into a text representation in the file
-.IR filename .
-The keys in the text representation are encrypted in the new master key.
-.TP
-.I convert_old_db
-prompts for the master key string, and then dumps the KDC database into
-a text representation in the file
-.IR filename .
-The existing database is assumed to be encrypted using the old format
-(encrypted by the key schedule of the master key); the dumped database
-is encrypted using the new format (encrypted directly with master key).
-.PP
-.SH DIAGNOSTICS
-.TP 20n
-"verify_master_key: Invalid master key, does not match database."
-The master key string entered was incorrect.
-.SH FILES
-.TP 20n
-/kerberos/principal.pag, /kerberos/principal.dir
-DBM files containing database
-.TP
-.IR filename .ok
-semaphore file created by
-.IR slave_dump.
diff --git a/crypto/kerberosIV/man/kdestroy.1 b/crypto/kerberosIV/man/kdestroy.1
deleted file mode 100644
index 66ffd39a7654..000000000000
--- a/crypto/kerberosIV/man/kdestroy.1
+++ /dev/null
@@ -1,88 +0,0 @@
-.\" $Id: kdestroy.1,v 1.3 1996/06/12 21:29:16 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KDESTROY 1 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kdestroy \- destroy Kerberos tickets
-.SH SYNOPSIS
-.B kdestroy
-[
-.B \-f
-]
-[
-.B \-q
-]
-[
-.B \-t
-]
-.SH DESCRIPTION
-The
-.I kdestroy
-utility destroys the user's active
-Kerberos
-authorization tickets by writing zeros to the file that contains them.
-If the ticket file does not exist,
-.I kdestroy
-displays a message to that effect.
-.PP
-After overwriting the file,
-.I kdestroy
-removes the file from the system.
-The utility
-displays a message indicating the success or failure of the
-operation.
-If
-.I kdestroy
-is unable to destroy the ticket file,
-the utility will warn you by making your terminal beep.
-.PP
-In the Athena workstation environment,
-the
-.I toehold
-service automatically destroys your tickets when you
-end a workstation session.
-If your site does not provide a similar ticket-destroying mechanism,
-you can place the
-.I kdestroy
-command in your
-.I .logout
-file so that your tickets are destroyed automatically
-when you logout.
-.PP
-The options to
-.I kdestroy
-are as follows:
-.TP 7
-.B \-f
-.I kdestroy
-runs without displaying the status message.
-.TP
-.B \-q
-.I kdestroy
-will not make your terminal beep if it fails to destroy the tickets.
-.TP
-.B \-t
-.I kdestroy
-will not remove any afs-tokens. Without this flag the tokens
-associated with the current PAG is destroyed.
-.SH FILES
-KRBTKFILE environment variable if set, otherwise
-.br
-/tmp/tkt[uid]
-.SH SEE ALSO
-kerberos(1), kinit(1), klist(1)
-.SH BUGS
-.PP
-Only the tickets in the user's current ticket file are destroyed.
-Separate ticket files are used to hold root instance and password
-changing tickets. These files should probably be destroyed too, or
-all of a user's tickets kept in a single ticket file.
-.SH AUTHORS
-Steve Miller, MIT Project Athena/Digital Equipment Corporation
-.br
-Clifford Neuman, MIT Project Athena
-.br
-Bill Sommerfeld, MIT Project Athena
diff --git a/crypto/kerberosIV/man/kerberos.1 b/crypto/kerberosIV/man/kerberos.1
deleted file mode 100644
index aced5a574066..000000000000
--- a/crypto/kerberosIV/man/kerberos.1
+++ /dev/null
@@ -1,258 +0,0 @@
-.\" $Id: kerberos.1,v 1.2 1996/06/12 21:29:16 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KERBEROS 1 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kerberos \- introduction to the Kerberos system
-
-.SH DESCRIPTION
-The
-Kerberos
-system authenticates
-individual users in a network environment.
-After authenticating yourself to
-Kerberos,
-you can use network utilities such as
-.IR rlogin ,
-.IR rcp ,
-and
-.IR rsh
-without
-having to present passwords to remote hosts and without having to bother
-with
-.I \.rhosts
-files.
-Note that these utilities will work without passwords only if
-the remote machines you deal with
-support the
-Kerberos
-system.
-All Athena timesharing machines and public workstations support
-Kerberos.
-.PP
-Before you can use
-Kerberos,
-you must register as an Athena user,
-and you must make sure you have been added to
-the
-Kerberos
-database.
-You can use the
-.I kinit
-command to find out.
-This command
-tries to log you into the
-Kerberos
-system.
-.I kinit
-will prompt you for a username and password.
-Enter your username and password.
-If the utility lets you login without giving you a message,
-you have already been registered.
-.PP
-If you enter your username and
-.I kinit
-responds with this message:
-.nf
-
-Principal unknown (kerberos)
-
-.fi
-you haven't been registered as a
-Kerberos
-user.
-See your system administrator.
-.PP
-A Kerberos name contains three parts.
-The first is the
-.I principal name,
-which is usually a user's or service's name.
-The second is the
-.I instance,
-which in the case of a user is usually null.
-Some users may have privileged instances, however,
-such as ``root'' or ``admin''.
-In the case of a service, the instance is the
-name of the machine on which it runs; i.e. there
-can be an
-.I rlogin
-service running on the machine ABC, which
-is different from the rlogin service running on
-the machine XYZ.
-The third part of a Kerberos name
-is the
-.I realm.
-The realm corresponds to the Kerberos service providing
-authentication for the principal.
-For example, at MIT there is a Kerberos running at the
-Laboratory for Computer Science and one running at
-Project Athena.
-.PP
-When writing a Kerberos name, the principal name is
-separated from the instance (if not null) by a period,
-and the realm (if not the local realm) follows, preceded by
-an ``@'' sign.
-The following are examples of valid Kerberos names:
-.sp
-.nf
-.in +8
-billb
-jis.admin
-srz@lcs.mit.edu
-treese.root@athena.mit.edu
-.in -8
-.fi
-.PP
-When you authenticate yourself with
-Kerberos,
-through either the workstation
-.I toehold
-system or the
-.I kinit
-command,
-Kerberos
-gives you an initial
-Kerberos
-.IR ticket .
-(A
-Kerberos
-ticket
-is an encrypted protocol message that provides authentication.)
-Kerberos
-uses this ticket for network utilities
-such as
-.I rlogin
-and
-.IR rcp .
-The ticket transactions are done transparently,
-so you don't have to worry about their management.
-.PP
-Note, however, that tickets expire.
-Privileged tickets, such as root instance tickets,
-expire in a few minutes, while tickets that carry more ordinary
-privileges may be good for several hours or a day, depending on the
-installation's policy.
-If your login session extends beyond the time limit,
-you will have to re-authenticate yourself to
-Kerberos
-to get new tickets.
-Use the
-.IR kinit
-command to re-authenticate yourself.
-.PP
-If you use the
-.I kinit
-command to get your tickets,
-make sure you use the
-.I kdestroy
-command
-to destroy your tickets before you end your login session.
-You should probably put the
-.I kdestroy
-command in your
-.I \.logout
-file so that your tickets will be destroyed automatically when you logout.
-For more information about the
-.I kinit
-and
-.I kdestroy
-commands,
-see the
-.I kinit(1)
-and
-.I kdestroy(1)
-manual pages.
-.PP
-Currently,
-Kerberos
-supports the following network services:
-.IR rlogin ,
-.IR rsh ,
-and
-.IR rcp .
-Other services are being worked on,
-such as the
-.IR pop
-mail system and NFS (network file system),
-but are not yet available.
-
-.SH "SEE ALSO"
-kdestroy(1), kinit(1), klist(1), kpasswd(1), des_crypt(3), kerberos(3),
-kadmin(8)
-.SH BUGS
-Kerberos
-will not do authentication forwarding.
-In other words,
-if you use
-.I rlogin
-to login to a remote host,
-you cannot use
-Kerberos
-services from that host
-until you authenticate yourself explicitly on that host.
-Although you may need to authenticate yourself on the remote
-host,
-be aware that when you do so,
-.I rlogin
-sends your password across the network in clear text.
-
-.SH AUTHORS
-Steve Miller, MIT Project Athena/Digital Equipment Corporation
-.br
-Clifford Neuman, MIT Project Athena
-
-The following people helped out on various aspects of the system:
-
-Jeff Schiller designed and wrote the administration server and its
-user interface, kadmin.
-He also wrote the dbm version of the database management system.
-
-Mark Colan developed the
-Kerberos
-versions of
-.IR rlogin ,
-.IR rsh ,
-and
-.IR rcp ,
-as well as contributing work on the servers.
-
-John Ostlund developed the
-Kerberos
-versions of
-.I passwd
-and
-.IR userreg .
-
-Stan Zanarotti pioneered Kerberos in a foreign realm (LCS),
-and made many contributions based on that experience.
-
-Many people contributed code and/or useful ideas, including
-Jim Aspnes,
-Bob Baldwin,
-John Barba,
-Richard Basch,
-Jim Bloom,
-Bill Bryant,
-Rob French,
-Dan Geer,
-David Jedlinsky,
-John Kohl,
-John Kubiatowicz,
-Bob McKie,
-Brian Murphy,
-Ken Raeburn,
-Chris Reed,
-Jon Rochlis,
-Mike Shanzer,
-Bill Sommerfeld,
-Jennifer Steiner,
-Ted Ts'o,
-and
-Win Treese.
-
-.SH RESTRICTIONS
-
-COPYRIGHT 1985,1986 Massachusetts Institute of Technology
diff --git a/crypto/kerberosIV/man/kerberos.3 b/crypto/kerberosIV/man/kerberos.3
deleted file mode 100644
index 71da54dd2cd0..000000000000
--- a/crypto/kerberosIV/man/kerberos.3
+++ /dev/null
@@ -1,460 +0,0 @@
-.\" $Id: kerberos.3,v 1.2 1996/06/12 21:29:18 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KERBEROS 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-krb_mk_req, krb_rd_req, krb_kntoln, krb_set_key, krb_get_cred,
-krb_mk_priv, krb_rd_priv, krb_mk_safe, krb_rd_safe, krb_mk_err,
-krb_rd_err, krb_ck_repl \- Kerberos authentication library
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <des.h>
-#include <krb.h>
-.PP
-.ft B
-extern char *krb_err_txt[];
-.PP
-.ft B
-int krb_mk_req(authent,service,instance,realm,checksum)
-KTEXT authent;
-char *service;
-char *instance;
-char *realm;
-u_long checksum;
-.PP
-.ft B
-int krb_rd_req(authent,service,instance,from_addr,ad,fn)
-KTEXT authent;
-char *service;
-char *instance;
-u_long from_addr;
-AUTH_DAT *ad;
-char *fn;
-.PP
-.ft B
-int krb_kntoln(ad,lname)
-AUTH_DAT *ad;
-char *lname;
-.PP
-.ft B
-int krb_set_key(key,cvt)
-char *key;
-int cvt;
-.PP
-.ft B
-int krb_get_cred(service,instance,realm,c)
-char *service;
-char *instance;
-char *realm;
-CREDENTIALS *c;
-.PP
-.ft B
-long krb_mk_priv(in,out,in_length,schedule,key,sender,receiver)
-u_char *in;
-u_char *out;
-u_long in_length;
-des_cblock key;
-des_key_schedule schedule;
-struct sockaddr_in *sender;
-struct sockaddr_in *receiver;
-.PP
-.ft B
-long krb_rd_priv(in,in_length,schedule,key,sender,receiver,msg_data)
-u_char *in;
-u_long in_length;
-Key_schedule schedule;
-des_cblock key;
-struct sockaddr_in *sender;
-struct sockaddr_in *receiver;
-MSG_DAT *msg_data;
-.PP
-.ft B
-long krb_mk_safe(in,out,in_length,key,sender,receiver)
-u_char *in;
-u_char *out;
-u_long in_length;
-des_cblock key;
-struct sockaddr_in *sender;
-struct sockaddr_in *receiver;
-.PP
-.ft B
-long krb_rd_safe(in,length,key,sender,receiver,msg_data)
-u_char *in;
-u_long length;
-des_cblock key;
-struct sockaddr_in *sender;
-struct sockaddr_in *receiver;
-MSG_DAT *msg_data;
-.PP
-.ft B
-long krb_mk_err(out,code,string)
-u_char *out;
-long code;
-char *string;
-.PP
-.ft B
-long krb_rd_err(in,length,code,msg_data)
-u_char *in;
-u_long length;
-long code;
-MSG_DAT *msg_data;
-.fi
-.ft R
-.SH DESCRIPTION
-This library supports network authentication and various related
-operations. The library contains many routines beyond those described
-in this man page, but they are not intended to be used directly.
-Instead, they are called by the routines that are described, the
-authentication server and the login program.
-.PP
-.I krb_err_txt[]
-contains text string descriptions of various Kerberos error codes returned
-by some of the routines below.
-.PP
-.I krb_mk_req
-takes a pointer to a text structure in which an authenticator is to be
-built. It also takes the name, instance, and realm of the service to be
-used and an optional checksum. It is up to the application to decide
-how to generate the checksum.
-.I krb_mk_req
-then retrieves a ticket for the desired service and creates an
-authenticator. The authenticator is built in
-.I authent
-and is accessible
-to the calling procedure.
-.PP
-It is up to the application to get the authenticator to the service
-where it will be read by
-.I krb_rd_req.
-Unless an attacker posesses the session key contained in the ticket, it
-will be unable to modify the authenticator. Thus, the checksum can be
-used to verify the authenticity of the other data that will pass through
-a connection.
-.PP
-.I krb_rd_req
-takes an authenticator of type
-.B KTEXT,
-a service name, an instance, the address of the
-host originating the request, and a pointer to a structure of type
-.B AUTH_DAT
-which is filled in with information obtained from the authenticator.
-It also optionally takes the name of the file in which it will find the
-secret key(s) for the service.
-If the supplied
-.I instance
-contains "*", then the first service key with the same service name
-found in the service key file will be used, and the
-.I instance
-argument will be filled in with the chosen instance. This means that
-the caller must provide space for such an instance name.
-.PP
-It is used to find out information about the principal when a request
-has been made to a service. It is up to the application protocol to get
-the authenticator from the client to the service. The authenticator is
-then passed to
-.I krb_rd_req
-to extract the desired information.
-.PP
-.I krb_rd_req
-returns zero (RD_AP_OK) upon successful authentication. If a packet was
-forged, modified, or replayed, authentication will fail. If the
-authentication fails, a non-zero value is returned indicating the
-particular problem encountered. See
-.I krb.h
-for the list of error codes.
-.PP
-If the last argument is the null string (""), krb_rd_req will use the
-file /etc/srvtab to find its keys. If the last argument is NULL, it
-will assume that the key has been set by
-.I krb_set_key
-and will not bother looking further.
-.PP
-.I krb_kntoln
-converts a Kerberos name to a local name. It takes a structure
-of type AUTH_DAT and uses the name and instance to look in the database
-/etc/aname to find the corresponding local name. The local name is
-returned and can be used by an application to change uids, directories,
-or other parameters. It is not an integral part of Kerberos, but is
-instead provided to support the use of Kerberos in existing utilities.
-.PP
-.I krb_set_key
-takes as an argument a des key. It then creates
-a key schedule from it and saves the original key to be used as an
-initialization vector.
-It is used to set the server's key which
-must be used to decrypt tickets.
-.PP
-If called with a non-zero second argument,
-.I krb_set_key
-will first convert the input from a string of arbitrary length to a DES
-key by encrypting it with a one-way function.
-.PP
-In most cases it should not be necessary to call
-.I krb_set_key.
-The necessary keys will usually be obtained and set inside
-.I krb_rd_req. krb_set_key
-is provided for those applications that do not wish to place the
-application keys on disk.
-.PP
-.I krb_get_cred
-searches the caller's ticket file for a ticket for the given service, instance,
-and realm; and, if a ticket is found, fills in the given CREDENTIALS structure
-with the ticket information.
-.PP
-If the ticket was found,
-.I krb_get_cred
-returns GC_OK.
-If the ticket file can't be found, can't be read, doesn't belong to
-the user (other than root), isn't a regular file, or is in the wrong
-mode, the error GC_TKFIL is returned.
-.PP
-.I krb_mk_priv
-creates an encrypted, authenticated
-message from any arbitrary application data, pointed to by
-.I in
-and
-.I in_length
-bytes long.
-The private session key, pointed to by
-.I key
-and the key schedule,
-.I schedule,
-are used to encrypt the data and some header information using
-.I pcbc_encrypt.
-.I sender
-and
-.I receiver
-point to the Internet address of the two parties.
-In addition to providing privacy, this protocol message protects
-against modifications, insertions or replays. The encapsulated message and
-header are placed in the area pointed to by
-.I out
-and the routine returns the length of the output, or -1 indicating
-an error.
-.PP
-.I krb_rd_priv
-decrypts and authenticates a received
-.I krb_mk_priv
-message.
-.I in
-points to the beginning of the received message, whose length
-is specified in
-.I in_length.
-The private session key, pointed to by
-.I key,
-and the key schedule,
-.I schedule,
-are used to decrypt and verify the received message.
-.I msg_data
-is a pointer to a
-.I MSG_DAT
-struct, defined in
-.I krb.h.
-The routine fills in the
-.I app_data
-field with a pointer to the decrypted application data,
-.I app_length
-with the length of the
-.I app_data
-field,
-.I time_sec
-and
-.I time_5ms
-with the timestamps in the message, and
-.I swap
-with a 1 if the byte order of the receiver is different than that of
-the sender. (The application must still determine if it is appropriate
-to byte-swap application data; the Kerberos protocol fields are already taken
-care of). The
-.I hash
-field returns a value useful as input to the
-.I krb_ck_repl
-routine.
-
-The routine returns zero if ok, or a Kerberos error code. Modified messages
-and old messages cause errors, but it is up to the caller to
-check the time sequence of messages, and to check against recently replayed
-messages using
-.I krb_ck_repl
-if so desired.
-.PP
-.I krb_mk_safe
-creates an authenticated, but unencrypted message from any arbitrary
-application data,
-pointed to by
-.I in
-and
-.I in_length
-bytes long.
-The private session key, pointed to by
-.I key,
-is used to seed the
-.I quad_cksum()
-checksum algorithm used as part of the authentication.
-.I sender
-and
-.I receiver
-point to the Internet address of the two parties.
-This message does not provide privacy, but does protect (via detection)
-against modifications, insertions or replays. The encapsulated message and
-header are placed in the area pointed to by
-.I out
-and the routine returns the length of the output, or -1 indicating
-an error.
-The authentication provided by this routine is not as strong as that
-provided by
-.I krb_mk_priv
-or by computing the checksum using
-.I cbc_cksum
-instead, both of which authenticate via DES.
-.PP
-
-.I krb_rd_safe
-authenticates a received
-.I krb_mk_safe
-message.
-.I in
-points to the beginning of the received message, whose length
-is specified in
-.I in_length.
-The private session key, pointed to by
-.I key,
-is used to seed the quad_cksum() routine as part of the authentication.
-.I msg_data
-is a pointer to a
-.I MSG_DAT
-struct, defined in
-.I krb.h .
-The routine fills in these
-.I MSG_DAT
-fields:
-the
-.I app_data
-field with a pointer to the application data,
-.I app_length
-with the length of the
-.I app_data
-field,
-.I time_sec
-and
-.I time_5ms
-with the timestamps in the message, and
-.I swap
-with a 1 if the byte order of the receiver is different than that of
-the sender.
-(The application must still determine if it is appropriate
-to byte-swap application data; the Kerberos protocol fields are already taken
-care of). The
-.I hash
-field returns a value useful as input to the
-.I krb_ck_repl
-routine.
-
-The routine returns zero if ok, or a Kerberos error code. Modified messages
-and old messages cause errors, but it is up to the caller to
-check the time sequence of messages, and to check against recently replayed
-messages using
-.I krb_ck_repl
-if so desired.
-.PP
-.I krb_mk_err
-constructs an application level error message that may be used along
-with
-.I krb_mk_priv
-or
-.I krb_mk_safe.
-.I out
-is a pointer to the output buffer,
-.I code
-is an application specific error code, and
-.I string
-is an application specific error string.
-
-.PP
-.I krb_rd_err
-unpacks a received
-.I krb_mk_err
-message.
-.I in
-points to the beginning of the received message, whose length
-is specified in
-.I in_length.
-.I code
-is a pointer to a value to be filled in with the error
-value provided by the application.
-.I msg_data
-is a pointer to a
-.I MSG_DAT
-struct, defined in
-.I krb.h .
-The routine fills in these
-.I MSG_DAT
-fields: the
-.I app_data
-field with a pointer to the application error text,
-.I app_length
-with the length of the
-.I app_data
-field, and
-.I swap
-with a 1 if the byte order of the receiver is different than that of
-the sender. (The application must still determine if it is appropriate
-to byte-swap application data; the Kerberos protocol fields are already taken
-care of).
-
-The routine returns zero if the error message has been successfully received,
-or a Kerberos error code.
-.PP
-The
-.I KTEXT
-structure is used to pass around text of varying lengths. It consists
-of a buffer for the data, and a length. krb_rd_req takes an argument of this
-type containing the authenticator, and krb_mk_req returns the
-authenticator in a structure of this type. KTEXT itself is really a
-pointer to the structure. The actual structure is of type KTEXT_ST.
-.PP
-The
-.I AUTH_DAT
-structure is filled in by krb_rd_req. It must be allocated before
-calling krb_rd_req, and a pointer to it is passed. The structure is
-filled in with data obtained from Kerberos.
-.I MSG_DAT
-structure is filled in by either krb_rd_priv, krb_rd_safe, or
-krb_rd_err. It must be allocated before the call and a pointer to it
-is passed. The structure is
-filled in with data obtained from Kerberos.
-.PP
-.SH FILES
-/usr/include/krb.h
-.br
-/usr/lib/libkrb.a
-.br
-/usr/include/des.h
-.br
-/usr/lib/libdes.a
-.br
-/etc/aname
-.br
-/etc/srvtab
-.br
-/tmp/tkt[uid]
-.SH "SEE ALSO"
-kerberos(1), des_crypt(3)
-.SH DIAGNOSTICS
-.SH BUGS
-The caller of
-.I krb_rd_req, krb_rd_priv, and krb_rd_safe
-must check time order and for replay attempts.
-.I krb_ck_repl
-is not implemented yet.
-.SH AUTHORS
-Clifford Neuman, MIT Project Athena
-.br
-Steve Miller, MIT Project Athena/Digital Equipment Corporation
-.SH RESTRICTIONS
-COPYRIGHT 1985,1986,1989 Massachusetts Institute of Technology
diff --git a/crypto/kerberosIV/man/kerberos.8 b/crypto/kerberosIV/man/kerberos.8
deleted file mode 100644
index 6a64c57bbb6c..000000000000
--- a/crypto/kerberosIV/man/kerberos.8
+++ /dev/null
@@ -1,44 +0,0 @@
-.\" $Id: kerberos.8,v 1.1 1996/11/14 22:14:55 assar Exp $
-.\"
-.Dd November 14, 1996
-.Dt KERBEROS 8
-.Os KTH-KRB
-.Sh NAME
-.Nm kerberos
-.Nd The kerberos daemon
-.Sh SYNPOSIS
-.Nm
-.Op Fl snm
-.Op Fl p Ar pause
-.Op Fl a Ar max age
-.Op Fl l Ar log
-.Op Fl r Ar realm
-.Ar database
-.Sh DESCRIPTION
-This is the
-.Nm
-daemon.
-.Pp
-Options:
-.Bl -tag -width -ident
-.It Fl s
-Set slave parameters. This will enable check to see if data is
-getting too stale relative to the master.
-.It Fl n
-Do not check max age.
-.It Fl m
-Run manually and prompt for master key.
-.It Fl p
-Pause for
-.Ar pause
-before dying.
-.It Fl a
-Set the
-.Ar max age
-before the database is considered stale.
-.It Fl l
-Write the log to
-.Ar log
-.It Fl r
-Run as a server for realm
-.Ar realm
diff --git a/crypto/kerberosIV/man/klist.1 b/crypto/kerberosIV/man/klist.1
deleted file mode 100644
index 76dec027bc95..000000000000
--- a/crypto/kerberosIV/man/klist.1
+++ /dev/null
@@ -1,83 +0,0 @@
-.\" $Id: klist.1,v 1.2 1996/06/12 21:29:19 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KLIST 1 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-klist \- list currently held Kerberos tickets
-.SH SYNOPSIS
-.B klist
-[
-\fB\-s \fR|\fB \-t\fR
-] [
-.B \-file
-name ] [
-.B \-srvtab
-]
-.br
-.SH DESCRIPTION
-.I klist
-prints the name of the tickets file and the
-identity of the principal the tickets are for (as listed in the
-tickets file), and
-lists the principal names of all Kerberos tickets currently held by
-the user, along with the issue and expire time for each authenticator.
-Principal names are listed in the form
-.I name.instance@realm,
-with the '.' omitted if the instance is null,
-and the '@' omitted if the realm is null.
-
-If given the
-.B \-s
-option,
-.I klist
-does not print the issue and expire times, the name of the tickets file,
-or the identity of the principal.
-
-If given the
-.B \-t
-option,
-.B klist
-checks for the existence of a non-expired ticket-granting-ticket in the
-ticket file. If one is present, it exits with status 0, else it exits
-with status 1. No output is generated when this option is specified.
-
-If given the
-.B \-file
-option, the following argument is used as the ticket file.
-Otherwise, if the
-.B KRBTKFILE
-environment variable is set, it is used.
-If this environment variable
-is not set, the file
-.B /tmp/tkt[uid]
-is used, where
-.B uid
-is the current user-id of the user.
-
-If given the
-.B \-srvtab
-option, the file is treated as a service key file, and the names of the
-keys contained therein are printed. If no file is
-specified with a
-.B \-file
-option, the default is
-.IR /etc/srvtab .
-.SH FILES
-.TP 2i
-/etc/krb.conf
-to get the name of the local realm
-.TP
-/tmp/tkt[uid]
-as the default ticket file ([uid] is the decimal UID of the user).
-.TP
-/etc/srvtab
-as the default service key file
-.SH SEE ALSO
-.PP
-kerberos(1), kinit(1), kdestroy(1)
-.SH BUGS
-When reading a file as a service key file, very little sanity or error
-checking is performed.
diff --git a/crypto/kerberosIV/man/kprop.8 b/crypto/kerberosIV/man/kprop.8
deleted file mode 100644
index 9f9acc228e25..000000000000
--- a/crypto/kerberosIV/man/kprop.8
+++ /dev/null
@@ -1,58 +0,0 @@
-.\" $Id: kprop.8,v 1.1.1.1 1997/09/04 06:04:32 markm Exp $
-.\"
-.Dd June 7, 1996
-.Dt KPROP 8
-.Os KTH-KRB
-.Sh NAME
-.Nm kprop
-.Nd
-the kerberos slave server update client
-.Sh SYNOPSIS
-.Nm
-.Op Fl force
-.Op Fl realm Ar realm
-.Op Ar dump-file
-.Op Ar slave-file
-.Sh DESCRIPTION
-Changes to the database, such as changed passwords, are only made to
-the master server through the
-.Nm kadmind
-service. To propagate these changes to the slave servers,
-.Nm
-should be run regularly on the master server.
-
-The following options are recognised.
-
-.Bl -tag -width -force
-.It Fl force
-Propagate even if there hasn't been an update to the dump file since
-last time.
-.It Fl realm
-Realm if other than the default.
-.It dump-file
-is a file created with
-.Ic kdb_util slave_dump ,
-default is
-.Pa /var/kerberos/slave_dump .
-.It slave-file
-Contains the names of the slave servers. Default is
-.Pa /var/kerberos/slaves .
-.El
-
-.Nm
-will use the principal
-.Nm rcmd.kerberos
-to authenticate to the master servers. This principal has to be added
-to the database, and it should also be put into the service key file
-on the master server.
-
-.Sh FILES
-.Bl -tag -width indent -compact
-.It Pa /var/kerberos/slave_dump
-.It Pa /var/kerberos/slaves
-.It Pa /etc/srvtab
-.El
-.Sh SEE ALSO
-.Xr kadmind 8 ,
-.Xr kerberos 8 ,
-.Xr kpropd 8
diff --git a/crypto/kerberosIV/man/kpropd.8 b/crypto/kerberosIV/man/kpropd.8
deleted file mode 100644
index 6b3046354bc1..000000000000
--- a/crypto/kerberosIV/man/kpropd.8
+++ /dev/null
@@ -1,63 +0,0 @@
-.\" $Id: kpropd.8,v 1.1.1.1 1997/09/04 06:04:32 markm Exp $
-.\"
-.Dd June 7, 1996
-.Dt KPROPD 8
-.Os KTH-KRB
-.Sh NAME
-.Nm kpropd
-.Nd
-the kerberos slave server update facility
-.Sh SYNOPSIS
-.Nm
-.Op Fl i
-.Op Fl d Ar database
-.Op Fl l Ar logfile
-.Op Fl m
-.Op Fl p Ar kdb_util
-.Op Fl r Ar realm
-.Op Fl s Ar srvtab
-.Sh DESCRIPTION
-The
-.Nm
-responds to database update requests from the
-.Nm kprop
-command. It can either be started from
-.Nm inetd
-or as an ordinary program.
-
-The following options are recognised:
-
-.Bl -tag -width xxxx
-.It Fl i
-Run stand-alone. If this flag is not given, it is assumed to have
-been started by
-.Nm inetd .
-.It Fl d
-What database file to use, default is
-.Pa /var/kerberos/principal .
-.It Fl l
-Logfile to use, default is
-.Pa /var/log/kpropd.log .
-.It Fl m
-Treat data as changes to the database rather than a complete database.
-.It Fl p
-The path to
-.Nm kdb_util ,
-default is
-.Pa /usr/athena/sbin/kdb_util .
-.It Fl r
-Realm if other than the default realm.
-.It Fl s
-Srvtab if other than
-.Pa /etc/srvtab .
-.El
-.Sh FILES
-.Bl -tag -width indent -compact
-.It Pa /var/kerberos/principal.{db,dir,pag}
-.It Pa /var/log/kpropd.log
-.It Pa /etc/srvtab
-.El
-.Sh SEE ALSO
-.Xr kadmind 8 ,
-.Xr kerberos 8 ,
-.Xr kprop 8
diff --git a/crypto/kerberosIV/man/krb.conf.5 b/crypto/kerberosIV/man/krb.conf.5
deleted file mode 100644
index b122b9c391d3..000000000000
--- a/crypto/kerberosIV/man/krb.conf.5
+++ /dev/null
@@ -1,31 +0,0 @@
-.\" $Id: krb.conf.5,v 1.2 1996/06/12 21:29:21 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KRB.CONF 5 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-/etc/krb.conf \- Kerberos configuration file
-.SH DESCRIPTION
-.I krb.conf
-contains configuration information describing the Kerberos realm and the
-Kerberos key distribution center (KDC) servers for known realms.
-.PP
-.I krb.conf
-contains the name of the local realm in the first
-line, followed by lines indicating realm/host
-entries. The first token is a realm name, and the second is the hostname
-of a host running a KDC for that realm.
-The words "admin server" following the hostname indicate that
-the host also provides an administrative database server.
-For example:
-.nf
-.in +1i
-ATHENA.MIT.EDU
-ATHENA.MIT.EDU kerberos-1.mit.edu admin server
-ATHENA.MIT.EDU kerberos-2.mit.edu
-LCS.MIT.EDU kerberos.lcs.mit.edu admin server
-.in -1i
-.SH SEE ALSO
-krb.realms(5), krb_get_krbhst(3), krb_get_lrealm(3)
diff --git a/crypto/kerberosIV/man/krb.equiv.5 b/crypto/kerberosIV/man/krb.equiv.5
deleted file mode 100644
index e38f94bf6179..000000000000
--- a/crypto/kerberosIV/man/krb.equiv.5
+++ /dev/null
@@ -1,28 +0,0 @@
-.\" $Id: krb.equiv.5,v 1.3 1996/06/18 16:26:20 joda Exp $
-.\"
-.Dd June 18, 1996
-.Dt KRB.EQUIV 5
-.Os KTH-KRB
-.Sh NAME
-.Nm krb.equiv
-.Nd
-Kerberos equivalent hosts file
-.Sh DESCRIPTION
-.Nm
-contains a list of IP addresses that is to be considered being the
-same host for Kerberos purposes. Plain addresses match a single
-host. Addresses followed by a slash (/) and a number is taken as a
-sub-network that should be considered equal.
-.Pp
-Hash (#) starts a comment. Backslash (\\) is a continuation character.
-.Sh EXAMPLES
-.Bd -literal
-# A machine with two interfaces.
-130.237.232.113 130.237.221.42 # emma emma-ether
-# A machine with *many* interfaces
-193.10.156.0/24 193.10.157.0/24 # syk-* syk-*-hps
-.Ed
-.Sh SEE ALSO
-.Xr krb_equiv 3 ,
-.Xr krb.conf 5 ,
-.Xr krb.realms 5
diff --git a/crypto/kerberosIV/man/krb.realms.5 b/crypto/kerberosIV/man/krb.realms.5
deleted file mode 100644
index 427c4550261e..000000000000
--- a/crypto/kerberosIV/man/krb.realms.5
+++ /dev/null
@@ -1,38 +0,0 @@
-.\" $Id: krb.realms.5,v 1.2 1996/06/12 21:29:22 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KRB.REALMS 5 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-/etc/krb.realms \- host to Kerberos realm translation file
-.SH DESCRIPTION
-.I krb.realms
-provides a translation from a hostname to the Kerberos realm name for
-the services provided by that host.
-.PP
-Each line of the translation file is in one of the following forms
-(domain_name should be of the form .XXX.YYY, e.g. .LCS.MIT.EDU):
-.nf
-.in +5n
-host_name kerberos_realm
-domain_name kerberos_realm
-.in -5n
-.fi
-If a hostname exactly matches the
-.I host_name
-field in a line of the first
-form, the corresponding realm is the realm of the host.
-If a hostname does not match any
-.I host_name
-in the file, but its
-domain exactly matches the
-.I domain_name
-field in a line of the second
-form, the corresponding realm is the realm of the host.
-.PP
-If no translation entry applies, the host's realm is considered to be
-the hostname's domain portion converted to upper case.
-.SH SEE ALSO
-krb_realmofhost(3)
diff --git a/crypto/kerberosIV/man/krb_realmofhost.3 b/crypto/kerberosIV/man/krb_realmofhost.3
deleted file mode 100644
index ddbda7495074..000000000000
--- a/crypto/kerberosIV/man/krb_realmofhost.3
+++ /dev/null
@@ -1,160 +0,0 @@
-.\" $Id: krb_realmofhost.3,v 1.2 1996/06/12 21:29:23 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KRB_REALMOFHOST 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-krb_realmofhost, krb_get_phost, krb_get_krbhst, krb_get_admhst,
-krb_get_lrealm \- additional Kerberos utility routines
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <krb.h>
-#include <des.h>
-#include <netinet/in.h>
-.PP
-.ft B
-char *krb_realmofhost(host)
-char *host;
-.PP
-.ft B
-char *krb_get_phost(alias)
-char *alias;
-.PP
-.ft B
-krb_get_krbhst(host,realm,n)
-char *host;
-char *realm;
-int n;
-.PP
-.ft B
-krb_get_admhst(host,realm,n)
-char *host;
-char *realm;
-int n;
-.PP
-.ft B
-krb_get_lrealm(realm,n)
-char *realm;
-int n;
-.fi
-.ft R
-.SH DESCRIPTION
-.I krb_realmofhost
-returns the Kerberos realm of the host
-.IR host ,
-as determined by the translation table
-.IR /etc/krb.realms .
-.I host
-should be the fully-qualified domain-style primary host name of the host
-in question. In order to prevent certain security attacks, this routine
-must either have
-.I a priori
-knowledge of a host's realm, or obtain such information securely.
-.PP
-The format of the translation file is described by
-.IR krb.realms (5).
-If
-.I host
-exactly matches a host_name line, the corresponding realm
-is returned.
-Otherwise, if the domain portion of
-.I host
-matches a domain_name line, the corresponding realm
-is returned.
-If
-.I host
-contains a domain, but no translation is found,
-.IR host 's
-domain is converted to upper-case and returned.
-If
-.I host
-contains no discernable domain, or an error occurs,
-the local realm name, as supplied by
-.IR krb_get_lrealm (3),
-is returned.
-.PP
-.I krb_get_phost
-converts the hostname
-.I alias
-(which can be either an official name or an alias) into the instance
-name to be used in obtaining Kerberos tickets for most services,
-including the Berkeley rcmd suite (rlogin, rcp, rsh).
-.br
-The current convention is to return the first segment of the official
-domain-style name after conversion to lower case.
-.PP
-.I krb_get_krbhst
-fills in
-.I host
-with the hostname of the
-.IR n th
-host running a Kerberos key distribution center (KDC)
-for realm
-.IR realm ,
-as specified in the configuration file (\fI/etc/krb.conf\fR).
-The configuration file is described by
-.IR krb.conf (5).
-If the host is successfully filled in, the routine
-returns KSUCCESS.
-If the file cannot be opened, and
-.I n
-equals 1, then the value of KRB_HOST as defined in
-.I <krb.h>
-is filled in, and KSUCCESS is returned. If there are fewer than
-.I n
-hosts running a Kerberos KDC for the requested realm, or the
-configuration file is malformed, the routine
-returns KFAILURE.
-.PP
-.I krb_get_admhst
-fills in
-.I host
-with the hostname of the
-.IR n th
-host running a Kerberos KDC database administration server
-for realm
-.IR realm ,
-as specified in the configuration file (\fI/etc/krb.conf\fR).
-If the file cannot be opened or is malformed, or there are fewer than
-.I n
-hosts running a Kerberos KDC database administration server,
-the routine returns KFAILURE.
-.PP
-The character arrays used as return values for
-.IR krb_get_krbhst ,
-.IR krb_get_admhst ,
-should be large enough to
-hold any hostname (MAXHOSTNAMELEN from <sys/param.h>).
-.PP
-.I krb_get_lrealm
-fills in
-.I realm
-with the
-.IR n th
-realm of the local host, as specified in the configuration file.
-.I realm
-should be at least REALM_SZ (from
-.IR <krb.h>) characters long.
-.PP
-.SH SEE ALSO
-kerberos(3), krb.conf(5), krb.realms(5)
-.SH FILES
-.TP 20n
-/etc/krb.realms
-translation file for host-to-realm mapping.
-.TP
-/etc/krb.conf
-local realm-name and realm/server configuration file.
-.SH BUGS
-The current convention for instance names is too limited; the full
-domain name should be used.
-.PP
-.I krb_get_lrealm
-currently only supports
-.I n
-= 1. It should really consult the user's ticket cache to determine the
-user's current realm, rather than consulting a file on the host.
diff --git a/crypto/kerberosIV/man/krb_sendauth.3 b/crypto/kerberosIV/man/krb_sendauth.3
deleted file mode 100644
index 208b6bc90a7e..000000000000
--- a/crypto/kerberosIV/man/krb_sendauth.3
+++ /dev/null
@@ -1,347 +0,0 @@
-.\" $Id: krb_sendauth.3,v 1.2 1996/06/12 21:29:24 bg Exp $
-.\" Copyright 1988 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KRB_SENDAUTH 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-krb_sendauth, krb_recvauth, krb_net_write, krb_net_read \-
-Kerberos routines for sending authentication via network stream sockets
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <krb.h>
-#include <des.h>
-#include <netinet/in.h>
-.PP
-.fi
-.HP 1i
-.ft B
-int krb_sendauth(options, fd, ktext, service, inst, realm, checksum,
-msg_data, cred, schedule, laddr, faddr, version)
-.nf
-.RS 0
-.ft B
-long options;
-int fd;
-KTEXT ktext;
-char *service, *inst, *realm;
-u_long checksum;
-MSG_DAT *msg_data;
-CREDENTIALS *cred;
-Key_schedule schedule;
-struct sockaddr_in *laddr, *faddr;
-char *version;
-.PP
-.fi
-.HP 1i
-.ft B
-int krb_recvauth(options, fd, ktext, service, inst, faddr, laddr,
-auth_data, filename, schedule, version)
-.nf
-.RS 0
-.ft B
-long options;
-int fd;
-KTEXT ktext;
-char *service, *inst;
-struct sockaddr_in *faddr, *laddr;
-AUTH_DAT *auth_data;
-char *filename;
-Key_schedule schedule;
-char *version;
-.PP
-.ft B
-int krb_net_write(fd, buf, len)
-int fd;
-char *buf;
-int len;
-.PP
-.ft B
-int krb_net_read(fd, buf, len)
-int fd;
-char *buf;
-int len;
-.fi
-.SH DESCRIPTION
-.PP
-These functions,
-which are built on top of the core Kerberos library,
-provide a convenient means for client and server
-programs to send authentication messages
-to one another through network connections.
-The
-.I krb_sendauth
-function sends an authenticated ticket from the client program to
-the server program by writing the ticket to a network socket.
-The
-.I krb_recvauth
-function receives the ticket from the client by
-reading from a network socket.
-
-.SH KRB_SENDAUTH
-.PP
-This function writes the ticket to
-the network socket specified by the
-file descriptor
-.IR fd,
-returning KSUCCESS if the write proceeds successfully,
-and an error code if it does not.
-
-The
-.I ktext
-argument should point to an allocated KTEXT_ST structure.
-The
-.IR service,
-.IR inst,
-and
-.IR realm
-arguments specify the server program's Kerberos principal name,
-instance, and realm.
-If you are writing a client that uses the local realm exclusively,
-you can set the
-.I realm
-argument to NULL.
-
-The
-.I version
-argument allows the client program to pass an application-specific
-version string that the server program can then match against
-its own version string.
-The
-.I version
-string can be up to KSEND_VNO_LEN (see
-.IR <krb.h> )
-characters in length.
-
-The
-.I checksum
-argument can be used to pass checksum information to the
-server program.
-The client program is responsible for specifying this information.
-This checksum information is difficult to corrupt because
-.I krb_sendauth
-passes it over the network in encrypted form.
-The
-.I checksum
-argument is passed as the checksum argument to
-.IR krb_mk_req .
-
-You can set
-.IR krb_sendauth's
-other arguments to NULL unless you want the
-client and server programs to mutually authenticate
-themselves.
-In the case of mutual authentication,
-the client authenticates itself to the server program,
-and demands that the server in turn authenticate itself to
-the client.
-
-.SH KRB_SENDAUTH AND MUTUAL AUTHENTICATION
-.PP
-If you want mutual authentication,
-make sure that you read all pending data from the local socket
-before calling
-.IR krb_sendauth.
-Set
-.IR krb_sendauth's
-.I options
-argument to
-.BR KOPT_DO_MUTUAL
-(this macro is defined in the
-.IR krb.h
-file);
-make sure that the
-.I laddr
-argument points to
-the address of the local socket,
-and that
-.I faddr
-points to the foreign socket's network address.
-
-.I Krb_sendauth
-fills in the other arguments--
-.IR msg_data ,
-.IR cred ,
-and
-.IR schedule --before
-sending the ticket to the server program.
-You must, however, allocate space for these arguments
-before calling the function.
-
-.I Krb_sendauth
-supports two other options:
-.BR KOPT_DONT_MK_REQ,
-and
-.BR KOPT_DONT_CANON.
-If called with
-.I options
-set as KOPT_DONT_MK_REQ,
-.I krb_sendauth
-will not use the
-.I krb_mk_req
-function to retrieve the ticket from the Kerberos server.
-The
-.I ktext
-argument must point to an existing ticket and authenticator (such as
-would be created by
-.IR krb_mk_req ),
-and the
-.IR service,
-.IR inst,
-and
-.IR realm
-arguments can be set to NULL.
-
-If called with
-.I options
-set as KOPT_DONT_CANON,
-.I krb_sendauth
-will not convert the service's instance to canonical form using
-.IR krb_get_phost (3).
-
-If you want to call
-.I krb_sendauth
-with a multiple
-.I options
-specification,
-construct
-.I options
-as a bitwise-OR of the options you want to specify.
-
-.SH KRB_RECVAUTH
-.PP
-The
-.I krb_recvauth
-function
-reads a ticket/authenticator pair from the socket pointed to by the
-.I fd
-argument.
-Set the
-.I options
-argument
-as a bitwise-OR of the options desired.
-Currently only KOPT_DO_MUTUAL is useful to the receiver.
-
-The
-.I ktext
-argument
-should point to an allocated KTEXT_ST structure.
-.I Krb_recvauth
-fills
-.I ktext
-with the
-ticket/authenticator pair read from
-.IR fd ,
-then passes it to
-.IR krb_rd_req .
-
-The
-.I service
-and
-.I inst
-arguments
-specify the expected service and instance for which the ticket was
-generated. They are also passed to
-.IR krb_rd_req.
-The
-.I inst
-argument may be set to "*" if the caller wishes
-.I krb_mk_req
-to fill in the instance used (note that there must be space in the
-.I inst
-argument to hold a full instance name, see
-.IR krb_mk_req (3)).
-
-The
-.I faddr
-argument
-should point to the address of the peer which is presenting the ticket.
-It is also passed to
-.IR krb_rd_req .
-
-If the client and server plan to mutually authenticate
-one another,
-the
-.I laddr
-argument
-should point to the local address of the file descriptor.
-Otherwise you can set this argument to NULL.
-
-The
-.I auth_data
-argument
-should point to an allocated AUTH_DAT area.
-It is passed to and filled in by
-.IR krb_rd_req .
-The checksum passed to the corresponding
-.I krb_sendauth
-is available as part of the filled-in AUTH_DAT area.
-
-The
-.I filename
-argument
-specifies the filename
-which the service program should use to obtain its service key.
-.I Krb_recvauth
-passes
-.I filename
-to the
-.I krb_rd_req
-function.
-If you set this argument to "",
-.I krb_rd_req
-looks for the service key in the file
-.IR /etc/srvtab.
-
-If the client and server are performing mutual authenication,
-the
-.I schedule
-argument
-should point to an allocated Key_schedule.
-Otherwise it is ignored and may be NULL.
-
-The
-.I version
-argument should point to a character array of at least KSEND_VNO_LEN
-characters. It is filled in with the version string passed by the client to
-.IR krb_sendauth.
-.PP
-.SH KRB_NET_WRITE AND KRB_NET_READ
-.PP
-The
-.I krb_net_write
-function
-emulates the write(2) system call, but guarantees that all data
-specified is written to
-.I fd
-before returning, unless an error condition occurs.
-.PP
-The
-.I krb_net_read
-function
-emulates the read(2) system call, but guarantees that the requested
-amount of data is read from
-.I fd
-before returning, unless an error condition occurs.
-.PP
-.SH BUGS
-.IR krb_sendauth,
-.IR krb_recvauth,
-.IR krb_net_write,
-and
-.IR krb_net_read
-will not work properly on sockets set to non-blocking I/O mode.
-
-.SH SEE ALSO
-
-krb_mk_req(3), krb_rd_req(3), krb_get_phost(3)
-
-.SH AUTHOR
-John T. Kohl, MIT Project Athena
-.SH RESTRICTIONS
-Copyright 1988, Massachusetts Instititute of Technology.
-For copying and distribution information,
-please see the file <mit-copyright.h>.
diff --git a/crypto/kerberosIV/man/krb_set_tkt_string.3 b/crypto/kerberosIV/man/krb_set_tkt_string.3
deleted file mode 100644
index 9d941435a8b8..000000000000
--- a/crypto/kerberosIV/man/krb_set_tkt_string.3
+++ /dev/null
@@ -1,42 +0,0 @@
-.\" $Id: krb_set_tkt_string.3,v 1.2 1996/06/12 21:29:24 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KRB_SET_TKT_STRING 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-krb_set_tkt_string \- set Kerberos ticket cache file name
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <krb.h>
-.PP
-.ft B
-void krb_set_tkt_string(filename)
-char *filename;
-.fi
-.ft R
-.SH DESCRIPTION
-.I krb_set_tkt_string
-sets the name of the file that holds the user's
-cache of Kerberos server tickets and associated session keys.
-.PP
-The string
-.I filename
-passed in is copied into local storage.
-Only MAXPATHLEN-1 (see <sys/param.h>) characters of the filename are
-copied in for use as the cache file name.
-.PP
-This routine should be called during initialization, before other
-Kerberos routines are called; otherwise the routines which fetch the
-ticket cache file name may be called and return an undesired ticket file
-name until this routine is called.
-.SH FILES
-.TP 20n
-/tmp/tkt[uid]
-default ticket file name, unless the environment variable KRBTKFILE is set.
-[uid] denotes the user's uid, in decimal.
-.SH SEE ALSO
-kerberos(3), setenv(3)
diff --git a/crypto/kerberosIV/man/ksrvtgt.1 b/crypto/kerberosIV/man/ksrvtgt.1
deleted file mode 100644
index ff8563cfbb9f..000000000000
--- a/crypto/kerberosIV/man/ksrvtgt.1
+++ /dev/null
@@ -1,50 +0,0 @@
-.\" $Id: ksrvtgt.1,v 1.2 1996/06/12 21:29:26 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KSRVTGT 1 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-ksrvtgt \- fetch and store Kerberos ticket-granting-ticket using a
-service key
-.SH SYNOPSIS
-.B ksrvtgt
-name instance [[realm] srvtab]
-.SH DESCRIPTION
-.I ksrvtgt
-retrieves a ticket-granting ticket with a lifetime of five (5) minutes
-for the principal
-.I name.instance@realm
-(or
-.I name.instance@localrealm
-if
-.I realm
-is not supplied on the command line), decrypts the response using
-the service key found in
-.I srvtab
-(or in
-.B /etc/srvtab
-if
-.I srvtab
-is not specified on the command line), and stores the ticket in the
-standard ticket cache.
-.PP
-This command is intended primarily for use in shell scripts and other
-batch-type facilities.
-.SH DIAGNOSTICS
-"Generic kerberos failure (kfailure)" can indicate a whole range of
-problems, the most common of which is the inability to read the service
-key file.
-.SH FILES
-.TP 2i
-/etc/krb.conf
-to get the name of the local realm.
-.TP
-/tmp/tkt[uid]
-The default ticket file.
-.TP
-/etc/srvtab
-The default service key file.
-.SH SEE ALSO
-kerberos(1), kinit(1), kdestroy(1)
diff --git a/crypto/kerberosIV/man/ksrvutil.8 b/crypto/kerberosIV/man/ksrvutil.8
deleted file mode 100644
index aee24d797986..000000000000
--- a/crypto/kerberosIV/man/ksrvutil.8
+++ /dev/null
@@ -1,104 +0,0 @@
-.\" $Id: ksrvutil.8,v 1.1.1.1 1997/09/04 06:04:32 markm Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.Dd May 4, 1996
-.Dt KSRVUTIL 8
-.Os KTH-KRB
-
-.Sh NAME
-.Nm ksrvutil
-host kerberos keyfile (srvtab) manipulation utility
-.Sh SYNOPSIS
-.Nm
-.Op Fl f Pa keyfile
-.Op Fl i
-.Op Fl k
-.Op Fl p Ar principal
-.Op Fl r Ar realm
-.Ar operation
-
-.Sh DESCRIPTION
-.Nm
-allows a system manager to list or change keys currently in his
-keyfile or to add new keys to the keyfile.
-.Pp
-Operation must be one of the following:
-.Bl -tag -width indent
-.It list
-lists the keys in a keyfile showing version number and principal name.
-If the
-.Fl k
-option is given, keys will also be shown.
-.It change
-changes all the keys in the keyfile by using the regular admin
-protocol. If the
-.Fl i
-flag is given,
-.Nm ksrvutil
-will prompt for yes or no before changing each key. If the
-.Fl k
-option is used, the old and new keys will be displayed.
-.It add
-allows the user to add a key.
-add
-prompts for name, instance, realm, and key version number, asks
-for confirmation, and then asks for a password.
-.Nm
-then converts the password to a key and appends the keyfile with the
-new information. If the
-.Fl k
-option is used, the key is displayed.
-.It get
-gets a service from the Kerberos server, possibly creating the
-principal. Names, instances and realms for the service keys to get are
-prompted for. The default principal used in the kadmin transcation is
-your root instance. This can be changed with the
-.Fl p
-option.
-.El
-.Pp
-In all cases, the default file used is KEY_FILE as defined in krb.h
-unless this is overridden by the
-.Fl f
-option.
-.Pp
-A good use for
-.Nm
-would be for adding keys to a keyfile. A system manager could
-ask a kerberos administrator to create a new service key with
-.Xr kadmin 8
-and could supply an initial password. Then, he could use
-.Nm
-to add the key to the keyfile and then to change the key so that it
-will be random and unknown to either the system manager or the
-kerberos administrator.
-
-.Nm
-always makes a backup copy of the keyfile before making any changes.
-
-.Sh DIAGNOSTICS
-If
-.Nm
-should exit on an error condition at any time during a change or add,
-a copy of the original keyfile can be found in
-.Pa filename Ns .old
-where
-.Pa filename
-is the name of the keyfile, and a copy of the file with all new
-keys changed or added so far can be found in
-.Pa filename Ns .work.
-The original keyfile is left unmodified until the program exits at
-which point it is removed and replaced it with the workfile.
-Appending the workfile to the backup copy and replacing the keyfile
-with the result should always give a usable keyfile, although the
-resulting keyfile will have some out of date keys in it.
-
-.Sh SEE ALSO
-.Xr ksrvtgt 1 ,
-.Xr kadmin 8
-
-.Sh AUTHOR
-Emanuel Jay Berkenbilt, MIT Project Athena
diff --git a/crypto/kerberosIV/man/kstash.8 b/crypto/kerberosIV/man/kstash.8
deleted file mode 100644
index 0197a3d2d11a..000000000000
--- a/crypto/kerberosIV/man/kstash.8
+++ /dev/null
@@ -1,40 +0,0 @@
-.\" $Id: kstash.8,v 1.3 1997/04/02 21:09:56 assar Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KSTASH 8 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kstash \- stash Kerberos key distribution center database master key
-.SH SYNOPSIS
-kstash
-.SH DESCRIPTION
-.I kstash
-saves the Kerberos key distribution center (KDC) database master key in
-the master key cache file.
-.PP
-The user is prompted to enter the key, to verify the authenticity of the
-key and the authorization to store the key in the file.
-.SH DIAGNOSTICS
-.TP 20n
-"verify_master_key: Invalid master key, does not match database."
-The master key string entered was incorrect.
-.TP
-"kstash: Unable to open master key file"
-The attempt to open the cache file for writing failed (probably due to a
-system or access permission error).
-.TP
-"kstash: Write I/O error on master key file"
-The
-.BR write (2)
-system call returned an error while
-.I kstash
-was attempting to write the key to the file.
-.SH FILES
-.TP 20n
-/var/kerberos/principal.pag, /var/kerberos/principal.dir
-DBM files containing database
-.TP
-/.k
-Master key cache file.
diff --git a/crypto/kerberosIV/man/kuserok.3 b/crypto/kerberosIV/man/kuserok.3
deleted file mode 100644
index 098730898be7..000000000000
--- a/crypto/kerberosIV/man/kuserok.3
+++ /dev/null
@@ -1,66 +0,0 @@
-.\" $Id: kuserok.3,v 1.3 1996/10/13 17:51:18 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH KUSEROK 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-kuserok \- Kerberos version of ruserok
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <krb.h>
-.PP
-.ft B
-kuserok(kdata, localuser)
-AUTH_DAT *auth_data;
-char *localuser;
-.fi
-.ft R
-.SH DESCRIPTION
-.I kuserok
-determines whether a Kerberos principal described by the structure
-.I auth_data
-is authorized to login as user
-.I localuser
-according to the authorization file
-("~\fIlocaluser\fR/.klogin" by default). It returns 0 (zero) if authorized,
-1 (one) if not authorized.
-.PP
-If there is no account for
-.I localuser
-on the local machine, authorization is not granted.
-If there is no authorization file, and the Kerberos principal described
-by
-.I auth_data
-translates to
-.I localuser
-(using
-.IR krb_kntoln (3)),
-authorization is granted.
-If the authorization file
-can't be accessed, or the file is not owned by
-.IR localuser,
-authorization is denied. Otherwise, the file is searched for
-a matching principal name, instance, and realm. If a match is found,
-authorization is granted, else authorization is denied.
-.PP
-The file entries are in the format:
-.nf
-.in +5n
- name.instance@realm
-.in -5n
-.fi
-with one entry per line.
-
-For convenience ~localuser@LOCALREALM is
-always considered to be an entry in the file even when there is no
-file or the file is unreadable.
-.SH SEE ALSO
-kerberos(3), ruserok(3), krb_kntoln(3)
-.SH FILES
-.TP 20n
-~\fIlocaluser\fR/.klogin
-authorization list
diff --git a/crypto/kerberosIV/man/tf_util.3 b/crypto/kerberosIV/man/tf_util.3
deleted file mode 100644
index 3f98321d491c..000000000000
--- a/crypto/kerberosIV/man/tf_util.3
+++ /dev/null
@@ -1,150 +0,0 @@
-.\" $Id: tf_util.3,v 1.2 1996/06/12 21:29:29 bg Exp $
-.\" Copyright 1989 by the Massachusetts Institute of Technology.
-.\"
-.\" For copying and distribution information,
-.\" please see the file <mit-copyright.h>.
-.\"
-.TH TF_UTIL 3 "Kerberos Version 4.0" "MIT Project Athena"
-.SH NAME
-tf_init, tf_get_pname, tf_get_pinst, tf_get_cred, tf_close \
-\- Routines for manipulating a Kerberos ticket file
-.SH SYNOPSIS
-.nf
-.nj
-.ft B
-#include <krb.h>
-.PP
-.ft B
-extern char *krb_err_txt[];
-.PP
-.ft B
-tf_init(tf_name, rw)
-char *tf_name;
-int rw;
-.PP
-.ft B
-tf_get_pname(pname)
-char *pname;
-.PP
-.ft B
-tf_get_pinst(pinst)
-char *pinst;
-.PP
-.ft B
-tf_get_cred(c)
-CREDENTIALS *c;
-.PP
-.ft B
-tf_close()
-.PP
-.fi
-.SH DESCRIPTION
-This group of routines are provided to manipulate the Kerberos tickets
-file. A ticket file has the following format:
-.nf
-.in +4
-.sp
-principal's name (null-terminated string)
-principal's instance (null-terminated string)
-CREDENTIAL_1
-CREDENTIAL_2
- ...
-CREDENTIAL_n
-EOF
-.sp
-.in -4
-.LP
-Where "CREDENTIAL_x" consists of the following fixed-length
-fields from the CREDENTIALS structure (defined in <krb.h>):
-.nf
-.sp
-.in +4
- char service[ANAME_SZ]
- char instance[INST_SZ]
- char realm[REALM_SZ]
- des_cblock session
- int lifetime
- int kvno
- KTEXT_ST ticket_st
- long issue_date
-.in -4
-.sp
-.fi
-.PP
-.I tf_init
-must be called before the other ticket file
-routines.
-It takes the name of the ticket file to use,
-and a read/write flag as arguments.
-It tries to open the ticket file, checks the mode and if
-everything is okay, locks the file. If it's opened for
-reading, the lock is shared. If it's opened for writing,
-the lock is exclusive.
-KSUCCESS is returned if all went well, otherwise one of the
-following:
-.nf
-.sp
-NO_TKT_FIL - file wasn't there
-TKT_FIL_ACC - file was in wrong mode, etc.
-TKT_FIL_LCK - couldn't lock the file, even after a retry
-.sp
-.fi
-.PP
-The
-.I tf_get_pname
-reads the principal's name from a ticket file.
-It should only be called after tf_init has been called. The
-principal's name is filled into the
-.I pname
-parameter. If all goes
-well, KSUCCESS is returned.
-If tf_init wasn't called, TKT_FIL_INI
-is returned.
-If the principal's name was null, or EOF was encountered, or the
-name was longer than ANAME_SZ, TKT_FIL_FMT is returned.
-.PP
-The
-.I tf_get_pinst
-reads the principal's instance from a ticket file.
-It should only be called after tf_init and tf_get_pname
-have been called.
-The principal's instance is filled into the
-.I pinst
-parameter.
-If all goes
-well, KSUCCESS is returned.
-If tf_init wasn't called, TKT_FIL_INI
-is returned.
-If EOF was encountered, or the
-name was longer than INST_SZ, TKT_FIL_FMT is returned.
-Note that, unlike the principal name, the instance name may be null.
-.PP
-The
-.I tf_get_cred
-routine reads a CREDENTIALS record from a ticket file and
-fills in the given structure.
-It should only be called after
-tf_init, tf_get_pname, and tf_get_pinst have been called.
-If all goes well, KSUCCESS is returned. Possible error codes
-are:
-.nf
-.sp
-TKT_FIL_INI - tf_init wasn't called first
-TKT_FIL_FMT - bad format
-EOF - end of file encountered
-.sp
-.fi
-.PP
-.I tf_close
-closes the ticket file and releases the lock on it.
-.SH "SEE ALSO"
-krb(3)
-.SH DIAGNOSTICS
-.SH BUGS
-The ticket file routines have to be called in a certain order.
-.SH AUTHORS
-Jennifer Steiner, MIT Project Athena
-.br
-Bill Bryant, MIT Project Athena
-.SH RESTRICTIONS
-Copyright 1987 Massachusetts Institute of Technology
diff --git a/crypto/kerberosIV/mkinstalldirs b/crypto/kerberosIV/mkinstalldirs
deleted file mode 100644
index 1c13a50fadb2..000000000000
--- a/crypto/kerberosIV/mkinstalldirs
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.1 1996/06/27 01:12:51 joda Exp $
-
-errstatus=0
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/crypto/kerberosIV/server/Makefile.in b/crypto/kerberosIV/server/Makefile.in
deleted file mode 100644
index 64e7eb1ef21c..000000000000
--- a/crypto/kerberosIV/server/Makefile.in
+++ /dev/null
@@ -1,79 +0,0 @@
-# $Id: Makefile.in,v 1.24 1997/05/02 17:52:00 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-LIBS = @LIBS@
-LIB_DBM = @LIB_DBM@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROGS = kerberos$(EXECSUFFIX)
-
-SOURCES = kerberos.c
-
-OBJECTS = kerberos.o
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libexecdir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-kerberos$(EXECSUFFIX): kerberos.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kerberos.o -L../lib/kdb -lkdb -L../lib/krb -lkrb -L../lib/des -ldes -L../lib/roken -lroken $(LIB_DBM) $(LIBS) -lroken
-
-$(OBJECTS): ../include/config.h
diff --git a/crypto/kerberosIV/server/kerberos.c b/crypto/kerberosIV/server/kerberos.c
deleted file mode 100644
index 405e48d4837a..000000000000
--- a/crypto/kerberosIV/server/kerberos.c
+++ /dev/null
@@ -1,846 +0,0 @@
-/*
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- */
-
-#include "config.h"
-#include "protos.h"
-
-RCSID("$Id: kerberos.c,v 1.64 1997/05/20 18:40:46 bg Exp $");
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-#include <errno.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
-#include <sys/ioctl.h>
-#endif
-#ifdef HAVE_SYS_FILIO_H
-#include <sys/filio.h>
-#endif /* HAVE_SYS_FILIO_H */
-
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#include <err.h>
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <des.h>
-#include <krb.h>
-#include <krb_db.h>
-#include <prot.h>
-#include <klog.h>
-
-#include <kdc.h>
-
-static des_key_schedule master_key_schedule;
-static des_cblock master_key;
-
-static struct timeval kerb_time;
-static u_char master_key_version;
-static char k_instance[INST_SZ];
-static char *lt;
-static int more;
-
-static int mflag; /* Are we invoked manually? */
-static char *log_file; /* name of alt. log file */
-static int nflag; /* don't check max age */
-static int rflag; /* alternate realm specified */
-
-/* fields within the received request packet */
-static char *req_name_ptr;
-static char *req_inst_ptr;
-static char *req_realm_ptr;
-static u_int32_t req_time_ws;
-
-static char local_realm[REALM_SZ];
-
-/* options */
-static int max_age = -1;
-static int pause_int = -1;
-
-/*
- * Print usage message and exit.
- */
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: %s [-s] [-m] [-n] [-p pause_seconds]"
- " [-a max_age] [-l log_file] [-r realm] [database_pathname]\n",
- __progname);
- exit(1);
-}
-
-/*
- * kerb_err_reply creates an error reply packet and sends it to the
- * client.
- */
-
-static void
-kerb_err_reply(int f, struct sockaddr_in *client, int err, char *string)
-{
- static KTEXT_ST e_pkt_st;
- KTEXT e_pkt = &e_pkt_st;
- static char e_msg[128];
-
- strcpy(e_msg, "\nKerberos error -- ");
- strcat(e_msg, string);
- cr_err_reply(e_pkt, req_name_ptr, req_inst_ptr, req_realm_ptr,
- req_time_ws, err, e_msg);
- sendto(f, (char*)e_pkt->dat, e_pkt->length, 0, (struct sockaddr *)client,
- sizeof(*client));
-}
-
-static void
-hang(void)
-{
- if (pause_int == -1) {
- klog(L_KRB_PERR, "Kerberos will pause so as not to loop init");
- for (;;)
- pause();
- } else {
- char buf[256];
- snprintf(buf, sizeof(buf),
- "Kerberos will wait %d seconds before dying so as not to loop init",
- pause_int);
- klog(L_KRB_PERR, buf);
- sleep(pause_int);
- klog(L_KRB_PERR, "Do svedania....\n");
- exit(1);
- }
-}
-
-static int
-check_princ(char *p_name, char *instance, unsigned int lifetime, Principal *p)
-{
- static int n;
- static int more;
-
- n = kerb_get_principal(p_name, instance, p, 1, &more);
-
- if (n < 0) {
- lt = klog(L_KRB_PERR, "Database unavailable!");
- hang();
- }
-
- /*
- * if more than one p_name, pick one, randomly create a session key,
- * compute maximum lifetime, lookup authorizations if applicable,
- * and stuff into cipher.
- */
- if (n == 0) {
- /* service unknown, log error, skip to next request */
- lt = klog(L_ERR_UNK, "UNKNOWN %s.%s", p_name, instance);
- return KERB_ERR_PRINCIPAL_UNKNOWN;
- }
- if (more) {
- /* not unique, log error */
- lt = klog(L_ERR_NUN, "Principal not unique %s.%s", p_name, instance);
- return KERB_ERR_PRINCIPAL_NOT_UNIQUE;
- }
- /* If the user's key is null, we want to return an error */
- if ((p->key_low == 0) && (p->key_high == 0)) {
- /* User has a null key */
- lt = klog(L_ERR_NKY, "Null key %s.%s", p_name, instance);
- return KERB_ERR_NULL_KEY;
- }
- if (master_key_version != p->kdc_key_ver) {
- /* log error reply */
- lt = klog(L_ERR_MKV,
- "Incorrect master key version for %s.%s: %d (should be %d)",
- p->name, p->instance, p->kdc_key_ver, master_key_version);
- return KERB_ERR_NAME_MAST_KEY_VER;
- }
- /* make sure the service hasn't expired */
- if ((u_int32_t) p->exp_date < (u_int32_t) kerb_time.tv_sec) {
- /* service did expire, log it */
- time_t t = p->exp_date;
- lt = klog(L_ERR_SEXP,
- "Principal %s.%s expired at %s", p->name, p->instance,
- krb_stime(&t));
- return KERB_ERR_NAME_EXP;
- }
- /* ok is zero */
- return 0;
-}
-
-static void
-unseal(des_cblock *key)
-{
- kdb_encrypt_key(key, key, &master_key, master_key_schedule, DES_DECRYPT);
-}
-
-
-/* Set the key for krb_rd_req so we can check tgt */
-static int
-set_tgtkey(char *r)
- /* Realm for desired key */
-{
- int n;
- static char lastrealm[REALM_SZ];
- Principal p_st;
- Principal *p = &p_st;
- des_cblock key;
-
- if (!strcmp(lastrealm, r))
- return (KSUCCESS);
-
- klog(L_ALL_REQ, "Getting key for %s", r);
-
- n = kerb_get_principal(KRB_TICKET_GRANTING_TICKET, r, p, 1, &more);
- if (n == 0)
- return (KFAILURE);
-
- /* unseal tgt key from master key */
- copy_to_key(&p->key_low, &p->key_high, key);
- unseal(&key);
- krb_set_key(key, 0);
- strcpy(lastrealm, r);
- return (KSUCCESS);
-}
-
-
-static int
-kerberos(unsigned char *buf, int len, struct in_addr client, KTEXT rpkt)
-{
- int pvno;
- int msg_type;
- int lsb;
- int life;
- int flags = 0;
- char name[ANAME_SZ], inst[INST_SZ], realm[REALM_SZ];
- char service[SNAME_SZ], sinst[INST_SZ];
- u_int32_t req_time;
- static KTEXT_ST ticket, cipher, adat;
- KTEXT tk = &ticket, ciph = &cipher, auth = &adat;
- AUTH_DAT ad;
- des_cblock session, key;
- int err;
- Principal a_name, s_name;
-
- char *msg;
-
-
- unsigned char *p = buf;
- if(len < 2){
- strcpy((char*)rpkt->dat, "Packet too short");
- return KFAILURE;
- }
-
- gettimeofday(&kerb_time, NULL);
-
- pvno = *p++;
- if(pvno != KRB_PROT_VERSION){
- msg = klog(L_KRB_PERR, "KRB protocol version mismatch (%d)", pvno);
- strcpy((char*)rpkt->dat, msg);
- return KERB_ERR_PKT_VER;
- }
- msg_type = *p++;
- lsb = msg_type & 1;
- msg_type &= ~1;
- switch(msg_type){
- case AUTH_MSG_KDC_REQUEST:
- /* XXX range check */
- p += krb_get_nir(p, name, inst, realm);
- p += krb_get_int(p, &req_time, 4, lsb);
- life = *p++;
- p += krb_get_nir(p, service, sinst, NULL);
- klog(L_INI_REQ, "AS REQ %s.%s@%s for %s.%s from %s",
- name, inst, realm, service, sinst, inet_ntoa(client));
- if((err = check_princ(name, inst, 0, &a_name))){
- strcpy((char*)rpkt->dat, krb_get_err_text(err));
- return err;
- }
- tk->length = 0;
- if((err = check_princ(service, sinst, 0, &s_name))){
- strcpy((char*)rpkt->dat, krb_get_err_text(err));
- return err;
- }
- life = min(life, s_name.max_life);
- life = min(life, a_name.max_life);
-
- des_new_random_key(&session);
- copy_to_key(&s_name.key_low, &s_name.key_high, key);
- unseal(&key);
- krb_create_ticket(tk, flags, a_name.name, a_name.instance,
- local_realm, client.s_addr, session,
- life, kerb_time.tv_sec,
- s_name.name, s_name.instance, &key);
- copy_to_key(&a_name.key_low, &a_name.key_high, key);
- unseal(&key);
- create_ciph(ciph, session, s_name.name, s_name.instance,
- local_realm, life, s_name.key_version, tk,
- kerb_time.tv_sec, &key);
- memset(&session, 0, sizeof(session));
- memset(&key, 0, sizeof(key));
- {
- KTEXT r;
- r = create_auth_reply(name, inst, realm, req_time, 0,
- a_name.exp_date, a_name.key_version, ciph);
- memcpy(rpkt, r, sizeof(*rpkt));
- }
- return 0;
- case AUTH_MSG_APPL_REQUEST:
- strcpy(realm, (char*)buf + 3);
- if((err = set_tgtkey(realm))){
- msg = klog(L_ERR_UNK, "Unknown realm %s from %s",
- realm, inet_ntoa(client));
- strcpy((char*)rpkt->dat, msg);
- return err;
- }
- p = buf + strlen(realm) + 4;
- p = p + p[0] + p[1] + 2;
- auth->length = p - buf;
- memcpy(auth->dat, buf, auth->length);
- err = krb_rd_req(auth, KRB_TICKET_GRANTING_TICKET,
- realm, client.s_addr, &ad, 0);
- if(err){
- msg = klog(L_ERR_UNK, "krb_rd_req from %s: %s",
- inet_ntoa(client), krb_get_err_text(err));
- strcpy((char*)rpkt->dat, msg);
- return err;
- }
- p += krb_get_int(p, &req_time, 4, lsb);
- life = *p++;
- p += krb_get_nir(p, service, sinst, NULL);
- klog(L_APPL_REQ, "APPL REQ %s.%s@%s for %s.%s from %s",
- ad.pname, ad.pinst, ad.prealm,
- service, sinst,
- inet_ntoa(client));
- if(strcmp(ad.prealm, realm)){
- msg = klog(L_ERR_UNK, "Can't hop realms: %s -> %s",
- realm, ad.prealm);
- strcpy((char*)rpkt->dat, msg);
- return KERB_ERR_PRINCIPAL_UNKNOWN;
- }
-
- if(!strcmp(service, "changepw")){
- strcpy((char*)rpkt->dat,
- "Can't authorize password changed based on TGT");
- return KERB_ERR_PRINCIPAL_UNKNOWN;
- }
-
- err = check_princ(service, sinst, life, &s_name);
- if(err){
- strcpy((char*)rpkt->dat, krb_get_err_text(err));
- return err;
- }
- life = min(life,
- krb_time_to_life(kerb_time.tv_sec,
- krb_life_to_time(ad.time_sec,
- ad.life)));
- life = min(life, s_name.max_life);
- copy_to_key(&s_name.key_low, &s_name.key_high, key);
- unseal(&key);
- des_new_random_key(&session);
- krb_create_ticket(tk, flags, ad.pname, ad.pinst, ad.prealm,
- client.s_addr, &session, life, kerb_time.tv_sec,
- s_name.name, s_name.instance,
- &key);
-
- memset(&key, 0, sizeof(key));
-
- create_ciph(ciph, session, service, sinst, local_realm,
- life, s_name.key_version, tk,
- kerb_time.tv_sec, &ad.session);
-
- memset(&session, 0, sizeof(session));
- memset(ad.session, 0, sizeof(ad.session));
- {
- KTEXT r;
- r =create_auth_reply(ad.pname, ad.pinst, ad.prealm,
- req_time, 0, 0, 0, ciph);
- memcpy(rpkt, r, sizeof(*rpkt));
- }
- memset(&s_name, 0, sizeof(s_name));
- return 0;
-
- case AUTH_MSG_ERR_REPLY:
- return -1;
- default:
- msg = klog(L_KRB_PERR, "Unknown message type: %d from %s",
- msg_type, inet_ntoa(client));
- strcpy((char*)rpkt->dat, msg);
- return KFAILURE;
- }
-}
-
-
-static void
-kerberos_wrap(int s, KTEXT data, struct sockaddr_in *client)
-{
- KTEXT_ST pkt;
- int err = kerberos(data->dat, data->length, client->sin_addr, &pkt);
- if(err == -1)
- return;
- if(err){
- kerb_err_reply(s, client, err, (char*)pkt.dat);
- return;
- }
- sendto(s, pkt.dat, pkt.length, 0, (struct sockaddr *)client,
- sizeof(*client));
-}
-
-
-/*
- * setup_disc
- *
- * disconnect all descriptors, remove ourself from the process
- * group that spawned us.
- */
-
-static void
-setup_disc(void)
-{
- int s;
-
- for (s = 0; s < 3; s++) {
- close(s);
- }
-
- open("/dev/null", 0);
- dup2(0, 1);
- dup2(0, 2);
-
- setsid();
-
- chdir("/tmp");
- return;
-}
-
-/*
- * Make sure that database isn't stale.
- *
- * Exit if it is; we don't want to tell lies.
- */
-
-static void
-check_db_age(void)
-{
- long age;
-
- if (max_age != -1) {
- /* Requires existance of kerb_get_db_age() */
- gettimeofday(&kerb_time, 0);
- age = kerb_get_db_age();
- if (age == 0) {
- klog(L_KRB_PERR, "Database currently being updated!");
- hang();
- }
- if ((age + max_age) < kerb_time.tv_sec) {
- klog(L_KRB_PERR, "Database out of date!");
- hang();
- /* NOTREACHED */
- }
- }
-}
-
-struct descr{
- int s;
- KTEXT_ST buf;
- int type;
- int timeout;
-};
-
-static void
-mksocket(struct descr *d, struct in_addr addr, int type,
- const char *service, int port)
-{
- struct sockaddr_in sina;
- int on = 1;
- int sock;
-
- memset(d, 0, sizeof(struct descr));
- if ((sock = socket(AF_INET, type, 0)) < 0)
- err (1, "socket");
-#if defined(SO_REUSEADDR) && defined(HAVE_SETSOCKOPT)
- if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&on,
- sizeof(on)) < 0)
- warn ("setsockopt (SO_REUSEADDR)");
-#endif
- memset(&sina, 0, sizeof(sina));
- sina.sin_family = AF_INET;
- sina.sin_port = port;
- sina.sin_addr = addr;
- if (bind(sock, (struct sockaddr *)&sina, sizeof(sina)) < 0)
- err (1, "bind '%s/%s' (%d)",
- service, (type == SOCK_DGRAM) ? "udp" : "tcp",
- ntohs(sina.sin_port));
-
- if(type == SOCK_STREAM)
- listen(sock, SOMAXCONN);
- d->s = sock;
- d->type = type;
-}
-
-
-static void loop(struct descr *fds, int maxfd);
-
-int
-main(int argc, char **argv)
-{
- int child;
- int c;
- struct descr *fds;
- int nfds;
- int i;
- int n;
- int kerror;
-
- umask(077); /* Create protected files */
-
- set_progname (argv[0]);
-
- while ((c = getopt(argc, argv, "snmp:a:l:r:")) != EOF) {
- switch(c) {
- case 's':
- /*
- * Set parameters to slave server defaults.
- */
- if (max_age == -1 && !nflag)
- max_age = ONE_DAY; /* 24 hours */
- if (pause_int == -1)
- pause_int = FIVE_MINUTES; /* 5 minutes */
-#if 0
- if (log_file == NULL) {
- /* this is only silly */
- log_file = KRBSLAVELOG;
- }
-#endif
- break;
- case 'n':
- max_age = -1; /* don't check max age. */
- nflag++;
- break;
- case 'm':
- mflag++; /* running manually; prompt for master key */
- break;
- case 'p':
- /* Set pause interval. */
- if (!isdigit(optarg[0]))
- usage();
- pause_int = atoi(optarg);
- if ((pause_int < 5) || (pause_int > ONE_HOUR)) {
- fprintf(stderr, "pause_int must be between 5 and 3600 seconds.\n");
- usage();
- }
- break;
- case 'a':
- /* Set max age. */
- if (!isdigit(optarg[0]))
- usage();
- max_age = atoi(optarg);
- if ((max_age < ONE_HOUR) || (max_age > THREE_DAYS)) {
- fprintf(stderr, "max_age must be between one hour and three days, in seconds\n");
- usage();
- }
- break;
- case 'l':
- /* Set alternate log file */
- log_file = optarg;
- break;
- case 'r':
- /* Set realm name */
- rflag++;
- strcpy(local_realm, optarg);
- break;
- default:
- usage();
- break;
- }
- }
-
- if(log_file == NULL)
- log_file = KRBLOG;
-
- if (optind == (argc-1)) {
- if (kerb_db_set_name(argv[optind]) != 0) {
- fprintf(stderr, "Could not set alternate database name\n");
- exit(1);
- }
- optind++;
- }
-
- if (optind != argc)
- usage();
-
- printf("Kerberos server starting\n");
-
- if ((!nflag) && (max_age != -1))
- printf("\tMaximum database age: %d seconds\n", max_age);
- if (pause_int != -1)
- printf("\tSleep for %d seconds on error\n", pause_int);
- else
- printf("\tSleep forever on error\n");
- if (mflag)
- printf("\tMaster key will be entered manually\n");
-
- printf("\tLog file is %s\n", log_file);
-
- kset_logfile(log_file);
-
- /* find our hostname, and use it as the instance */
- if (k_gethostname(k_instance, INST_SZ))
- err (1, "gethostname");
-
- /*
- * Yes this looks backwards but it has to be this way to enable a
- * smooth migration to the new port 88.
- */
- {
- int p1, p2;
- struct in_addr *a;
-
- p1 = k_getportbyname ("kerberos-iv", "udp", htons(750));
- p2 = k_getportbyname ("kerberos-sec", "udp", htons(88));
-
- if (p1 == p2)
- {
- fprintf(stderr, "Either define kerberos-iv/udp as 750\n");
- fprintf(stderr, " and kerberos-sec/udp as 88\n");
- fprintf(stderr, "or the other way around!");
- exit(1);
- }
-
- nfds = k_get_all_addrs (&a);
- if (nfds < 0) {
- struct in_addr any;
-
- any.s_addr = INADDR_ANY;
-
- fprintf (stderr, "Could not get local addresses, "
- "binding to INADDR_ANY\n");
- nfds = 1;
- a = malloc(sizeof(*a) * nfds);
- memcpy(a, &any, sizeof(struct in_addr));
- }
- nfds *= 4;
- fds = (struct descr*)malloc(nfds * sizeof(struct descr));
- for (i = 0; i < nfds/4; i++) {
- mksocket(fds + 4 * i + 0, a[i], SOCK_DGRAM, "kerberos-iv", p1);
- mksocket(fds + 4 * i + 1, a[i], SOCK_DGRAM, "kerberos-sec", p2);
- mksocket(fds + 4 * i + 2, a[i], SOCK_STREAM, "kerberos-iv", p1);
- mksocket(fds + 4 * i + 3, a[i], SOCK_STREAM, "kerberos-sec", p2);
- }
- free (a);
- }
- /* do all the database and cache inits */
- if ((n = kerb_init())) {
- if (mflag) {
- printf("Kerberos db and cache init ");
- printf("failed = %d ...exiting\n", n);
- exit (1);
- } else {
- klog(L_KRB_PERR,
- "Kerberos db and cache init failed = %d ...exiting", n);
- hang();
- }
- }
-
- /* Make sure database isn't stale */
- check_db_age();
-
- /* setup master key */
- if (kdb_get_master_key (mflag, &master_key, master_key_schedule) != 0) {
- klog (L_KRB_PERR, "kerberos: couldn't get master key.\n");
- exit (1);
- }
- kerror = kdb_verify_master_key (&master_key, master_key_schedule, stdout);
- if (kerror < 0) {
- klog (L_KRB_PERR, "Can't verify master key.");
- memset(master_key, 0, sizeof (master_key));
- memset (master_key_schedule, 0, sizeof (master_key_schedule));
- exit (1);
- }
-
- master_key_version = (u_char) kerror;
-
- fprintf(stdout, "\nCurrent Kerberos master key version is %d\n",
- master_key_version);
- des_init_random_number_generator(&master_key);
-
- if (!rflag) {
- /* Look up our local realm */
- krb_get_lrealm(local_realm, 1);
- }
- fprintf(stdout, "Local realm: %s\n", local_realm);
- fflush(stdout);
-
- if (set_tgtkey(local_realm)) {
- /* Ticket granting service unknown */
- klog(L_KRB_PERR, "Ticket granting ticket service unknown");
- fprintf(stderr, "Ticket granting ticket service unknown\n");
- exit(1);
- }
- if (mflag) {
- if ((child = fork()) != 0) {
- printf("Kerberos started, PID=%d\n", child);
- exit(0);
- }
- setup_disc();
- }
-
- klog(L_ALL_REQ, "Starting Kerberos for %s (kvno %d)",
- local_realm, master_key_version);
-
- /* receive loop */
- loop(fds, nfds);
- exit(1);
-}
-
-
-static void
-loop(struct descr *fds, int nfds)
-{
- for (;;) {
- int ret;
- fd_set readfds;
- struct timeval tv;
- int maxfd = 0;
- struct descr *n, *minfree;
-
- FD_ZERO(&readfds);
- gettimeofday(&tv, NULL);
- maxfd = 0;
- minfree = NULL;
- /* Remove expired TCP sockets, and add all other
- to the set we are selecting on */
- for(n = fds; n < fds + nfds; n++){
- if(n->s >= 0 && n->timeout && tv.tv_sec > n->timeout){
- kerb_err_reply(n->s, NULL, KERB_ERR_TIMEOUT, "Timeout");
- close(n->s);
- n->s = -1;
- }
- if(n->s < 0){
- if(minfree == NULL) minfree = n;
- continue;
- }
- FD_SET(n->s, &readfds);
- maxfd = max(maxfd, n->s);
- }
- /* add more space for sockets */
- if(minfree == NULL){
- int i = nfds;
- struct descr *new;
- nfds *=2;
- new = realloc(fds, sizeof(struct descr) * nfds);
- if(new){
- fds = new;
- minfree = fds + i;
- for(; i < nfds; i++) fds[i].s = -1;
- }
- }
- ret = select(maxfd + 1, &readfds, 0, 0, 0);
- for (n = fds; n < fds + nfds; n++){
- if(n->s < 0) continue;
- if (FD_ISSET(n->s, &readfds)){
- if(n->type == SOCK_STREAM && n->timeout == 0){
- /* add accepted socket to list of sockets we are
- selecting on */
- int s = accept(n->s, NULL, 0);
- if(minfree == NULL){
- kerb_err_reply(s, NULL, KFAILURE, "Out of memory");
- close(s);
- }else{
- minfree->s = s;
- minfree->type = SOCK_STREAM;
- gettimeofday(&tv, NULL);
- minfree->timeout = tv.tv_sec + 4; /* XXX */
- }
- }else{
- int b;
- struct sockaddr_in from;
- int fromlen = sizeof(from);
- b = recvfrom(n->s, n->buf.dat + n->buf.length,
- MAX_PKT_LEN - n->buf.length, 0,
- (struct sockaddr *)&from, &fromlen);
- if(b < 0){
- if(n->type == SOCK_STREAM){
- close(n->s);
- n->s = -1;
- }
- n->buf.length = 0;
- continue;
- }
- n->buf.length += b;
- if(n->type == SOCK_STREAM){
- if(n->buf.length >= 4 && n->buf.dat[0] == 0){
- /* if this is a new type of packet (with
- the length attached to the head of the
- packet), and there is no more data to
- be read, fake an old packet, so the
- code below will work */
- u_int32_t len;
- krb_get_int(n->buf.dat, &len, 4, 0);
- if(n->buf.length == len + 4){
- memmove(n->buf.dat, n->buf.dat + 4, len);
- b = 0;
- }
- }
- if(b == 0){
- /* handle request if there are
- no more bytes to read */
- fromlen = sizeof(from);
- getpeername(n->s,(struct sockaddr*)&from, &fromlen);
- kerberos_wrap(n->s, &n->buf, &from);
- n->buf.length = 0;
- close(n->s);
- n->s = -1;
- }
- }else{
- /* udp packets are atomic */
- kerberos_wrap(n->s, &n->buf, &from);
- n->buf.length = 0;
- }
- }
- }
- }
- }
-}
diff --git a/crypto/kerberosIV/slave/Makefile.in b/crypto/kerberosIV/slave/Makefile.in
deleted file mode 100644
index ce355465d78a..000000000000
--- a/crypto/kerberosIV/slave/Makefile.in
+++ /dev/null
@@ -1,82 +0,0 @@
-# $Id: Makefile.in,v 1.27 1997/05/04 04:16:28 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-DEFS = @DEFS@ -DSBINDIR=\"$(sbindir)\"
-CFLAGS = @CFLAGS@
-LD_FLAGS = @LD_FLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @LIBS@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-sbindir = @sbindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-PROGS = kpropd$(EXECSUFFIX) \
- kprop$(EXECSUFFIX)
-
-SOURCES = kpropd.c kprop.c
-
-OBJECTS = kpropd.o kprop.o
-
-all: $(PROGS)
-
-Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
-
-.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../include -I$(srcdir) $(CFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(libexecdir)
- for x in $(PROGS); do \
- $(INSTALL_PROGRAM) $$x $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(PROGS); do \
- rm -f $(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *.tab.c *~
-
-realclean: distclean
- rm -f TAGS
-
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
-kprop$(EXECSUFFIX): kprop.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kprop.o -L../lib/krb -lkrb -L../lib/des -ldes -L../lib/roken -lroken $(LIBS) -lroken
-
-kpropd$(EXECSUFFIX): kpropd.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ kpropd.o -L../lib/krb -lkrb -L../lib/des -ldes -L../lib/roken -lroken $(LIBS) -lroken
-
-$(OBJECTS): ../include/config.h
diff --git a/crypto/kerberosIV/slave/kprop.c b/crypto/kerberosIV/slave/kprop.c
deleted file mode 100644
index 89011212ea9a..000000000000
--- a/crypto/kerberosIV/slave/kprop.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/*
-
-Copyright 1987, 1988 by the Student Information Processing Board
- of the Massachusetts Institute of Technology
-
-Permission to use, copy, modify, and distribute this software
-and its documentation for any purpose and without fee is
-hereby granted, provided that the above copyright notice
-appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation,
-and that the names of M.I.T. and the M.I.T. S.I.P.B. not be
-used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-M.I.T. and the M.I.T. S.I.P.B. make no representations about
-the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-*/
-
-#include "slav_locl.h"
-
-RCSID("$Id: kprop.c,v 1.29 1997/05/25 02:43:54 joda Exp $");
-
-#include "kprop.h"
-
-static char kprop_version[KPROP_PROT_VERSION_LEN] = KPROP_PROT_VERSION;
-
-int debug = 0;
-
-char my_realm[REALM_SZ];
-int princ_data_size = 3 * sizeof(int32_t) + 3 * sizeof(unsigned char);
-short transfer_mode, net_transfer_mode;
-int force_flag;
-static char ok[] = ".dump_ok";
-
-struct slave_host {
- u_int32_t net_addr;
- char *name;
- char *instance;
- char *realm;
- int not_time_yet;
- int succeeded;
- struct slave_host *next;
-};
-
-static
-int get_slaves(struct slave_host **psl, char *file, time_t ok_mtime)
-{
- FILE *fin;
- char namebuf[128], *inst;
- char *pc;
- struct hostent *host;
- struct slave_host **th;
- char path[256];
- char *ppath;
- struct stat stbuf;
-
- if ((fin = fopen(file, "r")) == NULL)
- err (1, "open(%s)", file);
- strcpy(path, file);
- if ((ppath = strrchr(path, '/'))) {
- ppath += 1;
- } else {
- ppath = path;
- }
- th = psl;
- while(fgets(namebuf, sizeof(namebuf), fin)){
- if ((pc = strchr(namebuf, '\n'))) {
- *pc = '\0';
- } else {
- if(strlen(namebuf) == sizeof(namebuf) - 1){
- warnx ("Hostname too long (>= %d chars) in '%s'.",
- (int) sizeof(namebuf), file);
- do{
- if(fgets(namebuf, sizeof(namebuf), fin) == NULL)
- break;
- }while(strchr(namebuf, '\n') == NULL);
- continue;
- }
- }
- if(namebuf[0] == 0 || namebuf[0] == '#')
- continue;
- host = gethostbyname(namebuf);
- if (host == NULL) {
- warnx ("Ignoring host '%s' in '%s': %s",
- namebuf, file,
-#ifdef HAVE_H_ERRNO
- hstrerror(h_errno)
-#else
- "unknown error"
-#endif
- );
- continue;
- }
- (*th) = (struct slave_host *) malloc(sizeof(struct slave_host));
- if (!*th)
- errx (1, "No memory reading host list from '%s'.",
- file);
- memset(*th, 0, sizeof(struct slave_host));
- (*th)->name = strdup(namebuf);
- if ((*th)->name == NULL)
- errx (1, "No memory reading host list from '%s'.",
- file);
- /* get kerberos cannonical instance name */
- inst = krb_get_phost ((*th)->name);
- (*th)->instance = strdup(inst);
- if ((*th)->instance == NULL)
- errx (1, "No memory reading host list from '%s'.",
- file);
- /* what a concept, slave servers in different realms! */
- (*th)->realm = my_realm;
- memcpy(&(*th)->net_addr, host->h_addr, sizeof((*th)->net_addr));
- (*th)->not_time_yet = 0;
- (*th)->succeeded = 0;
- (*th)->next = NULL;
- strcat(strcpy(ppath, (*th)->name), "-last-prop");
- if (!force_flag && !stat(path, &stbuf) && stbuf.st_mtime > ok_mtime) {
- (*th)->not_time_yet = 1;
- (*th)->succeeded = 1; /* no change since last success */
- }
- th = &(*th)->next;
- }
- fclose(fin);
- return (1);
-}
-
-/* The master -> slave protocol looks like this:
- 1) 8 byte version string
- 2) 2 bytes of "transfer mode" (net byte order of course)
- 3) ticket/authentication send by sendauth
- 4) 4 bytes of "block" length (u_int32_t)
- 5) data
-
- 4 and 5 repeat til EOF ...
-*/
-
-static int
-prop_to_slaves(struct slave_host *sl, int fd, char *fslv)
-{
- u_char buf[KPROP_BUFSIZ];
- u_char obuf[KPROP_BUFSIZ + 64]; /* leave room for private msg overhead */
- struct sockaddr_in sin, my_sin;
- int i, n, s;
- struct slave_host *cs; /* current slave */
- char path[256], my_host_name[MaxHostNameLen], *p_my_host_name;
- char kprop_service_instance[INST_SZ];
- char *pc;
- u_int32_t cksum;
- u_int32_t length, nlength;
- long kerror;
- KTEXT_ST ticket;
- CREDENTIALS cred;
- MSG_DAT msg_dat;
- static char tkstring[] = "/tmp/kproptktXXXXXX";
-
- des_key_schedule session_sched;
-
- close(mkstemp(tkstring));
- krb_set_tkt_string(tkstring);
-
- memset(&sin, 0, sizeof sin);
- sin.sin_family = AF_INET;
- sin.sin_port = k_getportbyname ("krb_prop", "tcp", htons(KPROP_PORT));
- sin.sin_addr.s_addr = INADDR_ANY;
-
- strcpy(path, fslv);
- if ((pc = strrchr(path, '/'))) {
- pc += 1;
- } else {
- pc = path;
- }
-
- for (i = 0; i < 5; i++) { /* try each slave five times max */
- for (cs = sl; cs; cs = cs->next) {
- if (!cs->succeeded) {
- if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- err (1, "socket");
- memcpy(&sin.sin_addr, &cs->net_addr,
- sizeof cs->net_addr);
-
- if (connect(s, (struct sockaddr *) &sin, sizeof sin) < 0) {
- warn ("connect(%s)", cs->name);
- close(s);
- continue; /*** NEXT SLAVE ***/
- }
-
- /* for krb_mk_{priv, safe} */
- memset(&my_sin, 0, sizeof my_sin);
- n = sizeof my_sin;
- if (getsockname (s, (struct sockaddr *) &my_sin, &n) != 0) {
- warn ("getsockname(%s)", cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
- if (n != sizeof (my_sin)) {
- warnx ("can't get socketname %s length", cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-
- /* Get ticket */
- kerror = krb_mk_req (&ticket, KPROP_SERVICE_NAME,
- cs->instance, cs->realm, (u_int32_t) 0);
- /* if ticket has expired try to get a new one, but
- * first get a TGT ...
- */
- if (kerror != MK_AP_OK) {
- if (k_gethostname (my_host_name, sizeof(my_host_name)) != 0) {
- warnx ("gethostname(%s): %s",
- my_host_name,
-#ifdef HAVE_H_ERRNO
- hstrerror(h_errno)
-#else
- "unknown error"
-#endif
- );
- close (s);
- break; /* next one can't work either! */
- }
- /* get canonical kerberos service instance name */
- p_my_host_name = krb_get_phost (my_host_name);
- /* copy it to make sure gethostbyname static doesn't
- * screw us. */
- strcpy (kprop_service_instance, p_my_host_name);
- kerror = krb_get_svc_in_tkt (KPROP_SERVICE_NAME,
-#if 0
- kprop_service_instance,
-#else
- KRB_MASTER,
-#endif
- my_realm,
- KRB_TICKET_GRANTING_TICKET,
- my_realm,
- 96,
- KPROP_SRVTAB);
- if (kerror != INTK_OK) {
- warnx ("%s: %s. While getting initial ticket\n",
- cs->name, krb_get_err_text(kerror));
- close (s);
- goto punt;
- }
- kerror = krb_mk_req (&ticket, KPROP_SERVICE_NAME,
- cs->instance, cs->realm, (u_int32_t) 0);
- }
- if (kerror != MK_AP_OK) {
- warnx ("%s: krb_mk_req: %s",
- cs->name, krb_get_err_text(kerror));
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-
- if (write(s, kprop_version, sizeof(kprop_version))
- != sizeof(kprop_version)) {
- warn ("%s", cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-
- net_transfer_mode = htons (transfer_mode);
- if (write(s, &net_transfer_mode, sizeof(net_transfer_mode))
- != sizeof(net_transfer_mode)) {
- warn ("write(%s)", cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-
- kerror = krb_get_cred (KPROP_SERVICE_NAME, cs->instance,
- cs->realm, &cred);
- if (kerror != KSUCCESS) {
- warnx ("%s: %s. Getting session key.",
- cs->name, krb_get_err_text(kerror));
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-#ifdef NOENCRYPTION
- memset(session_sched, 0, sizeof(session_sched));
-#else
- if (des_key_sched (&cred.session, session_sched)) {
- warnx ("%s: can't make key schedule.",
- cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-#endif
- /* SAFE (quad_cksum) and CLEAR are just not good enough */
- cksum = 0;
-#ifdef not_working_yet
- if (transfer_mode != KPROP_TRANSFER_PRIVATE) {
- cksum = get_data_checksum(fd, session_sched);
- lseek(fd, 0L, 0);
- }
- else
-#endif
- {
- struct stat st;
- fstat (fd, &st);
- cksum = st.st_size;
- }
- kerror = krb_sendauth(KOPT_DO_MUTUAL,
- s,
- &ticket,
- KPROP_SERVICE_NAME,
- cs->instance,
- cs->realm,
- cksum,
- &msg_dat,
- &cred,
- session_sched,
- &my_sin,
- &sin,
- KPROP_PROT_VERSION);
- if (kerror != KSUCCESS) {
- warnx ("%s: krb_sendauth: %s.",
- cs->name, krb_get_err_text(kerror));
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
-
- lseek(fd, 0L, SEEK_SET); /* Rewind file before rereading it. */
- while ((n = read(fd, buf, sizeof buf))) {
- if (n < 0)
- err (1, "read");
- switch (transfer_mode) {
- case KPROP_TRANSFER_PRIVATE:
- case KPROP_TRANSFER_SAFE:
- if (transfer_mode == KPROP_TRANSFER_PRIVATE)
- length = krb_mk_priv (buf, obuf, n,
- session_sched, &cred.session,
- &my_sin, &sin);
- else
- length = krb_mk_safe (buf, obuf, n,
- &cred.session,
- &my_sin, &sin);
- if (length == -1) {
- warnx ("%s: %s failed.",
- cs->name,
- (transfer_mode == KPROP_TRANSFER_PRIVATE)
- ? "krb_rd_priv" : "krb_rd_safe");
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
- nlength = htonl(length);
- if (write(s, &nlength, sizeof nlength)
- != sizeof nlength) {
- warn ("write(%s)", cs->name);
- close (s);
- continue; /*** NEXT SLAVE ***/
- }
- if (write(s, obuf, length) != length) {
- warn ("write(%s)", cs->name);
- close(s);
- continue; /*** NEXT SLAVE ***/
- }
- break;
- case KPROP_TRANSFER_CLEAR:
- if (write(s, buf, n) != n) {
- warn ("write(%s)", cs->name);
- close(s);
- continue; /*** NEXT SLAVE ***/
- }
- break;
- }
- }
- close(s);
- cs->succeeded = 1;
- fprintf(stderr, "%s: success.\n", cs->name);
- strcat(strcpy(pc, cs->name), "-last-prop");
- unlink(path);
- close(creat(path, 0600));
- }
- }
- }
-punt:
-
- dest_tkt();
- for (cs = sl; cs; cs = cs->next) {
- if (!cs->succeeded)
- return (0); /* didn't get this slave */
- }
- return (1);
-}
-
-static void
-usage()
-{
- /* already got floc and fslv, what is this? */
- fprintf(stderr,
- "\nUsage: kprop [-force] [-realm realm] [-private"
-#ifdef not_safe_yet
- "|-safe|-clear"
-#endif
- "] [data_file [slaves_file]]\n\n");
- exit(1);
-}
-
-
-int
-main(int argc, char **argv)
-{
- int fd, i;
- char *floc, *floc_ok;
- char *fslv;
- struct stat stbuf, stbuf_ok;
- time_t l_init, l_final;
- char *pc;
- int l_diff;
- static struct slave_host *slave_host_list = NULL;
- struct slave_host *sh;
-
- set_progname (argv[0]);
-
- transfer_mode = KPROP_TRANSFER_PRIVATE;
-
- time(&l_init);
- pc = ctime(&l_init);
- pc[strlen(pc) - 1] = '\0';
- printf("\nStart slave propagation: %s\n", pc);
-
- floc = NULL;
- fslv = NULL;
-
- if (krb_get_lrealm(my_realm,1) != KSUCCESS)
- errx (1, "Getting my kerberos realm. Check krb.conf");
-
- for (i = 1; i < argc; i++)
- switch (argv[i][0]) {
- case '-':
- if (strcmp (argv[i], "-private") == 0)
- transfer_mode = KPROP_TRANSFER_PRIVATE;
-#ifdef not_safe_yet
- else if (strcmp (argv[i], "-safe") == 0)
- transfer_mode = KPROP_TRANSFER_SAFE;
- else if (strcmp (argv[i], "-clear") == 0)
- transfer_mode = KPROP_TRANSFER_CLEAR;
-#endif
- else if (strcmp (argv[i], "-realm") == 0) {
- i++;
- if (i < argc)
- strcpy(my_realm, argv[i]);
- else
- usage();
- } else if (strcmp (argv[i], "-force") == 0)
- force_flag++;
- else {
- warnx("unknown control argument %s.", argv[i]);
- usage ();
- }
- break;
- default:
- /* positional arguments are marginal at best ... */
- if (floc == NULL)
- floc = argv[i];
- else {
- if (fslv == NULL)
- fslv = argv[i];
- else
- usage();
- }
- }
- if(floc == NULL)
- floc = DB_DIR "/slave_dump";
- if(fslv == NULL)
- fslv = DB_DIR "/slaves";
-
- asprintf (&floc_ok, "%s%s", floc, ok);
- if (floc_ok == NULL)
- errx (1, "out of memory in copying %s", floc);
-
- if ((fd = open(floc, O_RDONLY)) < 0)
- err (1, "open(%s)", floc);
- if (k_flock(fd, K_LOCK_SH | K_LOCK_NB))
- err (1, "flock(%s)", floc);
- if (stat(floc, &stbuf))
- err (1, "stat(%s)", floc);
- if (stat(floc_ok, &stbuf_ok))
- err (1, "stat(%s)", floc_ok);
- if (stbuf.st_mtime > stbuf_ok.st_mtime)
- errx (1, "'%s' more recent than '%s'.", floc, floc_ok);
- if (!get_slaves(&slave_host_list, fslv, stbuf_ok.st_mtime))
- errx (1, "can't read slave host file '%s'.", fslv);
-#ifdef KPROP_DBG
- {
- struct slave_host *sh;
- int i;
- fprintf(stderr, "\n\n");
- fflush(stderr);
- for (sh = slave_host_list; sh; sh = sh->next) {
- fprintf(stderr, "slave %d: %s, %s", i++, sh->name,
- inet_ntoa(sh->net_addr));
- fflush(stderr);
- }
- }
-#endif /* KPROP_DBG */
-
- if (!prop_to_slaves(slave_host_list, fd, fslv))
- errx (1, "propagation failed.");
- if (k_flock(fd, K_LOCK_UN))
- err (1, "flock(%s, LOCK_UN)", floc);
- fprintf(stderr, "\n\n");
- for (sh = slave_host_list; sh; sh = sh->next) {
- fprintf(stderr, "%s:\t\t%s\n", sh->name,
- (sh->not_time_yet? "Not time yet" : (sh->succeeded ? "Succeeded" : "FAILED")));
- }
-
- time(&l_final);
- l_diff = l_final - l_init;
- printf("propagation finished, %d:%02d:%02d elapsed\n",
- l_diff / 3600, (l_diff % 3600) / 60, l_diff % 60);
-
- exit(0);
-}
-
-#ifdef doesnt_work_yet
-u_long get_data_checksum(fd, key_sched)
- int fd;
- des_key_schedule key_sched;
-{
- u_int32_t cksum = 0;
- int n;
- char buf[BUFSIZ];
- u_int32_t obuf[2];
-
- while (n = read(fd, buf, sizeof buf)) {
- if (n < 0)
- err (1, "read");
- cksum = cbc_cksum(buf, obuf, n, key_sched, key_sched);
- }
- return cksum;
-}
-#endif
diff --git a/crypto/kerberosIV/slave/kprop.h b/crypto/kerberosIV/slave/kprop.h
deleted file mode 100644
index d66f63f73474..000000000000
--- a/crypto/kerberosIV/slave/kprop.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 1987 by the Massachusetts Institute of Technology.
- *
- * For copying and distribution information,
- * please see the file <mit-copyright.h>.
- *
- * $Id: kprop.h,v 1.5 1997/02/07 21:39:52 assar Exp $
- *
- */
-
-#define KPROP_SERVICE_NAME "rcmd"
-#define KPROP_SRVTAB "/etc/srvtab"
-#define KPROP_PROT_VERSION_LEN 8
-#define KPROP_PROT_VERSION "kprop01"
-#define KPROP_TRANSFER_PRIVATE 1
-#define KPROP_TRANSFER_SAFE 2
-#define KPROP_TRANSFER_CLEAR 3
-#define KPROP_BUFSIZ 32768
-#define KPROP_PORT 754
diff --git a/crypto/kerberosIV/slave/kpropd.c b/crypto/kerberosIV/slave/kpropd.c
deleted file mode 100644
index e2b5f0a2a293..000000000000
--- a/crypto/kerberosIV/slave/kpropd.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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 "slav_locl.h"
-
-#include "kprop.h"
-
-RCSID("$Id: kpropd.c,v 2.21 1997/05/02 17:52:13 assar Exp $");
-
-#ifndef SBINDIR
-#define SBINDIR "/usr/athena/sbin"
-#endif
-
-struct sockaddr_in master, slave;
-
-char *database = DBM_FILE;
-
-char *lockfile = DB_DIR "/slave_propagation";
-
-char *logfile = K_LOGFIL;
-
-char *kdb_util = SBINDIR "/kdb_util";
-
-char *kdb_util_command = "load";
-
-char *srvtab = "";
-
-char realm[REALM_SZ];
-
-static
-int
-copy_data(int from, int to, des_cblock *session, des_key_schedule schedule)
-{
- unsigned char tmp[4];
- char buf[KPROP_BUFSIZ + 26];
- u_int32_t length;
- int n;
-
- int kerr;
- MSG_DAT m;
-
- while(1){
- n = krb_net_read(from, tmp, 4);
- if(n == 0)
- break;
- if(n < 0){
- klog(L_KRB_PERR, "krb_net_read: %s", strerror(errno));
- return -1;
- }
- if(n != 4){
- klog(L_KRB_PERR, "Premature end of data");
- return -1;
- }
- length = (tmp[0] << 24) | (tmp[1] << 16) | (tmp[2] << 8) | tmp[3];
- if(length > sizeof(buf)){
- klog(L_KRB_PERR, "Giant packet received: %d", length);
- return -1;
- }
- if(krb_net_read(from, buf, length) != length){
- klog(L_KRB_PERR, "Premature end of data");
- return -1;
- }
- kerr = krb_rd_priv (buf, length, schedule, session, &master, &slave, &m);
- if(kerr != KSUCCESS){
- klog(L_KRB_PERR, "Kerberos error: %s", krb_get_err_text(kerr));
- return -1;
- }
- write(to, m.app_data, m.app_length);
- }
- return 0;
-}
-
-
-static
-int
-kprop(int s)
-{
- char buf[128];
- int n;
- KTEXT_ST ticket;
- AUTH_DAT ad;
- char sinst[INST_SZ];
- char command[1024];
- des_key_schedule schedule;
- int mode;
- int kerr;
- int lock;
-
- n = sizeof(master);
- if(getpeername(s, (struct sockaddr*)&master, &n) < 0){
- klog(L_KRB_PERR, "getpeername: %s", strerror(errno));
- return 1;
- }
-
- n = sizeof(slave);
- if(getsockname(s, (struct sockaddr*)&slave, &n) < 0){
- klog(L_KRB_PERR, "getsockname: %s", strerror(errno));
- return 1;
- }
-
- klog(L_KRB_PERR, "Connection from %s", inet_ntoa(master.sin_addr));
-
- n = krb_net_read(s, buf, KPROP_PROT_VERSION_LEN + 2);
- if(n < KPROP_PROT_VERSION_LEN + 2){
- klog(L_KRB_PERR, "Premature end of data");
- return 1;
- }
- if(memcmp(buf, KPROP_PROT_VERSION, KPROP_PROT_VERSION_LEN) != 0){
- klog(L_KRB_PERR, "Bad protocol version string received");
- return 1;
- }
- mode = (buf[n-2] << 8) | buf[n-1];
- if(mode != KPROP_TRANSFER_PRIVATE){
- klog(L_KRB_PERR, "Bad transfer mode received: %d", mode);
- return 1;
- }
- k_getsockinst(s, sinst, sizeof(sinst));
- kerr = krb_recvauth(KOPT_DO_MUTUAL, s, &ticket,
- KPROP_SERVICE_NAME, sinst,
- &master, &slave,
- &ad, srvtab, schedule,
- buf);
- if(kerr != KSUCCESS){
- klog(L_KRB_PERR, "Kerberos error: %s", krb_get_err_text(kerr));
- return 1;
- }
- des_set_key(&ad.session, schedule);
-
- lock = open(lockfile, O_WRONLY|O_CREAT, 0600);
- if(lock < 0){
- klog(L_KRB_PERR, "Failed to open file: %s", strerror(errno));
- return 1;
- }
- if(k_flock(lock, K_LOCK_EX | K_LOCK_NB)){
- close(lock);
- klog(L_KRB_PERR, "Failed to lock file: %s", strerror(errno));
- return 1;
- }
-
- if(ftruncate(lock, 0) < 0){
- close(lock);
- klog(L_KRB_PERR, "Failed to lock file: %s", strerror(errno));
- return 1;
- }
-
- if(copy_data(s, lock, &ad.session, schedule)){
- close(lock);
- return 1;
- }
- close(lock);
- snprintf(command, sizeof(command),
- "%s %s %s %s", kdb_util, kdb_util_command,
- lockfile, database);
- if(system(command) == 0){
- klog(L_KRB_PERR, "Propagation finished successfully");
- return 0;
- }
- klog(L_KRB_PERR, "*** Propagation failed ***");
- return 1;
-}
-
-static int
-doit(void)
-{
- return kprop(0);
-}
-
-static int
-doit_interactive(void)
-{
- struct sockaddr_in sa;
- int salen;
- int s, s2;
- int ret;
-
- s = socket(AF_INET, SOCK_STREAM, 0);
- if(s < 0){
- klog(L_KRB_PERR, "socket: %s", strerror(errno));
- return 1;
- }
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_port = k_getportbyname ("krb_prop", "tcp", htons(KPROP_PORT));
- ret = bind(s, (struct sockaddr*)&sa, sizeof(sa));
- if (ret < 0) {
- klog(L_KRB_PERR, "bind: %s", strerror(errno));
- return 1;
- }
- ret = listen(s, SOMAXCONN);
- if (ret < 0) {
- klog(L_KRB_PERR, "listen: %s", strerror(errno));
- return 1;
- }
- for(;;) {
- salen = sizeof(sa);
- s2 = accept(s, (struct sockaddr*)&sa, &salen);
- switch(fork()){
- case -1:
- klog(L_KRB_PERR, "fork: %s", strerror(errno));
- return 1;
- case 0:
- close(s);
- kprop(s2);
- return 1;
- default: {
- int status;
- close(s2);
- wait(&status);
- }
- }
- }
-}
-
-static void
-usage (void)
-{
- fprintf (stderr,
- "Usage: kpropd [-i] [-d database] [-l log] [-m] [-[p|P] program]"
- " [-r realm] [-s srvtab]\n");
- exit (1);
-}
-
-int
-main(int argc, char **argv)
-{
- int opt;
- int interactive = 0;
-
- krb_get_lrealm(realm, 1);
-
- while((opt = getopt(argc, argv, ":d:l:mp:P:r:s:i")) >= 0){
- switch(opt){
- case 'd':
- database = optarg;
- break;
- case 'l':
- logfile = optarg;
- break;
- case 'm':
- kdb_util_command = "merge";
- break;
- case 'p':
- case 'P':
- kdb_util = optarg;
- break;
- case 'r':
- strcpy(realm, optarg);
- break;
- case 's':
- srvtab = optarg;
- break;
- case 'i':
- interactive = 1;
- break;
- default:
- klog(L_KRB_PERR, "Bad option: -%c", optopt);
- usage ();
- exit(1);
- }
- }
- kset_logfile(logfile);
- if (interactive)
- return doit_interactive ();
- else
- return doit ();
-}
diff --git a/crypto/kerberosIV/slave/slav_locl.h b/crypto/kerberosIV/slave/slav_locl.h
deleted file mode 100644
index 760fb9dbc751..000000000000
--- a/crypto/kerberosIV/slave/slav_locl.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 1995, 1996, 1997 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. 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
- * 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: slav_locl.h,v 1.11 1997/05/20 18:40:47 bg Exp $ */
-
-#ifndef __slav_locl_h
-#define __slav_locl_h
-
-#include "config.h"
-#include "protos.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <errno.h>
-#include <unistd.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#include <time.h>
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#include <err.h>
-
-#ifdef SOCKS
-#include <socks.h>
-#endif
-
-#include <roken.h>
-
-#include <krb.h>
-#include <krb_db.h>
-#include <klog.h>
-#include <prot.h>
-#include <kdc.h>
-
-#include "kprop.h"
-
-#endif /* __slav_locl_h */
diff --git a/crypto/telnet/arpa/telnet.h b/crypto/telnet/arpa/telnet.h
deleted file mode 100644
index 01601f16b24e..000000000000
--- a/crypto/telnet/arpa/telnet.h
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)telnet.h 8.2 (Berkeley) 12/15/93
- */
-
-#ifndef _ARPA_TELNET_H_
-#define _ARPA_TELNET_H_
-
-/*
- * Definitions for the TELNET protocol.
- */
-#define IAC 255 /* interpret as command: */
-#define DONT 254 /* you are not to use option */
-#define DO 253 /* please, you use option */
-#define WONT 252 /* I won't use option */
-#define WILL 251 /* I will use option */
-#define SB 250 /* interpret as subnegotiation */
-#define GA 249 /* you may reverse the line */
-#define EL 248 /* erase the current line */
-#define EC 247 /* erase the current character */
-#define AYT 246 /* are you there */
-#define AO 245 /* abort output--but let prog finish */
-#define IP 244 /* interrupt process--permanently */
-#define BREAK 243 /* break */
-#define DM 242 /* data mark--for connect. cleaning */
-#define NOP 241 /* nop */
-#define SE 240 /* end sub negotiation */
-#define EOR 239 /* end of record (transparent mode) */
-#define ABORT 238 /* Abort process */
-#define SUSP 237 /* Suspend process */
-#define xEOF 236 /* End of file: EOF is already used... */
-
-#define SYNCH 242 /* for telfunc calls */
-
-#ifdef TELCMDS
-char *telcmds[] = {
- "EOF", "SUSP", "ABORT", "EOR",
- "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
- "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC",
- 0
-};
-#else
-extern char *telcmds[];
-#endif
-
-#define TELCMD_FIRST xEOF
-#define TELCMD_LAST IAC
-#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \
- (unsigned int)(x) >= TELCMD_FIRST)
-#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]
-
-/* telnet options */
-#define TELOPT_BINARY 0 /* 8-bit data path */
-#define TELOPT_ECHO 1 /* echo */
-#define TELOPT_RCP 2 /* prepare to reconnect */
-#define TELOPT_SGA 3 /* suppress go ahead */
-#define TELOPT_NAMS 4 /* approximate message size */
-#define TELOPT_STATUS 5 /* give status */
-#define TELOPT_TM 6 /* timing mark */
-#define TELOPT_RCTE 7 /* remote controlled transmission and echo */
-#define TELOPT_NAOL 8 /* negotiate about output line width */
-#define TELOPT_NAOP 9 /* negotiate about output page size */
-#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */
-#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */
-#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */
-#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */
-#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */
-#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */
-#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */
-#define TELOPT_XASCII 17 /* extended ascic character set */
-#define TELOPT_LOGOUT 18 /* force logout */
-#define TELOPT_BM 19 /* byte macro */
-#define TELOPT_DET 20 /* data entry terminal */
-#define TELOPT_SUPDUP 21 /* supdup protocol */
-#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */
-#define TELOPT_SNDLOC 23 /* send location */
-#define TELOPT_TTYPE 24 /* terminal type */
-#define TELOPT_EOR 25 /* end or record */
-#define TELOPT_TUID 26 /* TACACS user identification */
-#define TELOPT_OUTMRK 27 /* output marking */
-#define TELOPT_TTYLOC 28 /* terminal location number */
-#define TELOPT_3270REGIME 29 /* 3270 regime */
-#define TELOPT_X3PAD 30 /* X.3 PAD */
-#define TELOPT_NAWS 31 /* window size */
-#define TELOPT_TSPEED 32 /* terminal speed */
-#define TELOPT_LFLOW 33 /* remote flow control */
-#define TELOPT_LINEMODE 34 /* Linemode option */
-#define TELOPT_XDISPLOC 35 /* X Display Location */
-#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */
-#define TELOPT_AUTHENTICATION 37/* Authenticate */
-#define TELOPT_ENCRYPT 38 /* Encryption option */
-#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */
-#define TELOPT_EXOPL 255 /* extended-options-list */
-
-
-#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
-#ifdef TELOPTS
-char *telopts[NTELOPTS+1] = {
- "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
- "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
- "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
- "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
- "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
- "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
- "TACACS UID", "OUTPUT MARKING", "TTYLOC",
- "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
- "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
- "ENCRYPT", "NEW-ENVIRON",
- 0
-};
-#define TELOPT_FIRST TELOPT_BINARY
-#define TELOPT_LAST TELOPT_NEW_ENVIRON
-#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
-#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
-#endif
-
-/* sub-option qualifiers */
-#define TELQUAL_IS 0 /* option is... */
-#define TELQUAL_SEND 1 /* send option */
-#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */
-#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */
-#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */
-
-#define LFLOW_OFF 0 /* Disable remote flow control */
-#define LFLOW_ON 1 /* Enable remote flow control */
-#define LFLOW_RESTART_ANY 2 /* Restart output on any char */
-#define LFLOW_RESTART_XON 3 /* Restart output only on XON */
-
-/*
- * LINEMODE suboptions
- */
-
-#define LM_MODE 1
-#define LM_FORWARDMASK 2
-#define LM_SLC 3
-
-#define MODE_EDIT 0x01
-#define MODE_TRAPSIG 0x02
-#define MODE_ACK 0x04
-#define MODE_SOFT_TAB 0x08
-#define MODE_LIT_ECHO 0x10
-
-#define MODE_MASK 0x1f
-
-/* Not part of protocol, but needed to simplify things... */
-#define MODE_FLOW 0x0100
-#define MODE_ECHO 0x0200
-#define MODE_INBIN 0x0400
-#define MODE_OUTBIN 0x0800
-#define MODE_FORCE 0x1000
-
-#define SLC_SYNCH 1
-#define SLC_BRK 2
-#define SLC_IP 3
-#define SLC_AO 4
-#define SLC_AYT 5
-#define SLC_EOR 6
-#define SLC_ABORT 7
-#define SLC_EOF 8
-#define SLC_SUSP 9
-#define SLC_EC 10
-#define SLC_EL 11
-#define SLC_EW 12
-#define SLC_RP 13
-#define SLC_LNEXT 14
-#define SLC_XON 15
-#define SLC_XOFF 16
-#define SLC_FORW1 17
-#define SLC_FORW2 18
-#define SLC_MCL 19
-#define SLC_MCR 20
-#define SLC_MCWL 21
-#define SLC_MCWR 22
-#define SLC_MCBOL 23
-#define SLC_MCEOL 24
-#define SLC_INSRT 25
-#define SLC_OVER 26
-#define SLC_ECR 27
-#define SLC_EWR 28
-#define SLC_EBOL 29
-#define SLC_EEOL 30
-
-#define NSLC 30
-
-/*
- * For backwards compatability, we define SLC_NAMES to be the
- * list of names if SLC_NAMES is not defined.
- */
-#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
- "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
- "LNEXT", "XON", "XOFF", "FORW1", "FORW2", \
- "MCL", "MCR", "MCWL", "MCWR", "MCBOL", \
- "MCEOL", "INSRT", "OVER", "ECR", "EWR", \
- "EBOL", "EEOL", \
- 0
-
-#ifdef SLC_NAMES
-char *slc_names[] = {
- SLC_NAMELIST
-};
-#else
-extern char *slc_names[];
-#define SLC_NAMES SLC_NAMELIST
-#endif
-
-#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)
-#define SLC_NAME(x) slc_names[x]
-
-#define SLC_NOSUPPORT 0
-#define SLC_CANTCHANGE 1
-#define SLC_VARIABLE 2
-#define SLC_DEFAULT 3
-#define SLC_LEVELBITS 0x03
-
-#define SLC_FUNC 0
-#define SLC_FLAGS 1
-#define SLC_VALUE 2
-
-#define SLC_ACK 0x80
-#define SLC_FLUSHIN 0x40
-#define SLC_FLUSHOUT 0x20
-
-#define OLD_ENV_VAR 1
-#define OLD_ENV_VALUE 0
-#define NEW_ENV_VAR 0
-#define NEW_ENV_VALUE 1
-#define ENV_ESC 2
-#define ENV_USERVAR 3
-
-/*
- * AUTHENTICATION suboptions
- */
-
-/*
- * Who is authenticating who ...
- */
-#define AUTH_WHO_CLIENT 0 /* Client authenticating server */
-#define AUTH_WHO_SERVER 1 /* Server authenticating client */
-#define AUTH_WHO_MASK 1
-
-/*
- * amount of authentication done
- */
-#define AUTH_HOW_ONE_WAY 0
-#define AUTH_HOW_MUTUAL 2
-#define AUTH_HOW_MASK 2
-
-#define AUTHTYPE_NULL 0
-#define AUTHTYPE_KERBEROS_V4 1
-#define AUTHTYPE_KERBEROS_V5 2
-#define AUTHTYPE_SPX 3
-#define AUTHTYPE_MINK 4
-#define AUTHTYPE_CNT 5
-
-#define AUTHTYPE_TEST 99
-
-#ifdef AUTH_NAMES
-char *authtype_names[] = {
- "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK",
- 0
-};
-#else
-extern char *authtype_names[];
-#endif
-
-#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)
-#define AUTHTYPE_NAME(x) authtype_names[x]
-
-/*
- * ENCRYPTion suboptions
- */
-#define ENCRYPT_IS 0 /* I pick encryption type ... */
-#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */
-#define ENCRYPT_REPLY 2 /* Initial setup response */
-#define ENCRYPT_START 3 /* Am starting to send encrypted */
-#define ENCRYPT_END 4 /* Am ending encrypted */
-#define ENCRYPT_REQSTART 5 /* Request you start encrypting */
-#define ENCRYPT_REQEND 6 /* Request you end encrypting */
-#define ENCRYPT_ENC_KEYID 7
-#define ENCRYPT_DEC_KEYID 8
-#define ENCRYPT_CNT 9
-
-#define ENCTYPE_ANY 0
-#define ENCTYPE_DES_CFB64 1
-#define ENCTYPE_DES_OFB64 2
-#define ENCTYPE_CNT 3
-
-#ifdef ENCRYPT_NAMES
-char *encrypt_names[] = {
- "IS", "SUPPORT", "REPLY", "START", "END",
- "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
- 0
-};
-char *enctype_names[] = {
- "ANY", "DES_CFB64", "DES_OFB64",
- 0
-};
-#else
-extern char *encrypt_names[];
-extern char *enctype_names[];
-#endif
-
-
-#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)
-#define ENCRYPT_NAME(x) encrypt_names[x]
-
-#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)
-#define ENCTYPE_NAME(x) enctype_names[x]
-
-#endif /* !_TELNET_H_ */
diff --git a/crypto/telnet/libtelnet/auth-proto.h b/crypto/telnet/libtelnet/auth-proto.h
deleted file mode 100644
index a1e9aa410ff6..000000000000
--- a/crypto/telnet/libtelnet/auth-proto.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)auth-proto.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#if !defined(P)
-#ifdef __STDC__
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-#if defined(AUTHENTICATION)
-Authenticator *findauthenticator P((int, int));
-
-void auth_init P((char *, int));
-int auth_cmd P((int, char **));
-void auth_request P((void));
-void auth_send P((unsigned char *, int));
-void auth_send_retry P((void));
-void auth_is P((unsigned char *, int));
-void auth_reply P((unsigned char *, int));
-void auth_finished P((Authenticator *, int));
-int auth_wait P((char *));
-void auth_disable_name P((char *));
-void auth_gen_printsub P((unsigned char *, int, unsigned char *, int));
-void auth_name P((unsigned char *, int));
-void auth_printsub P((unsigned char *, int, unsigned char *, int));
-int auth_sendname P((unsigned char *, int));
-void auth_encrypt_user P((char *));
-
-#ifdef KRB4
-int kerberos4_init P((Authenticator *, int));
-int kerberos4_send P((Authenticator *));
-void kerberos4_is P((Authenticator *, unsigned char *, int));
-void kerberos4_reply P((Authenticator *, unsigned char *, int));
-int kerberos4_status P((Authenticator *, char *, int));
-void kerberos4_printsub P((unsigned char *, int, unsigned char *, int));
-#endif
-
-#ifdef KRB5
-int kerberos5_init P((Authenticator *, int));
-int kerberos5_send P((Authenticator *));
-void kerberos5_is P((Authenticator *, unsigned char *, int));
-void kerberos5_reply P((Authenticator *, unsigned char *, int));
-int kerberos5_status P((Authenticator *, char *, int));
-void kerberos5_printsub P((unsigned char *, int, unsigned char *, int));
-#endif
-#endif
diff --git a/crypto/telnet/libtelnet/auth.c b/crypto/telnet/libtelnet/auth.c
deleted file mode 100644
index 4262b55a100a..000000000000
--- a/crypto/telnet/libtelnet/auth.c
+++ /dev/null
@@ -1,674 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)auth.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-
-#if defined(AUTHENTICATION)
-#include <stdio.h>
-#include <sys/types.h>
-#include <signal.h>
-#define AUTH_NAMES
-#include <arpa/telnet.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#include <unistd.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-#include "encrypt.h"
-#include "auth.h"
-#include "misc-proto.h"
-#include "auth-proto.h"
-
-#define typemask(x) (1<<((x)-1))
-
-#ifdef KRB4_ENCPWD
-extern krb4encpwd_init();
-extern krb4encpwd_send();
-extern krb4encpwd_is();
-extern krb4encpwd_reply();
-extern krb4encpwd_status();
-extern krb4encpwd_printsub();
-#endif
-
-#ifdef RSA_ENCPWD
-extern rsaencpwd_init();
-extern rsaencpwd_send();
-extern rsaencpwd_is();
-extern rsaencpwd_reply();
-extern rsaencpwd_status();
-extern rsaencpwd_printsub();
-#endif
-
-int auth_debug_mode = 0;
-static char *Name = "Noname";
-static int Server = 0;
-static Authenticator *authenticated = 0;
-static int authenticating = 0;
-static int validuser = 0;
-static unsigned char _auth_send_data[256];
-static unsigned char *auth_send_data;
-static int auth_send_cnt = 0;
-
-int auth_onoff(char *type, int on);
-void auth_encrypt_user(char *name);
-
-/*
- * Authentication types supported. Plese note that these are stored
- * in priority order, i.e. try the first one first.
- */
-Authenticator authenticators[] = {
-#ifdef SPX
- { AUTHTYPE_SPX, AUTH_WHO_CLIENT|AUTH_HOW_MUTUAL,
- spx_init,
- spx_send,
- spx_is,
- spx_reply,
- spx_status,
- spx_printsub },
- { AUTHTYPE_SPX, AUTH_WHO_CLIENT|AUTH_HOW_ONE_WAY,
- spx_init,
- spx_send,
- spx_is,
- spx_reply,
- spx_status,
- spx_printsub },
-#endif
-#ifdef KRB5
-# ifdef ENCRYPTION
- { AUTHTYPE_KERBEROS_V5, AUTH_WHO_CLIENT|AUTH_HOW_MUTUAL,
- kerberos5_init,
- kerberos5_send,
- kerberos5_is,
- kerberos5_reply,
- kerberos5_status,
- kerberos5_printsub },
-# endif /* ENCRYPTION */
- { AUTHTYPE_KERBEROS_V5, AUTH_WHO_CLIENT|AUTH_HOW_ONE_WAY,
- kerberos5_init,
- kerberos5_send,
- kerberos5_is,
- kerberos5_reply,
- kerberos5_status,
- kerberos5_printsub },
-#endif
-#ifdef KRB4
-# ifdef ENCRYPTION
- { AUTHTYPE_KERBEROS_V4, AUTH_WHO_CLIENT|AUTH_HOW_MUTUAL,
- kerberos4_init,
- kerberos4_send,
- kerberos4_is,
- kerberos4_reply,
- kerberos4_status,
- kerberos4_printsub },
-# endif /* ENCRYPTION */
- { AUTHTYPE_KERBEROS_V4, AUTH_WHO_CLIENT|AUTH_HOW_ONE_WAY,
- kerberos4_init,
- kerberos4_send,
- kerberos4_is,
- kerberos4_reply,
- kerberos4_status,
- kerberos4_printsub },
-#endif
-#ifdef KRB4_ENCPWD
- { AUTHTYPE_KRB4_ENCPWD, AUTH_WHO_CLIENT|AUTH_HOW_MUTUAL,
- krb4encpwd_init,
- krb4encpwd_send,
- krb4encpwd_is,
- krb4encpwd_reply,
- krb4encpwd_status,
- krb4encpwd_printsub },
-#endif
-#ifdef RSA_ENCPWD
- { AUTHTYPE_RSA_ENCPWD, AUTH_WHO_CLIENT|AUTH_HOW_ONE_WAY,
- rsaencpwd_init,
- rsaencpwd_send,
- rsaencpwd_is,
- rsaencpwd_reply,
- rsaencpwd_status,
- rsaencpwd_printsub },
-#endif
- { 0, },
-};
-
-static Authenticator NoAuth = { 0 };
-
-static int i_support = 0;
-static int i_wont_support = 0;
-
- Authenticator *
-findauthenticator(type, way)
- int type;
- int way;
-{
- Authenticator *ap = authenticators;
-
- while (ap->type && (ap->type != type || ap->way != way))
- ++ap;
- return(ap->type ? ap : 0);
-}
-
- void
-auth_init(name, server)
- char *name;
- int server;
-{
- Authenticator *ap = authenticators;
-
- Server = server;
- Name = name;
-
- i_support = 0;
- authenticated = 0;
- authenticating = 0;
- while (ap->type) {
- if (!ap->init || (*ap->init)(ap, server)) {
- i_support |= typemask(ap->type);
- if (auth_debug_mode)
- printf(">>>%s: I support auth type %d %d\r\n",
- Name,
- ap->type, ap->way);
- }
- else if (auth_debug_mode)
- printf(">>>%s: Init failed: auth type %d %d\r\n",
- Name, ap->type, ap->way);
- ++ap;
- }
-}
-
- void
-auth_disable_name(name)
- char *name;
-{
- int x;
- for (x = 0; x < AUTHTYPE_CNT; ++x) {
- if (!strcasecmp(name, AUTHTYPE_NAME(x))) {
- i_wont_support |= typemask(x);
- break;
- }
- }
-}
-
- int
-getauthmask(type, maskp)
- char *type;
- int *maskp;
-{
- register int x;
-
- if (!strcasecmp(type, AUTHTYPE_NAME(0))) {
- *maskp = -1;
- return(1);
- }
-
- for (x = 1; x < AUTHTYPE_CNT; ++x) {
- if (!strcasecmp(type, AUTHTYPE_NAME(x))) {
- *maskp = typemask(x);
- return(1);
- }
- }
- return(0);
-}
-
- int
-auth_enable(type)
- char *type;
-{
- return(auth_onoff(type, 1));
-}
-
- int
-auth_disable(type)
- char *type;
-{
- return(auth_onoff(type, 0));
-}
-
- int
-auth_onoff(type, on)
- char *type;
- int on;
-{
- int i, mask = -1;
- Authenticator *ap;
-
- if (!strcasecmp(type, "?") || !strcasecmp(type, "help")) {
- printf("auth %s 'type'\n", on ? "enable" : "disable");
- printf("Where 'type' is one of:\n");
- printf("\t%s\n", AUTHTYPE_NAME(0));
- mask = 0;
- for (ap = authenticators; ap->type; ap++) {
- if ((mask & (i = typemask(ap->type))) != 0)
- continue;
- mask |= i;
- printf("\t%s\n", AUTHTYPE_NAME(ap->type));
- }
- return(0);
- }
-
- if (!getauthmask(type, &mask)) {
- printf("%s: invalid authentication type\n", type);
- return(0);
- }
- if (on)
- i_wont_support &= ~mask;
- else
- i_wont_support |= mask;
- return(1);
-}
-
- int
-auth_togdebug(on)
- int on;
-{
- if (on < 0)
- auth_debug_mode ^= 1;
- else
- auth_debug_mode = on;
- printf("auth debugging %s\n", auth_debug_mode ? "enabled" : "disabled");
- return(1);
-}
-
- int
-auth_status()
-{
- Authenticator *ap;
- int i, mask;
-
- if (i_wont_support == -1)
- printf("Authentication disabled\n");
- else
- printf("Authentication enabled\n");
-
- mask = 0;
- for (ap = authenticators; ap->type; ap++) {
- if ((mask & (i = typemask(ap->type))) != 0)
- continue;
- mask |= i;
- printf("%s: %s\n", AUTHTYPE_NAME(ap->type),
- (i_wont_support & typemask(ap->type)) ?
- "disabled" : "enabled");
- }
- return(1);
-}
-
-/*
- * This routine is called by the server to start authentication
- * negotiation.
- */
- void
-auth_request()
-{
- static unsigned char str_request[64] = { IAC, SB,
- TELOPT_AUTHENTICATION,
- TELQUAL_SEND, };
- Authenticator *ap = authenticators;
- unsigned char *e = str_request + 4;
-
- if (!authenticating) {
- authenticating = 1;
- while (ap->type) {
- if (i_support & ~i_wont_support & typemask(ap->type)) {
- if (auth_debug_mode) {
- printf(">>>%s: Sending type %d %d\r\n",
- Name, ap->type, ap->way);
- }
- *e++ = ap->type;
- *e++ = ap->way;
- }
- ++ap;
- }
- *e++ = IAC;
- *e++ = SE;
- net_write(str_request, e - str_request);
- printsub('>', &str_request[2], e - str_request - 2);
- }
-}
-
-/*
- * This is called when an AUTH SEND is received.
- * It should never arrive on the server side (as only the server can
- * send an AUTH SEND).
- * You should probably respond to it if you can...
- *
- * If you want to respond to the types out of order (i.e. even
- * if he sends LOGIN KERBEROS and you support both, you respond
- * with KERBEROS instead of LOGIN (which is against what the
- * protocol says)) you will have to hack this code...
- */
- void
-auth_send(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Authenticator *ap;
- static unsigned char str_none[] = { IAC, SB, TELOPT_AUTHENTICATION,
- TELQUAL_IS, AUTHTYPE_NULL, 0,
- IAC, SE };
- if (Server) {
- if (auth_debug_mode) {
- printf(">>>%s: auth_send called!\r\n", Name);
- }
- return;
- }
-
- if (auth_debug_mode) {
- printf(">>>%s: auth_send got:", Name);
- printd(data, cnt); printf("\r\n");
- }
-
- /*
- * Save the data, if it is new, so that we can continue looking
- * at it if the authorization we try doesn't work
- */
- if (data < _auth_send_data ||
- data > _auth_send_data + sizeof(_auth_send_data)) {
- auth_send_cnt = cnt > sizeof(_auth_send_data)
- ? sizeof(_auth_send_data)
- : cnt;
- memmove((void *)_auth_send_data, (void *)data, auth_send_cnt);
- auth_send_data = _auth_send_data;
- } else {
- /*
- * This is probably a no-op, but we just make sure
- */
- auth_send_data = data;
- auth_send_cnt = cnt;
- }
- while ((auth_send_cnt -= 2) >= 0) {
- if (auth_debug_mode)
- printf(">>>%s: He supports %d\r\n",
- Name, *auth_send_data);
- if ((i_support & ~i_wont_support) & typemask(*auth_send_data)) {
- ap = findauthenticator(auth_send_data[0],
- auth_send_data[1]);
- if (ap && ap->send) {
- if (auth_debug_mode)
- printf(">>>%s: Trying %d %d\r\n",
- Name, auth_send_data[0],
- auth_send_data[1]);
- if ((*ap->send)(ap)) {
- /*
- * Okay, we found one we like
- * and did it.
- * we can go home now.
- */
- if (auth_debug_mode)
- printf(">>>%s: Using type %d\r\n",
- Name, *auth_send_data);
- auth_send_data += 2;
- return;
- }
- }
- /* else
- * just continue on and look for the
- * next one if we didn't do anything.
- */
- }
- auth_send_data += 2;
- }
- net_write(str_none, sizeof(str_none));
- printsub('>', &str_none[2], sizeof(str_none) - 2);
- if (auth_debug_mode)
- printf(">>>%s: Sent failure message\r\n", Name);
- auth_finished(0, AUTH_REJECT);
-#ifdef KANNAN
- /*
- * We requested strong authentication, however no mechanisms worked.
- * Therefore, exit on client end.
- */
- printf("Unable to securely authenticate user ... exit\n");
- exit(0);
-#endif /* KANNAN */
-}
-
- void
-auth_send_retry()
-{
- /*
- * if auth_send_cnt <= 0 then auth_send will end up rejecting
- * the authentication and informing the other side of this.
- */
- auth_send(auth_send_data, auth_send_cnt);
-}
-
- void
-auth_is(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Authenticator *ap;
-
- if (cnt < 2)
- return;
-
- if (data[0] == AUTHTYPE_NULL) {
- auth_finished(0, AUTH_REJECT);
- return;
- }
-
- if ((ap = findauthenticator(data[0], data[1]))) {
- if (ap->is)
- (*ap->is)(ap, data+2, cnt-2);
- } else if (auth_debug_mode)
- printf(">>>%s: Invalid authentication in IS: %d\r\n",
- Name, *data);
-}
-
- void
-auth_reply(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Authenticator *ap;
-
- if (cnt < 2)
- return;
-
- if ((ap = findauthenticator(data[0], data[1]))) {
- if (ap->reply)
- (*ap->reply)(ap, data+2, cnt-2);
- } else if (auth_debug_mode)
- printf(">>>%s: Invalid authentication in SEND: %d\r\n",
- Name, *data);
-}
-
- void
-auth_name(data, cnt)
- unsigned char *data;
- int cnt;
-{
- unsigned char savename[256];
-
- if (cnt < 1) {
- if (auth_debug_mode)
- printf(">>>%s: Empty name in NAME\r\n", Name);
- return;
- }
- if (cnt > sizeof(savename) - 1) {
- if (auth_debug_mode)
- printf(">>>%s: Name in NAME (%d) exceeds %d length\r\n",
- Name, cnt, sizeof(savename)-1);
- return;
- }
- memmove((void *)savename, (void *)data, cnt);
- savename[cnt] = '\0'; /* Null terminate */
- if (auth_debug_mode)
- printf(">>>%s: Got NAME [%s]\r\n", Name, savename);
- auth_encrypt_user(savename);
-}
-
- int
-auth_sendname(cp, len)
- unsigned char *cp;
- int len;
-{
- static unsigned char str_request[256+6]
- = { IAC, SB, TELOPT_AUTHENTICATION, TELQUAL_NAME, };
- register unsigned char *e = str_request + 4;
- register unsigned char *ee = &str_request[sizeof(str_request)-2];
-
- while (--len >= 0) {
- if ((*e++ = *cp++) == IAC)
- *e++ = IAC;
- if (e >= ee)
- return(0);
- }
- *e++ = IAC;
- *e++ = SE;
- net_write(str_request, e - str_request);
- printsub('>', &str_request[2], e - &str_request[2]);
- return(1);
-}
-
- void
-auth_finished(ap, result)
- Authenticator *ap;
- int result;
-{
- if (!(authenticated = ap))
- authenticated = &NoAuth;
- validuser = result;
-}
-
- /* ARGSUSED */
- static void
-auth_intr(sig)
- int sig;
-{
- auth_finished(0, AUTH_REJECT);
-}
-
- int
-auth_wait(name)
- char *name;
-{
- if (auth_debug_mode)
- printf(">>>%s: in auth_wait.\r\n", Name);
-
- if (Server && !authenticating)
- return(0);
-
- (void) signal(SIGALRM, auth_intr);
- alarm(30);
- while (!authenticated)
- if (telnet_spin())
- break;
- alarm(0);
- (void) signal(SIGALRM, SIG_DFL);
-
- /*
- * Now check to see if the user is valid or not
- */
- if (!authenticated || authenticated == &NoAuth)
- return(AUTH_REJECT);
-
- if (validuser == AUTH_VALID)
- validuser = AUTH_USER;
-
- if (authenticated->status)
- validuser = (*authenticated->status)(authenticated,
- name, validuser);
- return(validuser);
-}
-
- void
-auth_debug(mode)
- int mode;
-{
- auth_debug_mode = mode;
-}
-
- void
-auth_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- Authenticator *ap;
-
- if ((ap = findauthenticator(data[1], data[2])) && ap->printsub)
- (*ap->printsub)(data, cnt, buf, buflen);
- else
- auth_gen_printsub(data, cnt, buf, buflen);
-}
-
- void
-auth_gen_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- register unsigned char *cp;
- unsigned char tbuf[16];
-
- cnt -= 3;
- data += 3;
- buf[buflen-1] = '\0';
- buf[buflen-2] = '*';
- buflen -= 2;
- for (; cnt > 0; cnt--, data++) {
- sprintf((char *)tbuf, " %d", *data);
- for (cp = tbuf; *cp && buflen > 0; --buflen)
- *buf++ = *cp++;
- if (buflen <= 0)
- return;
- }
- *buf = '\0';
-}
-#endif
diff --git a/crypto/telnet/libtelnet/auth.h b/crypto/telnet/libtelnet/auth.h
deleted file mode 100644
index 615e8a07b894..000000000000
--- a/crypto/telnet/libtelnet/auth.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)auth.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef __AUTH__
-#define __AUTH__
-
-#define AUTH_REJECT 0 /* Rejected */
-#define AUTH_UNKNOWN 1 /* We don't know who he is, but he's okay */
-#define AUTH_OTHER 2 /* We know him, but not his name */
-#define AUTH_USER 3 /* We know he name */
-#define AUTH_VALID 4 /* We know him, and he needs no password */
-
-#if !defined(P)
-#ifdef __STDC__
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-typedef struct XauthP {
- int type;
- int way;
- int (*init) P((struct XauthP *, int));
- int (*send) P((struct XauthP *));
- void (*is) P((struct XauthP *, unsigned char *, int));
- void (*reply) P((struct XauthP *, unsigned char *, int));
- int (*status) P((struct XauthP *, char *, int));
- void (*printsub) P((unsigned char *, int, unsigned char *, int));
-} Authenticator;
-
-#include "auth-proto.h"
-
-extern auth_debug_mode;
-#endif
diff --git a/crypto/telnet/libtelnet/enc-proto.h b/crypto/telnet/libtelnet/enc-proto.h
deleted file mode 100644
index 8e15ffdab8d1..000000000000
--- a/crypto/telnet/libtelnet/enc-proto.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)enc-proto.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-#if !defined(P)
-#ifdef __STDC__
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-#ifdef ENCRYPTION
-void encrypt_init P((char *, int));
-Encryptions *findencryption P((int));
-void encrypt_send_supprt P((void));
-void encrypt_auto P((int));
-void decrypt_auto P((int));
-void encrypt_is P((unsigned char *, int));
-void encrypt_reply P((unsigned char *, int));
-void encrypt_start_input P((int));
-void encrypt_session_key P((Session_Key *, int));
-void encrypt_end_input P((void));
-void encrypt_start_output P((int));
-void encrypt_end_output P((void));
-void encrypt_send_request_start P((void));
-void encrypt_send_request_end P((void));
-void encrypt_send_end P((void));
-void encrypt_wait P((void));
-void encrypt_send_support P((void));
-void encrypt_send_keyid P((int, unsigned char *, int, int));
-void encrypt_start P((unsigned char *, int));
-void encrypt_end P((void));
-void encrypt_support P((unsigned char *, int));
-void encrypt_request_start P((unsigned char *, int));
-void encrypt_request_end P((void));
-void encrypt_enc_keyid P((unsigned char *, int));
-void encrypt_dec_keyid P((unsigned char *, int));
-void encrypt_printsub P((unsigned char *, int, unsigned char *, int));
-int net_write P((unsigned char *, int));
-
-#ifndef TELENTD
-int encrypt_cmd P((int, char **));
-void encrypt_display P((void));
-#endif
-
-void krbdes_encrypt P((unsigned char *, int));
-int krbdes_decrypt P((int));
-int krbdes_is P((unsigned char *, int));
-int krbdes_reply P((unsigned char *, int));
-void krbdes_init P((int));
-int krbdes_start P((int, int));
-void krbdes_session P((Session_Key *, int));
-void krbdes_printsub P((unsigned char *, int, unsigned char *, int));
-
-void cfb64_encrypt P((unsigned char *, int));
-int cfb64_decrypt P((int));
-void cfb64_init P((int));
-int cfb64_start P((int, int));
-int cfb64_is P((unsigned char *, int));
-int cfb64_reply P((unsigned char *, int));
-void cfb64_session P((Session_Key *, int));
-int cfb64_keyid P((int, unsigned char *, int *));
-void cfb64_printsub P((unsigned char *, int, unsigned char *, int));
-
-void ofb64_encrypt P((unsigned char *, int));
-int ofb64_decrypt P((int));
-void ofb64_init P((int));
-int ofb64_start P((int, int));
-int ofb64_is P((unsigned char *, int));
-int ofb64_reply P((unsigned char *, int));
-void ofb64_session P((Session_Key *, int));
-int ofb64_keyid P((int, unsigned char *, int *));
-void ofb64_printsub P((unsigned char *, int, unsigned char *, int));
-
-#endif /* ENCRYPTION */
diff --git a/crypto/telnet/libtelnet/enc_des.c b/crypto/telnet/libtelnet/enc_des.c
deleted file mode 100644
index 8e4b9a7f4b78..000000000000
--- a/crypto/telnet/libtelnet/enc_des.c
+++ /dev/null
@@ -1,720 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)enc_des.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#ifdef ENCRYPTION
-# ifdef AUTHENTICATION
-# ifdef DES_ENCRYPTION
-#include <arpa/telnet.h>
-#include <stdio.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-
-#include <des.h>
-#include <string.h>
-#include "encrypt.h"
-#include "key-proto.h"
-#include "misc-proto.h"
-
-extern encrypt_debug_mode;
-
-#define CFB 0
-#define OFB 1
-
-#define NO_SEND_IV 1
-#define NO_RECV_IV 2
-#define NO_KEYID 4
-#define IN_PROGRESS (NO_SEND_IV|NO_RECV_IV|NO_KEYID)
-#define SUCCESS 0
-#define FAILED -1
-
-
-struct fb {
- Block krbdes_key;
- Schedule krbdes_sched;
- Block temp_feed;
- unsigned char fb_feed[64];
- int need_start;
- int state[2];
- int keyid[2];
- int once;
- struct stinfo {
- Block str_output;
- Block str_feed;
- Block str_iv;
- Block str_ikey;
- Schedule str_sched;
- int str_index;
- int str_flagshift;
- } streams[2];
-};
-
-static struct fb fb[2];
-
-struct keyidlist {
- char *keyid;
- int keyidlen;
- char *key;
- int keylen;
- int flags;
-} keyidlist [] = {
- { "\0", 1, 0, 0, 0 }, /* default key of zero */
- { 0, 0, 0, 0, 0 }
-};
-
-#define KEYFLAG_MASK 03
-
-#define KEYFLAG_NOINIT 00
-#define KEYFLAG_INIT 01
-#define KEYFLAG_OK 02
-#define KEYFLAG_BAD 03
-
-#define KEYFLAG_SHIFT 2
-
-#define SHIFT_VAL(a,b) (KEYFLAG_SHIFT*((a)+((b)*2)))
-
-#define FB64_IV 1
-#define FB64_IV_OK 2
-#define FB64_IV_BAD 3
-
-
-void fb64_stream_iv P((Block, struct stinfo *));
-void fb64_init P((struct fb *));
-static int fb64_start P((struct fb *, int, int));
-int fb64_is P((unsigned char *, int, struct fb *));
-int fb64_reply P((unsigned char *, int, struct fb *));
-static void fb64_session P((Session_Key *, int, struct fb *));
-void fb64_stream_key P((Block, struct stinfo *));
-int fb64_keyid P((int, unsigned char *, int *, struct fb *));
-
- void
-cfb64_init(server)
- int server;
-{
- fb64_init(&fb[CFB]);
- fb[CFB].fb_feed[4] = ENCTYPE_DES_CFB64;
- fb[CFB].streams[0].str_flagshift = SHIFT_VAL(0, CFB);
- fb[CFB].streams[1].str_flagshift = SHIFT_VAL(1, CFB);
-}
-
- void
-ofb64_init(server)
- int server;
-{
- fb64_init(&fb[OFB]);
- fb[OFB].fb_feed[4] = ENCTYPE_DES_OFB64;
- fb[CFB].streams[0].str_flagshift = SHIFT_VAL(0, OFB);
- fb[CFB].streams[1].str_flagshift = SHIFT_VAL(1, OFB);
-}
-
- void
-fb64_init(fbp)
- register struct fb *fbp;
-{
- memset((void *)fbp, 0, sizeof(*fbp));
- fbp->state[0] = fbp->state[1] = FAILED;
- fbp->fb_feed[0] = IAC;
- fbp->fb_feed[1] = SB;
- fbp->fb_feed[2] = TELOPT_ENCRYPT;
- fbp->fb_feed[3] = ENCRYPT_IS;
-}
-
-/*
- * Returns:
- * -1: some error. Negotiation is done, encryption not ready.
- * 0: Successful, initial negotiation all done.
- * 1: successful, negotiation not done yet.
- * 2: Not yet. Other things (like getting the key from
- * Kerberos) have to happen before we can continue.
- */
- int
-cfb64_start(dir, server)
- int dir;
- int server;
-{
- return(fb64_start(&fb[CFB], dir, server));
-}
- int
-ofb64_start(dir, server)
- int dir;
- int server;
-{
- return(fb64_start(&fb[OFB], dir, server));
-}
-
- static int
-fb64_start(fbp, dir, server)
- struct fb *fbp;
- int dir;
- int server;
-{
- int x;
- unsigned char *p;
- register int state;
-
- switch (dir) {
- case DIR_DECRYPT:
- /*
- * This is simply a request to have the other side
- * start output (our input). He will negotiate an
- * IV so we need not look for it.
- */
- state = fbp->state[dir-1];
- if (state == FAILED)
- state = IN_PROGRESS;
- break;
-
- case DIR_ENCRYPT:
- state = fbp->state[dir-1];
- if (state == FAILED)
- state = IN_PROGRESS;
- else if ((state & NO_SEND_IV) == 0)
- break;
-
- if (!VALIDKEY(fbp->krbdes_key)) {
- fbp->need_start = 1;
- break;
- }
- state &= ~NO_SEND_IV;
- state |= NO_RECV_IV;
- if (encrypt_debug_mode)
- printf("Creating new feed\r\n");
- /*
- * Create a random feed and send it over.
- */
- des_new_random_key((Block *)fbp->temp_feed);
- des_ecb_encrypt((Block *)fbp->temp_feed, (Block *)fbp->temp_feed,
- fbp->krbdes_sched, 1);
- p = fbp->fb_feed + 3;
- *p++ = ENCRYPT_IS;
- p++;
- *p++ = FB64_IV;
- for (x = 0; x < sizeof(Block); ++x) {
- if ((*p++ = fbp->temp_feed[x]) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]);
- net_write(fbp->fb_feed, p - fbp->fb_feed);
- break;
- default:
- return(FAILED);
- }
- return(fbp->state[dir-1] = state);
-}
-
-/*
- * Returns:
- * -1: some error. Negotiation is done, encryption not ready.
- * 0: Successful, initial negotiation all done.
- * 1: successful, negotiation not done yet.
- */
- int
-cfb64_is(data, cnt)
- unsigned char *data;
- int cnt;
-{
- return(fb64_is(data, cnt, &fb[CFB]));
-}
- int
-ofb64_is(data, cnt)
- unsigned char *data;
- int cnt;
-{
- return(fb64_is(data, cnt, &fb[OFB]));
-}
-
- int
-fb64_is(data, cnt, fbp)
- unsigned char *data;
- int cnt;
- struct fb *fbp;
-{
- unsigned char *p;
- register int state = fbp->state[DIR_DECRYPT-1];
-
- if (cnt-- < 1)
- goto failure;
-
- switch (*data++) {
- case FB64_IV:
- if (cnt != sizeof(Block)) {
- if (encrypt_debug_mode)
- printf("CFB64: initial vector failed on size\r\n");
- state = FAILED;
- goto failure;
- }
-
- if (encrypt_debug_mode)
- printf("CFB64: initial vector received\r\n");
-
- if (encrypt_debug_mode)
- printf("Initializing Decrypt stream\r\n");
-
- fb64_stream_iv((void *)data, &fbp->streams[DIR_DECRYPT-1]);
-
- p = fbp->fb_feed + 3;
- *p++ = ENCRYPT_REPLY;
- p++;
- *p++ = FB64_IV_OK;
- *p++ = IAC;
- *p++ = SE;
- printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]);
- net_write(fbp->fb_feed, p - fbp->fb_feed);
-
- state = fbp->state[DIR_DECRYPT-1] = IN_PROGRESS;
- break;
-
- default:
- if (encrypt_debug_mode) {
- printf("Unknown option type: %d\r\n", *(data-1));
- printd(data, cnt);
- printf("\r\n");
- }
- /* FALL THROUGH */
- failure:
- /*
- * We failed. Send an FB64_IV_BAD option
- * to the other side so it will know that
- * things failed.
- */
- p = fbp->fb_feed + 3;
- *p++ = ENCRYPT_REPLY;
- p++;
- *p++ = FB64_IV_BAD;
- *p++ = IAC;
- *p++ = SE;
- printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]);
- net_write(fbp->fb_feed, p - fbp->fb_feed);
-
- break;
- }
- return(fbp->state[DIR_DECRYPT-1] = state);
-}
-
-/*
- * Returns:
- * -1: some error. Negotiation is done, encryption not ready.
- * 0: Successful, initial negotiation all done.
- * 1: successful, negotiation not done yet.
- */
- int
-cfb64_reply(data, cnt)
- unsigned char *data;
- int cnt;
-{
- return(fb64_reply(data, cnt, &fb[CFB]));
-}
- int
-ofb64_reply(data, cnt)
- unsigned char *data;
- int cnt;
-{
- return(fb64_reply(data, cnt, &fb[OFB]));
-}
-
-
- int
-fb64_reply(data, cnt, fbp)
- unsigned char *data;
- int cnt;
- struct fb *fbp;
-{
- register int state = fbp->state[DIR_ENCRYPT-1];
-
- if (cnt-- < 1)
- goto failure;
-
- switch (*data++) {
- case FB64_IV_OK:
- fb64_stream_iv(fbp->temp_feed, &fbp->streams[DIR_ENCRYPT-1]);
- if (state == FAILED)
- state = IN_PROGRESS;
- state &= ~NO_RECV_IV;
- encrypt_send_keyid(DIR_ENCRYPT, (unsigned char *)"\0", 1, 1);
- break;
-
- case FB64_IV_BAD:
- memset(fbp->temp_feed, 0, sizeof(Block));
- fb64_stream_iv(fbp->temp_feed, &fbp->streams[DIR_ENCRYPT-1]);
- state = FAILED;
- break;
-
- default:
- if (encrypt_debug_mode) {
- printf("Unknown option type: %d\r\n", data[-1]);
- printd(data, cnt);
- printf("\r\n");
- }
- /* FALL THROUGH */
- failure:
- state = FAILED;
- break;
- }
- return(fbp->state[DIR_ENCRYPT-1] = state);
-}
-
- void
-cfb64_session(key, server)
- Session_Key *key;
- int server;
-{
- fb64_session(key, server, &fb[CFB]);
-}
-
- void
-ofb64_session(key, server)
- Session_Key *key;
- int server;
-{
- fb64_session(key, server, &fb[OFB]);
-}
-
- static void
-fb64_session(key, server, fbp)
- Session_Key *key;
- int server;
- struct fb *fbp;
-{
-
- if (!key || key->type != SK_DES) {
- if (encrypt_debug_mode)
- printf("Can't set krbdes's session key (%d != %d)\r\n",
- key ? key->type : -1, SK_DES);
- return;
- }
- memmove((void *)fbp->krbdes_key, (void *)key->data, sizeof(Block));
-
- fb64_stream_key(fbp->krbdes_key, &fbp->streams[DIR_ENCRYPT-1]);
- fb64_stream_key(fbp->krbdes_key, &fbp->streams[DIR_DECRYPT-1]);
-
- if (fbp->once == 0) {
- des_set_random_generator_seed((Block *)fbp->krbdes_key);
- fbp->once = 1;
- }
- des_key_sched((Block *)fbp->krbdes_key, fbp->krbdes_sched);
- /*
- * Now look to see if krbdes_start() was was waiting for
- * the key to show up. If so, go ahead an call it now
- * that we have the key.
- */
- if (fbp->need_start) {
- fbp->need_start = 0;
- fb64_start(fbp, DIR_ENCRYPT, server);
- }
-}
-
-/*
- * We only accept a keyid of 0. If we get a keyid of
- * 0, then mark the state as SUCCESS.
- */
- int
-cfb64_keyid(dir, kp, lenp)
- int dir, *lenp;
- unsigned char *kp;
-{
- return(fb64_keyid(dir, kp, lenp, &fb[CFB]));
-}
-
- int
-ofb64_keyid(dir, kp, lenp)
- int dir, *lenp;
- unsigned char *kp;
-{
- return(fb64_keyid(dir, kp, lenp, &fb[OFB]));
-}
-
- int
-fb64_keyid(dir, kp, lenp, fbp)
- int dir, *lenp;
- unsigned char *kp;
- struct fb *fbp;
-{
- register int state = fbp->state[dir-1];
-
- if (*lenp != 1 || (*kp != '\0')) {
- *lenp = 0;
- return(state);
- }
-
- if (state == FAILED)
- state = IN_PROGRESS;
-
- state &= ~NO_KEYID;
-
- return(fbp->state[dir-1] = state);
-}
-
- void
-fb64_printsub(data, cnt, buf, buflen, type)
- unsigned char *data, *buf, *type;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
- char *cp;
-
- buf[buflen-1] = '\0'; /* make sure it's NULL terminated */
- buflen -= 1;
-
- switch(data[2]) {
- case FB64_IV:
- sprintf(lbuf, "%s_IV", type);
- cp = lbuf;
- goto common;
-
- case FB64_IV_OK:
- sprintf(lbuf, "%s_IV_OK", type);
- cp = lbuf;
- goto common;
-
- case FB64_IV_BAD:
- sprintf(lbuf, "%s_IV_BAD", type);
- cp = lbuf;
- goto common;
-
- default:
- sprintf(lbuf, " %d (unknown)", data[2]);
- cp = lbuf;
- common:
- for (; (buflen > 0) && (*buf = *cp++); buf++)
- buflen--;
- for (i = 3; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- for (cp = lbuf; (buflen > 0) && (*buf = *cp++); buf++)
- buflen--;
- }
- break;
- }
-}
-
- void
-cfb64_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- fb64_printsub(data, cnt, buf, buflen, "CFB64");
-}
-
- void
-ofb64_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- fb64_printsub(data, cnt, buf, buflen, "OFB64");
-}
-
- void
-fb64_stream_iv(seed, stp)
- Block seed;
- register struct stinfo *stp;
-{
-
- memmove((void *)stp->str_iv, (void *)seed, sizeof(Block));
- memmove((void *)stp->str_output, (void *)seed, sizeof(Block));
-
- des_key_sched((Block *)stp->str_ikey, stp->str_sched);
-
- stp->str_index = sizeof(Block);
-}
-
- void
-fb64_stream_key(key, stp)
- Block key;
- register struct stinfo *stp;
-{
- memmove((void *)stp->str_ikey, (void *)key, sizeof(Block));
- des_key_sched((Block *)key, stp->str_sched);
-
- memmove((void *)stp->str_output, (void *)stp->str_iv, sizeof(Block));
-
- stp->str_index = sizeof(Block);
-}
-
-/*
- * DES 64 bit Cipher Feedback
- *
- * key --->+-----+
- * +->| DES |--+
- * | +-----+ |
- * | v
- * INPUT --(--------->(+)+---> DATA
- * | |
- * +-------------+
- *
- *
- * Given:
- * iV: Initial vector, 64 bits (8 bytes) long.
- * Dn: the nth chunk of 64 bits (8 bytes) of data to encrypt (decrypt).
- * On: the nth chunk of 64 bits (8 bytes) of encrypted (decrypted) output.
- *
- * V0 = DES(iV, key)
- * On = Dn ^ Vn
- * V(n+1) = DES(On, key)
- */
-
- void
-cfb64_encrypt(s, c)
- register unsigned char *s;
- int c;
-{
- register struct stinfo *stp = &fb[CFB].streams[DIR_ENCRYPT-1];
- register int index;
-
- index = stp->str_index;
- while (c-- > 0) {
- if (index == sizeof(Block)) {
- Block b;
- des_ecb_encrypt((Block *)stp->str_output, (Block *)b, stp->str_sched, 1);
- memmove((void *)stp->str_feed, (void *)b, sizeof(Block));
- index = 0;
- }
-
- /* On encryption, we store (feed ^ data) which is cypher */
- *s = stp->str_output[index] = (stp->str_feed[index] ^ *s);
- s++;
- index++;
- }
- stp->str_index = index;
-}
-
- int
-cfb64_decrypt(data)
- int data;
-{
- register struct stinfo *stp = &fb[CFB].streams[DIR_DECRYPT-1];
- int index;
-
- if (data == -1) {
- /*
- * Back up one byte. It is assumed that we will
- * never back up more than one byte. If we do, this
- * may or may not work.
- */
- if (stp->str_index)
- --stp->str_index;
- return(0);
- }
-
- index = stp->str_index++;
- if (index == sizeof(Block)) {
- Block b;
- des_ecb_encrypt((Block *)stp->str_output, (Block *)b, stp->str_sched, 1);
- memmove((void *)stp->str_feed, (void *)b, sizeof(Block));
- stp->str_index = 1; /* Next time will be 1 */
- index = 0; /* But now use 0 */
- }
-
- /* On decryption we store (data) which is cypher. */
- stp->str_output[index] = data;
- return(data ^ stp->str_feed[index]);
-}
-
-/*
- * DES 64 bit Output Feedback
- *
- * key --->+-----+
- * +->| DES |--+
- * | +-----+ |
- * +-----------+
- * v
- * INPUT -------->(+) ----> DATA
- *
- * Given:
- * iV: Initial vector, 64 bits (8 bytes) long.
- * Dn: the nth chunk of 64 bits (8 bytes) of data to encrypt (decrypt).
- * On: the nth chunk of 64 bits (8 bytes) of encrypted (decrypted) output.
- *
- * V0 = DES(iV, key)
- * V(n+1) = DES(Vn, key)
- * On = Dn ^ Vn
- */
- void
-ofb64_encrypt(s, c)
- register unsigned char *s;
- int c;
-{
- register struct stinfo *stp = &fb[OFB].streams[DIR_ENCRYPT-1];
- register int index;
-
- index = stp->str_index;
- while (c-- > 0) {
- if (index == sizeof(Block)) {
- Block b;
- des_ecb_encrypt((Block *)stp->str_feed, (Block *)b, stp->str_sched, 1);
- memmove((void *)stp->str_feed, (void *)b, sizeof(Block));
- index = 0;
- }
- *s++ ^= stp->str_feed[index];
- index++;
- }
- stp->str_index = index;
-}
-
- int
-ofb64_decrypt(data)
- int data;
-{
- register struct stinfo *stp = &fb[OFB].streams[DIR_DECRYPT-1];
- int index;
-
- if (data == -1) {
- /*
- * Back up one byte. It is assumed that we will
- * never back up more than one byte. If we do, this
- * may or may not work.
- */
- if (stp->str_index)
- --stp->str_index;
- return(0);
- }
-
- index = stp->str_index++;
- if (index == sizeof(Block)) {
- Block b;
- des_ecb_encrypt((Block *)stp->str_feed, (Block *)b, stp->str_sched, 1);
- memmove((void *)stp->str_feed, (void *)b, sizeof(Block));
- stp->str_index = 1; /* Next time will be 1 */
- index = 0; /* But now use 0 */
- }
-
- return(data ^ stp->str_feed[index]);
-}
-# endif /* DES_ENCRYPTION */
-# endif /* AUTHENTICATION */
-#endif /* ENCRYPTION */
diff --git a/crypto/telnet/libtelnet/encrypt.c b/crypto/telnet/libtelnet/encrypt.c
deleted file mode 100644
index 41dd5cc71044..000000000000
--- a/crypto/telnet/libtelnet/encrypt.c
+++ /dev/null
@@ -1,1016 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)encrypt.c 8.2 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifdef ENCRYPTION
-
-#define ENCRYPT_NAMES
-#include <stdio.h>
-#include <arpa/telnet.h>
-
-#include "encrypt.h"
-#include "misc.h"
-
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-/*
- * These functions pointers point to the current routines
- * for encrypting and decrypting data.
- */
-void (*encrypt_output) P((unsigned char *, int));
-int (*decrypt_input) P((int));
-
-int EncryptType(char *type, char *mode);
-int EncryptStart(char *mode);
-int EncryptStop(char *mode);
-int EncryptStartInput(void);
-int EncryptStartOutput(void);
-int EncryptStopInput(void);
-int EncryptStopOutput(void);
-
-int Ambiguous(char **s);
-int isprefix(char *s1, char *s2);
-char **genget(char *name, char **table, int stlen);
-
-int encrypt_debug_mode = 0;
-static int decrypt_mode = 0;
-static int encrypt_mode = 0;
-static int encrypt_verbose = 0;
-static int autoencrypt = 0;
-static int autodecrypt = 0;
-static int havesessionkey = 0;
-static int Server = 0;
-static char *Name = "Noname";
-
-#define typemask(x) ((x) > 0 ? 1 << ((x)-1) : 0)
-
-static long i_support_encrypt = typemask(ENCTYPE_DES_CFB64)
- | typemask(ENCTYPE_DES_OFB64);
-static long i_support_decrypt = typemask(ENCTYPE_DES_CFB64)
- | typemask(ENCTYPE_DES_OFB64);
-static long i_wont_support_encrypt = 0;
-static long i_wont_support_decrypt = 0;
-#define I_SUPPORT_ENCRYPT (i_support_encrypt & ~i_wont_support_encrypt)
-#define I_SUPPORT_DECRYPT (i_support_decrypt & ~i_wont_support_decrypt)
-
-static long remote_supports_encrypt = 0;
-static long remote_supports_decrypt = 0;
-
-static Encryptions encryptions[] = {
-#ifdef DES_ENCRYPTION
- { "DES_CFB64", ENCTYPE_DES_CFB64,
- cfb64_encrypt,
- cfb64_decrypt,
- cfb64_init,
- cfb64_start,
- cfb64_is,
- cfb64_reply,
- cfb64_session,
- cfb64_keyid,
- cfb64_printsub },
- { "DES_OFB64", ENCTYPE_DES_OFB64,
- ofb64_encrypt,
- ofb64_decrypt,
- ofb64_init,
- ofb64_start,
- ofb64_is,
- ofb64_reply,
- ofb64_session,
- ofb64_keyid,
- ofb64_printsub },
-#endif /* DES_ENCRYPTION */
- { 0, },
-};
-
-static unsigned char str_send[64] = { IAC, SB, TELOPT_ENCRYPT,
- ENCRYPT_SUPPORT };
-static unsigned char str_suplen = 0;
-static unsigned char str_start[72] = { IAC, SB, TELOPT_ENCRYPT };
-static unsigned char str_end[] = { IAC, SB, TELOPT_ENCRYPT, 0, IAC, SE };
-
- Encryptions *
-findencryption(type)
- int type;
-{
- Encryptions *ep = encryptions;
-
- if (!(I_SUPPORT_ENCRYPT & remote_supports_decrypt & typemask(type)))
- return(0);
- while (ep->type && ep->type != type)
- ++ep;
- return(ep->type ? ep : 0);
-}
-
- Encryptions *
-finddecryption(type)
- int type;
-{
- Encryptions *ep = encryptions;
-
- if (!(I_SUPPORT_DECRYPT & remote_supports_encrypt & typemask(type)))
- return(0);
- while (ep->type && ep->type != type)
- ++ep;
- return(ep->type ? ep : 0);
-}
-
-#define MAXKEYLEN 64
-
-static struct key_info {
- unsigned char keyid[MAXKEYLEN];
- int keylen;
- int dir;
- int *modep;
- Encryptions *(*getcrypt)();
-} ki[2] = {
- { { 0 }, 0, DIR_ENCRYPT, &encrypt_mode, findencryption },
- { { 0 }, 0, DIR_DECRYPT, &decrypt_mode, finddecryption },
-};
-
-static void encrypt_keyid(struct key_info *kp, unsigned char *keyid, int len);
-
- void
-encrypt_init(name, server)
- char *name;
- int server;
-{
- Encryptions *ep = encryptions;
-
- Name = name;
- Server = server;
- i_support_encrypt = i_support_decrypt = 0;
- remote_supports_encrypt = remote_supports_decrypt = 0;
- encrypt_mode = 0;
- decrypt_mode = 0;
- encrypt_output = 0;
- decrypt_input = 0;
-#ifdef notdef
- encrypt_verbose = !server;
-#endif
-
- str_suplen = 4;
-
- while (ep->type) {
- if (encrypt_debug_mode)
- printf(">>>%s: I will support %s\r\n",
- Name, ENCTYPE_NAME(ep->type));
- i_support_encrypt |= typemask(ep->type);
- i_support_decrypt |= typemask(ep->type);
- if ((i_wont_support_decrypt & typemask(ep->type)) == 0)
- if ((str_send[str_suplen++] = ep->type) == IAC)
- str_send[str_suplen++] = IAC;
- if (ep->init)
- (*ep->init)(Server);
- ++ep;
- }
- str_send[str_suplen++] = IAC;
- str_send[str_suplen++] = SE;
-}
-
- void
-encrypt_list_types()
-{
- Encryptions *ep = encryptions;
-
- printf("Valid encryption types:\n");
- while (ep->type) {
- printf("\t%s (%d)\r\n", ENCTYPE_NAME(ep->type), ep->type);
- ++ep;
- }
-}
-
- int
-EncryptEnable(type, mode)
- char *type, *mode;
-{
- if (isprefix(type, "help") || isprefix(type, "?")) {
- printf("Usage: encrypt enable <type> [input|output]\n");
- encrypt_list_types();
- return(0);
- }
- if (EncryptType(type, mode))
- return(EncryptStart(mode));
- return(0);
-}
-
- int
-EncryptDisable(type, mode)
- char *type, *mode;
-{
- register Encryptions *ep;
- int ret = 0;
-
- if (isprefix(type, "help") || isprefix(type, "?")) {
- printf("Usage: encrypt disable <type> [input|output]\n");
- encrypt_list_types();
- } else if ((ep = (Encryptions *)genget(type, (char **)encryptions,
- sizeof(Encryptions))) == 0) {
- printf("%s: invalid encryption type\n", type);
- } else if (Ambiguous((char **)ep)) {
- printf("Ambiguous type '%s'\n", type);
- } else {
- if ((mode == 0) || (isprefix(mode, "input") ? 1 : 0)) {
- if (decrypt_mode == ep->type)
- EncryptStopInput();
- i_wont_support_decrypt |= typemask(ep->type);
- ret = 1;
- }
- if ((mode == 0) || (isprefix(mode, "output"))) {
- if (encrypt_mode == ep->type)
- EncryptStopOutput();
- i_wont_support_encrypt |= typemask(ep->type);
- ret = 1;
- }
- if (ret == 0)
- printf("%s: invalid encryption mode\n", mode);
- }
- return(ret);
-}
-
- int
-EncryptType(type, mode)
- char *type;
- char *mode;
-{
- register Encryptions *ep;
- int ret = 0;
-
- if (isprefix(type, "help") || isprefix(type, "?")) {
- printf("Usage: encrypt type <type> [input|output]\n");
- encrypt_list_types();
- } else if ((ep = (Encryptions *)genget(type, (char **)encryptions,
- sizeof(Encryptions))) == 0) {
- printf("%s: invalid encryption type\n", type);
- } else if (Ambiguous((char **)ep)) {
- printf("Ambiguous type '%s'\n", type);
- } else {
- if ((mode == 0) || isprefix(mode, "input")) {
- decrypt_mode = ep->type;
- i_wont_support_decrypt &= ~typemask(ep->type);
- ret = 1;
- }
- if ((mode == 0) || isprefix(mode, "output")) {
- encrypt_mode = ep->type;
- i_wont_support_encrypt &= ~typemask(ep->type);
- ret = 1;
- }
- if (ret == 0)
- printf("%s: invalid encryption mode\n", mode);
- }
- return(ret);
-}
-
- int
-EncryptStart(mode)
- char *mode;
-{
- register int ret = 0;
- if (mode) {
- if (isprefix(mode, "input"))
- return(EncryptStartInput());
- if (isprefix(mode, "output"))
- return(EncryptStartOutput());
- if (isprefix(mode, "help") || isprefix(mode, "?")) {
- printf("Usage: encrypt start [input|output]\n");
- return(0);
- }
- printf("%s: invalid encryption mode 'encrypt start ?' for help\n", mode);
- return(0);
- }
- ret += EncryptStartInput();
- ret += EncryptStartOutput();
- return(ret);
-}
-
- int
-EncryptStartInput()
-{
- if (decrypt_mode) {
- encrypt_send_request_start();
- return(1);
- }
- printf("No previous decryption mode, decryption not enabled\r\n");
- return(0);
-}
-
- int
-EncryptStartOutput()
-{
- if (encrypt_mode) {
- encrypt_start_output(encrypt_mode);
- return(1);
- }
- printf("No previous encryption mode, encryption not enabled\r\n");
- return(0);
-}
-
- int
-EncryptStop(mode)
- char *mode;
-{
- int ret = 0;
- if (mode) {
- if (isprefix(mode, "input"))
- return(EncryptStopInput());
- if (isprefix(mode, "output"))
- return(EncryptStopOutput());
- if (isprefix(mode, "help") || isprefix(mode, "?")) {
- printf("Usage: encrypt stop [input|output]\n");
- return(0);
- }
- printf("%s: invalid encryption mode 'encrypt stop ?' for help\n", mode);
- return(0);
- }
- ret += EncryptStopInput();
- ret += EncryptStopOutput();
- return(ret);
-}
-
- int
-EncryptStopInput()
-{
- encrypt_send_request_end();
- return(1);
-}
-
- int
-EncryptStopOutput()
-{
- encrypt_send_end();
- return(1);
-}
-
- void
-encrypt_display()
-{
- if (encrypt_output)
- printf("Currently encrypting output with %s\r\n",
- ENCTYPE_NAME(encrypt_mode));
- if (decrypt_input)
- printf("Currently decrypting input with %s\r\n",
- ENCTYPE_NAME(decrypt_mode));
-}
-
- int
-EncryptStatus()
-{
- if (encrypt_output)
- printf("Currently encrypting output with %s\r\n",
- ENCTYPE_NAME(encrypt_mode));
- else if (encrypt_mode) {
- printf("Currently output is clear text.\r\n");
- printf("Last encryption mode was %s\r\n",
- ENCTYPE_NAME(encrypt_mode));
- }
- if (decrypt_input) {
- printf("Currently decrypting input with %s\r\n",
- ENCTYPE_NAME(decrypt_mode));
- } else if (decrypt_mode) {
- printf("Currently input is clear text.\r\n");
- printf("Last decryption mode was %s\r\n",
- ENCTYPE_NAME(decrypt_mode));
- }
- return 1;
-}
-
- void
-encrypt_send_support()
-{
- if (str_suplen) {
- /*
- * If the user has requested that decryption start
- * immediatly, then send a "REQUEST START" before
- * we negotiate the type.
- */
- if (!Server && autodecrypt)
- encrypt_send_request_start();
- net_write(str_send, str_suplen);
- printsub('>', &str_send[2], str_suplen - 2);
- str_suplen = 0;
- }
-}
-
- int
-EncryptDebug(on)
- int on;
-{
- if (on < 0)
- encrypt_debug_mode ^= 1;
- else
- encrypt_debug_mode = on;
- printf("Encryption debugging %s\r\n",
- encrypt_debug_mode ? "enabled" : "disabled");
- return(1);
-}
-
- int
-EncryptVerbose(on)
- int on;
-{
- if (on < 0)
- encrypt_verbose ^= 1;
- else
- encrypt_verbose = on;
- printf("Encryption %s verbose\r\n",
- encrypt_verbose ? "is" : "is not");
- return(1);
-}
-
- int
-EncryptAutoEnc(on)
- int on;
-{
- encrypt_auto(on);
- printf("Automatic encryption of output is %s\r\n",
- autoencrypt ? "enabled" : "disabled");
- return(1);
-}
-
- int
-EncryptAutoDec(on)
- int on;
-{
- decrypt_auto(on);
- printf("Automatic decryption of input is %s\r\n",
- autodecrypt ? "enabled" : "disabled");
- return(1);
-}
-
-/*
- * Called when ENCRYPT SUPPORT is received.
- */
- void
-encrypt_support(typelist, cnt)
- unsigned char *typelist;
- int cnt;
-{
- register int type, use_type = 0;
- Encryptions *ep;
-
- /*
- * Forget anything the other side has previously told us.
- */
- remote_supports_decrypt = 0;
-
- while (cnt-- > 0) {
- type = *typelist++;
- if (encrypt_debug_mode)
- printf(">>>%s: He is supporting %s (%d)\r\n",
- Name,
- ENCTYPE_NAME(type), type);
- if ((type < ENCTYPE_CNT) &&
- (I_SUPPORT_ENCRYPT & typemask(type))) {
- remote_supports_decrypt |= typemask(type);
- if (use_type == 0)
- use_type = type;
- }
- }
- if (use_type) {
- ep = findencryption(use_type);
- if (!ep)
- return;
- type = ep->start ? (*ep->start)(DIR_ENCRYPT, Server) : 0;
- if (encrypt_debug_mode)
- printf(">>>%s: (*ep->start)() returned %d\r\n",
- Name, type);
- if (type < 0)
- return;
- encrypt_mode = use_type;
- if (type == 0)
- encrypt_start_output(use_type);
- }
-}
-
- void
-encrypt_is(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Encryptions *ep;
- register int type, ret;
-
- if (--cnt < 0)
- return;
- type = *data++;
- if (type < ENCTYPE_CNT)
- remote_supports_encrypt |= typemask(type);
- if (!(ep = finddecryption(type))) {
- if (encrypt_debug_mode)
- printf(">>>%s: Can't find type %s (%d) for initial negotiation\r\n",
- Name,
- ENCTYPE_NAME_OK(type)
- ? ENCTYPE_NAME(type) : "(unknown)",
- type);
- return;
- }
- if (!ep->is) {
- if (encrypt_debug_mode)
- printf(">>>%s: No initial negotiation needed for type %s (%d)\r\n",
- Name,
- ENCTYPE_NAME_OK(type)
- ? ENCTYPE_NAME(type) : "(unknown)",
- type);
- ret = 0;
- } else {
- ret = (*ep->is)(data, cnt);
- if (encrypt_debug_mode)
- printf("(*ep->is)(%p, %d) returned %s(%d)\n", data, cnt,
- (ret < 0) ? "FAIL " :
- (ret == 0) ? "SUCCESS " : "MORE_TO_DO ", ret);
- }
- if (ret < 0) {
- autodecrypt = 0;
- } else {
- decrypt_mode = type;
- if (ret == 0 && autodecrypt)
- encrypt_send_request_start();
- }
-}
-
- void
-encrypt_reply(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Encryptions *ep;
- register int ret, type;
-
- if (--cnt < 0)
- return;
- type = *data++;
- if (!(ep = findencryption(type))) {
- if (encrypt_debug_mode)
- printf(">>>%s: Can't find type %s (%d) for initial negotiation\r\n",
- Name,
- ENCTYPE_NAME_OK(type)
- ? ENCTYPE_NAME(type) : "(unknown)",
- type);
- return;
- }
- if (!ep->reply) {
- if (encrypt_debug_mode)
- printf(">>>%s: No initial negotiation needed for type %s (%d)\r\n",
- Name,
- ENCTYPE_NAME_OK(type)
- ? ENCTYPE_NAME(type) : "(unknown)",
- type);
- ret = 0;
- } else {
- ret = (*ep->reply)(data, cnt);
- if (encrypt_debug_mode)
- printf("(*ep->reply)(%p, %d) returned %s(%d)\n",
- data, cnt,
- (ret < 0) ? "FAIL " :
- (ret == 0) ? "SUCCESS " : "MORE_TO_DO ", ret);
- }
- if (encrypt_debug_mode)
- printf(">>>%s: encrypt_reply returned %d\n", Name, ret);
- if (ret < 0) {
- autoencrypt = 0;
- } else {
- encrypt_mode = type;
- if (ret == 0 && autoencrypt)
- encrypt_start_output(type);
- }
-}
-
-/*
- * Called when a ENCRYPT START command is received.
- */
- void
-encrypt_start(data, cnt)
- unsigned char *data;
- int cnt;
-{
- Encryptions *ep;
-
- if (!decrypt_mode) {
- /*
- * Something is wrong. We should not get a START
- * command without having already picked our
- * decryption scheme. Send a REQUEST-END to
- * attempt to clear the channel...
- */
- printf("%s: Warning, Cannot decrypt input stream!!!\r\n", Name);
- encrypt_send_request_end();
- return;
- }
-
- if ((ep = finddecryption(decrypt_mode))) {
- decrypt_input = ep->input;
- if (encrypt_verbose)
- printf("[ Input is now decrypted with type %s ]\r\n",
- ENCTYPE_NAME(decrypt_mode));
- if (encrypt_debug_mode)
- printf(">>>%s: Start to decrypt input with type %s\r\n",
- Name, ENCTYPE_NAME(decrypt_mode));
- } else {
- printf("%s: Warning, Cannot decrypt type %s (%d)!!!\r\n",
- Name,
- ENCTYPE_NAME_OK(decrypt_mode)
- ? ENCTYPE_NAME(decrypt_mode)
- : "(unknown)",
- decrypt_mode);
- encrypt_send_request_end();
- }
-}
-
- void
-encrypt_session_key(key, server)
- Session_Key *key;
- int server;
-{
- Encryptions *ep = encryptions;
-
- havesessionkey = 1;
-
- while (ep->type) {
- if (ep->session)
- (*ep->session)(key, server);
-#ifdef notdef
- if (!encrypt_output && autoencrypt && !server)
- encrypt_start_output(ep->type);
- if (!decrypt_input && autodecrypt && !server)
- encrypt_send_request_start();
-#endif
- ++ep;
- }
-}
-
-/*
- * Called when ENCRYPT END is received.
- */
- void
-encrypt_end()
-{
- decrypt_input = 0;
- if (encrypt_debug_mode)
- printf(">>>%s: Input is back to clear text\r\n", Name);
- if (encrypt_verbose)
- printf("[ Input is now clear text ]\r\n");
-}
-
-/*
- * Called when ENCRYPT REQUEST-END is received.
- */
- void
-encrypt_request_end()
-{
- encrypt_send_end();
-}
-
-/*
- * Called when ENCRYPT REQUEST-START is received. If we receive
- * this before a type is picked, then that indicates that the
- * other side wants us to start encrypting data as soon as we
- * can.
- */
- void
-encrypt_request_start(data, cnt)
- unsigned char *data;
- int cnt;
-{
- if (encrypt_mode == 0) {
- if (Server)
- autoencrypt = 1;
- return;
- }
- encrypt_start_output(encrypt_mode);
-}
-
-static unsigned char str_keyid[(MAXKEYLEN*2)+5] = { IAC, SB, TELOPT_ENCRYPT };
-
- void
-encrypt_enc_keyid(keyid, len)
- unsigned char *keyid;
- int len;
-{
- encrypt_keyid(&ki[1], keyid, len);
-}
-
- void
-encrypt_dec_keyid(keyid, len)
- unsigned char *keyid;
- int len;
-{
- encrypt_keyid(&ki[0], keyid, len);
-}
-
- void
-encrypt_keyid(kp, keyid, len)
- struct key_info *kp;
- unsigned char *keyid;
- int len;
-{
- Encryptions *ep;
- int dir = kp->dir;
- register int ret = 0;
-
- if (!(ep = (*kp->getcrypt)(*kp->modep))) {
- if (len == 0)
- return;
- kp->keylen = 0;
- } else if (len == 0) {
- /*
- * Empty option, indicates a failure.
- */
- if (kp->keylen == 0)
- return;
- kp->keylen = 0;
- if (ep->keyid)
- (void)(*ep->keyid)(dir, kp->keyid, &kp->keylen);
-
- } else if ((len != kp->keylen) ||
- (memcmp(keyid, kp->keyid, len) != 0)) {
- /*
- * Length or contents are different
- */
- kp->keylen = len;
- memmove(kp->keyid, keyid, len);
- if (ep->keyid)
- (void)(*ep->keyid)(dir, kp->keyid, &kp->keylen);
- } else {
- if (ep->keyid)
- ret = (*ep->keyid)(dir, kp->keyid, &kp->keylen);
- if ((ret == 0) && (dir == DIR_ENCRYPT) && autoencrypt)
- encrypt_start_output(*kp->modep);
- return;
- }
-
- encrypt_send_keyid(dir, kp->keyid, kp->keylen, 0);
-}
-
- void
-encrypt_send_keyid(dir, keyid, keylen, saveit)
- int dir;
- unsigned char *keyid;
- int keylen;
- int saveit;
-{
- unsigned char *strp;
-
- str_keyid[3] = (dir == DIR_ENCRYPT)
- ? ENCRYPT_ENC_KEYID : ENCRYPT_DEC_KEYID;
- if (saveit) {
- struct key_info *kp = &ki[(dir == DIR_ENCRYPT) ? 0 : 1];
- memmove(kp->keyid, keyid, keylen);
- kp->keylen = keylen;
- }
-
- for (strp = &str_keyid[4]; keylen > 0; --keylen) {
- if ((*strp++ = *keyid++) == IAC)
- *strp++ = IAC;
- }
- *strp++ = IAC;
- *strp++ = SE;
- net_write(str_keyid, strp - str_keyid);
- printsub('>', &str_keyid[2], strp - str_keyid - 2);
-}
-
- void
-encrypt_auto(on)
- int on;
-{
- if (on < 0)
- autoencrypt ^= 1;
- else
- autoencrypt = on ? 1 : 0;
-}
-
- void
-decrypt_auto(on)
- int on;
-{
- if (on < 0)
- autodecrypt ^= 1;
- else
- autodecrypt = on ? 1 : 0;
-}
-
- void
-encrypt_start_output(type)
- int type;
-{
- Encryptions *ep;
- register unsigned char *p;
- register int i;
-
- if (!(ep = findencryption(type))) {
- if (encrypt_debug_mode) {
- printf(">>>%s: Can't encrypt with type %s (%d)\r\n",
- Name,
- ENCTYPE_NAME_OK(type)
- ? ENCTYPE_NAME(type) : "(unknown)",
- type);
- }
- return;
- }
- if (ep->start) {
- i = (*ep->start)(DIR_ENCRYPT, Server);
- if (encrypt_debug_mode) {
- printf(">>>%s: Encrypt start: %s (%d) %s\r\n",
- Name,
- (i < 0) ? "failed" :
- "initial negotiation in progress",
- i, ENCTYPE_NAME(type));
- }
- if (i)
- return;
- }
- p = str_start + 3;
- *p++ = ENCRYPT_START;
- for (i = 0; i < ki[0].keylen; ++i) {
- if ((*p++ = ki[0].keyid[i]) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- net_write(str_start, p - str_start);
- net_encrypt();
- printsub('>', &str_start[2], p - &str_start[2]);
- /*
- * If we are already encrypting in some mode, then
- * encrypt the ring (which includes our request) in
- * the old mode, mark it all as "clear text" and then
- * switch to the new mode.
- */
- encrypt_output = ep->output;
- encrypt_mode = type;
- if (encrypt_debug_mode)
- printf(">>>%s: Started to encrypt output with type %s\r\n",
- Name, ENCTYPE_NAME(type));
- if (encrypt_verbose)
- printf("[ Output is now encrypted with type %s ]\r\n",
- ENCTYPE_NAME(type));
-}
-
- void
-encrypt_send_end()
-{
- if (!encrypt_output)
- return;
-
- str_end[3] = ENCRYPT_END;
- net_write(str_end, sizeof(str_end));
- net_encrypt();
- printsub('>', &str_end[2], sizeof(str_end) - 2);
- /*
- * Encrypt the output buffer now because it will not be done by
- * netflush...
- */
- encrypt_output = 0;
- if (encrypt_debug_mode)
- printf(">>>%s: Output is back to clear text\r\n", Name);
- if (encrypt_verbose)
- printf("[ Output is now clear text ]\r\n");
-}
-
- void
-encrypt_send_request_start()
-{
- register unsigned char *p;
- register int i;
-
- p = &str_start[3];
- *p++ = ENCRYPT_REQSTART;
- for (i = 0; i < ki[1].keylen; ++i) {
- if ((*p++ = ki[1].keyid[i]) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- net_write(str_start, p - str_start);
- printsub('>', &str_start[2], p - &str_start[2]);
- if (encrypt_debug_mode)
- printf(">>>%s: Request input to be encrypted\r\n", Name);
-}
-
- void
-encrypt_send_request_end()
-{
- str_end[3] = ENCRYPT_REQEND;
- net_write(str_end, sizeof(str_end));
- printsub('>', &str_end[2], sizeof(str_end) - 2);
-
- if (encrypt_debug_mode)
- printf(">>>%s: Request input to be clear text\r\n", Name);
-}
-
- void
-encrypt_wait()
-{
- if (encrypt_debug_mode)
- printf(">>>%s: in encrypt_wait\r\n", Name);
- if (!havesessionkey || !(I_SUPPORT_ENCRYPT & remote_supports_decrypt))
- return;
- while (autoencrypt && !encrypt_output)
- if (telnet_spin())
- return;
-}
-
- void
-encrypt_debug(mode)
- int mode;
-{
- encrypt_debug_mode = mode;
-}
-
- void
-encrypt_gen_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char tbuf[16], *cp;
-
- cnt -= 2;
- data += 2;
- buf[buflen-1] = '\0';
- buf[buflen-2] = '*';
- buflen -= 2;;
- for (; cnt > 0; cnt--, data++) {
- sprintf(tbuf, " %d", *data);
- for (cp = tbuf; *cp && buflen > 0; --buflen)
- *buf++ = *cp++;
- if (buflen <= 0)
- return;
- }
- *buf = '\0';
-}
-
- void
-encrypt_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- Encryptions *ep;
- register int type = data[1];
-
- for (ep = encryptions; ep->type && ep->type != type; ep++)
- ;
-
- if (ep->printsub)
- (*ep->printsub)(data, cnt, buf, buflen);
- else
- encrypt_gen_printsub(data, cnt, buf, buflen);
-}
-#endif /* ENCRYPTION */
diff --git a/crypto/telnet/libtelnet/encrypt.h b/crypto/telnet/libtelnet/encrypt.h
deleted file mode 100644
index 1c942dc6e7e8..000000000000
--- a/crypto/telnet/libtelnet/encrypt.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)encrypt.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifdef ENCRYPTION
-# ifndef __ENCRYPTION__
-# define __ENCRYPTION__
-
-#define DIR_DECRYPT 1
-#define DIR_ENCRYPT 2
-
-typedef unsigned char Block[8];
-typedef unsigned char *BlockT;
-typedef struct { Block __; } Schedule[16];
-
-#define VALIDKEY(key) ( key[0] | key[1] | key[2] | key[3] | \
- key[4] | key[5] | key[6] | key[7])
-
-#define SAMEKEY(k1, k2) (!bcmp((void *)k1, (void *)k2, sizeof(Block)))
-
-typedef struct {
- short type;
- int length;
- unsigned char *data;
-} Session_Key;
-
-# if !defined(P)
-# ifdef __STDC__
-# define P(x) x
-# else
-# define P(x) ()
-# endif
-# endif
-
-typedef struct {
- char *name;
- int type;
- void (*output) P((unsigned char *, int));
- int (*input) P((int));
- void (*init) P((int));
- int (*start) P((int, int));
- int (*is) P((unsigned char *, int));
- int (*reply) P((unsigned char *, int));
- void (*session) P((Session_Key *, int));
- int (*keyid) P((int, unsigned char *, int *));
- void (*printsub) P((unsigned char *, int, unsigned char *, int));
-} Encryptions;
-
-#define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */
-
-#include "enc-proto.h"
-
-extern int encrypt_debug_mode;
-extern int (*decrypt_input) P((int));
-extern void (*encrypt_output) P((unsigned char *, int));
-# endif /* __ENCRYPTION__ */
-#endif /* ENCRYPTION */
diff --git a/crypto/telnet/libtelnet/genget.c b/crypto/telnet/libtelnet/genget.c
deleted file mode 100644
index 8668db47a700..000000000000
--- a/crypto/telnet/libtelnet/genget.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)genget.c 8.2 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-
-#include <ctype.h>
-
-#define LOWER(x) (isupper(x) ? tolower(x) : (x))
-/*
- * The prefix function returns 0 if *s1 is not a prefix
- * of *s2. If *s1 exactly matches *s2, the negative of
- * the length is returned. If *s1 is a prefix of *s2,
- * the length of *s1 is returned.
- */
- int
-isprefix(s1, s2)
- register char *s1, *s2;
-{
- char *os1;
- register char c1, c2;
-
- if (*s1 == '\0')
- return(-1);
- os1 = s1;
- c1 = *s1;
- c2 = *s2;
- while (LOWER(c1) == LOWER(c2)) {
- if (c1 == '\0')
- break;
- c1 = *++s1;
- c2 = *++s2;
- }
- return(*s1 ? 0 : (*s2 ? (s1 - os1) : (os1 - s1)));
-}
-
-static char *ambiguous; /* special return value for command routines */
-
- char **
-genget(name, table, stlen)
- char *name; /* name to match */
- char **table; /* name entry in table */
- int stlen;
-{
- register char **c, **found;
- register int n;
-
- if (name == 0)
- return 0;
-
- found = 0;
- for (c = table; *c != 0; c = (char **)((char *)c + stlen)) {
- if ((n = isprefix(name, *c)) == 0)
- continue;
- if (n < 0) /* exact match */
- return(c);
- if (found)
- return(&ambiguous);
- found = c;
- }
- return(found);
-}
-
-/*
- * Function call version of Ambiguous()
- */
- int
-Ambiguous(s)
- char **s;
-{
- return(s == &ambiguous);
-}
diff --git a/crypto/telnet/libtelnet/getent.c b/crypto/telnet/libtelnet/getent.c
deleted file mode 100644
index 05626f11d413..000000000000
--- a/crypto/telnet/libtelnet/getent.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)getent.c 8.2 (Berkeley) 12/15/93";
-#endif /* not lint */
-
-static char *area;
-
-/*ARGSUSED*/
-getent(cp, name)
-char *cp, *name;
-{
-#ifdef HAS_CGETENT
- char *dba[2];
-
- dba[0] = "/etc/gettytab";
- dba[1] = 0;
- return((cgetent(&area, dba, name) == 0) ? 1 : 0);
-#else
- return(0);
-#endif
-}
-
-#ifndef SOLARIS
-/*ARGSUSED*/
-char *
-getstr(id, cpp)
-char *id, **cpp;
-{
-# ifdef HAS_CGETENT
- char *answer;
- return((cgetstr(area, id, &answer) > 0) ? answer : 0);
-# else
- return(0);
-# endif
-}
-#endif
diff --git a/crypto/telnet/libtelnet/kerberos.c b/crypto/telnet/libtelnet/kerberos.c
deleted file mode 100644
index 738a57f35ce6..000000000000
--- a/crypto/telnet/libtelnet/kerberos.c
+++ /dev/null
@@ -1,550 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)kerberos.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifdef KRB4
-#include <sys/types.h>
-#include <arpa/telnet.h>
-#include <stdio.h>
-#include <des.h> /* BSD wont include this in krb.h, so we do it here */
-#include <krb.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-#include "encrypt.h"
-#include "auth.h"
-#include "misc.h"
-
-int kerberos4_cksum P((unsigned char *, int));
-int kuserok P((AUTH_DAT *, char *));
-
-extern auth_debug_mode;
-
-static unsigned char str_data[1024] = { IAC, SB, TELOPT_AUTHENTICATION, 0,
- AUTHTYPE_KERBEROS_V4, };
-
-#define KRB_AUTH 0 /* Authentication data follows */
-#define KRB_REJECT 1 /* Rejected (reason might follow) */
-#define KRB_ACCEPT 2 /* Accepted */
-#define KRB_CHALLENGE 3 /* Challenge for mutual auth. */
-#define KRB_RESPONSE 4 /* Response for mutual auth. */
-
-#define KRB_SERVICE_NAME "rcmd"
-
-static KTEXT_ST auth;
-static char name[ANAME_SZ];
-static AUTH_DAT adat = { 0 };
-#ifdef ENCRYPTION
-static Block session_key = { 0 };
-static des_key_schedule sched;
-static Block challenge = { 0 };
-#endif /* ENCRYPTION */
-
- static int
-Data(ap, type, d, c)
- Authenticator *ap;
- int type;
- void *d;
- int c;
-{
- unsigned char *p = str_data + 4;
- unsigned char *cd = (unsigned char *)d;
-
- if (c == -1)
- c = strlen((char *)cd);
-
- if (auth_debug_mode) {
- printf("%s:%d: [%d] (%d)",
- str_data[3] == TELQUAL_IS ? ">>>IS" : ">>>REPLY",
- str_data[3],
- type, c);
- printd(d, c);
- printf("\r\n");
- }
- *p++ = ap->type;
- *p++ = ap->way;
- *p++ = type;
- while (c-- > 0) {
- if ((*p++ = *cd++) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- if (str_data[3] == TELQUAL_IS)
- printsub('>', &str_data[2], p - (&str_data[2]));
- return(net_write(str_data, p - str_data));
-}
-
- int
-kerberos4_init(ap, server)
- Authenticator *ap;
- int server;
-{
- FILE *fp;
-
- if (server) {
- str_data[3] = TELQUAL_REPLY;
- if ((fp = fopen(KEYFILE, "r")) == NULL)
- return(0);
- fclose(fp);
- } else {
- str_data[3] = TELQUAL_IS;
- }
- return(1);
-}
-
-char dst_realm_buf[REALM_SZ], *dest_realm = NULL;
-int dst_realm_sz = REALM_SZ;
-
- int
-kerberos4_send(ap)
- Authenticator *ap;
-{
- KTEXT_ST auth;
- char instance[INST_SZ];
- char *realm;
- char *krb_realmofhost();
- char *krb_get_phost();
- CREDENTIALS cred;
- int r;
-
- printf("[ Trying KERBEROS4 ... ]\n");
- if (!UserNameRequested) {
- if (auth_debug_mode) {
- printf("Kerberos V4: no user name supplied\r\n");
- }
- return(0);
- }
-
- memset(instance, 0, sizeof(instance));
-
- if ((realm = krb_get_phost(RemoteHostName)))
- strncpy(instance, realm, sizeof(instance));
-
- instance[sizeof(instance)-1] = '\0';
-
- realm = dest_realm ? dest_realm : krb_realmofhost(RemoteHostName);
-
- if (!realm) {
- printf("Kerberos V4: no realm for %s\r\n", RemoteHostName);
- return(0);
- }
- if ((r = krb_mk_req(&auth, KRB_SERVICE_NAME, instance, realm, 0L))) {
- printf("mk_req failed: %s\r\n", krb_err_txt[r]);
- return(0);
- }
- if ((r = krb_get_cred(KRB_SERVICE_NAME, instance, realm, &cred))) {
- printf("get_cred failed: %s\r\n", krb_err_txt[r]);
- return(0);
- }
- if (!auth_sendname(UserNameRequested, strlen(UserNameRequested))) {
- if (auth_debug_mode)
- printf("Not enough room for user name\r\n");
- return(0);
- }
- if (auth_debug_mode)
- printf("Sent %d bytes of authentication data\r\n", auth.length);
- if (!Data(ap, KRB_AUTH, (void *)auth.dat, auth.length)) {
- if (auth_debug_mode)
- printf("Not enough room for authentication data\r\n");
- return(0);
- }
-#ifdef ENCRYPTION
- /*
- * If we are doing mutual authentication, get set up to send
- * the challenge, and verify it when the response comes back.
- */
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- register int i;
-
- des_key_sched(&cred.session, sched);
- des_init_random_number_generator(&cred.session);
- des_new_random_key(&session_key);
- des_ecb_encrypt(&session_key, &session_key, sched, 0);
- des_ecb_encrypt(&session_key, &challenge, sched, 0);
- /*
- * Increment the challenge by 1, and encrypt it for
- * later comparison.
- */
- for (i = 7; i >= 0; --i) {
- register int x;
- x = (unsigned int)challenge[i] + 1;
- challenge[i] = x; /* ignore overflow */
- if (x < 256) /* if no overflow, all done */
- break;
- }
- des_ecb_encrypt(&challenge, &challenge, sched, 1);
- }
-#endif /* ENCRYPTION */
-
- if (auth_debug_mode) {
- printf("CK: %d:", kerberos4_cksum(auth.dat, auth.length));
- printd(auth.dat, auth.length);
- printf("\r\n");
- printf("Sent Kerberos V4 credentials to server\r\n");
- }
- return(1);
-}
-
- void
-kerberos4_is(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
-#ifdef ENCRYPTION
- Session_Key skey;
- Block datablock;
-#endif /* ENCRYPTION */
- char realm[REALM_SZ];
- char instance[INST_SZ];
- int r;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB_AUTH:
- if (krb_get_lrealm(realm, 1) != KSUCCESS) {
- Data(ap, KRB_REJECT, (void *)"No local V4 Realm.", -1);
- auth_finished(ap, AUTH_REJECT);
- if (auth_debug_mode)
- printf("No local realm\r\n");
- return;
- }
- memmove((void *)auth.dat, (void *)data, auth.length = cnt);
- if (auth_debug_mode) {
- printf("Got %d bytes of authentication data\r\n", cnt);
- printf("CK: %d:", kerberos4_cksum(auth.dat, auth.length));
- printd(auth.dat, auth.length);
- printf("\r\n");
- }
- instance[0] = '*'; instance[1] = 0;
- if ((r = krb_rd_req(&auth, KRB_SERVICE_NAME,
- instance, 0, &adat, ""))) {
- if (auth_debug_mode)
- printf("Kerberos failed him as %s\r\n", name);
- Data(ap, KRB_REJECT, (void *)krb_err_txt[r], -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-#ifdef ENCRYPTION
- memmove((void *)session_key, (void *)adat.session, sizeof(Block));
-#endif /* ENCRYPTION */
- krb_kntoln(&adat, name);
-
- if (UserNameRequested && !kuserok(&adat, UserNameRequested))
- Data(ap, KRB_ACCEPT, (void *)0, 0);
- else
- Data(ap, KRB_REJECT,
- (void *)"user is not authorized", -1);
- auth_finished(ap, AUTH_USER);
- break;
-
- case KRB_CHALLENGE:
-#ifndef ENCRYPTION
- Data(ap, KRB_RESPONSE, (void *)0, 0);
-#else /* ENCRYPTION */
- if (!VALIDKEY(session_key)) {
- /*
- * We don't have a valid session key, so just
- * send back a response with an empty session
- * key.
- */
- Data(ap, KRB_RESPONSE, (void *)0, 0);
- break;
- }
-
- /*
- * Initialize the random number generator since it's
- * used later on by the encryption routine.
- */
- des_init_random_number_generator(&session_key);
- des_key_sched(&session_key, sched);
- memmove((void *)datablock, (void *)data, sizeof(Block));
- /*
- * Take the received encrypted challenge, and encrypt
- * it again to get a unique session_key for the
- * ENCRYPT option.
- */
- des_ecb_encrypt(&datablock, &session_key, sched, 1);
- skey.type = SK_DES;
- skey.length = 8;
- skey.data = session_key;
- encrypt_session_key(&skey, 1);
- /*
- * Now decrypt the received encrypted challenge,
- * increment by one, re-encrypt it and send it back.
- */
- des_ecb_encrypt(&datablock, &challenge, sched, 0);
- for (r = 7; r >= 0; r--) {
- register int t;
- t = (unsigned int)challenge[r] + 1;
- challenge[r] = t; /* ignore overflow */
- if (t < 256) /* if no overflow, all done */
- break;
- }
- des_ecb_encrypt(&challenge, &challenge, sched, 1);
- Data(ap, KRB_RESPONSE, (void *)challenge, sizeof(challenge));
-#endif /* ENCRYPTION */
- break;
-
- default:
- if (auth_debug_mode)
- printf("Unknown Kerberos option %d\r\n", data[-1]);
- Data(ap, KRB_REJECT, 0, 0);
- break;
- }
-}
-
- void
-kerberos4_reply(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
-#ifdef ENCRYPTION
- Session_Key skey;
-#endif /* ENCRYPTION */
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB_REJECT:
- if (cnt > 0) {
- printf("[ Kerberos V4 refuses authentication because %.*s ]\r\n",
- cnt, data);
- } else
- printf("[ Kerberos V4 refuses authentication ]\r\n");
- auth_send_retry();
- return;
- case KRB_ACCEPT:
- printf("[ Kerberos V4 accepts you ]\n");
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- /*
- * Send over the encrypted challenge.
- */
-#ifndef ENCRYPTION
- Data(ap, KRB_CHALLENGE, (void *)0, 0);
-#else /* ENCRYPTION */
- Data(ap, KRB_CHALLENGE, (void *)session_key,
- sizeof(session_key));
- des_ecb_encrypt(&session_key, &session_key, sched, 1);
- skey.type = SK_DES;
- skey.length = 8;
- skey.data = session_key;
- encrypt_session_key(&skey, 0);
-#endif /* ENCRYPTION */
- return;
- }
- auth_finished(ap, AUTH_USER);
- return;
- case KRB_RESPONSE:
-#ifdef ENCRYPTION
- /*
- * Verify that the response to the challenge is correct.
- */
- if ((cnt != sizeof(Block)) ||
- (0 != memcmp((void *)data, (void *)challenge,
- sizeof(challenge))))
- {
-#endif /* ENCRYPTION */
- printf("[ Kerberos V4 challenge failed!!! ]\r\n");
- auth_send_retry();
- return;
-#ifdef ENCRYPTION
- }
- printf("[ Kerberos V4 challenge successful ]\r\n");
- auth_finished(ap, AUTH_USER);
-#endif /* ENCRYPTION */
- break;
- default:
- if (auth_debug_mode)
- printf("Unknown Kerberos option %d\r\n", data[-1]);
- return;
- }
-}
-
- int
-kerberos4_status(ap, name, level)
- Authenticator *ap;
- char *name;
- int level;
-{
- if (level < AUTH_USER)
- return(level);
-
- if (UserNameRequested && !kuserok(&adat, UserNameRequested)) {
- strcpy(name, UserNameRequested);
- return(AUTH_VALID);
- } else
- return(AUTH_USER);
-}
-
-#define BUMP(buf, len) while (*(buf)) {++(buf), --(len);}
-#define ADDC(buf, len, c) if ((len) > 0) {*(buf)++ = (c); --(len);}
-
- void
-kerberos4_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
-
- buf[buflen-1] = '\0'; /* make sure its NULL terminated */
- buflen -= 1;
-
- switch(data[3]) {
- case KRB_REJECT: /* Rejected (reason might follow) */
- strncpy((char *)buf, " REJECT ", buflen);
- goto common;
-
- case KRB_ACCEPT: /* Accepted (name might follow) */
- strncpy((char *)buf, " ACCEPT ", buflen);
- common:
- BUMP(buf, buflen);
- if (cnt <= 4)
- break;
- ADDC(buf, buflen, '"');
- for (i = 4; i < cnt; i++)
- ADDC(buf, buflen, data[i]);
- ADDC(buf, buflen, '"');
- ADDC(buf, buflen, '\0');
- break;
-
- case KRB_AUTH: /* Authentication data follows */
- strncpy((char *)buf, " AUTH", buflen);
- goto common2;
-
- case KRB_CHALLENGE:
- strncpy((char *)buf, " CHALLENGE", buflen);
- goto common2;
-
- case KRB_RESPONSE:
- strncpy((char *)buf, " RESPONSE", buflen);
- goto common2;
-
- default:
- sprintf(lbuf, " %d (unknown)", data[3]);
- strncpy((char *)buf, lbuf, buflen);
- common2:
- BUMP(buf, buflen);
- for (i = 4; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- strncpy((char *)buf, lbuf, buflen);
- BUMP(buf, buflen);
- }
- break;
- }
-}
-
- int
-kerberos4_cksum(d, n)
- unsigned char *d;
- int n;
-{
- int ck = 0;
-
- /*
- * A comment is probably needed here for those not
- * well versed in the "C" language. Yes, this is
- * supposed to be a "switch" with the body of the
- * "switch" being a "while" statement. The whole
- * purpose of the switch is to allow us to jump into
- * the middle of the while() loop, and then not have
- * to do any more switch()s.
- *
- * Some compilers will spit out a warning message
- * about the loop not being entered at the top.
- */
- switch (n&03)
- while (n > 0) {
- case 0:
- ck ^= (int)*d++ << 24;
- --n;
- case 3:
- ck ^= (int)*d++ << 16;
- --n;
- case 2:
- ck ^= (int)*d++ << 8;
- --n;
- case 1:
- ck ^= (int)*d++;
- --n;
- }
- return(ck);
-}
-#endif
-
-#ifdef notdef
-
-prkey(msg, key)
- char *msg;
- unsigned char *key;
-{
- register int i;
- printf("%s:", msg);
- for (i = 0; i < 8; i++)
- printf(" %3d", key[i]);
- printf("\r\n");
-}
-#endif
diff --git a/crypto/telnet/libtelnet/kerberos5.c b/crypto/telnet/libtelnet/kerberos5.c
deleted file mode 100644
index bcf1a9f0c348..000000000000
--- a/crypto/telnet/libtelnet/kerberos5.c
+++ /dev/null
@@ -1,764 +0,0 @@
-/*
- * $Source: /mit/krb5/.cvsroot/src/appl/telnet/libtelnet/kerberos5.c,v $
- * $Author: tytso $
- * $Id: kerberos5.c,v 1.1 1997/09/04 06:11:15 markm Exp $
- */
-
-#if !defined(lint) && !defined(SABER)
-static
-#ifdef __STDC__
-const
-#endif
-char rcsid_kerberos5_c[] = "$Id: kerberos5.c,v 1.1 1997/09/04 06:11:15 markm Exp $";
-#endif /* lint */
-
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)kerberos5.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-
-#ifdef KRB5
-#include <arpa/telnet.h>
-#include <stdio.h>
-#include <krb5/krb5.h>
-#include <krb5/asn1.h>
-#include <krb5/crc-32.h>
-#include <krb5/los-proto.h>
-#include <krb5/ext-proto.h>
-#include <com_err.h>
-#include <netdb.h>
-#include <ctype.h>
-
-/* kerberos 5 include files (ext-proto.h) will get an appropriate stdlib.h
- and string.h/strings.h */
-
-#include "encrypt.h"
-#include "auth.h"
-#include "misc.h"
-
-extern auth_debug_mode;
-
-#ifdef FORWARD
-int forward_flags = 0; /* Flags get set in telnet/main.c on -f and -F */
-
-/* These values need to be the same as those defined in telnet/main.c. */
-/* Either define them in both places, or put in some common header file. */
-#define OPTS_FORWARD_CREDS 0x00000002
-#define OPTS_FORWARDABLE_CREDS 0x00000001
-
-void kerberos5_forward();
-
-#endif /* FORWARD */
-
-static unsigned char str_data[1024] = { IAC, SB, TELOPT_AUTHENTICATION, 0,
- AUTHTYPE_KERBEROS_V5, };
-/*static unsigned char str_name[1024] = { IAC, SB, TELOPT_AUTHENTICATION,
- TELQUAL_NAME, };*/
-
-#define KRB_AUTH 0 /* Authentication data follows */
-#define KRB_REJECT 1 /* Rejected (reason might follow) */
-#define KRB_ACCEPT 2 /* Accepted */
-#define KRB_RESPONSE 3 /* Response for mutual auth. */
-
-#ifdef FORWARD
-#define KRB_FORWARD 4 /* Forwarded credentials follow */
-#define KRB_FORWARD_ACCEPT 5 /* Forwarded credentials accepted */
-#define KRB_FORWARD_REJECT 6 /* Forwarded credentials rejected */
-#endif /* FORWARD */
-
-static krb5_data auth;
- /* telnetd gets session key from here */
-static krb5_tkt_authent *authdat = NULL;
-/* telnet matches the AP_REQ and AP_REP with this */
-static krb5_authenticator authenticator;
-
-/* some compilers can't hack void *, so we use the Kerberos krb5_pointer,
- which is either void * or char *, depending on the compiler. */
-
-#define Voidptr krb5_pointer
-
-Block session_key;
-
- static int
-Data(ap, type, d, c)
- Authenticator *ap;
- int type;
- Voidptr d;
- int c;
-{
- unsigned char *p = str_data + 4;
- unsigned char *cd = (unsigned char *)d;
-
- if (c == -1)
- c = strlen((char *)cd);
-
- if (auth_debug_mode) {
- printf("%s:%d: [%d] (%d)",
- str_data[3] == TELQUAL_IS ? ">>>IS" : ">>>REPLY",
- str_data[3],
- type, c);
- printd(d, c);
- printf("\r\n");
- }
- *p++ = ap->type;
- *p++ = ap->way;
- *p++ = type;
- while (c-- > 0) {
- if ((*p++ = *cd++) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- if (str_data[3] == TELQUAL_IS)
- printsub('>', &str_data[2], p - &str_data[2]);
- return(net_write(str_data, p - str_data));
-}
-
- int
-kerberos5_init(ap, server)
- Authenticator *ap;
- int server;
-{
- if (server)
- str_data[3] = TELQUAL_REPLY;
- else
- str_data[3] = TELQUAL_IS;
- krb5_init_ets();
- return(1);
-}
-
- int
-kerberos5_send(ap)
- Authenticator *ap;
-{
- char **realms;
- char *name;
- char *p1, *p2;
- krb5_checksum ksum;
- krb5_octet sum[CRC32_CKSUM_LENGTH];
- krb5_principal server;
- krb5_error_code r;
- krb5_ccache ccache;
- krb5_creds creds; /* telnet gets session key from here */
- extern krb5_flags krb5_kdc_default_options;
- int ap_opts;
-
-#ifdef ENCRYPTION
- krb5_keyblock *newkey = 0;
-#endif /* ENCRYPTION */
-
- ksum.checksum_type = CKSUMTYPE_CRC32;
- ksum.contents = sum;
- ksum.length = sizeof(sum);
- memset((Voidptr )sum, 0, sizeof(sum));
-
- if (!UserNameRequested) {
- if (auth_debug_mode) {
- printf("Kerberos V5: no user name supplied\r\n");
- }
- return(0);
- }
-
- if (r = krb5_cc_default(&ccache)) {
- if (auth_debug_mode) {
- printf("Kerberos V5: could not get default ccache\r\n");
- }
- return(0);
- }
-
- if ((name = malloc(strlen(RemoteHostName)+1)) == NULL) {
- if (auth_debug_mode)
- printf("Out of memory for hostname in Kerberos V5\r\n");
- return(0);
- }
-
- if (r = krb5_get_host_realm(RemoteHostName, &realms)) {
- if (auth_debug_mode)
- printf("Kerberos V5: no realm for %s\r\n", RemoteHostName);
- free(name);
- return(0);
- }
-
- p1 = RemoteHostName;
- p2 = name;
-
- while (*p2 = *p1++) {
- if (isupper(*p2))
- *p2 |= 040;
- ++p2;
- }
-
- if (r = krb5_build_principal_ext(&server,
- strlen(realms[0]), realms[0],
- 4, "host",
- p2 - name, name,
- 0)) {
- if (auth_debug_mode) {
- printf("Kerberos V5: failure setting up principal (%s)\r\n",
- error_message(r));
- }
- free(name);
- krb5_free_host_realm(realms);
- return(0);
- }
-
-
- memset((char *)&creds, 0, sizeof(creds));
- creds.server = server;
-
- if (r = krb5_cc_get_principal(ccache, &creds.client)) {
- if (auth_debug_mode) {
- printf("Kerberos V5: failure on principal (%s)\r\n",
- error_message(r));
- }
- free(name);
- krb5_free_principal(server);
- krb5_free_host_realm(realms);
- return(0);
- }
-
- if (r = krb5_get_credentials(krb5_kdc_default_options, ccache, &creds)) {
- if (auth_debug_mode) {
- printf("Kerberos V5: failure on credentials(%d)\r\n",r);
- }
- free(name);
- krb5_free_host_realm(realms);
- krb5_free_principal(server);
- return(0);
- }
-
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL)
- ap_opts = AP_OPTS_MUTUAL_REQUIRED;
- else
- ap_opts = 0;
-
- r = krb5_mk_req_extended(ap_opts, &ksum, krb5_kdc_default_options, 0,
-#ifdef ENCRYPTION
- &newkey,
-#else /* ENCRYPTION */
- 0,
-#endif /* ENCRYPTION */
- ccache, &creds, &authenticator, &auth);
- /* don't let the key get freed if we clean up the authenticator */
- authenticator.subkey = 0;
-
- free(name);
- krb5_free_host_realm(realms);
- krb5_free_principal(server);
-#ifdef ENCRYPTION
- if (newkey) {
- /* keep the key in our private storage, but don't use it
- yet---see kerberos5_reply() below */
- if (newkey->keytype != KEYTYPE_DES) {
- if (creds.keyblock.keytype == KEYTYPE_DES)
- /* use the session key in credentials instead */
- memmove((char *)session_key,
- (char *)creds.keyblock.contents, sizeof(Block));
- else
- /* XXX ? */;
- } else {
- memmove((char *)session_key, (char *)newkey->contents,
- sizeof(Block));
- }
- krb5_free_keyblock(newkey);
- }
-#endif /* ENCRYPTION */
- if (r) {
- if (auth_debug_mode) {
- printf("Kerberos V5: mk_req failed (%s)\r\n",
- error_message(r));
- }
- return(0);
- }
-
- if (!auth_sendname(UserNameRequested, strlen(UserNameRequested))) {
- if (auth_debug_mode)
- printf("Not enough room for user name\r\n");
- return(0);
- }
- if (!Data(ap, KRB_AUTH, auth.data, auth.length)) {
- if (auth_debug_mode)
- printf("Not enough room for authentication data\r\n");
- return(0);
- }
- if (auth_debug_mode) {
- printf("Sent Kerberos V5 credentials to server\r\n");
- }
- return(1);
-}
-
- void
-kerberos5_is(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- int r;
- struct hostent *hp;
- char *p1, *p2;
- static char *realm = NULL;
- krb5_principal server;
- krb5_ap_rep_enc_part reply;
- krb5_data outbuf;
-#ifdef ENCRYPTION
- Session_Key skey;
-#endif /* ENCRYPTION */
- char *name;
- char *getenv();
- krb5_data inbuf;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB_AUTH:
- auth.data = (char *)data;
- auth.length = cnt;
-
- if (!(hp = gethostbyname(LocalHostName))) {
- if (auth_debug_mode)
- printf("Cannot resolve local host name\r\n");
- Data(ap, KRB_REJECT, "Unknown local hostname.", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- if (!realm && (krb5_get_default_realm(&realm))) {
- if (auth_debug_mode)
- printf("Could not get default realm\r\n");
- Data(ap, KRB_REJECT, "Could not get default realm.", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- if ((name = malloc(strlen(hp->h_name)+1)) == NULL) {
- if (auth_debug_mode)
- printf("Out of memory for hostname in Kerberos V5\r\n");
- Data(ap, KRB_REJECT, "Out of memory.", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- p1 = hp->h_name;
- p2 = name;
-
- while (*p2 = *p1++) {
- if (isupper(*p2))
- *p2 |= 040;
- ++p2;
- }
-
- if (authdat)
- krb5_free_tkt_authent(authdat);
-
- r = krb5_build_principal_ext(&server,
- strlen(realm), realm,
- 4, "host",
- p2 - name, name,
- 0);
- if (!r) {
- r = krb5_rd_req_simple(&auth, server, 0, &authdat);
- krb5_free_principal(server);
- }
- if (r) {
- char errbuf[128];
-
- errout:
- authdat = 0;
- (void) strcpy(errbuf, "Read req failed: ");
- (void) strcat(errbuf, error_message(r));
- Data(ap, KRB_REJECT, errbuf, -1);
- if (auth_debug_mode)
- printf("%s\r\n", errbuf);
- return;
- }
- free(name);
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- /* do ap_rep stuff here */
- reply.ctime = authdat->authenticator->ctime;
- reply.cusec = authdat->authenticator->cusec;
- reply.subkey = 0; /* use the one he gave us, so don't
- need to return one here */
- reply.seq_number = 0; /* we don't do seq #'s. */
-
- if (r = krb5_mk_rep(&reply,
- authdat->authenticator->subkey ?
- authdat->authenticator->subkey :
- authdat->ticket->enc_part2->session,
- &outbuf)) {
- goto errout;
- }
- Data(ap, KRB_RESPONSE, outbuf.data, outbuf.length);
- }
- if (krb5_unparse_name(authdat->ticket->enc_part2 ->client,
- &name))
- name = 0;
- Data(ap, KRB_ACCEPT, name, name ? -1 : 0);
- if (auth_debug_mode) {
- printf("Kerberos5 identifies him as ``%s''\r\n",
- name ? name : "");
- }
- auth_finished(ap, AUTH_USER);
-
- free(name);
- if (authdat->authenticator->subkey &&
- authdat->authenticator->subkey->keytype == KEYTYPE_DES) {
- memmove((Voidptr )session_key,
- (Voidptr )authdat->authenticator->subkey->contents,
- sizeof(Block));
- } else if (authdat->ticket->enc_part2->session->keytype ==
- KEYTYPE_DES) {
- memmove((Voidptr )session_key,
- (Voidptr )authdat->ticket->enc_part2->session->contents,
- sizeof(Block));
- } else
- break;
-
-#ifdef ENCRYPTION
- skey.type = SK_DES;
- skey.length = 8;
- skey.data = session_key;
- encrypt_session_key(&skey, 1);
-#endif /* ENCRYPTION */
- break;
-#ifdef FORWARD
- case KRB_FORWARD:
- inbuf.data = (char *)data;
- inbuf.length = cnt;
- if (r = rd_and_store_for_creds(&inbuf, authdat->ticket,
- UserNameRequested)) {
- char errbuf[128];
-
- (void) strcpy(errbuf, "Read forwarded creds failed: ");
- (void) strcat(errbuf, error_message(r));
- Data(ap, KRB_FORWARD_REJECT, errbuf, -1);
- if (auth_debug_mode)
- printf("Could not read forwarded credentials\r\n");
- }
- else
- Data(ap, KRB_FORWARD_ACCEPT, 0, 0);
- if (auth_debug_mode)
- printf("Forwarded credentials obtained\r\n");
- break;
-#endif /* FORWARD */
- default:
- if (auth_debug_mode)
- printf("Unknown Kerberos option %d\r\n", data[-1]);
- Data(ap, KRB_REJECT, 0, 0);
- break;
- }
-}
-
- void
-kerberos5_reply(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- static int mutual_complete = 0;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB_REJECT:
- if (cnt > 0) {
- printf("[ Kerberos V5 refuses authentication because %.*s ]\r\n",
- cnt, data);
- } else
- printf("[ Kerberos V5 refuses authentication ]\r\n");
- auth_send_retry();
- return;
- case KRB_ACCEPT:
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL &&
- !mutual_complete) {
- printf("[ Kerberos V5 accepted you, but didn't provide mutual authentication! ]\n");
- auth_send_retry();
- return;
- }
- if (cnt)
- printf("[ Kerberos V5 accepts you as ``%.*s'' ]\n", cnt, data);
- else
- printf("[ Kerberos V5 accepts you ]\n");
- auth_finished(ap, AUTH_USER);
-#ifdef FORWARD
- if (forward_flags & OPTS_FORWARD_CREDS)
- kerberos5_forward(ap);
-#endif /* FORWARD */
- break;
- case KRB_RESPONSE:
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- /* the rest of the reply should contain a krb_ap_rep */
- krb5_ap_rep_enc_part *reply;
- krb5_data inbuf;
- krb5_error_code r;
- krb5_keyblock tmpkey;
-
- inbuf.length = cnt;
- inbuf.data = (char *)data;
-
- tmpkey.keytype = KEYTYPE_DES;
- tmpkey.contents = session_key;
- tmpkey.length = sizeof(Block);
-
- if (r = krb5_rd_rep(&inbuf, &tmpkey, &reply)) {
- printf("[ Mutual authentication failed: %s ]\n",
- error_message(r));
- auth_send_retry();
- return;
- }
- if (reply->ctime != authenticator.ctime ||
- reply->cusec != authenticator.cusec) {
- printf("[ Mutual authentication failed (mismatched KRB_AP_REP) ]\n");
- auth_send_retry();
- return;
- }
- krb5_free_ap_rep_enc_part(reply);
-#ifdef ENCRYPTION
- skey.type = SK_DES;
- skey.length = 8;
- skey.data = session_key;
- encrypt_session_key(&skey, 0);
-#endif /* ENCRYPTION */
- mutual_complete = 1;
- }
- return;
-#ifdef FORWARD
- case KRB_FORWARD_ACCEPT:
- printf("[ Kerberos V5 accepted forwarded credentials ]\n");
- return;
- case KRB_FORWARD_REJECT:
- printf("[ Kerberos V5 refuses forwarded credentials because %.*s ]\r\n",
- cnt, data);
- return;
-#endif /* FORWARD */
- default:
- if (auth_debug_mode)
- printf("Unknown Kerberos option %d\r\n", data[-1]);
- return;
- }
-}
-
- int
-kerberos5_status(ap, name, level)
- Authenticator *ap;
- char *name;
- int level;
-{
- if (level < AUTH_USER)
- return(level);
-
- if (UserNameRequested &&
- krb5_kuserok(authdat->ticket->enc_part2->client, UserNameRequested))
- {
- strcpy(name, UserNameRequested);
- return(AUTH_VALID);
- } else
- return(AUTH_USER);
-}
-
-#define BUMP(buf, len) while (*(buf)) {++(buf), --(len);}
-#define ADDC(buf, len, c) if ((len) > 0) {*(buf)++ = (c); --(len);}
-
- void
-kerberos5_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
-
- buf[buflen-1] = '\0'; /* make sure its NULL terminated */
- buflen -= 1;
-
- switch(data[3]) {
- case KRB_REJECT: /* Rejected (reason might follow) */
- strncpy((char *)buf, " REJECT ", buflen);
- goto common;
-
- case KRB_ACCEPT: /* Accepted (name might follow) */
- strncpy((char *)buf, " ACCEPT ", buflen);
- common:
- BUMP(buf, buflen);
- if (cnt <= 4)
- break;
- ADDC(buf, buflen, '"');
- for (i = 4; i < cnt; i++)
- ADDC(buf, buflen, data[i]);
- ADDC(buf, buflen, '"');
- ADDC(buf, buflen, '\0');
- break;
-
-
- case KRB_AUTH: /* Authentication data follows */
- strncpy((char *)buf, " AUTH", buflen);
- goto common2;
-
- case KRB_RESPONSE:
- strncpy((char *)buf, " RESPONSE", buflen);
- goto common2;
-
-#ifdef FORWARD
- case KRB_FORWARD: /* Forwarded credentials follow */
- strncpy((char *)buf, " FORWARD", buflen);
- goto common2;
-
- case KRB_FORWARD_ACCEPT: /* Forwarded credentials accepted */
- strncpy((char *)buf, " FORWARD_ACCEPT", buflen);
- goto common2;
-
- case KRB_FORWARD_REJECT: /* Forwarded credentials rejected */
- /* (reason might follow) */
- strncpy((char *)buf, " FORWARD_REJECT", buflen);
- goto common2;
-#endif /* FORWARD */
-
- default:
- sprintf(lbuf, " %d (unknown)", data[3]);
- strncpy((char *)buf, lbuf, buflen);
- common2:
- BUMP(buf, buflen);
- for (i = 4; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- strncpy((char *)buf, lbuf, buflen);
- BUMP(buf, buflen);
- }
- break;
- }
-}
-
-#ifdef FORWARD
- void
-kerberos5_forward(ap)
- Authenticator *ap;
-{
- struct hostent *hp;
- krb5_creds *local_creds;
- krb5_error_code r;
- krb5_data forw_creds;
- extern krb5_cksumtype krb5_kdc_req_sumtype;
- krb5_ccache ccache;
- int i;
-
- if (!(local_creds = (krb5_creds *)
- calloc(1, sizeof(*local_creds)))) {
- if (auth_debug_mode)
- printf("Kerberos V5: could not allocate memory for credentials\r\n");
- return;
- }
-
- if (r = krb5_sname_to_principal(RemoteHostName, "host", 1,
- &local_creds->server)) {
- if (auth_debug_mode)
- printf("Kerberos V5: could not build server name - %s\r\n",
- error_message(r));
- krb5_free_creds(local_creds);
- return;
- }
-
- if (r = krb5_cc_default(&ccache)) {
- if (auth_debug_mode)
- printf("Kerberos V5: could not get default ccache - %s\r\n",
- error_message(r));
- krb5_free_creds(local_creds);
- return;
- }
-
- if (r = krb5_cc_get_principal(ccache, &local_creds->client)) {
- if (auth_debug_mode)
- printf("Kerberos V5: could not get default principal - %s\r\n",
- error_message(r));
- krb5_free_creds(local_creds);
- return;
- }
-
- /* Get ticket from credentials cache */
- if (r = krb5_get_credentials(KRB5_GC_CACHED, ccache, local_creds)) {
- if (auth_debug_mode)
- printf("Kerberos V5: could not obtain credentials - %s\r\n",
- error_message(r));
- krb5_free_creds(local_creds);
- return;
- }
-
- if (r = get_for_creds(ETYPE_DES_CBC_CRC,
- krb5_kdc_req_sumtype,
- RemoteHostName,
- local_creds->client,
- &local_creds->keyblock,
- forward_flags & OPTS_FORWARDABLE_CREDS,
- &forw_creds)) {
- if (auth_debug_mode)
- printf("Kerberos V5: error getting forwarded creds - %s\r\n",
- error_message(r));
- krb5_free_creds(local_creds);
- return;
- }
-
- /* Send forwarded credentials */
- if (!Data(ap, KRB_FORWARD, forw_creds.data, forw_creds.length)) {
- if (auth_debug_mode)
- printf("Not enough room for authentication data\r\n");
- }
- else {
- if (auth_debug_mode)
- printf("Forwarded local Kerberos V5 credentials to server\r\n");
- }
-
- krb5_free_creds(local_creds);
-}
-#endif /* FORWARD */
-
-#endif /* KRB5 */
diff --git a/crypto/telnet/libtelnet/key-proto.h b/crypto/telnet/libtelnet/key-proto.h
deleted file mode 100644
index 9668a775be50..000000000000
--- a/crypto/telnet/libtelnet/key-proto.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)key-proto.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef __KEY_PROTO__
-#define __KEY_PROTO__
-
-#if !defined(P)
-#ifdef __STDC__
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-int key_file_exists P((void));
-void key_lookup P((unsigned char *, Block));
-void key_stream_init P((Block, Block, int));
-unsigned char key_stream P((int, int));
-#endif
diff --git a/crypto/telnet/libtelnet/krb4encpwd.c b/crypto/telnet/libtelnet/krb4encpwd.c
deleted file mode 100644
index cb9523c99205..000000000000
--- a/crypto/telnet/libtelnet/krb4encpwd.c
+++ /dev/null
@@ -1,445 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)krb4encpwd.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-
-#ifdef KRB4_ENCPWD
-/*
- * COPYRIGHT (C) 1990 DIGITAL EQUIPMENT CORPORATION
- * ALL RIGHTS RESERVED
- *
- * "Digital Equipment Corporation authorizes the reproduction,
- * distribution and modification of this software subject to the following
- * restrictions:
- *
- * 1. Any partial or whole copy of this software, or any modification
- * thereof, must include this copyright notice in its entirety.
- *
- * 2. This software is supplied "as is" with no warranty of any kind,
- * expressed or implied, for any purpose, including any warranty of fitness
- * or merchantibility. DIGITAL assumes no responsibility for the use or
- * reliability of this software, nor promises to provide any form of
- * support for it on any basis.
- *
- * 3. Distribution of this software is authorized only if no profit or
- * remuneration of any kind is received in exchange for such distribution.
- *
- * 4. This software produces public key authentication certificates
- * bearing an expiration date established by DIGITAL and RSA Data
- * Security, Inc. It may cease to generate certificates after the expiration
- * date. Any modification of this software that changes or defeats
- * the expiration date or its effect is unauthorized.
- *
- * 5. Software that will renew or extend the expiration date of
- * authentication certificates produced by this software may be obtained
- * from RSA Data Security, Inc., 10 Twin Dolphin Drive, Redwood City, CA
- * 94065, (415)595-8782, or from DIGITAL"
- *
- */
-
-#include <sys/types.h>
-#include <arpa/telnet.h>
-#include <pwd.h>
-#include <stdio.h>
-
-#include <des.h>
-#include <krb.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-#include "encrypt.h"
-#include "auth.h"
-#include "misc.h"
-
-int krb_mk_encpwd_req P((KTEXT, char *, char *, char *, char *, char *, char *));
-int krb_rd_encpwd_req P((KTEXT, char *, char *, u_long, AUTH_DAT *, char *, char *, char *, char *));
-
-extern auth_debug_mode;
-
-static unsigned char str_data[1024] = { IAC, SB, TELOPT_AUTHENTICATION, 0,
- AUTHTYPE_KRB4_ENCPWD, };
-static unsigned char str_name[1024] = { IAC, SB, TELOPT_AUTHENTICATION,
- TELQUAL_NAME, };
-
-#define KRB4_ENCPWD_AUTH 0 /* Authentication data follows */
-#define KRB4_ENCPWD_REJECT 1 /* Rejected (reason might follow) */
-#define KRB4_ENCPWD_ACCEPT 2 /* Accepted */
-#define KRB4_ENCPWD_CHALLENGE 3 /* Challenge for mutual auth. */
-#define KRB4_ENCPWD_ACK 4 /* Acknowledge */
-
-#define KRB_SERVICE_NAME "rcmd"
-
-static KTEXT_ST auth;
-static char name[ANAME_SZ];
-static char user_passwd[ANAME_SZ];
-static AUTH_DAT adat = { 0 };
-#ifdef ENCRYPTION
-static Block session_key = { 0 };
-#endif /* ENCRYPTION */
-static char challenge[REALM_SZ];
-
- static int
-Data(ap, type, d, c)
- Authenticator *ap;
- int type;
- void *d;
- int c;
-{
- unsigned char *p = str_data + 4;
- unsigned char *cd = (unsigned char *)d;
-
- if (c == -1)
- c = strlen((char *)cd);
-
- if (0) {
- printf("%s:%d: [%d] (%d)",
- str_data[3] == TELQUAL_IS ? ">>>IS" : ">>>REPLY",
- str_data[3],
- type, c);
- printd(d, c);
- printf("\r\n");
- }
- *p++ = ap->type;
- *p++ = ap->way;
- *p++ = type;
- while (c-- > 0) {
- if ((*p++ = *cd++) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- if (str_data[3] == TELQUAL_IS)
- printsub('>', &str_data[2], p - (&str_data[2]));
- return(net_write(str_data, p - str_data));
-}
-
- int
-krb4encpwd_init(ap, server)
- Authenticator *ap;
- int server;
-{
- char hostname[80], *cp, *realm;
- C_Block skey;
-
- if (server) {
- str_data[3] = TELQUAL_REPLY;
- } else {
- str_data[3] = TELQUAL_IS;
- gethostname(hostname, sizeof(hostname));
- realm = krb_realmofhost(hostname);
- cp = strchr(hostname, '.');
- if (*cp != NULL) *cp = NULL;
- if (read_service_key(KRB_SERVICE_NAME, hostname, realm, 0,
- KEYFILE, (char *)skey)) {
- return(0);
- }
- }
- return(1);
-}
-
- int
-krb4encpwd_send(ap)
- Authenticator *ap;
-{
-
- printf("[ Trying KRB4ENCPWD ... ]\n");
- if (!UserNameRequested) {
- return(0);
- }
- if (!auth_sendname(UserNameRequested, strlen(UserNameRequested))) {
- return(0);
- }
-
- if (!Data(ap, KRB4_ENCPWD_ACK, (void *)NULL, 0)) {
- return(0);
- }
-
- return(1);
-}
-
- void
-krb4encpwd_is(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- Block datablock;
- char r_passwd[ANAME_SZ], r_user[ANAME_SZ];
- char lhostname[ANAME_SZ], *cp;
- int r;
- time_t now;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB4_ENCPWD_AUTH:
- memmove((void *)auth.dat, (void *)data, auth.length = cnt);
-
- gethostname(lhostname, sizeof(lhostname));
- if ((cp = strchr(lhostname, '.')) != 0) *cp = '\0';
-
- if (r = krb_rd_encpwd_req(&auth, KRB_SERVICE_NAME, lhostname, 0, &adat, NULL, challenge, r_user, r_passwd)) {
- Data(ap, KRB4_ENCPWD_REJECT, (void *)"Auth failed", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
- auth_encrypt_userpwd(r_passwd);
- if (passwdok(UserNameRequested, UserPassword) == 0) {
- /*
- * illegal username and password
- */
- Data(ap, KRB4_ENCPWD_REJECT, (void *)"Illegal password", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- memmove((void *)session_key, (void *)adat.session, sizeof(Block));
- Data(ap, KRB4_ENCPWD_ACCEPT, (void *)0, 0);
- auth_finished(ap, AUTH_USER);
- break;
-
- case KRB4_ENCPWD_CHALLENGE:
- /*
- * Take the received random challenge text and save
- * for future authentication.
- */
- memmove((void *)challenge, (void *)data, sizeof(Block));
- break;
-
-
- case KRB4_ENCPWD_ACK:
- /*
- * Receive ack, if mutual then send random challenge
- */
-
- /*
- * If we are doing mutual authentication, get set up to send
- * the challenge, and verify it when the response comes back.
- */
-
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- register int i;
-
- time(&now);
- sprintf(challenge, "%x", now);
- Data(ap, KRB4_ENCPWD_CHALLENGE, (void *)challenge, strlen(challenge));
- }
- break;
-
- default:
- Data(ap, KRB4_ENCPWD_REJECT, 0, 0);
- break;
- }
-}
-
-
- void
-krb4encpwd_reply(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- KTEXT_ST krb_token;
- Block enckey;
- CREDENTIALS cred;
- int r;
- char randchal[REALM_SZ], instance[ANAME_SZ], *cp;
- char hostname[80], *realm;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case KRB4_ENCPWD_REJECT:
- if (cnt > 0) {
- printf("[ KRB4_ENCPWD refuses authentication because %.*s ]\r\n",
- cnt, data);
- } else
- printf("[ KRB4_ENCPWD refuses authentication ]\r\n");
- auth_send_retry();
- return;
- case KRB4_ENCPWD_ACCEPT:
- printf("[ KRB4_ENCPWD accepts you ]\n");
- auth_finished(ap, AUTH_USER);
- return;
- case KRB4_ENCPWD_CHALLENGE:
- /*
- * Verify that the response to the challenge is correct.
- */
-
- gethostname(hostname, sizeof(hostname));
- realm = krb_realmofhost(hostname);
- memmove((void *)challenge, (void *)data, cnt);
- memset(user_passwd, 0, sizeof(user_passwd));
- local_des_read_pw_string(user_passwd, sizeof(user_passwd)-1, "Password: ", 0);
- UserPassword = user_passwd;
- Challenge = challenge;
- strcpy(instance, RemoteHostName);
- if ((cp = strchr(instance, '.')) != 0) *cp = '\0';
-
- if (r = krb_mk_encpwd_req(&krb_token, KRB_SERVICE_NAME, instance, realm, Challenge, UserNameRequested, user_passwd)) {
- krb_token.length = 0;
- }
-
- if (!Data(ap, KRB4_ENCPWD_AUTH, (void *)krb_token.dat, krb_token.length)) {
- return;
- }
-
- break;
-
- default:
- return;
- }
-}
-
- int
-krb4encpwd_status(ap, name, level)
- Authenticator *ap;
- char *name;
- int level;
-{
-
- if (level < AUTH_USER)
- return(level);
-
- if (UserNameRequested && passwdok(UserNameRequested, UserPassword)) {
- strcpy(name, UserNameRequested);
- return(AUTH_VALID);
- } else {
- return(AUTH_USER);
- }
-}
-
-#define BUMP(buf, len) while (*(buf)) {++(buf), --(len);}
-#define ADDC(buf, len, c) if ((len) > 0) {*(buf)++ = (c); --(len);}
-
- void
-krb4encpwd_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
-
- buf[buflen-1] = '\0'; /* make sure its NULL terminated */
- buflen -= 1;
-
- switch(data[3]) {
- case KRB4_ENCPWD_REJECT: /* Rejected (reason might follow) */
- strncpy((char *)buf, " REJECT ", buflen);
- goto common;
-
- case KRB4_ENCPWD_ACCEPT: /* Accepted (name might follow) */
- strncpy((char *)buf, " ACCEPT ", buflen);
- common:
- BUMP(buf, buflen);
- if (cnt <= 4)
- break;
- ADDC(buf, buflen, '"');
- for (i = 4; i < cnt; i++)
- ADDC(buf, buflen, data[i]);
- ADDC(buf, buflen, '"');
- ADDC(buf, buflen, '\0');
- break;
-
- case KRB4_ENCPWD_AUTH: /* Authentication data follows */
- strncpy((char *)buf, " AUTH", buflen);
- goto common2;
-
- case KRB4_ENCPWD_CHALLENGE:
- strncpy((char *)buf, " CHALLENGE", buflen);
- goto common2;
-
- case KRB4_ENCPWD_ACK:
- strncpy((char *)buf, " ACK", buflen);
- goto common2;
-
- default:
- sprintf(lbuf, " %d (unknown)", data[3]);
- strncpy((char *)buf, lbuf, buflen);
- common2:
- BUMP(buf, buflen);
- for (i = 4; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- strncpy((char *)buf, lbuf, buflen);
- BUMP(buf, buflen);
- }
- break;
- }
-}
-
-int passwdok(name, passwd)
-char *name, *passwd;
-{
- char *crypt();
- char *salt, *p;
- struct passwd *pwd;
- int passwdok_status = 0;
-
- if (pwd = getpwnam(name))
- salt = pwd->pw_passwd;
- else salt = "xx";
-
- p = crypt(passwd, salt);
-
- if (pwd && !strcmp(p, pwd->pw_passwd)) {
- passwdok_status = 1;
- } else passwdok_status = 0;
- return(passwdok_status);
-}
-
-#endif
-
-#ifdef notdef
-
-prkey(msg, key)
- char *msg;
- unsigned char *key;
-{
- register int i;
- printf("%s:", msg);
- for (i = 0; i < 8; i++)
- printf(" %3d", key[i]);
- printf("\r\n");
-}
-#endif
diff --git a/crypto/telnet/libtelnet/misc-proto.h b/crypto/telnet/libtelnet/misc-proto.h
deleted file mode 100644
index e5f334a9bdd0..000000000000
--- a/crypto/telnet/libtelnet/misc-proto.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)misc-proto.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Copyright (C) 1990 by the Massachusetts Institute of Technology
- *
- * Export of this software from the United States of America is assumed
- * to require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef __MISC_PROTO__
-#define __MISC_PROTO__
-
-#if !defined(P)
-#ifdef __STDC__
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-void auth_encrypt_init P((char *, char *, char *, int));
-void auth_encrypt_connect P((int));
-void printd P((unsigned char *, int));
-
-/*
- * These functions are imported from the application
- */
-int net_write P((unsigned char *, int));
-void net_encrypt P((void));
-int telnet_spin P((void));
-char *telnet_getenv P((char *));
-char *telnet_gets P((char *, char *, int, int));
-#endif
diff --git a/crypto/telnet/libtelnet/misc.c b/crypto/telnet/libtelnet/misc.c
deleted file mode 100644
index 4f8f8d53644b..000000000000
--- a/crypto/telnet/libtelnet/misc.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 6/4/93";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "misc.h"
-#include "auth.h"
-#include "encrypt.h"
-
-char *RemoteHostName;
-char *LocalHostName;
-char *UserNameRequested = 0;
-int ConnectedCount = 0;
-
- void
-auth_encrypt_init(local, remote, name, server)
- char *local;
- char *remote;
- char *name;
- int server;
-{
- RemoteHostName = remote;
- LocalHostName = local;
-#if defined(AUTHENTICATION)
- auth_init(name, server);
-#endif
-#ifdef ENCRYPTION
- encrypt_init(name, server);
-#endif /* ENCRYPTION */
- if (UserNameRequested) {
- free(UserNameRequested);
- UserNameRequested = 0;
- }
-}
-
- void
-auth_encrypt_user(name)
- char *name;
-{
- extern char *strdup();
-
- if (UserNameRequested)
- free(UserNameRequested);
- UserNameRequested = name ? strdup(name) : 0;
-}
-
- void
-auth_encrypt_connect(cnt)
- int cnt;
-{
-}
-
- void
-printd(data, cnt)
- unsigned char *data;
- int cnt;
-{
- if (cnt > 16)
- cnt = 16;
- while (cnt-- > 0) {
- printf(" %02x", *data);
- ++data;
- }
-}
diff --git a/crypto/telnet/libtelnet/misc.h b/crypto/telnet/libtelnet/misc.h
deleted file mode 100644
index 41ffa7f67aa7..000000000000
--- a/crypto/telnet/libtelnet/misc.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)misc.h 8.1 (Berkeley) 6/4/93
- */
-
-extern char *UserNameRequested;
-extern char *LocalHostName;
-extern char *RemoteHostName;
-extern int ConnectedCount;
-extern int ReservedPort;
-
-#include "misc-proto.h"
diff --git a/crypto/telnet/libtelnet/read_password.c b/crypto/telnet/libtelnet/read_password.c
deleted file mode 100644
index 4676ed3a01bb..000000000000
--- a/crypto/telnet/libtelnet/read_password.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)read_password.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * $Source: /mit/kerberos/src/lib/des/RCS/read_password.c,v $
- * $Author: jon $
- *
- * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
- * of Technology.
- *
- * For copying and distribution information, please see the file
- * <mit-copyright.h>.
- *
- * This routine prints the supplied string to standard
- * output as a prompt, and reads a password string without
- * echoing.
- */
-
-#if defined(RSA_ENCPWD) || defined(KRB4_ENCPWD)
-
-#include <stdio.h>
-#include <strings.h>
-#include <sys/ioctl.h>
-#include <signal.h>
-#include <setjmp.h>
-
-static jmp_buf env;
-
-/*** Routines ****************************************************** */
-/*
- * This version just returns the string, doesn't map to key.
- *
- * Returns 0 on success, non-zero on failure.
- */
-
-int
-local_des_read_pw_string(s,max,prompt,verify)
- char *s;
- int max;
- char *prompt;
- int verify;
-{
- int ok = 0;
- char *ptr;
-
- jmp_buf old_env;
- struct sgttyb tty_state;
- char key_string[BUFSIZ];
-
- if (max > BUFSIZ) {
- return -1;
- }
-
- /* XXX assume jmp_buf is typedef'ed to an array */
- memmove((char *)env, (char *)old_env, sizeof(env));
- if (setjmp(env))
- goto lose;
-
- /* save terminal state*/
- if (ioctl(0,TIOCGETP,(char *)&tty_state) == -1)
- return -1;
-/*
- push_signals();
-*/
- /* Turn off echo */
- tty_state.sg_flags &= ~ECHO;
- if (ioctl(0,TIOCSETP,(char *)&tty_state) == -1)
- return -1;
- while (!ok) {
- (void) printf(prompt);
- (void) fflush(stdout);
- while (!fgets(s, max, stdin));
-
- if ((ptr = strchr(s, '\n')))
- *ptr = '\0';
- if (verify) {
- printf("\nVerifying, please re-enter %s",prompt);
- (void) fflush(stdout);
- if (!fgets(key_string, sizeof(key_string), stdin)) {
- clearerr(stdin);
- continue;
- }
- if ((ptr = strchr(key_string, '\n')))
- *ptr = '\0';
- if (strcmp(s,key_string)) {
- printf("\n\07\07Mismatch - try again\n");
- (void) fflush(stdout);
- continue;
- }
- }
- ok = 1;
- }
-
-lose:
- if (!ok)
- memset(s, 0, max);
- printf("\n");
- /* turn echo back on */
- tty_state.sg_flags |= ECHO;
- if (ioctl(0,TIOCSETP,(char *)&tty_state))
- ok = 0;
-/*
- pop_signals();
-*/
- memmove((char *)old_env, (char *)env, sizeof(env));
- if (verify)
- memset(key_string, 0, sizeof (key_string));
- s[max-1] = 0; /* force termination */
- return !ok; /* return nonzero if not okay */
-}
-#endif /* defined(RSA_ENCPWD) || defined(KRB4_ENCPWD) */
diff --git a/crypto/telnet/libtelnet/rsaencpwd.c b/crypto/telnet/libtelnet/rsaencpwd.c
deleted file mode 100644
index 5906d999af68..000000000000
--- a/crypto/telnet/libtelnet/rsaencpwd.c
+++ /dev/null
@@ -1,492 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)rsaencpwd.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-
-#ifdef RSA_ENCPWD
-/*
- * COPYRIGHT (C) 1990 DIGITAL EQUIPMENT CORPORATION
- * ALL RIGHTS RESERVED
- *
- * "Digital Equipment Corporation authorizes the reproduction,
- * distribution and modification of this software subject to the following
- * restrictions:
- *
- * 1. Any partial or whole copy of this software, or any modification
- * thereof, must include this copyright notice in its entirety.
- *
- * 2. This software is supplied "as is" with no warranty of any kind,
- * expressed or implied, for any purpose, including any warranty of fitness
- * or merchantibility. DIGITAL assumes no responsibility for the use or
- * reliability of this software, nor promises to provide any form of
- * support for it on any basis.
- *
- * 3. Distribution of this software is authorized only if no profit or
- * remuneration of any kind is received in exchange for such distribution.
- *
- * 4. This software produces public key authentication certificates
- * bearing an expiration date established by DIGITAL and RSA Data
- * Security, Inc. It may cease to generate certificates after the expiration
- * date. Any modification of this software that changes or defeats
- * the expiration date or its effect is unauthorized.
- *
- * 5. Software that will renew or extend the expiration date of
- * authentication certificates produced by this software may be obtained
- * from RSA Data Security, Inc., 10 Twin Dolphin Drive, Redwood City, CA
- * 94065, (415)595-8782, or from DIGITAL"
- *
- */
-
-#include <sys/types.h>
-#include <arpa/telnet.h>
-#include <pwd.h>
-#include <stdio.h>
-
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-#include "encrypt.h"
-#include "auth.h"
-#include "misc.h"
-#include "cdc.h"
-
-extern auth_debug_mode;
-
-static unsigned char str_data[1024] = { IAC, SB, TELOPT_AUTHENTICATION, 0,
- AUTHTYPE_RSA_ENCPWD, };
-static unsigned char str_name[1024] = { IAC, SB, TELOPT_AUTHENTICATION,
- TELQUAL_NAME, };
-
-#define RSA_ENCPWD_AUTH 0 /* Authentication data follows */
-#define RSA_ENCPWD_REJECT 1 /* Rejected (reason might follow) */
-#define RSA_ENCPWD_ACCEPT 2 /* Accepted */
-#define RSA_ENCPWD_CHALLENGEKEY 3 /* Challenge and public key */
-
-#define NAME_SZ 40
-#define CHAL_SZ 20
-#define PWD_SZ 40
-
-static KTEXT_ST auth;
-static char name[NAME_SZ];
-static char user_passwd[PWD_SZ];
-static char key_file[2*NAME_SZ];
-static char lhostname[NAME_SZ];
-static char challenge[CHAL_SZ];
-static int challenge_len;
-
- static int
-Data(ap, type, d, c)
- Authenticator *ap;
- int type;
- void *d;
- int c;
-{
- unsigned char *p = str_data + 4;
- unsigned char *cd = (unsigned char *)d;
-
- if (c == -1)
- c = strlen((char *)cd);
-
- if (0) {
- printf("%s:%d: [%d] (%d)",
- str_data[3] == TELQUAL_IS ? ">>>IS" : ">>>REPLY",
- str_data[3],
- type, c);
- printd(d, c);
- printf("\r\n");
- }
- *p++ = ap->type;
- *p++ = ap->way;
- if (type != NULL) *p++ = type;
- while (c-- > 0) {
- if ((*p++ = *cd++) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- if (str_data[3] == TELQUAL_IS)
- printsub('>', &str_data[2], p - (&str_data[2]));
- return(net_write(str_data, p - str_data));
-}
-
- int
-rsaencpwd_init(ap, server)
- Authenticator *ap;
- int server;
-{
- char *cp;
- FILE *fp;
-
- if (server) {
- str_data[3] = TELQUAL_REPLY;
- memset(key_file, 0, sizeof(key_file));
- gethostname(lhostname, sizeof(lhostname));
- if ((cp = strchr(lhostname, '.')) != 0) *cp = '\0';
- strcpy(key_file, "/etc/.");
- strcat(key_file, lhostname);
- strcat(key_file, "_privkey");
- if ((fp=fopen(key_file, "r"))==NULL) return(0);
- fclose(fp);
- } else {
- str_data[3] = TELQUAL_IS;
- }
- return(1);
-}
-
- int
-rsaencpwd_send(ap)
- Authenticator *ap;
-{
-
- printf("[ Trying RSAENCPWD ... ]\n");
- if (!UserNameRequested) {
- return(0);
- }
- if (!auth_sendname(UserNameRequested, strlen(UserNameRequested))) {
- return(0);
- }
- if (!Data(ap, NULL, (void *)NULL, 0)) {
- return(0);
- }
-
-
- return(1);
-}
-
- void
-rsaencpwd_is(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- Block datablock;
- char r_passwd[PWD_SZ], r_user[NAME_SZ];
- char *cp, key[160];
- char chalkey[160], *ptr;
- FILE *fp;
- int r, i, j, chalkey_len, len;
- time_t now;
-
- cnt--;
- switch (*data++) {
- case RSA_ENCPWD_AUTH:
- memmove((void *)auth.dat, (void *)data, auth.length = cnt);
-
- if ((fp=fopen(key_file, "r"))==NULL) {
- Data(ap, RSA_ENCPWD_REJECT, (void *)"Auth failed", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
- /*
- * get privkey
- */
- fscanf(fp, "%x;", &len);
- for (i=0;i<len;i++) {
- j = getc(fp); key[i]=j;
- }
- fclose(fp);
-
- r = accept_rsa_encpwd(&auth, key, challenge,
- challenge_len, r_passwd);
- if (r < 0) {
- Data(ap, RSA_ENCPWD_REJECT, (void *)"Auth failed", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
- auth_encrypt_userpwd(r_passwd);
- if (rsaencpwd_passwdok(UserNameRequested, UserPassword) == 0) {
- /*
- * illegal username and password
- */
- Data(ap, RSA_ENCPWD_REJECT, (void *)"Illegal password", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- Data(ap, RSA_ENCPWD_ACCEPT, (void *)0, 0);
- auth_finished(ap, AUTH_USER);
- break;
-
-
- case IAC:
-
- /*
- * If we are doing mutual authentication, get set up to send
- * the challenge, and verify it when the response comes back.
- */
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_ONE_WAY) {
- register int i;
-
-
- time(&now);
- if ((now % 2) == 0) {
- sprintf(challenge, "%x", now);
- challenge_len = strlen(challenge);
- } else {
- strcpy(challenge, "randchal");
- challenge_len = 8;
- }
-
- if ((fp=fopen(key_file, "r"))==NULL) {
- Data(ap, RSA_ENCPWD_REJECT, (void *)"Auth failed", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
- /*
- * skip privkey
- */
- fscanf(fp, "%x;", &len);
- for (i=0;i<len;i++) {
- j = getc(fp);
- }
- /*
- * get pubkey
- */
- fscanf(fp, "%x;", &len);
- for (i=0;i<len;i++) {
- j = getc(fp); key[i]=j;
- }
- fclose(fp);
- chalkey[0] = 0x30;
- ptr = (char *) &chalkey[1];
- chalkey_len = 1+NumEncodeLengthOctets(i)+i+1+NumEncodeLengthOctets(challenge_len)+challenge_len;
- EncodeLength(ptr, chalkey_len);
- ptr +=NumEncodeLengthOctets(chalkey_len);
- *ptr++ = 0x04; /* OCTET STRING */
- *ptr++ = challenge_len;
- memmove(ptr, challenge, challenge_len);
- ptr += challenge_len;
- *ptr++ = 0x04; /* OCTET STRING */
- EncodeLength(ptr, i);
- ptr += NumEncodeLengthOctets(i);
- memmove(ptr, key, i);
- chalkey_len = 1+NumEncodeLengthOctets(chalkey_len)+chalkey_len;
- Data(ap, RSA_ENCPWD_CHALLENGEKEY, (void *)chalkey, chalkey_len);
- }
- break;
-
- default:
- Data(ap, RSA_ENCPWD_REJECT, 0, 0);
- break;
- }
-}
-
-
- void
-rsaencpwd_reply(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- KTEXT_ST token;
- Block enckey;
- int r, pubkey_len;
- char randchal[CHAL_SZ], *cp;
- char chalkey[160], pubkey[128], *ptr;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case RSA_ENCPWD_REJECT:
- if (cnt > 0) {
- printf("[ RSA_ENCPWD refuses authentication because %.*s ]\r\n",
- cnt, data);
- } else
- printf("[ RSA_ENCPWD refuses authentication ]\r\n");
- auth_send_retry();
- return;
- case RSA_ENCPWD_ACCEPT:
- printf("[ RSA_ENCPWD accepts you ]\n");
- auth_finished(ap, AUTH_USER);
- return;
- case RSA_ENCPWD_CHALLENGEKEY:
- /*
- * Verify that the response to the challenge is correct.
- */
-
- memmove((void *)chalkey, (void *)data, cnt);
- ptr = (char *) &chalkey[0];
- ptr += DecodeHeaderLength(chalkey);
- if (*ptr != 0x04) {
- return;
- }
- *ptr++;
- challenge_len = DecodeValueLength(ptr);
- ptr += NumEncodeLengthOctets(challenge_len);
- memmove(challenge, ptr, challenge_len);
- ptr += challenge_len;
- if (*ptr != 0x04) {
- return;
- }
- *ptr++;
- pubkey_len = DecodeValueLength(ptr);
- ptr += NumEncodeLengthOctets(pubkey_len);
- memmove(pubkey, ptr, pubkey_len);
- memset(user_passwd, 0, sizeof(user_passwd));
- local_des_read_pw_string(user_passwd, sizeof(user_passwd)-1, "Password: ", 0);
- UserPassword = user_passwd;
- Challenge = challenge;
- r = init_rsa_encpwd(&token, user_passwd, challenge, challenge_len, pubkey);
- if (r < 0) {
- token.length = 1;
- }
-
- if (!Data(ap, RSA_ENCPWD_AUTH, (void *)token.dat, token.length)) {
- return;
- }
-
- break;
-
- default:
- return;
- }
-}
-
- int
-rsaencpwd_status(ap, name, level)
- Authenticator *ap;
- char *name;
- int level;
-{
-
- if (level < AUTH_USER)
- return(level);
-
- if (UserNameRequested && rsaencpwd_passwdok(UserNameRequested, UserPassword)) {
- strcpy(name, UserNameRequested);
- return(AUTH_VALID);
- } else {
- return(AUTH_USER);
- }
-}
-
-#define BUMP(buf, len) while (*(buf)) {++(buf), --(len);}
-#define ADDC(buf, len, c) if ((len) > 0) {*(buf)++ = (c); --(len);}
-
- void
-rsaencpwd_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
-
- buf[buflen-1] = '\0'; /* make sure its NULL terminated */
- buflen -= 1;
-
- switch(data[3]) {
- case RSA_ENCPWD_REJECT: /* Rejected (reason might follow) */
- strncpy((char *)buf, " REJECT ", buflen);
- goto common;
-
- case RSA_ENCPWD_ACCEPT: /* Accepted (name might follow) */
- strncpy((char *)buf, " ACCEPT ", buflen);
- common:
- BUMP(buf, buflen);
- if (cnt <= 4)
- break;
- ADDC(buf, buflen, '"');
- for (i = 4; i < cnt; i++)
- ADDC(buf, buflen, data[i]);
- ADDC(buf, buflen, '"');
- ADDC(buf, buflen, '\0');
- break;
-
- case RSA_ENCPWD_AUTH: /* Authentication data follows */
- strncpy((char *)buf, " AUTH", buflen);
- goto common2;
-
- case RSA_ENCPWD_CHALLENGEKEY:
- strncpy((char *)buf, " CHALLENGEKEY", buflen);
- goto common2;
-
- default:
- sprintf(lbuf, " %d (unknown)", data[3]);
- strncpy((char *)buf, lbuf, buflen);
- common2:
- BUMP(buf, buflen);
- for (i = 4; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- strncpy((char *)buf, lbuf, buflen);
- BUMP(buf, buflen);
- }
- break;
- }
-}
-
-int rsaencpwd_passwdok(name, passwd)
-char *name, *passwd;
-{
- char *crypt();
- char *salt, *p;
- struct passwd *pwd;
- int passwdok_status = 0;
-
- if (pwd = getpwnam(name))
- salt = pwd->pw_passwd;
- else salt = "xx";
-
- p = crypt(passwd, salt);
-
- if (pwd && !strcmp(p, pwd->pw_passwd)) {
- passwdok_status = 1;
- } else passwdok_status = 0;
- return(passwdok_status);
-}
-
-#endif
-
-#ifdef notdef
-
-prkey(msg, key)
- char *msg;
- unsigned char *key;
-{
- register int i;
- printf("%s:", msg);
- for (i = 0; i < 8; i++)
- printf(" %3d", key[i]);
- printf("\r\n");
-}
-#endif
diff --git a/crypto/telnet/libtelnet/spx.c b/crypto/telnet/libtelnet/spx.c
deleted file mode 100644
index 90c37a47ebd6..000000000000
--- a/crypto/telnet/libtelnet/spx.c
+++ /dev/null
@@ -1,587 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)spx.c 8.2 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#ifdef SPX
-/*
- * COPYRIGHT (C) 1990 DIGITAL EQUIPMENT CORPORATION
- * ALL RIGHTS RESERVED
- *
- * "Digital Equipment Corporation authorizes the reproduction,
- * distribution and modification of this software subject to the following
- * restrictions:
- *
- * 1. Any partial or whole copy of this software, or any modification
- * thereof, must include this copyright notice in its entirety.
- *
- * 2. This software is supplied "as is" with no warranty of any kind,
- * expressed or implied, for any purpose, including any warranty of fitness
- * or merchantibility. DIGITAL assumes no responsibility for the use or
- * reliability of this software, nor promises to provide any form of
- * support for it on any basis.
- *
- * 3. Distribution of this software is authorized only if no profit or
- * remuneration of any kind is received in exchange for such distribution.
- *
- * 4. This software produces public key authentication certificates
- * bearing an expiration date established by DIGITAL and RSA Data
- * Security, Inc. It may cease to generate certificates after the expiration
- * date. Any modification of this software that changes or defeats
- * the expiration date or its effect is unauthorized.
- *
- * 5. Software that will renew or extend the expiration date of
- * authentication certificates produced by this software may be obtained
- * from RSA Data Security, Inc., 10 Twin Dolphin Drive, Redwood City, CA
- * 94065, (415)595-8782, or from DIGITAL"
- *
- */
-
-#include <sys/types.h>
-#include <arpa/telnet.h>
-#include <stdio.h>
-#include "gssapi_defs.h"
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#ifdef NO_STRING_H
-#include <strings.h>
-#else
-#include <string.h>
-#endif
-
-#include <pwd.h>
-#include "encrypt.h"
-#include "auth.h"
-#include "misc.h"
-
-extern auth_debug_mode;
-
-static unsigned char str_data[1024] = { IAC, SB, TELOPT_AUTHENTICATION, 0,
- AUTHTYPE_SPX, };
-static unsigned char str_name[1024] = { IAC, SB, TELOPT_AUTHENTICATION,
- TELQUAL_NAME, };
-
-#define SPX_AUTH 0 /* Authentication data follows */
-#define SPX_REJECT 1 /* Rejected (reason might follow) */
-#define SPX_ACCEPT 2 /* Accepted */
-
-#ifdef ENCRYPTION
-static Block session_key = { 0 };
-#endif /* ENCRYPTION */
-static Block challenge = { 0 };
-
-
-/*******************************************************************/
-
-gss_OID_set actual_mechs;
-gss_OID actual_mech_type, output_name_type;
-int major_status, status, msg_ctx = 0, new_status;
-int req_flags = 0, ret_flags, lifetime_rec;
-gss_cred_id_t gss_cred_handle;
-gss_ctx_id_t actual_ctxhandle, context_handle;
-gss_buffer_desc output_token, input_token, input_name_buffer;
-gss_buffer_desc status_string;
-gss_name_t desired_targname, src_name;
-gss_channel_bindings input_chan_bindings;
-char lhostname[GSS_C_MAX_PRINTABLE_NAME];
-char targ_printable[GSS_C_MAX_PRINTABLE_NAME];
-int to_addr=0, from_addr=0;
-char *address;
-gss_buffer_desc fullname_buffer;
-gss_OID fullname_type;
-gss_cred_id_t gss_delegated_cred_handle;
-
-/*******************************************************************/
-
-
-
- static int
-Data(ap, type, d, c)
- Authenticator *ap;
- int type;
- void *d;
- int c;
-{
- unsigned char *p = str_data + 4;
- unsigned char *cd = (unsigned char *)d;
-
- if (c == -1)
- c = strlen((char *)cd);
-
- if (0) {
- printf("%s:%d: [%d] (%d)",
- str_data[3] == TELQUAL_IS ? ">>>IS" : ">>>REPLY",
- str_data[3],
- type, c);
- printd(d, c);
- printf("\r\n");
- }
- *p++ = ap->type;
- *p++ = ap->way;
- *p++ = type;
- while (c-- > 0) {
- if ((*p++ = *cd++) == IAC)
- *p++ = IAC;
- }
- *p++ = IAC;
- *p++ = SE;
- if (str_data[3] == TELQUAL_IS)
- printsub('>', &str_data[2], p - (&str_data[2]));
- return(net_write(str_data, p - str_data));
-}
-
- int
-spx_init(ap, server)
- Authenticator *ap;
- int server;
-{
- gss_cred_id_t tmp_cred_handle;
-
- if (server) {
- str_data[3] = TELQUAL_REPLY;
- gethostname(lhostname, sizeof(lhostname));
- strcpy(targ_printable, "SERVICE:rcmd@");
- strcat(targ_printable, lhostname);
- input_name_buffer.length = strlen(targ_printable);
- input_name_buffer.value = targ_printable;
- major_status = gss_import_name(&status,
- &input_name_buffer,
- GSS_C_NULL_OID,
- &desired_targname);
- major_status = gss_acquire_cred(&status,
- desired_targname,
- 0,
- GSS_C_NULL_OID_SET,
- GSS_C_ACCEPT,
- &tmp_cred_handle,
- &actual_mechs,
- &lifetime_rec);
- if (major_status != GSS_S_COMPLETE) return(0);
- } else {
- str_data[3] = TELQUAL_IS;
- }
- return(1);
-}
-
- int
-spx_send(ap)
- Authenticator *ap;
-{
- Block enckey;
- int r;
-
- gss_OID actual_mech_type, output_name_type;
- int msg_ctx = 0, new_status, status;
- int req_flags = 0, ret_flags, lifetime_rec, major_status;
- gss_buffer_desc output_token, input_token, input_name_buffer;
- gss_buffer_desc output_name_buffer, status_string;
- gss_name_t desired_targname;
- gss_channel_bindings input_chan_bindings;
- char targ_printable[GSS_C_MAX_PRINTABLE_NAME];
- int from_addr=0, to_addr=0, myhostlen, j;
- int deleg_flag=1, mutual_flag=0, replay_flag=0, seq_flag=0;
- char *address;
-
- printf("[ Trying SPX ... ]\n");
- strcpy(targ_printable, "SERVICE:rcmd@");
- strcat(targ_printable, RemoteHostName);
-
- input_name_buffer.length = strlen(targ_printable);
- input_name_buffer.value = targ_printable;
-
- if (!UserNameRequested) {
- return(0);
- }
-
- major_status = gss_import_name(&status,
- &input_name_buffer,
- GSS_C_NULL_OID,
- &desired_targname);
-
-
- major_status = gss_display_name(&status,
- desired_targname,
- &output_name_buffer,
- &output_name_type);
-
- printf("target is '%s'\n", output_name_buffer.value); fflush(stdout);
-
- major_status = gss_release_buffer(&status, &output_name_buffer);
-
- input_chan_bindings = (gss_channel_bindings)
- malloc(sizeof(gss_channel_bindings_desc));
-
- input_chan_bindings->initiator_addrtype = GSS_C_AF_INET;
- input_chan_bindings->initiator_address.length = 4;
- address = (char *) malloc(4);
- input_chan_bindings->initiator_address.value = (char *) address;
- address[0] = ((from_addr & 0xff000000) >> 24);
- address[1] = ((from_addr & 0xff0000) >> 16);
- address[2] = ((from_addr & 0xff00) >> 8);
- address[3] = (from_addr & 0xff);
- input_chan_bindings->acceptor_addrtype = GSS_C_AF_INET;
- input_chan_bindings->acceptor_address.length = 4;
- address = (char *) malloc(4);
- input_chan_bindings->acceptor_address.value = (char *) address;
- address[0] = ((to_addr & 0xff000000) >> 24);
- address[1] = ((to_addr & 0xff0000) >> 16);
- address[2] = ((to_addr & 0xff00) >> 8);
- address[3] = (to_addr & 0xff);
- input_chan_bindings->application_data.length = 0;
-
- req_flags = 0;
- if (deleg_flag) req_flags = req_flags | 1;
- if (mutual_flag) req_flags = req_flags | 2;
- if (replay_flag) req_flags = req_flags | 4;
- if (seq_flag) req_flags = req_flags | 8;
-
- major_status = gss_init_sec_context(&status, /* minor status */
- GSS_C_NO_CREDENTIAL, /* cred handle */
- &actual_ctxhandle, /* ctx handle */
- desired_targname, /* target name */
- GSS_C_NULL_OID, /* mech type */
- req_flags, /* req flags */
- 0, /* time req */
- input_chan_bindings, /* chan binding */
- GSS_C_NO_BUFFER, /* input token */
- &actual_mech_type, /* actual mech */
- &output_token, /* output token */
- &ret_flags, /* ret flags */
- &lifetime_rec); /* time rec */
-
- if ((major_status != GSS_S_COMPLETE) &&
- (major_status != GSS_S_CONTINUE_NEEDED)) {
- gss_display_status(&new_status,
- status,
- GSS_C_MECH_CODE,
- GSS_C_NULL_OID,
- &msg_ctx,
- &status_string);
- printf("%s\n", status_string.value);
- return(0);
- }
-
- if (!auth_sendname(UserNameRequested, strlen(UserNameRequested))) {
- return(0);
- }
-
- if (!Data(ap, SPX_AUTH, (void *)output_token.value, output_token.length)) {
- return(0);
- }
-
- return(1);
-}
-
- void
-spx_is(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
- Block datablock;
- int r;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case SPX_AUTH:
- input_token.length = cnt;
- input_token.value = (char *) data;
-
- gethostname(lhostname, sizeof(lhostname));
-
- strcpy(targ_printable, "SERVICE:rcmd@");
- strcat(targ_printable, lhostname);
-
- input_name_buffer.length = strlen(targ_printable);
- input_name_buffer.value = targ_printable;
-
- major_status = gss_import_name(&status,
- &input_name_buffer,
- GSS_C_NULL_OID,
- &desired_targname);
-
- major_status = gss_acquire_cred(&status,
- desired_targname,
- 0,
- GSS_C_NULL_OID_SET,
- GSS_C_ACCEPT,
- &gss_cred_handle,
- &actual_mechs,
- &lifetime_rec);
-
- major_status = gss_release_name(&status, desired_targname);
-
- input_chan_bindings = (gss_channel_bindings)
- malloc(sizeof(gss_channel_bindings_desc));
-
- input_chan_bindings->initiator_addrtype = GSS_C_AF_INET;
- input_chan_bindings->initiator_address.length = 4;
- address = (char *) malloc(4);
- input_chan_bindings->initiator_address.value = (char *) address;
- address[0] = ((from_addr & 0xff000000) >> 24);
- address[1] = ((from_addr & 0xff0000) >> 16);
- address[2] = ((from_addr & 0xff00) >> 8);
- address[3] = (from_addr & 0xff);
- input_chan_bindings->acceptor_addrtype = GSS_C_AF_INET;
- input_chan_bindings->acceptor_address.length = 4;
- address = (char *) malloc(4);
- input_chan_bindings->acceptor_address.value = (char *) address;
- address[0] = ((to_addr & 0xff000000) >> 24);
- address[1] = ((to_addr & 0xff0000) >> 16);
- address[2] = ((to_addr & 0xff00) >> 8);
- address[3] = (to_addr & 0xff);
- input_chan_bindings->application_data.length = 0;
-
- major_status = gss_accept_sec_context(&status,
- &context_handle,
- gss_cred_handle,
- &input_token,
- input_chan_bindings,
- &src_name,
- &actual_mech_type,
- &output_token,
- &ret_flags,
- &lifetime_rec,
- &gss_delegated_cred_handle);
-
-
- if (major_status != GSS_S_COMPLETE) {
-
- major_status = gss_display_name(&status,
- src_name,
- &fullname_buffer,
- &fullname_type);
- Data(ap, SPX_REJECT, (void *)"auth failed", -1);
- auth_finished(ap, AUTH_REJECT);
- return;
- }
-
- major_status = gss_display_name(&status,
- src_name,
- &fullname_buffer,
- &fullname_type);
-
-
- Data(ap, SPX_ACCEPT, (void *)output_token.value, output_token.length);
- auth_finished(ap, AUTH_USER);
- break;
-
- default:
- Data(ap, SPX_REJECT, 0, 0);
- break;
- }
-}
-
-
- void
-spx_reply(ap, data, cnt)
- Authenticator *ap;
- unsigned char *data;
- int cnt;
-{
- Session_Key skey;
-
- if (cnt-- < 1)
- return;
- switch (*data++) {
- case SPX_REJECT:
- if (cnt > 0) {
- printf("[ SPX refuses authentication because %.*s ]\r\n",
- cnt, data);
- } else
- printf("[ SPX refuses authentication ]\r\n");
- auth_send_retry();
- return;
- case SPX_ACCEPT:
- printf("[ SPX accepts you ]\n");
- if ((ap->way & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) {
- /*
- * Send over the encrypted challenge.
- */
- input_token.value = (char *) data;
- input_token.length = cnt;
-
- major_status = gss_init_sec_context(&status, /* minor stat */
- GSS_C_NO_CREDENTIAL, /* cred handle */
- &actual_ctxhandle, /* ctx handle */
- desired_targname, /* target name */
- GSS_C_NULL_OID, /* mech type */
- req_flags, /* req flags */
- 0, /* time req */
- input_chan_bindings, /* chan binding */
- &input_token, /* input token */
- &actual_mech_type, /* actual mech */
- &output_token, /* output token */
- &ret_flags, /* ret flags */
- &lifetime_rec); /* time rec */
-
- if (major_status != GSS_S_COMPLETE) {
- gss_display_status(&new_status,
- status,
- GSS_C_MECH_CODE,
- GSS_C_NULL_OID,
- &msg_ctx,
- &status_string);
- printf("[ SPX mutual response fails ... '%s' ]\r\n",
- status_string.value);
- auth_send_retry();
- return;
- }
- }
- auth_finished(ap, AUTH_USER);
- return;
-
- default:
- return;
- }
-}
-
- int
-spx_status(ap, name, level)
- Authenticator *ap;
- char *name;
- int level;
-{
-
- gss_buffer_desc fullname_buffer, acl_file_buffer;
- gss_OID fullname_type;
- char acl_file[160], fullname[160];
- int major_status, status = 0;
- struct passwd *pwd;
-
- /*
- * hard code fullname to
- * "SPX:/C=US/O=Digital/OU=LKG/OU=Sphinx/OU=Users/CN=Kannan Alagappan"
- * and acl_file to "~kannan/.sphinx"
- */
-
- pwd = getpwnam(UserNameRequested);
- if (pwd == NULL) {
- return(AUTH_USER); /* not authenticated */
- }
-
- strcpy(acl_file, pwd->pw_dir);
- strcat(acl_file, "/.sphinx");
- acl_file_buffer.value = acl_file;
- acl_file_buffer.length = strlen(acl_file);
-
- major_status = gss_display_name(&status,
- src_name,
- &fullname_buffer,
- &fullname_type);
-
- if (level < AUTH_USER)
- return(level);
-
- major_status = gss__check_acl(&status, &fullname_buffer,
- &acl_file_buffer);
-
- if (major_status == GSS_S_COMPLETE) {
- strcpy(name, UserNameRequested);
- return(AUTH_VALID);
- } else {
- return(AUTH_USER);
- }
-
-}
-
-#define BUMP(buf, len) while (*(buf)) {++(buf), --(len);}
-#define ADDC(buf, len, c) if ((len) > 0) {*(buf)++ = (c); --(len);}
-
- void
-spx_printsub(data, cnt, buf, buflen)
- unsigned char *data, *buf;
- int cnt, buflen;
-{
- char lbuf[32];
- register int i;
-
- buf[buflen-1] = '\0'; /* make sure its NULL terminated */
- buflen -= 1;
-
- switch(data[3]) {
- case SPX_REJECT: /* Rejected (reason might follow) */
- strncpy((char *)buf, " REJECT ", buflen);
- goto common;
-
- case SPX_ACCEPT: /* Accepted (name might follow) */
- strncpy((char *)buf, " ACCEPT ", buflen);
- common:
- BUMP(buf, buflen);
- if (cnt <= 4)
- break;
- ADDC(buf, buflen, '"');
- for (i = 4; i < cnt; i++)
- ADDC(buf, buflen, data[i]);
- ADDC(buf, buflen, '"');
- ADDC(buf, buflen, '\0');
- break;
-
- case SPX_AUTH: /* Authentication data follows */
- strncpy((char *)buf, " AUTH", buflen);
- goto common2;
-
- default:
- sprintf(lbuf, " %d (unknown)", data[3]);
- strncpy((char *)buf, lbuf, buflen);
- common2:
- BUMP(buf, buflen);
- for (i = 4; i < cnt; i++) {
- sprintf(lbuf, " %d", data[i]);
- strncpy((char *)buf, lbuf, buflen);
- BUMP(buf, buflen);
- }
- break;
- }
-}
-
-#endif
-
-#ifdef notdef
-
-prkey(msg, key)
- char *msg;
- unsigned char *key;
-{
- register int i;
- printf("%s:", msg);
- for (i = 0; i < 8; i++)
- printf(" %3d", key[i]);
- printf("\r\n");
-}
-#endif
diff --git a/crypto/telnet/telnet/authenc.c b/crypto/telnet/telnet/authenc.c
deleted file mode 100644
index f829b1a741a9..000000000000
--- a/crypto/telnet/telnet/authenc.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)authenc.c 8.1 (Berkeley) 6/6/93";
-#endif /* not lint */
-
-#if defined(AUTHENTICATION) || defined(ENCRYPTION)
-#include <sys/types.h>
-#include <arpa/telnet.h>
-#include <libtelnet/encrypt.h>
-#include <libtelnet/misc.h>
-
-#include "general.h"
-#include "ring.h"
-#include "externs.h"
-#include "defines.h"
-#include "types.h"
-
- int
-net_write(str, len)
- unsigned char *str;
- int len;
-{
- if (NETROOM() > len) {
- ring_supply_data(&netoring, str, len);
- if (str[0] == IAC && str[1] == SE)
- printsub('>', &str[2], len-2);
- return(len);
- }
- return(0);
-}
-
- void
-net_encrypt()
-{
-#ifdef ENCRYPTION
- if (encrypt_output)
- ring_encrypt(&netoring, encrypt_output);
- else
- ring_clearto(&netoring);
-#endif /* ENCRYPTION */
-}
-
- int
-telnet_spin()
-{
- return(-1);
-}
-
- char *
-telnet_getenv(val)
- char *val;
-{
- return((char *)env_getvalue((unsigned char *)val));
-}
-
- char *
-telnet_gets(prompt, result, length, echo)
- char *prompt;
- char *result;
- int length;
- int echo;
-{
- extern char *getpass();
- extern int globalmode;
- int om = globalmode;
- char *res;
-
- TerminalNewMode(-1);
- if (echo) {
- printf("%s", prompt);
- res = fgets(result, length, stdin);
- } else if ((res = getpass(prompt))) {
- strncpy(result, res, length);
- res = result;
- }
- TerminalNewMode(om);
- return(res);
-}
-#endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
diff --git a/crypto/telnet/telnet/commands.c b/crypto/telnet/telnet/commands.c
deleted file mode 100644
index 8073fb50f120..000000000000
--- a/crypto/telnet/telnet/commands.c
+++ /dev/null
@@ -1,3002 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#if defined(unix)
-#include <sys/param.h>
-#if defined(CRAY) || defined(sysV88)
-#include <sys/types.h>
-#endif
-#include <sys/file.h>
-#else
-#include <sys/types.h>
-#endif /* defined(unix) */
-#include <sys/socket.h>
-#include <netinet/in.h>
-#ifdef CRAY
-#include <fcntl.h>
-#endif /* CRAY */
-
-#include <signal.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <pwd.h>
-#include <varargs.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include <arpa/telnet.h>
-
-#include "general.h"
-
-#include "ring.h"
-
-#include "externs.h"
-#include "defines.h"
-#include "types.h"
-
-#if defined(AUTHENTICATION)
-#include <libtelnet/auth.h>
-#endif
-#if defined(ENCRYPTION)
-#include <libtelnet/encrypt.h>
-#endif
-
-#if !defined(CRAY) && !defined(sysV88)
-#include <netinet/in_systm.h>
-# if (defined(vax) || defined(tahoe) || defined(hp300)) && !defined(ultrix)
-# include <machine/endian.h>
-# endif /* vax */
-#endif /* !defined(CRAY) && !defined(sysV88) */
-#include <netinet/ip.h>
-
-
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif MAXHOSTNAMELEN
-
-#if defined(IPPROTO_IP) && defined(IP_TOS)
-int tos = -1;
-#endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
-
-char *hostname;
-static char _hostname[MAXHOSTNAMELEN];
-
-extern char *getenv();
-
-extern int isprefix();
-extern char **genget();
-extern int Ambiguous();
-
-static int help(int argc, char *argv[]);
-static int call();
-static void cmdrc(char *m1, char *m2);
-
-int quit(void);
-
-typedef struct {
- char *name; /* command name */
- char *help; /* help string (NULL for no help) */
- int (*handler)(); /* routine which executes command */
- int needconnect; /* Do we need to be connected to execute? */
-} Command;
-
-static char line[256];
-static char saveline[256];
-static int margc;
-static char *margv[20];
-
-#if defined(SKEY)
-#include <sys/wait.h>
-#define PATH_SKEY "/usr/bin/key"
- int
-skey_calc(argc, argv)
- int argc;
- char **argv;
-{
- int status;
-
- if(argc != 3) {
- printf("%s sequence challenge\n", argv[0]);
- return;
- }
-
- switch(fork()) {
- case 0:
- execv(PATH_SKEY, argv);
- exit (1);
- case -1:
- perror("fork");
- break;
- default:
- (void) wait(&status);
- if (WIFEXITED(status))
- return (WEXITSTATUS(status));
- return (0);
- }
-}
-#endif
-
- static void
-makeargv()
-{
- register char *cp, *cp2, c;
- register char **argp = margv;
-
- margc = 0;
- cp = line;
- if (*cp == '!') { /* Special case shell escape */
- strcpy(saveline, line); /* save for shell command */
- *argp++ = "!"; /* No room in string to get this */
- margc++;
- cp++;
- }
- while ((c = *cp)) {
- register int inquote = 0;
- while (isspace(c))
- c = *++cp;
- if (c == '\0')
- break;
- *argp++ = cp;
- margc += 1;
- for (cp2 = cp; c != '\0'; c = *++cp) {
- if (inquote) {
- if (c == inquote) {
- inquote = 0;
- continue;
- }
- } else {
- if (c == '\\') {
- if ((c = *++cp) == '\0')
- break;
- } else if (c == '"') {
- inquote = '"';
- continue;
- } else if (c == '\'') {
- inquote = '\'';
- continue;
- } else if (isspace(c))
- break;
- }
- *cp2++ = c;
- }
- *cp2 = '\0';
- if (c == '\0')
- break;
- cp++;
- }
- *argp++ = 0;
-}
-
-/*
- * Make a character string into a number.
- *
- * Todo: 1. Could take random integers (12, 0x12, 012, 0b1).
- */
-
- static int
-special(s)
- register char *s;
-{
- register char c;
- char b;
-
- switch (*s) {
- case '^':
- b = *++s;
- if (b == '?') {
- c = b | 0x40; /* DEL */
- } else {
- c = b & 0x1f;
- }
- break;
- default:
- c = *s;
- break;
- }
- return c;
-}
-
-/*
- * Construct a control character sequence
- * for a special character.
- */
- static char *
-control(c)
- register cc_t c;
-{
- static char buf[5];
- /*
- * The only way I could get the Sun 3.5 compiler
- * to shut up about
- * if ((unsigned int)c >= 0x80)
- * was to assign "c" to an unsigned int variable...
- * Arggg....
- */
- register unsigned int uic = (unsigned int)c;
-
- if (uic == 0x7f)
- return ("^?");
- if (c == (cc_t)_POSIX_VDISABLE) {
- return "off";
- }
- if (uic >= 0x80) {
- buf[0] = '\\';
- buf[1] = ((c>>6)&07) + '0';
- buf[2] = ((c>>3)&07) + '0';
- buf[3] = (c&07) + '0';
- buf[4] = 0;
- } else if (uic >= 0x20) {
- buf[0] = c;
- buf[1] = 0;
- } else {
- buf[0] = '^';
- buf[1] = '@'+c;
- buf[2] = 0;
- }
- return (buf);
-}
-
-
-
-/*
- * The following are data structures and routines for
- * the "send" command.
- *
- */
-
-struct sendlist {
- char *name; /* How user refers to it (case independent) */
- char *help; /* Help information (0 ==> no help) */
- int needconnect; /* Need to be connected */
- int narg; /* Number of arguments */
- int (*handler)(); /* Routine to perform (for special ops) */
- int nbyte; /* Number of bytes to send this command */
- int what; /* Character to be sent (<0 ==> special) */
-};
-
-
-static int
- send_esc P((void)),
- send_help P((void)),
- send_docmd P((char *)),
- send_dontcmd P((char *)),
- send_willcmd P((char *)),
- send_wontcmd P((char *));
-
-static struct sendlist Sendlist[] = {
- { "ao", "Send Telnet Abort output", 1, 0, 0, 2, AO },
- { "ayt", "Send Telnet 'Are You There'", 1, 0, 0, 2, AYT },
- { "brk", "Send Telnet Break", 1, 0, 0, 2, BREAK },
- { "break", 0, 1, 0, 0, 2, BREAK },
- { "ec", "Send Telnet Erase Character", 1, 0, 0, 2, EC },
- { "el", "Send Telnet Erase Line", 1, 0, 0, 2, EL },
- { "escape", "Send current escape character", 1, 0, send_esc, 1, 0 },
- { "ga", "Send Telnet 'Go Ahead' sequence", 1, 0, 0, 2, GA },
- { "ip", "Send Telnet Interrupt Process", 1, 0, 0, 2, IP },
- { "intp", 0, 1, 0, 0, 2, IP },
- { "interrupt", 0, 1, 0, 0, 2, IP },
- { "intr", 0, 1, 0, 0, 2, IP },
- { "nop", "Send Telnet 'No operation'", 1, 0, 0, 2, NOP },
- { "eor", "Send Telnet 'End of Record'", 1, 0, 0, 2, EOR },
- { "abort", "Send Telnet 'Abort Process'", 1, 0, 0, 2, ABORT },
- { "susp", "Send Telnet 'Suspend Process'", 1, 0, 0, 2, SUSP },
- { "eof", "Send Telnet End of File Character", 1, 0, 0, 2, xEOF },
- { "synch", "Perform Telnet 'Synch operation'", 1, 0, dosynch, 2, 0 },
- { "getstatus", "Send request for STATUS", 1, 0, get_status, 6, 0 },
- { "?", "Display send options", 0, 0, send_help, 0, 0 },
- { "help", 0, 0, 0, send_help, 0, 0 },
- { "do", 0, 0, 1, send_docmd, 3, 0 },
- { "dont", 0, 0, 1, send_dontcmd, 3, 0 },
- { "will", 0, 0, 1, send_willcmd, 3, 0 },
- { "wont", 0, 0, 1, send_wontcmd, 3, 0 },
- { 0 }
-};
-
-#define GETSEND(name) ((struct sendlist *) genget(name, (char **) Sendlist, \
- sizeof(struct sendlist)))
-
- static int
-sendcmd(argc, argv)
- int argc;
- char **argv;
-{
- int count; /* how many bytes we are going to need to send */
- int i;
- struct sendlist *s; /* pointer to current command */
- int success = 0;
- int needconnect = 0;
-
- if (argc < 2) {
- printf("need at least one argument for 'send' command\n");
- printf("'send ?' for help\n");
- return 0;
- }
- /*
- * First, validate all the send arguments.
- * In addition, we see how much space we are going to need, and
- * whether or not we will be doing a "SYNCH" operation (which
- * flushes the network queue).
- */
- count = 0;
- for (i = 1; i < argc; i++) {
- s = GETSEND(argv[i]);
- if (s == 0) {
- printf("Unknown send argument '%s'\n'send ?' for help.\n",
- argv[i]);
- return 0;
- } else if (Ambiguous(s)) {
- printf("Ambiguous send argument '%s'\n'send ?' for help.\n",
- argv[i]);
- return 0;
- }
- if (i + s->narg >= argc) {
- fprintf(stderr,
- "Need %d argument%s to 'send %s' command. 'send %s ?' for help.\n",
- s->narg, s->narg == 1 ? "" : "s", s->name, s->name);
- return 0;
- }
- count += s->nbyte;
- if (s->handler == send_help) {
- send_help();
- return 0;
- }
-
- i += s->narg;
- needconnect += s->needconnect;
- }
- if (!connected && needconnect) {
- printf("?Need to be connected first.\n");
- printf("'send ?' for help\n");
- return 0;
- }
- /* Now, do we have enough room? */
- if (NETROOM() < count) {
- printf("There is not enough room in the buffer TO the network\n");
- printf("to process your request. Nothing will be done.\n");
- printf("('send synch' will throw away most data in the network\n");
- printf("buffer, if this might help.)\n");
- return 0;
- }
- /* OK, they are all OK, now go through again and actually send */
- count = 0;
- for (i = 1; i < argc; i++) {
- if ((s = GETSEND(argv[i])) == 0) {
- fprintf(stderr, "Telnet 'send' error - argument disappeared!\n");
- (void) quit();
- /*NOTREACHED*/
- }
- if (s->handler) {
- count++;
- success += (*s->handler)((s->narg > 0) ? argv[i+1] : 0,
- (s->narg > 1) ? argv[i+2] : 0);
- i += s->narg;
- } else {
- NET2ADD(IAC, s->what);
- printoption("SENT", IAC, s->what);
- }
- }
- return (count == success);
-}
-
- static int
-send_esc()
-{
- NETADD(escape);
- return 1;
-}
-
- static int
-send_docmd(name)
- char *name;
-{
- return(send_tncmd(send_do, "do", name));
-}
-
- static int
-send_dontcmd(name)
- char *name;
-{
- return(send_tncmd(send_dont, "dont", name));
-}
- static int
-send_willcmd(name)
- char *name;
-{
- return(send_tncmd(send_will, "will", name));
-}
- static int
-send_wontcmd(name)
- char *name;
-{
- return(send_tncmd(send_wont, "wont", name));
-}
-
- int
-send_tncmd(func, cmd, name)
- void (*func)();
- char *cmd, *name;
-{
- char **cpp;
- extern char *telopts[];
- register int val = 0;
-
- if (isprefix(name, "help") || isprefix(name, "?")) {
- register int col, len;
-
- printf("Usage: send %s <value|option>\n", cmd);
- printf("\"value\" must be from 0 to 255\n");
- printf("Valid options are:\n\t");
-
- col = 8;
- for (cpp = telopts; *cpp; cpp++) {
- len = strlen(*cpp) + 3;
- if (col + len > 65) {
- printf("\n\t");
- col = 8;
- }
- printf(" \"%s\"", *cpp);
- col += len;
- }
- printf("\n");
- return 0;
- }
- cpp = (char **)genget(name, telopts, sizeof(char *));
- if (Ambiguous(cpp)) {
- fprintf(stderr,"'%s': ambiguous argument ('send %s ?' for help).\n",
- name, cmd);
- return 0;
- }
- if (cpp) {
- val = cpp - telopts;
- } else {
- register char *cp = name;
-
- while (*cp >= '0' && *cp <= '9') {
- val *= 10;
- val += *cp - '0';
- cp++;
- }
- if (*cp != 0) {
- fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n",
- name, cmd);
- return 0;
- } else if (val < 0 || val > 255) {
- fprintf(stderr, "'%s': bad value ('send %s ?' for help).\n",
- name, cmd);
- return 0;
- }
- }
- if (!connected) {
- printf("?Need to be connected first.\n");
- return 0;
- }
- (*func)(val, 1);
- return 1;
-}
-
- static int
-send_help()
-{
- struct sendlist *s; /* pointer to current command */
- for (s = Sendlist; s->name; s++) {
- if (s->help)
- printf("%-15s %s\n", s->name, s->help);
- }
- return(0);
-}
-
-/*
- * The following are the routines and data structures referred
- * to by the arguments to the "toggle" command.
- */
-
- static int
-lclchars()
-{
- donelclchars = 1;
- return 1;
-}
-
- static int
-togdebug()
-{
-#ifndef NOT43
- if (net > 0 &&
- (SetSockOpt(net, SOL_SOCKET, SO_DEBUG, debug)) < 0) {
- perror("setsockopt (SO_DEBUG)");
- }
-#else /* NOT43 */
- if (debug) {
- if (net > 0 && SetSockOpt(net, SOL_SOCKET, SO_DEBUG, 1) < 0)
- perror("setsockopt (SO_DEBUG)");
- } else
- printf("Cannot turn off socket debugging\n");
-#endif /* NOT43 */
- return 1;
-}
-
-
- static int
-togcrlf()
-{
- if (crlf) {
- printf("Will send carriage returns as telnet <CR><LF>.\n");
- } else {
- printf("Will send carriage returns as telnet <CR><NUL>.\n");
- }
- return 1;
-}
-
-int binmode;
-
- static int
-togbinary(val)
- int val;
-{
- donebinarytoggle = 1;
-
- if (val >= 0) {
- binmode = val;
- } else {
- if (my_want_state_is_will(TELOPT_BINARY) &&
- my_want_state_is_do(TELOPT_BINARY)) {
- binmode = 1;
- } else if (my_want_state_is_wont(TELOPT_BINARY) &&
- my_want_state_is_dont(TELOPT_BINARY)) {
- binmode = 0;
- }
- val = binmode ? 0 : 1;
- }
-
- if (val == 1) {
- if (my_want_state_is_will(TELOPT_BINARY) &&
- my_want_state_is_do(TELOPT_BINARY)) {
- printf("Already operating in binary mode with remote host.\n");
- } else {
- printf("Negotiating binary mode with remote host.\n");
- tel_enter_binary(3);
- }
- } else {
- if (my_want_state_is_wont(TELOPT_BINARY) &&
- my_want_state_is_dont(TELOPT_BINARY)) {
- printf("Already in network ascii mode with remote host.\n");
- } else {
- printf("Negotiating network ascii mode with remote host.\n");
- tel_leave_binary(3);
- }
- }
- return 1;
-}
-
- static int
-togrbinary(val)
- int val;
-{
- donebinarytoggle = 1;
-
- if (val == -1)
- val = my_want_state_is_do(TELOPT_BINARY) ? 0 : 1;
-
- if (val == 1) {
- if (my_want_state_is_do(TELOPT_BINARY)) {
- printf("Already receiving in binary mode.\n");
- } else {
- printf("Negotiating binary mode on input.\n");
- tel_enter_binary(1);
- }
- } else {
- if (my_want_state_is_dont(TELOPT_BINARY)) {
- printf("Already receiving in network ascii mode.\n");
- } else {
- printf("Negotiating network ascii mode on input.\n");
- tel_leave_binary(1);
- }
- }
- return 1;
-}
-
- static int
-togxbinary(val)
- int val;
-{
- donebinarytoggle = 1;
-
- if (val == -1)
- val = my_want_state_is_will(TELOPT_BINARY) ? 0 : 1;
-
- if (val == 1) {
- if (my_want_state_is_will(TELOPT_BINARY)) {
- printf("Already transmitting in binary mode.\n");
- } else {
- printf("Negotiating binary mode on output.\n");
- tel_enter_binary(2);
- }
- } else {
- if (my_want_state_is_wont(TELOPT_BINARY)) {
- printf("Already transmitting in network ascii mode.\n");
- } else {
- printf("Negotiating network ascii mode on output.\n");
- tel_leave_binary(2);
- }
- }
- return 1;
-}
-
-
-static int togglehelp P((void));
-#if defined(AUTHENTICATION)
-extern int auth_togdebug P((int));
-#endif
-#ifdef ENCRYPTION
-extern int EncryptAutoEnc P((int));
-extern int EncryptAutoDec P((int));
-extern int EncryptDebug P((int));
-extern int EncryptVerbose P((int));
-#endif /* ENCRYPTION */
-
-struct togglelist {
- char *name; /* name of toggle */
- char *help; /* help message */
- int (*handler)(); /* routine to do actual setting */
- int *variable;
- char *actionexplanation;
-};
-
-static struct togglelist Togglelist[] = {
- { "autoflush",
- "flushing of output when sending interrupt characters",
- 0,
- &autoflush,
- "flush output when sending interrupt characters" },
- { "autosynch",
- "automatic sending of interrupt characters in urgent mode",
- 0,
- &autosynch,
- "send interrupt characters in urgent mode" },
-#if defined(AUTHENTICATION)
- { "autologin",
- "automatic sending of login and/or authentication info",
- 0,
- &autologin,
- "send login name and/or authentication information" },
- { "authdebug",
- "Toggle authentication debugging",
- auth_togdebug,
- 0,
- "print authentication debugging information" },
-#endif
-#ifdef ENCRYPTION
- { "autoencrypt",
- "automatic encryption of data stream",
- EncryptAutoEnc,
- 0,
- "automatically encrypt output" },
- { "autodecrypt",
- "automatic decryption of data stream",
- EncryptAutoDec,
- 0,
- "automatically decrypt input" },
- { "verbose_encrypt",
- "Toggle verbose encryption output",
- EncryptVerbose,
- 0,
- "print verbose encryption output" },
- { "encdebug",
- "Toggle encryption debugging",
- EncryptDebug,
- 0,
- "print encryption debugging information" },
-#endif /* ENCRYPTION */
- { "skiprc",
- "don't read ~/.telnetrc file",
- 0,
- &skiprc,
- "skip reading of ~/.telnetrc file" },
- { "binary",
- "sending and receiving of binary data",
- togbinary,
- 0,
- 0 },
- { "inbinary",
- "receiving of binary data",
- togrbinary,
- 0,
- 0 },
- { "outbinary",
- "sending of binary data",
- togxbinary,
- 0,
- 0 },
- { "crlf",
- "sending carriage returns as telnet <CR><LF>",
- togcrlf,
- &crlf,
- 0 },
- { "crmod",
- "mapping of received carriage returns",
- 0,
- &crmod,
- "map carriage return on output" },
- { "localchars",
- "local recognition of certain control characters",
- lclchars,
- &localchars,
- "recognize certain control characters" },
- { " ", "", 0 }, /* empty line */
-#if defined(unix) && defined(TN3270)
- { "apitrace",
- "(debugging) toggle tracing of API transactions",
- 0,
- &apitrace,
- "trace API transactions" },
- { "cursesdata",
- "(debugging) toggle printing of hexadecimal curses data",
- 0,
- &cursesdata,
- "print hexadecimal representation of curses data" },
-#endif /* defined(unix) && defined(TN3270) */
- { "debug",
- "debugging",
- togdebug,
- &debug,
- "turn on socket level debugging" },
- { "netdata",
- "printing of hexadecimal network data (debugging)",
- 0,
- &netdata,
- "print hexadecimal representation of network traffic" },
- { "prettydump",
- "output of \"netdata\" to user readable format (debugging)",
- 0,
- &prettydump,
- "print user readable output for \"netdata\"" },
- { "options",
- "viewing of options processing (debugging)",
- 0,
- &showoptions,
- "show option processing" },
-#if defined(unix)
- { "termdata",
- "(debugging) toggle printing of hexadecimal terminal data",
- 0,
- &termdata,
- "print hexadecimal representation of terminal traffic" },
-#endif /* defined(unix) */
- { "?",
- 0,
- togglehelp },
- { "help",
- 0,
- togglehelp },
- { 0 }
-};
-
- static int
-togglehelp()
-{
- struct togglelist *c;
-
- for (c = Togglelist; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s toggle %s\n", c->name, c->help);
- else
- printf("\n");
- }
- }
- printf("\n");
- printf("%-15s %s\n", "?", "display help information");
- return 0;
-}
-
- static void
-settogglehelp(set)
- int set;
-{
- struct togglelist *c;
-
- for (c = Togglelist; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s %s %s\n", c->name, set ? "enable" : "disable",
- c->help);
- else
- printf("\n");
- }
- }
-}
-
-#define GETTOGGLE(name) (struct togglelist *) \
- genget(name, (char **) Togglelist, sizeof(struct togglelist))
-
- static int
-toggle(argc, argv)
- int argc;
- char *argv[];
-{
- int retval = 1;
- char *name;
- struct togglelist *c;
-
- if (argc < 2) {
- fprintf(stderr,
- "Need an argument to 'toggle' command. 'toggle ?' for help.\n");
- return 0;
- }
- argc--;
- argv++;
- while (argc--) {
- name = *argv++;
- c = GETTOGGLE(name);
- if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('toggle ?' for help).\n",
- name);
- return 0;
- } else if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('toggle ?' for help).\n",
- name);
- return 0;
- } else {
- if (c->variable) {
- *c->variable = !*c->variable; /* invert it */
- if (c->actionexplanation) {
- printf("%s %s.\n", *c->variable? "Will" : "Won't",
- c->actionexplanation);
- }
- }
- if (c->handler) {
- retval &= (*c->handler)(-1);
- }
- }
- }
- return retval;
-}
-
-/*
- * The following perform the "set" command.
- */
-
-#ifdef USE_TERMIO
-struct termio new_tc = { 0 };
-#endif
-
-struct setlist {
- char *name; /* name */
- char *help; /* help information */
- void (*handler)();
- cc_t *charp; /* where it is located at */
-};
-
-static struct setlist Setlist[] = {
-#ifdef KLUDGELINEMODE
- { "echo", "character to toggle local echoing on/off", 0, &echoc },
-#endif
- { "escape", "character to escape back to telnet command mode", 0, &escape },
- { "rlogin", "rlogin escape character", 0, &rlogin },
- { "tracefile", "file to write trace information to", SetNetTrace, (cc_t *)NetTraceFile},
- { " ", "" },
- { " ", "The following need 'localchars' to be toggled true", 0, 0 },
- { "flushoutput", "character to cause an Abort Output", 0, termFlushCharp },
- { "interrupt", "character to cause an Interrupt Process", 0, termIntCharp },
- { "quit", "character to cause an Abort process", 0, termQuitCharp },
- { "eof", "character to cause an EOF ", 0, termEofCharp },
- { " ", "" },
- { " ", "The following are for local editing in linemode", 0, 0 },
- { "erase", "character to use to erase a character", 0, termEraseCharp },
- { "kill", "character to use to erase a line", 0, termKillCharp },
- { "lnext", "character to use for literal next", 0, termLiteralNextCharp },
- { "susp", "character to cause a Suspend Process", 0, termSuspCharp },
- { "reprint", "character to use for line reprint", 0, termRprntCharp },
- { "worderase", "character to use to erase a word", 0, termWerasCharp },
- { "start", "character to use for XON", 0, termStartCharp },
- { "stop", "character to use for XOFF", 0, termStopCharp },
- { "forw1", "alternate end of line character", 0, termForw1Charp },
- { "forw2", "alternate end of line character", 0, termForw2Charp },
- { "ayt", "alternate AYT character", 0, termAytCharp },
- { 0 }
-};
-
-#if defined(CRAY) && !defined(__STDC__)
-/* Work around compiler bug in pcc 4.1.5 */
- void
-_setlist_init()
-{
-#ifndef KLUDGELINEMODE
-#define N 5
-#else
-#define N 6
-#endif
- Setlist[N+0].charp = &termFlushChar;
- Setlist[N+1].charp = &termIntChar;
- Setlist[N+2].charp = &termQuitChar;
- Setlist[N+3].charp = &termEofChar;
- Setlist[N+6].charp = &termEraseChar;
- Setlist[N+7].charp = &termKillChar;
- Setlist[N+8].charp = &termLiteralNextChar;
- Setlist[N+9].charp = &termSuspChar;
- Setlist[N+10].charp = &termRprntChar;
- Setlist[N+11].charp = &termWerasChar;
- Setlist[N+12].charp = &termStartChar;
- Setlist[N+13].charp = &termStopChar;
- Setlist[N+14].charp = &termForw1Char;
- Setlist[N+15].charp = &termForw2Char;
- Setlist[N+16].charp = &termAytChar;
-#undef N
-}
-#endif /* defined(CRAY) && !defined(__STDC__) */
-
- static struct setlist *
-getset(name)
- char *name;
-{
- return (struct setlist *)
- genget(name, (char **) Setlist, sizeof(struct setlist));
-}
-
- void
-set_escape_char(s)
- char *s;
-{
- if (rlogin != _POSIX_VDISABLE) {
- rlogin = (s && *s) ? special(s) : _POSIX_VDISABLE;
- printf("Telnet rlogin escape character is '%s'.\n",
- control(rlogin));
- } else {
- escape = (s && *s) ? special(s) : _POSIX_VDISABLE;
- printf("Telnet escape character is '%s'.\n", control(escape));
- }
-}
-
- static int
-setcmd(argc, argv)
- int argc;
- char *argv[];
-{
- int value;
- struct setlist *ct;
- struct togglelist *c;
-
- if (argc < 2 || argc > 3) {
- printf("Format is 'set Name Value'\n'set ?' for help.\n");
- return 0;
- }
- if ((argc == 2) && (isprefix(argv[1], "?") || isprefix(argv[1], "help"))) {
- for (ct = Setlist; ct->name; ct++)
- printf("%-15s %s\n", ct->name, ct->help);
- printf("\n");
- settogglehelp(1);
- printf("%-15s %s\n", "?", "display help information");
- return 0;
- }
-
- ct = getset(argv[1]);
- if (ct == 0) {
- c = GETTOGGLE(argv[1]);
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('set ?' for help).\n",
- argv[1]);
- return 0;
- } else if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('set ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (c->variable) {
- if ((argc == 2) || (strcmp("on", argv[2]) == 0))
- *c->variable = 1;
- else if (strcmp("off", argv[2]) == 0)
- *c->variable = 0;
- else {
- printf("Format is 'set togglename [on|off]'\n'set ?' for help.\n");
- return 0;
- }
- if (c->actionexplanation) {
- printf("%s %s.\n", *c->variable? "Will" : "Won't",
- c->actionexplanation);
- }
- }
- if (c->handler)
- (*c->handler)(1);
- } else if (argc != 3) {
- printf("Format is 'set Name Value'\n'set ?' for help.\n");
- return 0;
- } else if (Ambiguous(ct)) {
- fprintf(stderr, "'%s': ambiguous argument ('set ?' for help).\n",
- argv[1]);
- return 0;
- } else if (ct->handler) {
- (*ct->handler)(argv[2]);
- printf("%s set to \"%s\".\n", ct->name, (char *)ct->charp);
- } else {
- if (strcmp("off", argv[2])) {
- value = special(argv[2]);
- } else {
- value = _POSIX_VDISABLE;
- }
- *(ct->charp) = (cc_t)value;
- printf("%s character is '%s'.\n", ct->name, control(*(ct->charp)));
- }
- slc_check();
- return 1;
-}
-
- static int
-unsetcmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct setlist *ct;
- struct togglelist *c;
- register char *name;
-
- if (argc < 2) {
- fprintf(stderr,
- "Need an argument to 'unset' command. 'unset ?' for help.\n");
- return 0;
- }
- if (isprefix(argv[1], "?") || isprefix(argv[1], "help")) {
- for (ct = Setlist; ct->name; ct++)
- printf("%-15s %s\n", ct->name, ct->help);
- printf("\n");
- settogglehelp(0);
- printf("%-15s %s\n", "?", "display help information");
- return 0;
- }
-
- argc--;
- argv++;
- while (argc--) {
- name = *argv++;
- ct = getset(name);
- if (ct == 0) {
- c = GETTOGGLE(name);
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('unset ?' for help).\n",
- name);
- return 0;
- } else if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('unset ?' for help).\n",
- name);
- return 0;
- }
- if (c->variable) {
- *c->variable = 0;
- if (c->actionexplanation) {
- printf("%s %s.\n", *c->variable? "Will" : "Won't",
- c->actionexplanation);
- }
- }
- if (c->handler)
- (*c->handler)(0);
- } else if (Ambiguous(ct)) {
- fprintf(stderr, "'%s': ambiguous argument ('unset ?' for help).\n",
- name);
- return 0;
- } else if (ct->handler) {
- (*ct->handler)(0);
- printf("%s reset to \"%s\".\n", ct->name, (char *)ct->charp);
- } else {
- *(ct->charp) = _POSIX_VDISABLE;
- printf("%s character is '%s'.\n", ct->name, control(*(ct->charp)));
- }
- }
- return 1;
-}
-
-/*
- * The following are the data structures and routines for the
- * 'mode' command.
- */
-#ifdef KLUDGELINEMODE
-extern int kludgelinemode;
-
- static void
-dokludgemode()
-{
- kludgelinemode = 1;
- send_wont(TELOPT_LINEMODE, 1);
- send_dont(TELOPT_SGA, 1);
- send_dont(TELOPT_ECHO, 1);
-}
-#endif
-
- static int
-dolinemode()
-{
-#ifdef KLUDGELINEMODE
- if (kludgelinemode)
- send_dont(TELOPT_SGA, 1);
-#endif
- send_will(TELOPT_LINEMODE, 1);
- send_dont(TELOPT_ECHO, 1);
- return 1;
-}
-
- static int
-docharmode()
-{
-#ifdef KLUDGELINEMODE
- if (kludgelinemode)
- send_do(TELOPT_SGA, 1);
- else
-#endif
- send_wont(TELOPT_LINEMODE, 1);
- send_do(TELOPT_ECHO, 1);
- return 1;
-}
-
- static int
-dolmmode(bit, on)
- int bit, on;
-{
- unsigned char c;
- extern int linemode;
-
- if (my_want_state_is_wont(TELOPT_LINEMODE)) {
- printf("?Need to have LINEMODE option enabled first.\n");
- printf("'mode ?' for help.\n");
- return 0;
- }
-
- if (on)
- c = (linemode | bit);
- else
- c = (linemode & ~bit);
- lm_mode(&c, 1, 1);
- return 1;
-}
-
- int
-setmod(bit)
-{
- return dolmmode(bit, 1);
-}
-
- int
-clearmode(bit)
-{
- return dolmmode(bit, 0);
-}
-
-struct modelist {
- char *name; /* command name */
- char *help; /* help string */
- int (*handler)(); /* routine which executes command */
- int needconnect; /* Do we need to be connected to execute? */
- int arg1;
-};
-
-extern int modehelp();
-
-static struct modelist ModeList[] = {
- { "character", "Disable LINEMODE option", docharmode, 1 },
-#ifdef KLUDGELINEMODE
- { "", "(or disable obsolete line-by-line mode)", 0 },
-#endif
- { "line", "Enable LINEMODE option", dolinemode, 1 },
-#ifdef KLUDGELINEMODE
- { "", "(or enable obsolete line-by-line mode)", 0 },
-#endif
- { "", "", 0 },
- { "", "These require the LINEMODE option to be enabled", 0 },
- { "isig", "Enable signal trapping", setmod, 1, MODE_TRAPSIG },
- { "+isig", 0, setmod, 1, MODE_TRAPSIG },
- { "-isig", "Disable signal trapping", clearmode, 1, MODE_TRAPSIG },
- { "edit", "Enable character editing", setmod, 1, MODE_EDIT },
- { "+edit", 0, setmod, 1, MODE_EDIT },
- { "-edit", "Disable character editing", clearmode, 1, MODE_EDIT },
- { "softtabs", "Enable tab expansion", setmod, 1, MODE_SOFT_TAB },
- { "+softtabs", 0, setmod, 1, MODE_SOFT_TAB },
- { "-softtabs", "Disable character editing", clearmode, 1, MODE_SOFT_TAB },
- { "litecho", "Enable literal character echo", setmod, 1, MODE_LIT_ECHO },
- { "+litecho", 0, setmod, 1, MODE_LIT_ECHO },
- { "-litecho", "Disable literal character echo", clearmode, 1, MODE_LIT_ECHO },
- { "help", 0, modehelp, 0 },
-#ifdef KLUDGELINEMODE
- { "kludgeline", 0, dokludgemode, 1 },
-#endif
- { "", "", 0 },
- { "?", "Print help information", modehelp, 0 },
- { 0 },
-};
-
-
- int
-modehelp()
-{
- struct modelist *mt;
-
- printf("format is: 'mode Mode', where 'Mode' is one of:\n\n");
- for (mt = ModeList; mt->name; mt++) {
- if (mt->help) {
- if (*mt->help)
- printf("%-15s %s\n", mt->name, mt->help);
- else
- printf("\n");
- }
- }
- return 0;
-}
-
-#define GETMODECMD(name) (struct modelist *) \
- genget(name, (char **) ModeList, sizeof(struct modelist))
-
- static int
-modecmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct modelist *mt;
-
- if (argc != 2) {
- printf("'mode' command requires an argument\n");
- printf("'mode ?' for help.\n");
- } else if ((mt = GETMODECMD(argv[1])) == 0) {
- fprintf(stderr, "Unknown mode '%s' ('mode ?' for help).\n", argv[1]);
- } else if (Ambiguous(mt)) {
- fprintf(stderr, "Ambiguous mode '%s' ('mode ?' for help).\n", argv[1]);
- } else if (mt->needconnect && !connected) {
- printf("?Need to be connected first.\n");
- printf("'mode ?' for help.\n");
- } else if (mt->handler) {
- return (*mt->handler)(mt->arg1);
- }
- return 0;
-}
-
-/*
- * The following data structures and routines implement the
- * "display" command.
- */
-
- static int
-display(argc, argv)
- int argc;
- char *argv[];
-{
- struct togglelist *tl;
- struct setlist *sl;
-
-#define dotog(tl) if (tl->variable && tl->actionexplanation) { \
- if (*tl->variable) { \
- printf("will"); \
- } else { \
- printf("won't"); \
- } \
- printf(" %s.\n", tl->actionexplanation); \
- }
-
-#define doset(sl) if (sl->name && *sl->name != ' ') { \
- if (sl->handler == 0) \
- printf("%-15s [%s]\n", sl->name, control(*sl->charp)); \
- else \
- printf("%-15s \"%s\"\n", sl->name, (char *)sl->charp); \
- }
-
- if (argc == 1) {
- for (tl = Togglelist; tl->name; tl++) {
- dotog(tl);
- }
- printf("\n");
- for (sl = Setlist; sl->name; sl++) {
- doset(sl);
- }
- } else {
- int i;
-
- for (i = 1; i < argc; i++) {
- sl = getset(argv[i]);
- tl = GETTOGGLE(argv[i]);
- if (Ambiguous(sl) || Ambiguous(tl)) {
- printf("?Ambiguous argument '%s'.\n", argv[i]);
- return 0;
- } else if (!sl && !tl) {
- printf("?Unknown argument '%s'.\n", argv[i]);
- return 0;
- } else {
- if (tl) {
- dotog(tl);
- }
- if (sl) {
- doset(sl);
- }
- }
- }
- }
-/*@*/optionstatus();
-#ifdef ENCRYPTION
- EncryptStatus();
-#endif /* ENCRYPTION */
- return 1;
-#undef doset
-#undef dotog
-}
-
-/*
- * The following are the data structures, and many of the routines,
- * relating to command processing.
- */
-
-/*
- * Set the escape character.
- */
- static int
-setescape(argc, argv)
- int argc;
- char *argv[];
-{
- register char *arg;
- char buf[50];
-
- printf(
- "Deprecated usage - please use 'set escape%s%s' in the future.\n",
- (argc > 2)? " ":"", (argc > 2)? argv[1]: "");
- if (argc > 2)
- arg = argv[1];
- else {
- printf("new escape character: ");
- (void) fgets(buf, sizeof(buf), stdin);
- arg = buf;
- }
- if (arg[0] != '\0')
- escape = arg[0];
- if (!In3270) {
- printf("Escape character is '%s'.\n", control(escape));
- }
- (void) fflush(stdout);
- return 1;
-}
-
- /*VARARGS*/
- static int
-togcrmod()
-{
- crmod = !crmod;
- printf("Deprecated usage - please use 'toggle crmod' in the future.\n");
- printf("%s map carriage return on output.\n", crmod ? "Will" : "Won't");
- (void) fflush(stdout);
- return 1;
-}
-
- /*VARARGS*/
- int
-suspend()
-{
-#ifdef SIGTSTP
- setcommandmode();
- {
- long oldrows, oldcols, newrows, newcols, err;
-
- err = (TerminalWindowSize(&oldrows, &oldcols) == 0) ? 1 : 0;
- (void) kill(0, SIGTSTP);
- /*
- * If we didn't get the window size before the SUSPEND, but we
- * can get them now (?), then send the NAWS to make sure that
- * we are set up for the right window size.
- */
- if (TerminalWindowSize(&newrows, &newcols) && connected &&
- (err || ((oldrows != newrows) || (oldcols != newcols)))) {
- sendnaws();
- }
- }
- /* reget parameters in case they were changed */
- TerminalSaveState();
- setconnmode(0);
-#else
- printf("Suspend is not supported. Try the '!' command instead\n");
-#endif
- return 1;
-}
-
-#if !defined(TN3270)
- /*ARGSUSED*/
- int
-shell(argc, argv)
- int argc;
- char *argv[];
-{
- long oldrows, oldcols, newrows, newcols, err;
-
- setcommandmode();
-
- err = (TerminalWindowSize(&oldrows, &oldcols) == 0) ? 1 : 0;
- switch(vfork()) {
- case -1:
- perror("Fork failed\n");
- break;
-
- case 0:
- {
- /*
- * Fire up the shell in the child.
- */
- register char *shellp, *shellname;
- extern char *strrchr();
-
- shellp = getenv("SHELL");
- if (shellp == NULL)
- shellp = "/bin/sh";
- if ((shellname = strrchr(shellp, '/')) == 0)
- shellname = shellp;
- else
- shellname++;
- if (argc > 1)
- execl(shellp, shellname, "-c", &saveline[1], 0);
- else
- execl(shellp, shellname, 0);
- perror("Execl");
- _exit(1);
- }
- default:
- (void)wait((int *)0); /* Wait for the shell to complete */
-
- if (TerminalWindowSize(&newrows, &newcols) && connected &&
- (err || ((oldrows != newrows) || (oldcols != newcols)))) {
- sendnaws();
- }
- break;
- }
- return 1;
-}
-#else /* !defined(TN3270) */
-extern int shell();
-#endif /* !defined(TN3270) */
-
- /*VARARGS*/
- static int
-bye(argc, argv)
- int argc; /* Number of arguments */
- char *argv[]; /* arguments */
-{
- extern int resettermname;
-
- if (connected) {
- (void) shutdown(net, 2);
- printf("Connection closed.\n");
- (void) NetClose(net);
- connected = 0;
- resettermname = 1;
-#if defined(AUTHENTICATION) || defined(ENCRYPTION)
- auth_encrypt_connect(connected);
-#endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
- /* reset options */
- tninit();
-#if defined(TN3270)
- SetIn3270(); /* Get out of 3270 mode */
-#endif /* defined(TN3270) */
- }
- if ((argc != 2) || (strcmp(argv[1], "fromquit") != 0)) {
- longjmp(toplevel, 1);
- /* NOTREACHED */
- }
- return 1; /* Keep lint, etc., happy */
-}
-
-/*VARARGS*/
- int
-quit()
-{
- (void) call(bye, "bye", "fromquit", 0);
- Exit(0);
- /*NOTREACHED*/
-}
-
-/*VARARGS*/
- int
-logout()
-{
- send_do(TELOPT_LOGOUT, 1);
- (void) netflush();
- return 1;
-}
-
-
-/*
- * The SLC command.
- */
-
-struct slclist {
- char *name;
- char *help;
- void (*handler)();
- int arg;
-};
-
-static void slc_help();
-
-struct slclist SlcList[] = {
- { "export", "Use local special character definitions",
- slc_mode_export, 0 },
- { "import", "Use remote special character definitions",
- slc_mode_import, 1 },
- { "check", "Verify remote special character definitions",
- slc_mode_import, 0 },
- { "help", 0, slc_help, 0 },
- { "?", "Print help information", slc_help, 0 },
- { 0 },
-};
-
- static void
-slc_help()
-{
- struct slclist *c;
-
- for (c = SlcList; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s %s\n", c->name, c->help);
- else
- printf("\n");
- }
- }
-}
-
- static struct slclist *
-getslc(name)
- char *name;
-{
- return (struct slclist *)
- genget(name, (char **) SlcList, sizeof(struct slclist));
-}
-
- static int
-slccmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct slclist *c;
-
- if (argc != 2) {
- fprintf(stderr,
- "Need an argument to 'slc' command. 'slc ?' for help.\n");
- return 0;
- }
- c = getslc(argv[1]);
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('slc ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('slc ?' for help).\n",
- argv[1]);
- return 0;
- }
- (*c->handler)(c->arg);
- slcstate();
- return 1;
-}
-
-/*
- * The ENVIRON command.
- */
-
-struct envlist {
- char *name;
- char *help;
- void (*handler)();
- int narg;
-};
-
-extern struct env_lst *
- env_define P((unsigned char *, unsigned char *));
-extern void
- env_undefine P((unsigned char *)),
- env_export P((unsigned char *)),
- env_unexport P((unsigned char *)),
- env_send P((unsigned char *)),
-#if defined(OLD_ENVIRON) && defined(ENV_HACK)
- env_varval P((unsigned char *)),
-#endif
- env_list P((void));
-static void
- env_help P((void));
-
-struct envlist EnvList[] = {
- { "define", "Define an environment variable",
- (void (*)())env_define, 2 },
- { "undefine", "Undefine an environment variable",
- env_undefine, 1 },
- { "export", "Mark an environment variable for automatic export",
- env_export, 1 },
- { "unexport", "Don't mark an environment variable for automatic export",
- env_unexport, 1 },
- { "send", "Send an environment variable", env_send, 1 },
- { "list", "List the current environment variables",
- env_list, 0 },
-#if defined(OLD_ENVIRON) && defined(ENV_HACK)
- { "varval", "Reverse VAR and VALUE (auto, right, wrong, status)",
- env_varval, 1 },
-#endif
- { "help", 0, env_help, 0 },
- { "?", "Print help information", env_help, 0 },
- { 0 },
-};
-
- static void
-env_help()
-{
- struct envlist *c;
-
- for (c = EnvList; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s %s\n", c->name, c->help);
- else
- printf("\n");
- }
- }
-}
-
- static struct envlist *
-getenvcmd(name)
- char *name;
-{
- return (struct envlist *)
- genget(name, (char **) EnvList, sizeof(struct envlist));
-}
-
- int
-env_cmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct envlist *c;
-
- if (argc < 2) {
- fprintf(stderr,
- "Need an argument to 'environ' command. 'environ ?' for help.\n");
- return 0;
- }
- c = getenvcmd(argv[1]);
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('environ ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('environ ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (c->narg + 2 != argc) {
- fprintf(stderr,
- "Need %s%d argument%s to 'environ %s' command. 'environ ?' for help.\n",
- c->narg < argc + 2 ? "only " : "",
- c->narg, c->narg == 1 ? "" : "s", c->name);
- return 0;
- }
- (*c->handler)(argv[2], argv[3]);
- return 1;
-}
-
-struct env_lst {
- struct env_lst *next; /* pointer to next structure */
- struct env_lst *prev; /* pointer to previous structure */
- unsigned char *var; /* pointer to variable name */
- unsigned char *value; /* pointer to variable value */
- int export; /* 1 -> export with default list of variables */
- int welldefined; /* A well defined variable */
-};
-
-struct env_lst envlisthead;
-
- struct env_lst *
-env_find(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- for (ep = envlisthead.next; ep; ep = ep->next) {
- if (strcmp((char *)ep->var, (char *)var) == 0)
- return(ep);
- }
- return(NULL);
-}
-
- void
-env_init()
-{
- extern char **environ;
- register char **epp, *cp;
- register struct env_lst *ep;
- extern char *strchr();
-
- for (epp = environ; *epp; epp++) {
- if ((cp = strchr(*epp, '='))) {
- *cp = '\0';
- ep = env_define((unsigned char *)*epp,
- (unsigned char *)cp+1);
- ep->export = 0;
- *cp = '=';
- }
- }
- /*
- * Special case for DISPLAY variable. If it is ":0.0" or
- * "unix:0.0", we have to get rid of "unix" and insert our
- * hostname.
- */
- if ((ep = env_find("DISPLAY"))
- && ((*ep->value == ':')
- || (strncmp((char *)ep->value, "unix:", 5) == 0))) {
- char hbuf[256+1];
- char *cp2 = strchr((char *)ep->value, ':');
-
- gethostname(hbuf, 256);
- hbuf[256] = '\0';
- cp = (char *)malloc(strlen(hbuf) + strlen(cp2) + 1);
- sprintf((char *)cp, "%s%s", hbuf, cp2);
- free(ep->value);
- ep->value = (unsigned char *)cp;
- }
- /*
- * If USER is not defined, but LOGNAME is, then add
- * USER with the value from LOGNAME. By default, we
- * don't export the USER variable.
- */
- if ((env_find("USER") == NULL) && (ep = env_find("LOGNAME"))) {
- env_define((unsigned char *)"USER", ep->value);
- env_unexport((unsigned char *)"USER");
- }
- env_export((unsigned char *)"DISPLAY");
- env_export((unsigned char *)"PRINTER");
-}
-
- struct env_lst *
-env_define(var, value)
- unsigned char *var, *value;
-{
- register struct env_lst *ep;
-
- if ((ep = env_find(var))) {
- if (ep->var)
- free(ep->var);
- if (ep->value)
- free(ep->value);
- } else {
- ep = (struct env_lst *)malloc(sizeof(struct env_lst));
- ep->next = envlisthead.next;
- envlisthead.next = ep;
- ep->prev = &envlisthead;
- if (ep->next)
- ep->next->prev = ep;
- }
- ep->welldefined = opt_welldefined(var);
- ep->export = 1;
- ep->var = (unsigned char *)strdup((char *)var);
- ep->value = (unsigned char *)strdup((char *)value);
- return(ep);
-}
-
- void
-env_undefine(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- if ((ep = env_find(var))) {
- ep->prev->next = ep->next;
- if (ep->next)
- ep->next->prev = ep->prev;
- if (ep->var)
- free(ep->var);
- if (ep->value)
- free(ep->value);
- free(ep);
- }
-}
-
- void
-env_export(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- if ((ep = env_find(var)))
- ep->export = 1;
-}
-
- void
-env_unexport(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- if ((ep = env_find(var)))
- ep->export = 0;
-}
-
- void
-env_send(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- if (my_state_is_wont(TELOPT_NEW_ENVIRON)
-#ifdef OLD_ENVIRON
- && my_state_is_wont(TELOPT_OLD_ENVIRON)
-#endif
- ) {
- fprintf(stderr,
- "Cannot send '%s': Telnet ENVIRON option not enabled\n",
- var);
- return;
- }
- ep = env_find(var);
- if (ep == 0) {
- fprintf(stderr, "Cannot send '%s': variable not defined\n",
- var);
- return;
- }
- env_opt_start_info();
- env_opt_add(ep->var);
- env_opt_end(0);
-}
-
- void
-env_list()
-{
- register struct env_lst *ep;
-
- for (ep = envlisthead.next; ep; ep = ep->next) {
- printf("%c %-20s %s\n", ep->export ? '*' : ' ',
- ep->var, ep->value);
- }
-}
-
- unsigned char *
-env_default(init, welldefined)
- int init;
-{
- static struct env_lst *nep = NULL;
-
- if (init) {
- nep = &envlisthead;
- return(NULL);
- }
- if (nep) {
- while ((nep = nep->next)) {
- if (nep->export && (nep->welldefined == welldefined))
- return(nep->var);
- }
- }
- return(NULL);
-}
-
- unsigned char *
-env_getvalue(var)
- unsigned char *var;
-{
- register struct env_lst *ep;
-
- if ((ep = env_find(var)))
- return(ep->value);
- return(NULL);
-}
-
-#if defined(OLD_ENVIRON) && defined(ENV_HACK)
- void
-env_varval(what)
- unsigned char *what;
-{
- extern int old_env_var, old_env_value, env_auto;
- int len = strlen((char *)what);
-
- if (len == 0)
- goto unknown;
-
- if (strncasecmp((char *)what, "status", len) == 0) {
- if (env_auto)
- printf("%s%s", "VAR and VALUE are/will be ",
- "determined automatically\n");
- if (old_env_var == OLD_ENV_VAR)
- printf("VAR and VALUE set to correct definitions\n");
- else
- printf("VAR and VALUE definitions are reversed\n");
- } else if (strncasecmp((char *)what, "auto", len) == 0) {
- env_auto = 1;
- old_env_var = OLD_ENV_VALUE;
- old_env_value = OLD_ENV_VAR;
- } else if (strncasecmp((char *)what, "right", len) == 0) {
- env_auto = 0;
- old_env_var = OLD_ENV_VAR;
- old_env_value = OLD_ENV_VALUE;
- } else if (strncasecmp((char *)what, "wrong", len) == 0) {
- env_auto = 0;
- old_env_var = OLD_ENV_VALUE;
- old_env_value = OLD_ENV_VAR;
- } else {
-unknown:
- printf("Unknown \"varval\" command. (\"auto\", \"right\", \"wrong\", \"status\")\n");
- }
-}
-#endif
-
-#if defined(AUTHENTICATION)
-/*
- * The AUTHENTICATE command.
- */
-
-struct authlist {
- char *name;
- char *help;
- int (*handler)();
- int narg;
-};
-
-extern int
- auth_enable P((char *)),
- auth_disable P((char *)),
- auth_status P((void));
-static int
- auth_help P((void));
-
-struct authlist AuthList[] = {
- { "status", "Display current status of authentication information",
- auth_status, 0 },
- { "disable", "Disable an authentication type ('auth disable ?' for more)",
- auth_disable, 1 },
- { "enable", "Enable an authentication type ('auth enable ?' for more)",
- auth_enable, 1 },
- { "help", 0, auth_help, 0 },
- { "?", "Print help information", auth_help, 0 },
- { 0 },
-};
-
- static int
-auth_help()
-{
- struct authlist *c;
-
- for (c = AuthList; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s %s\n", c->name, c->help);
- else
- printf("\n");
- }
- }
- return 0;
-}
-
- int
-auth_cmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct authlist *c;
-
- if (argc < 2) {
- fprintf(stderr,
- "Need an argument to 'auth' command. 'auth ?' for help.\n");
- return 0;
- }
-
- c = (struct authlist *)
- genget(argv[1], (char **) AuthList, sizeof(struct authlist));
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('auth ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('auth ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (c->narg + 2 != argc) {
- fprintf(stderr,
- "Need %s%d argument%s to 'auth %s' command. 'auth ?' for help.\n",
- c->narg < argc + 2 ? "only " : "",
- c->narg, c->narg == 1 ? "" : "s", c->name);
- return 0;
- }
- return((*c->handler)(argv[2], argv[3]));
-}
-#endif
-
-#ifdef ENCRYPTION
-/*
- * The ENCRYPT command.
- */
-
-struct encryptlist {
- char *name;
- char *help;
- int (*handler)();
- int needconnect;
- int minarg;
- int maxarg;
-};
-
-extern int
- EncryptEnable P((char *, char *)),
- EncryptDisable P((char *, char *)),
- EncryptType P((char *, char *)),
- EncryptStart P((char *)),
- EncryptStartInput P((void)),
- EncryptStartOutput P((void)),
- EncryptStop P((char *)),
- EncryptStopInput P((void)),
- EncryptStopOutput P((void)),
- EncryptStatus P((void));
-static int
- EncryptHelp P((void));
-
-struct encryptlist EncryptList[] = {
- { "enable", "Enable encryption. ('encrypt enable ?' for more)",
- EncryptEnable, 1, 1, 2 },
- { "disable", "Disable encryption. ('encrypt enable ?' for more)",
- EncryptDisable, 0, 1, 2 },
- { "type", "Set encryption type. ('encrypt type ?' for more)",
- EncryptType, 0, 1, 1 },
- { "start", "Start encryption. ('encrypt start ?' for more)",
- EncryptStart, 1, 0, 1 },
- { "stop", "Stop encryption. ('encrypt stop ?' for more)",
- EncryptStop, 1, 0, 1 },
- { "input", "Start encrypting the input stream",
- EncryptStartInput, 1, 0, 0 },
- { "-input", "Stop encrypting the input stream",
- EncryptStopInput, 1, 0, 0 },
- { "output", "Start encrypting the output stream",
- EncryptStartOutput, 1, 0, 0 },
- { "-output", "Stop encrypting the output stream",
- EncryptStopOutput, 1, 0, 0 },
-
- { "status", "Display current status of authentication information",
- EncryptStatus, 0, 0, 0 },
- { "help", 0, EncryptHelp, 0, 0, 0 },
- { "?", "Print help information", EncryptHelp, 0, 0, 0 },
- { 0 },
-};
-
- static int
-EncryptHelp()
-{
- struct encryptlist *c;
-
- for (c = EncryptList; c->name; c++) {
- if (c->help) {
- if (*c->help)
- printf("%-15s %s\n", c->name, c->help);
- else
- printf("\n");
- }
- }
- return 0;
-}
-
- int
-encrypt_cmd(argc, argv)
- int argc;
- char *argv[];
-{
- struct encryptlist *c;
-
- if (argc < 2) {
- fprintf(stderr,
- "Need an argument to 'encrypt' command. 'encrypt ?' for help.\n");
- return 0;
- }
-
- c = (struct encryptlist *)
- genget(argv[1], (char **) EncryptList, sizeof(struct encryptlist));
- if (c == 0) {
- fprintf(stderr, "'%s': unknown argument ('encrypt ?' for help).\n",
- argv[1]);
- return 0;
- }
- if (Ambiguous(c)) {
- fprintf(stderr, "'%s': ambiguous argument ('encrypt ?' for help).\n",
- argv[1]);
- return 0;
- }
- argc -= 2;
- if (argc < c->minarg || argc > c->maxarg) {
- if (c->minarg == c->maxarg) {
- fprintf(stderr, "Need %s%d argument%s ",
- c->minarg < argc ? "only " : "", c->minarg,
- c->minarg == 1 ? "" : "s");
- } else {
- fprintf(stderr, "Need %s%d-%d arguments ",
- c->maxarg < argc ? "only " : "", c->minarg, c->maxarg);
- }
- fprintf(stderr, "to 'encrypt %s' command. 'encrypt ?' for help.\n",
- c->name);
- return 0;
- }
- if (c->needconnect && !connected) {
- if (!(argc && (isprefix(argv[2], "help") || isprefix(argv[2], "?")))) {
- printf("?Need to be connected first.\n");
- return 0;
- }
- }
- return ((*c->handler)(argc > 0 ? argv[2] : 0,
- argc > 1 ? argv[3] : 0,
- argc > 2 ? argv[4] : 0));
-}
-#endif /* ENCRYPTION */
-
-#if defined(unix) && defined(TN3270)
- static void
-filestuff(fd)
- int fd;
-{
- int res;
-
-#ifdef F_GETOWN
- setconnmode(0);
- res = fcntl(fd, F_GETOWN, 0);
- setcommandmode();
-
- if (res == -1) {
- perror("fcntl");
- return;
- }
- printf("\tOwner is %d.\n", res);
-#endif
-
- setconnmode(0);
- res = fcntl(fd, F_GETFL, 0);
- setcommandmode();
-
- if (res == -1) {
- perror("fcntl");
- return;
- }
-#ifdef notdef
- printf("\tFlags are 0x%x: %s\n", res, decodeflags(res));
-#endif
-}
-#endif /* defined(unix) && defined(TN3270) */
-
-/*
- * Print status about the connection.
- */
- /*ARGSUSED*/
- static int
-status(argc, argv)
- int argc;
- char *argv[];
-{
- if (connected) {
- printf("Connected to %s.\n", hostname);
- if ((argc < 2) || strcmp(argv[1], "notmuch")) {
- int mode = getconnmode();
-
- if (my_want_state_is_will(TELOPT_LINEMODE)) {
- printf("Operating with LINEMODE option\n");
- printf("%s line editing\n", (mode&MODE_EDIT) ? "Local" : "No");
- printf("%s catching of signals\n",
- (mode&MODE_TRAPSIG) ? "Local" : "No");
- slcstate();
-#ifdef KLUDGELINEMODE
- } else if (kludgelinemode && my_want_state_is_dont(TELOPT_SGA)) {
- printf("Operating in obsolete linemode\n");
-#endif
- } else {
- printf("Operating in single character mode\n");
- if (localchars)
- printf("Catching signals locally\n");
- }
- printf("%s character echo\n", (mode&MODE_ECHO) ? "Local" : "Remote");
- if (my_want_state_is_will(TELOPT_LFLOW))
- printf("%s flow control\n", (mode&MODE_FLOW) ? "Local" : "No");
-#ifdef ENCRYPTION
- encrypt_display();
-#endif /* ENCRYPTION */
- }
- } else {
- printf("No connection.\n");
- }
-# if !defined(TN3270)
- printf("Escape character is '%s'.\n", control(escape));
- (void) fflush(stdout);
-# else /* !defined(TN3270) */
- if ((!In3270) && ((argc < 2) || strcmp(argv[1], "notmuch"))) {
- printf("Escape character is '%s'.\n", control(escape));
- }
-# if defined(unix)
- if ((argc >= 2) && !strcmp(argv[1], "everything")) {
- printf("SIGIO received %d time%s.\n",
- sigiocount, (sigiocount == 1)? "":"s");
- if (In3270) {
- printf("Process ID %d, process group %d.\n",
- getpid(), getpgrp(getpid()));
- printf("Terminal input:\n");
- filestuff(tin);
- printf("Terminal output:\n");
- filestuff(tout);
- printf("Network socket:\n");
- filestuff(net);
- }
- }
- if (In3270 && transcom) {
- printf("Transparent mode command is '%s'.\n", transcom);
- }
-# endif /* defined(unix) */
- (void) fflush(stdout);
- if (In3270) {
- return 0;
- }
-# endif /* defined(TN3270) */
- return 1;
-}
-
-#ifdef SIGINFO
-/*
- * Function that gets called when SIGINFO is received.
- */
- void
-ayt_status()
-{
- (void) call(status, "status", "notmuch", 0);
-}
-#endif
-
-unsigned long inet_addr();
-
- int
-tn(argc, argv)
- int argc;
- char *argv[];
-{
- register struct hostent *host = 0;
- struct sockaddr_in sin;
- struct servent *sp = 0;
- unsigned long temp;
- extern char *inet_ntoa();
-#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
- char *srp = 0, *strrchr();
- unsigned long sourceroute(), srlen;
-#endif
- char *cmd, *hostp = 0, *portp = 0, *user = 0;
-
- /* clear the socket address prior to use */
- memset((char *)&sin, 0, sizeof(sin));
-
- if (connected) {
- printf("?Already connected to %s\n", hostname);
- setuid(getuid());
- return 0;
- }
- if (argc < 2) {
- (void) strcpy(line, "open ");
- printf("(to) ");
- (void) fgets(&line[strlen(line)], sizeof(line) - strlen(line), stdin);
- makeargv();
- argc = margc;
- argv = margv;
- }
- cmd = *argv;
- --argc; ++argv;
- while (argc) {
- if (strcmp(*argv, "help") == 0 || isprefix(*argv, "?"))
- goto usage;
- if (strcmp(*argv, "-l") == 0) {
- --argc; ++argv;
- if (argc == 0)
- goto usage;
- user = *argv++;
- --argc;
- continue;
- }
- if (strcmp(*argv, "-a") == 0) {
- --argc; ++argv;
- autologin = 1;
- continue;
- }
- if (hostp == 0) {
- hostp = *argv++;
- --argc;
- continue;
- }
- if (portp == 0) {
- portp = *argv++;
- --argc;
- continue;
- }
- usage:
- printf("usage: %s [-l user] [-a] host-name [port]\n", cmd);
- setuid(getuid());
- return 0;
- }
- if (hostp == 0)
- goto usage;
-
-#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
- if (hostp[0] == '@' || hostp[0] == '!') {
- if ((hostname = strrchr(hostp, ':')) == NULL)
- hostname = strrchr(hostp, '@');
- hostname++;
- srp = 0;
- temp = sourceroute(hostp, &srp, &srlen);
- if (temp == 0) {
- herror(srp);
- setuid(getuid());
- return 0;
- } else if (temp == -1) {
- printf("Bad source route option: %s\n", hostp);
- setuid(getuid());
- return 0;
- } else {
- sin.sin_addr.s_addr = temp;
- sin.sin_family = AF_INET;
- }
- } else {
-#endif
- temp = inet_addr(hostp);
- if (temp != INADDR_NONE) {
- sin.sin_addr.s_addr = temp;
- sin.sin_family = AF_INET;
- host = gethostbyaddr((char *)&temp, sizeof(temp), AF_INET);
- if (host)
- (void) strncpy(_hostname, host->h_name, sizeof(_hostname));
- else
- (void) strncpy(_hostname, hostp, sizeof(_hostname));
- _hostname[sizeof(_hostname)-1] = '\0';
- hostname = _hostname;
- } else {
- host = gethostbyname(hostp);
- if (host) {
- sin.sin_family = host->h_addrtype;
-#if defined(h_addr) /* In 4.3, this is a #define */
- memmove((caddr_t)&sin.sin_addr,
- host->h_addr_list[0], host->h_length);
-#else /* defined(h_addr) */
- memmove((caddr_t)&sin.sin_addr, host->h_addr, host->h_length);
-#endif /* defined(h_addr) */
- strncpy(_hostname, host->h_name, sizeof(_hostname));
- _hostname[sizeof(_hostname)-1] = '\0';
- hostname = _hostname;
- } else {
- herror(hostp);
- setuid(getuid());
- return 0;
- }
- }
-#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
- }
-#endif
- if (portp) {
- if (*portp == '-') {
- portp++;
- telnetport = 1;
- } else
- telnetport = 0;
- sin.sin_port = atoi(portp);
- if (sin.sin_port == 0) {
- sp = getservbyname(portp, "tcp");
- if (sp)
- sin.sin_port = sp->s_port;
- else {
- printf("%s: bad port number\n", portp);
- setuid(getuid());
- return 0;
- }
- } else {
-#if !defined(htons)
- u_short htons P((unsigned short));
-#endif /* !defined(htons) */
- sin.sin_port = htons(sin.sin_port);
- }
- } else {
- if (sp == 0) {
- sp = getservbyname("telnet", "tcp");
- if (sp == 0) {
- fprintf(stderr, "telnet: tcp/telnet: unknown service\n");
- setuid(getuid());
- return 0;
- }
- sin.sin_port = sp->s_port;
- }
- telnetport = 1;
- }
- printf("Trying %s...\n", inet_ntoa(sin.sin_addr));
- do {
- net = socket(AF_INET, SOCK_STREAM, 0);
- setuid(getuid());
- if (net < 0) {
- perror("telnet: socket");
- return 0;
- }
-#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
- if (srp && setsockopt(net, IPPROTO_IP, IP_OPTIONS, (char *)srp, srlen) < 0)
- perror("setsockopt (IP_OPTIONS)");
-#endif
-#if defined(IPPROTO_IP) && defined(IP_TOS)
- {
-# if defined(HAS_GETTOS)
- struct tosent *tp;
- if (tos < 0 && (tp = gettosbyname("telnet", "tcp")))
- tos = tp->t_tos;
-# endif
- if (tos < 0)
- tos = 020; /* Low Delay bit */
- if (tos
- && (setsockopt(net, IPPROTO_IP, IP_TOS,
- (char *)&tos, sizeof(int)) < 0)
- && (errno != ENOPROTOOPT))
- perror("telnet: setsockopt (IP_TOS) (ignored)");
- }
-#endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
-
- if (debug && SetSockOpt(net, SOL_SOCKET, SO_DEBUG, 1) < 0) {
- perror("setsockopt (SO_DEBUG)");
- }
-
- if (connect(net, (struct sockaddr *)&sin, sizeof (sin)) < 0) {
-#if defined(h_addr) /* In 4.3, this is a #define */
- if (host && host->h_addr_list[1]) {
- int oerrno = errno;
-
- fprintf(stderr, "telnet: connect to address %s: ",
- inet_ntoa(sin.sin_addr));
- errno = oerrno;
- perror((char *)0);
- host->h_addr_list++;
- memmove((caddr_t)&sin.sin_addr,
- host->h_addr_list[0], host->h_length);
- (void) NetClose(net);
- continue;
- }
-#endif /* defined(h_addr) */
- perror("telnet: Unable to connect to remote host");
- return 0;
- }
- connected++;
-#if defined(AUTHENTICATION) || defined(ENCRYPTION)
- auth_encrypt_connect(connected);
-#endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
- } while (connected == 0);
- cmdrc(hostp, hostname);
- if (autologin && user == NULL) {
- struct passwd *pw;
-
- user = getenv("USER");
- if (user == NULL ||
- ((pw = getpwnam(user)) && pw->pw_uid != getuid())) {
- if ((pw = getpwuid(getuid())))
- user = pw->pw_name;
- else
- user = NULL;
- }
- }
- if (user) {
- env_define((unsigned char *)"USER", (unsigned char *)user);
- env_export((unsigned char *)"USER");
- }
- (void) call(status, "status", "notmuch", 0);
- if (setjmp(peerdied) == 0)
- telnet(user);
- (void) NetClose(net);
- ExitString("Connection closed by foreign host.\n",1);
- /*NOTREACHED*/
-}
-
-#define HELPINDENT (sizeof ("connect"))
-
-static char
- openhelp[] = "connect to a site",
- closehelp[] = "close current connection",
- logouthelp[] = "forcibly logout remote user and close the connection",
- quithelp[] = "exit telnet",
- statushelp[] = "print status information",
- helphelp[] = "print help information",
- sendhelp[] = "transmit special characters ('send ?' for more)",
- sethelp[] = "set operating parameters ('set ?' for more)",
- unsethelp[] = "unset operating parameters ('unset ?' for more)",
- togglestring[] ="toggle operating parameters ('toggle ?' for more)",
- slchelp[] = "change state of special charaters ('slc ?' for more)",
- displayhelp[] = "display operating parameters",
-#if defined(TN3270) && defined(unix)
- transcomhelp[] = "specify Unix command for transparent mode pipe",
-#endif /* defined(TN3270) && defined(unix) */
-#if defined(AUTHENTICATION)
- authhelp[] = "turn on (off) authentication ('auth ?' for more)",
-#endif
-#ifdef ENCRYPTION
- encrypthelp[] = "turn on (off) encryption ('encrypt ?' for more)",
-#endif /* ENCRYPTION */
-#if defined(unix)
- zhelp[] = "suspend telnet",
-#endif /* defined(unix) */
-#if defined(SKEY)
- skeyhelp[] = "compute response to s/key challenge",
-#endif
- shellhelp[] = "invoke a subshell",
- envhelp[] = "change environment variables ('environ ?' for more)",
- modestring[] = "try to enter line or character mode ('mode ?' for more)";
-
-static Command cmdtab[] = {
- { "close", closehelp, bye, 1 },
- { "logout", logouthelp, logout, 1 },
- { "display", displayhelp, display, 0 },
- { "mode", modestring, modecmd, 0 },
- { "open", openhelp, tn, 0 },
- { "quit", quithelp, quit, 0 },
- { "send", sendhelp, sendcmd, 0 },
- { "set", sethelp, setcmd, 0 },
- { "unset", unsethelp, unsetcmd, 0 },
- { "status", statushelp, status, 0 },
- { "toggle", togglestring, toggle, 0 },
- { "slc", slchelp, slccmd, 0 },
-#if defined(TN3270) && defined(unix)
- { "transcom", transcomhelp, settranscom, 0 },
-#endif /* defined(TN3270) && defined(unix) */
-#if defined(AUTHENTICATION)
- { "auth", authhelp, auth_cmd, 0 },
-#endif
-#ifdef ENCRYPTION
- { "encrypt", encrypthelp, encrypt_cmd, 0 },
-#endif /* ENCRYPTION */
-#if defined(unix)
- { "z", zhelp, suspend, 0 },
-#endif /* defined(unix) */
-#if defined(TN3270)
- { "!", shellhelp, shell, 1 },
-#else
- { "!", shellhelp, shell, 0 },
-#endif
- { "environ", envhelp, env_cmd, 0 },
- { "?", helphelp, help, 0 },
-#if defined(SKEY)
- { "skey", skeyhelp, skey_calc, 0 },
-#endif
- { 0, 0, 0, 0 }
-};
-
-static char crmodhelp[] = "deprecated command -- use 'toggle crmod' instead";
-static char escapehelp[] = "deprecated command -- use 'set escape' instead";
-
-static Command cmdtab2[] = {
- { "help", 0, help, 0 },
- { "escape", escapehelp, setescape, 0 },
- { "crmod", crmodhelp, togcrmod, 0 },
- { 0, 0, 0, 0 }
-};
-
-
-/*
- * Call routine with argc, argv set from args (terminated by 0).
- */
-
- /*VARARGS1*/
- static int
-call(va_alist)
- va_dcl
-{
- va_list ap;
- typedef int (*intrtn_t)();
- intrtn_t routine;
- char *args[100];
- int argno = 0;
-
- va_start(ap);
- routine = (va_arg(ap, intrtn_t));
- while ((args[argno++] = va_arg(ap, char *)) != 0) {
- ;
- }
- va_end(ap);
- return (*routine)(argno-1, args);
-}
-
-
- static Command *
-getcmd(name)
- char *name;
-{
- Command *cm;
-
- if ((cm = (Command *) genget(name, (char **) cmdtab, sizeof(Command))))
- return cm;
- return (Command *) genget(name, (char **) cmdtab2, sizeof(Command));
-}
-
- void
-command(top, tbuf, cnt)
- int top;
- char *tbuf;
- int cnt;
-{
- register Command *c;
-
- setcommandmode();
- if (!top) {
- putchar('\n');
-#if defined(unix)
- } else {
- (void) signal(SIGINT, SIG_DFL);
- (void) signal(SIGQUIT, SIG_DFL);
-#endif /* defined(unix) */
- }
- for (;;) {
- if (rlogin == _POSIX_VDISABLE)
- printf("%s> ", prompt);
- if (tbuf) {
- register char *cp;
- cp = line;
- while (cnt > 0 && (*cp++ = *tbuf++) != '\n')
- cnt--;
- tbuf = 0;
- if (cp == line || *--cp != '\n' || cp == line)
- goto getline;
- *cp = '\0';
- if (rlogin == _POSIX_VDISABLE)
- printf("%s\n", line);
- } else {
- getline:
- if (rlogin != _POSIX_VDISABLE)
- printf("%s> ", prompt);
- if (fgets(line, sizeof(line), stdin) == NULL) {
- if (feof(stdin) || ferror(stdin)) {
- (void) quit();
- /*NOTREACHED*/
- }
- break;
- }
- }
- if (line[0] == 0)
- break;
- makeargv();
- if (margv[0] == 0) {
- break;
- }
- c = getcmd(margv[0]);
- if (Ambiguous(c)) {
- printf("?Ambiguous command\n");
- continue;
- }
- if (c == 0) {
- printf("?Invalid command\n");
- continue;
- }
- if (c->needconnect && !connected) {
- printf("?Need to be connected first.\n");
- continue;
- }
- if ((*c->handler)(margc, margv)) {
- break;
- }
- }
- if (!top) {
- if (!connected) {
- longjmp(toplevel, 1);
- /*NOTREACHED*/
- }
-#if defined(TN3270)
- if (shell_active == 0) {
- setconnmode(0);
- }
-#else /* defined(TN3270) */
- setconnmode(0);
-#endif /* defined(TN3270) */
- }
-}
-
-/*
- * Help command.
- */
- static int
-help(argc, argv)
- int argc;
- char *argv[];
-{
- register Command *c;
-
- if (argc == 1) {
- printf("Commands may be abbreviated. Commands are:\n\n");
- for (c = cmdtab; c->name; c++)
- if (c->help) {
- printf("%-*s\t%s\n", HELPINDENT, c->name,
- c->help);
- }
- }
- else while (--argc > 0) {
- register char *arg;
- arg = *++argv;
- c = getcmd(arg);
- if (Ambiguous(c))
- printf("?Ambiguous help command %s\n", arg);
- else if (c == (Command *)0)
- printf("?Invalid help command %s\n", arg);
- else
- printf("%s\n", c->help);
- }
- return(0);
-}
-
-static char *rcname = 0;
-static char rcbuf[128];
-
- void
-cmdrc(m1, m2)
- char *m1, *m2;
-{
- register Command *c;
- FILE *rcfile;
- int gotmachine = 0;
- int l1 = strlen(m1);
- int l2 = strlen(m2);
- char m1save[64];
-
- if (skiprc)
- return;
-
- strcpy(m1save, m1);
- m1 = m1save;
-
- if (rcname == 0) {
- rcname = getenv("HOME");
- if (rcname && (strlen(rcname) + 10) < sizeof(rcbuf))
- strcpy(rcbuf, rcname);
- else
- rcbuf[0] = '\0';
- strcat(rcbuf, "/.telnetrc");
- rcname = rcbuf;
- }
-
- if ((rcfile = fopen(rcname, "r")) == 0) {
- return;
- }
-
- for (;;) {
- if (fgets(line, sizeof(line), rcfile) == NULL)
- break;
- if (line[0] == 0)
- break;
- if (line[0] == '#')
- continue;
- if (gotmachine) {
- if (!isspace(line[0]))
- gotmachine = 0;
- }
- if (gotmachine == 0) {
- if (isspace(line[0]))
- continue;
- if (strncasecmp(line, m1, l1) == 0)
- strncpy(line, &line[l1], sizeof(line) - l1);
- else if (strncasecmp(line, m2, l2) == 0)
- strncpy(line, &line[l2], sizeof(line) - l2);
- else if (strncasecmp(line, "DEFAULT", 7) == 0)
- strncpy(line, &line[7], sizeof(line) - 7);
- else
- continue;
- if (line[0] != ' ' && line[0] != '\t' && line[0] != '\n')
- continue;
- gotmachine = 1;
- }
- makeargv();
- if (margv[0] == 0)
- continue;
- c = getcmd(margv[0]);
- if (Ambiguous(c)) {
- printf("?Ambiguous command: %s\n", margv[0]);
- continue;
- }
- if (c == 0) {
- printf("?Invalid command: %s\n", margv[0]);
- continue;
- }
- /*
- * This should never happen...
- */
- if (c->needconnect && !connected) {
- printf("?Need to be connected first for %s.\n", margv[0]);
- continue;
- }
- (*c->handler)(margc, margv);
- }
- fclose(rcfile);
-}
-
-#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
-
-/*
- * Source route is handed in as
- * [!]@hop1@hop2...[@|:]dst
- * If the leading ! is present, it is a
- * strict source route, otherwise it is
- * assmed to be a loose source route.
- *
- * We fill in the source route option as
- * hop1,hop2,hop3...dest
- * and return a pointer to hop1, which will
- * be the address to connect() to.
- *
- * Arguments:
- * arg: pointer to route list to decipher
- *
- * cpp: If *cpp is not equal to NULL, this is a
- * pointer to a pointer to a character array
- * that should be filled in with the option.
- *
- * lenp: pointer to an integer that contains the
- * length of *cpp if *cpp != NULL.
- *
- * Return values:
- *
- * Returns the address of the host to connect to. If the
- * return value is -1, there was a syntax error in the
- * option, either unknown characters, or too many hosts.
- * If the return value is 0, one of the hostnames in the
- * path is unknown, and *cpp is set to point to the bad
- * hostname.
- *
- * *cpp: If *cpp was equal to NULL, it will be filled
- * in with a pointer to our static area that has
- * the option filled in. This will be 32bit aligned.
- *
- * *lenp: This will be filled in with how long the option
- * pointed to by *cpp is.
- *
- */
- unsigned long
-sourceroute(arg, cpp, lenp)
- char *arg;
- char **cpp;
- int *lenp;
-{
- static char lsr[44];
-#ifdef sysV88
- static IOPTN ipopt;
-#endif
- char *cp, *cp2, *lsrp, *lsrep;
- register int tmp;
- struct in_addr sin_addr;
- register struct hostent *host = 0;
- register char c;
-
- /*
- * Verify the arguments, and make sure we have
- * at least 7 bytes for the option.
- */
- if (cpp == NULL || lenp == NULL)
- return((unsigned long)-1);
- if (*cpp != NULL && *lenp < 7)
- return((unsigned long)-1);
- /*
- * Decide whether we have a buffer passed to us,
- * or if we need to use our own static buffer.
- */
- if (*cpp) {
- lsrp = *cpp;
- lsrep = lsrp + *lenp;
- } else {
- *cpp = lsrp = lsr;
- lsrep = lsrp + 44;
- }
-
- cp = arg;
-
- /*
- * Next, decide whether we have a loose source
- * route or a strict source route, and fill in
- * the begining of the option.
- */
-#ifndef sysV88
- if (*cp == '!') {
- cp++;
- *lsrp++ = IPOPT_SSRR;
- } else
- *lsrp++ = IPOPT_LSRR;
-#else
- if (*cp == '!') {
- cp++;
- ipopt.io_type = IPOPT_SSRR;
- } else
- ipopt.io_type = IPOPT_LSRR;
-#endif
-
- if (*cp != '@')
- return((unsigned long)-1);
-
-#ifndef sysV88
- lsrp++; /* skip over length, we'll fill it in later */
- *lsrp++ = 4;
-#endif
-
- cp++;
-
- sin_addr.s_addr = 0;
-
- for (c = 0;;) {
- if (c == ':')
- cp2 = 0;
- else for (cp2 = cp; (c = *cp2); cp2++) {
- if (c == ',') {
- *cp2++ = '\0';
- if (*cp2 == '@')
- cp2++;
- } else if (c == '@') {
- *cp2++ = '\0';
- } else if (c == ':') {
- *cp2++ = '\0';
- } else
- continue;
- break;
- }
- if (!c)
- cp2 = 0;
-
- if ((tmp = inet_addr(cp)) != -1) {
- sin_addr.s_addr = tmp;
- } else if ((host = gethostbyname(cp))) {
-#if defined(h_addr)
- memmove((caddr_t)&sin_addr,
- host->h_addr_list[0], host->h_length);
-#else
- memmove((caddr_t)&sin_addr, host->h_addr, host->h_length);
-#endif
- } else {
- *cpp = cp;
- return(0);
- }
- memmove(lsrp, (char *)&sin_addr, 4);
- lsrp += 4;
- if (cp2)
- cp = cp2;
- else
- break;
- /*
- * Check to make sure there is space for next address
- */
- if (lsrp + 4 > lsrep)
- return((unsigned long)-1);
- }
-#ifndef sysV88
- if ((*(*cpp+IPOPT_OLEN) = lsrp - *cpp) <= 7) {
- *cpp = 0;
- *lenp = 0;
- return((unsigned long)-1);
- }
- *lsrp++ = IPOPT_NOP; /* 32 bit word align it */
- *lenp = lsrp - *cpp;
-#else
- ipopt.io_len = lsrp - *cpp;
- if (ipopt.io_len <= 5) { /* Is 3 better ? */
- *cpp = 0;
- *lenp = 0;
- return((unsigned long)-1);
- }
- *lenp = sizeof(ipopt);
- *cpp = (char *) &ipopt;
-#endif
- return(sin_addr.s_addr);
-}
-#endif
diff --git a/crypto/telnet/telnet/defines.h b/crypto/telnet/telnet/defines.h
deleted file mode 100644
index 0978173ea995..000000000000
--- a/crypto/telnet/telnet/defines.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)defines.h 8.1 (Berkeley) 6/6/93
- */
-
-#define settimer(x) clocks.x = clocks.system++
-
-#if !defined(TN3270)
-
-#define SetIn3270()
-
-#endif /* !defined(TN3270) */
-
-#define NETADD(c) { *netoring.supply = c; ring_supplied(&netoring, 1); }
-#define NET2ADD(c1,c2) { NETADD(c1); NETADD(c2); }
-#define NETBYTES() (ring_full_count(&netoring))
-#define NETROOM() (ring_empty_count(&netoring))
-
-#define TTYADD(c) if (!(SYNCHing||flushout)) { \
- *ttyoring.supply = c; \
- ring_supplied(&ttyoring, 1); \
- }
-#define TTYBYTES() (ring_full_count(&ttyoring))
-#define TTYROOM() (ring_empty_count(&ttyoring))
-
-/* Various modes */
-#define MODE_LOCAL_CHARS(m) ((m)&(MODE_EDIT|MODE_TRAPSIG))
-#define MODE_LOCAL_ECHO(m) ((m)&MODE_ECHO)
-#define MODE_COMMAND_LINE(m) ((m)==-1)
-
-#define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */
diff --git a/crypto/telnet/telnet/externs.h b/crypto/telnet/telnet/externs.h
deleted file mode 100644
index a834c61c39df..000000000000
--- a/crypto/telnet/telnet/externs.h
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)externs.h 8.3 (Berkeley) 5/30/95
- */
-
-#ifndef BSD
-# define BSD 43
-#endif
-
-/*
- * ucb stdio.h defines BSD as something wierd
- */
-#if defined(sun) && defined(__svr4__)
-#define BSD 43
-#endif
-
-#ifndef USE_TERMIO
-# if BSD > 43 || defined(SYSV_TERMIO)
-# define USE_TERMIO
-# endif
-#endif
-
-#include <stdio.h>
-#include <setjmp.h>
-#if defined(CRAY) && !defined(NO_BSD_SETJMP)
-#include <bsdsetjmp.h>
-#endif
-#ifndef FILIO_H
-#include <sys/ioctl.h>
-#else
-#include <sys/filio.h>
-#endif
-#ifdef CRAY
-# include <errno.h>
-#endif /* CRAY */
-#ifdef USE_TERMIO
-# ifndef VINTR
-# ifdef SYSV_TERMIO
-# include <sys/termio.h>
-# else
-# include <sys/termios.h>
-# define termio termios
-# endif
-# endif
-#endif
-#if defined(NO_CC_T) || !defined(USE_TERMIO)
-# if !defined(USE_TERMIO)
-typedef char cc_t;
-# else
-typedef unsigned char cc_t;
-# endif
-#endif
-
-#ifndef NO_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-
-#ifndef _POSIX_VDISABLE
-# ifdef sun
-# include <sys/param.h> /* pick up VDISABLE definition, mayby */
-# endif
-# ifdef VDISABLE
-# define _POSIX_VDISABLE VDISABLE
-# else
-# define _POSIX_VDISABLE ((cc_t)'\377')
-# endif
-#endif
-
-#define SUBBUFSIZE 256
-
-#ifndef CRAY
-extern int errno; /* outside this world */
-#endif /* !CRAY */
-
-#if !defined(P)
-# ifdef __STDC__
-# define P(x) x
-# else
-# define P(x) ()
-# endif
-#endif
-
-extern int
- autologin, /* Autologin enabled */
- skiprc, /* Don't process the ~/.telnetrc file */
- eight, /* use eight bit mode (binary in and/or out */
- flushout, /* flush output */
- connected, /* Are we connected to the other side? */
- globalmode, /* Mode tty should be in */
- In3270, /* Are we in 3270 mode? */
- telnetport, /* Are we connected to the telnet port? */
- localflow, /* Flow control handled locally */
- restartany, /* If flow control, restart output on any character */
- localchars, /* we recognize interrupt/quit */
- donelclchars, /* the user has set "localchars" */
- showoptions,
- net, /* Network file descriptor */
- tin, /* Terminal input file descriptor */
- tout, /* Terminal output file descriptor */
- crlf, /* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */
- autoflush, /* flush output when interrupting? */
- autosynch, /* send interrupt characters with SYNCH? */
- SYNCHing, /* Is the stream in telnet SYNCH mode? */
- donebinarytoggle, /* the user has put us in binary */
- dontlecho, /* do we suppress local echoing right now? */
- crmod,
- netdata, /* Print out network data flow */
- prettydump, /* Print "netdata" output in user readable format */
-#if defined(unix)
-#if defined(TN3270)
- cursesdata, /* Print out curses data flow */
- apitrace, /* Trace API transactions */
-#endif /* defined(TN3270) */
- termdata, /* Print out terminal data flow */
-#endif /* defined(unix) */
- debug, /* Debug level */
- clienteof; /* Client received EOF */
-
-extern cc_t escape; /* Escape to command mode */
-extern cc_t rlogin; /* Rlogin mode escape character */
-#ifdef KLUDGELINEMODE
-extern cc_t echoc; /* Toggle local echoing */
-#endif
-
-extern char
- *prompt; /* Prompt for command. */
-
-extern char
- doopt[],
- dont[],
- will[],
- wont[],
- options[], /* All the little options */
- *hostname; /* Who are we connected to? */
-#ifdef ENCRYPTION
-extern void (*encrypt_output) P((unsigned char *, int));
-extern int (*decrypt_input) P((int));
-#endif /* ENCRYPTION */
-
-/*
- * We keep track of each side of the option negotiation.
- */
-
-#define MY_STATE_WILL 0x01
-#define MY_WANT_STATE_WILL 0x02
-#define MY_STATE_DO 0x04
-#define MY_WANT_STATE_DO 0x08
-
-/*
- * Macros to check the current state of things
- */
-
-#define my_state_is_do(opt) (options[opt]&MY_STATE_DO)
-#define my_state_is_will(opt) (options[opt]&MY_STATE_WILL)
-#define my_want_state_is_do(opt) (options[opt]&MY_WANT_STATE_DO)
-#define my_want_state_is_will(opt) (options[opt]&MY_WANT_STATE_WILL)
-
-#define my_state_is_dont(opt) (!my_state_is_do(opt))
-#define my_state_is_wont(opt) (!my_state_is_will(opt))
-#define my_want_state_is_dont(opt) (!my_want_state_is_do(opt))
-#define my_want_state_is_wont(opt) (!my_want_state_is_will(opt))
-
-#define set_my_state_do(opt) {options[opt] |= MY_STATE_DO;}
-#define set_my_state_will(opt) {options[opt] |= MY_STATE_WILL;}
-#define set_my_want_state_do(opt) {options[opt] |= MY_WANT_STATE_DO;}
-#define set_my_want_state_will(opt) {options[opt] |= MY_WANT_STATE_WILL;}
-
-#define set_my_state_dont(opt) {options[opt] &= ~MY_STATE_DO;}
-#define set_my_state_wont(opt) {options[opt] &= ~MY_STATE_WILL;}
-#define set_my_want_state_dont(opt) {options[opt] &= ~MY_WANT_STATE_DO;}
-#define set_my_want_state_wont(opt) {options[opt] &= ~MY_WANT_STATE_WILL;}
-
-/*
- * Make everything symetrical
- */
-
-#define HIS_STATE_WILL MY_STATE_DO
-#define HIS_WANT_STATE_WILL MY_WANT_STATE_DO
-#define HIS_STATE_DO MY_STATE_WILL
-#define HIS_WANT_STATE_DO MY_WANT_STATE_WILL
-
-#define his_state_is_do my_state_is_will
-#define his_state_is_will my_state_is_do
-#define his_want_state_is_do my_want_state_is_will
-#define his_want_state_is_will my_want_state_is_do
-
-#define his_state_is_dont my_state_is_wont
-#define his_state_is_wont my_state_is_dont
-#define his_want_state_is_dont my_want_state_is_wont
-#define his_want_state_is_wont my_want_state_is_dont
-
-#define set_his_state_do set_my_state_will
-#define set_his_state_will set_my_state_do
-#define set_his_want_state_do set_my_want_state_will
-#define set_his_want_state_will set_my_want_state_do
-
-#define set_his_state_dont set_my_state_wont
-#define set_his_state_wont set_my_state_dont
-#define set_his_want_state_dont set_my_want_state_wont
-#define set_his_want_state_wont set_my_want_state_dont
-
-
-extern FILE
- *NetTrace; /* Where debugging output goes */
-extern unsigned char
- NetTraceFile[]; /* Name of file where debugging output goes */
-extern void
- SetNetTrace P((char *)); /* Function to change where debugging goes */
-
-extern jmp_buf
- peerdied,
- toplevel; /* For error conditions. */
-
-extern void
- command P((int, char *, int)),
- Dump P((int, unsigned char *, int)),
- ExitString P((char *, int)),
- init_3270 P((void)),
- printoption P((char *, int, int)),
- printsub P((int, unsigned char *, int)),
- sendnaws P((void)),
- setconnmode P((int)),
- setcommandmode P((void)),
- setneturg P((void)),
- sys_telnet_init P((void)),
- telnet P((char *)),
- tel_enter_binary P((int)),
- TerminalFlushOutput P((void)),
- TerminalNewMode P((int)),
- TerminalRestoreState P((void)),
- TerminalSaveState P((void)),
- tninit P((void)),
- upcase P((char *)),
- willoption P((int)),
- wontoption P((int));
-
-extern void
- send_do P((int, int)),
- send_dont P((int, int)),
- send_will P((int, int)),
- send_wont P((int, int));
-
-extern void
- lm_will P((unsigned char *, int)),
- lm_wont P((unsigned char *, int)),
- lm_do P((unsigned char *, int)),
- lm_dont P((unsigned char *, int)),
- lm_mode P((unsigned char *, int, int));
-
-extern void
- slc_init P((void)),
- slcstate P((void)),
- slc_mode_export P((void)),
- slc_mode_import P((int)),
- slc_import P((int)),
- slc_export P((void)),
- slc P((unsigned char *, int)),
- slc_check P((void)),
- slc_start_reply P((void)),
- slc_add_reply P((int, int, int)),
- slc_end_reply P((void));
-extern int
- NetClose P((int)),
- netflush P((void)),
- SetSockOpt P((int, int, int, int)),
- slc_update P((void)),
- telrcv P((void)),
- TerminalWrite P((char *, int)),
- TerminalAutoFlush P((void)),
- ttyflush P((int));
-
-extern void
- env_opt P((unsigned char *, int)),
- env_opt_start P((void)),
- env_opt_start_info P((void)),
- env_opt_add P((unsigned char *)),
- env_opt_end P((int));
-
-extern unsigned char
- *env_default P((int, int)),
- *env_getvalue P((unsigned char *));
-
-extern int
- get_status P((void)),
- dosynch P((void));
-
-extern cc_t
- *tcval P((int));
-
-#ifndef USE_TERMIO
-
-extern struct tchars ntc;
-extern struct ltchars nltc;
-extern struct sgttyb nttyb;
-
-# define termEofChar ntc.t_eofc
-# define termEraseChar nttyb.sg_erase
-# define termFlushChar nltc.t_flushc
-# define termIntChar ntc.t_intrc
-# define termKillChar nttyb.sg_kill
-# define termLiteralNextChar nltc.t_lnextc
-# define termQuitChar ntc.t_quitc
-# define termSuspChar nltc.t_suspc
-# define termRprntChar nltc.t_rprntc
-# define termWerasChar nltc.t_werasc
-# define termStartChar ntc.t_startc
-# define termStopChar ntc.t_stopc
-# define termForw1Char ntc.t_brkc
-extern cc_t termForw2Char;
-extern cc_t termAytChar;
-
-# define termEofCharp (cc_t *)&ntc.t_eofc
-# define termEraseCharp (cc_t *)&nttyb.sg_erase
-# define termFlushCharp (cc_t *)&nltc.t_flushc
-# define termIntCharp (cc_t *)&ntc.t_intrc
-# define termKillCharp (cc_t *)&nttyb.sg_kill
-# define termLiteralNextCharp (cc_t *)&nltc.t_lnextc
-# define termQuitCharp (cc_t *)&ntc.t_quitc
-# define termSuspCharp (cc_t *)&nltc.t_suspc
-# define termRprntCharp (cc_t *)&nltc.t_rprntc
-# define termWerasCharp (cc_t *)&nltc.t_werasc
-# define termStartCharp (cc_t *)&ntc.t_startc
-# define termStopCharp (cc_t *)&ntc.t_stopc
-# define termForw1Charp (cc_t *)&ntc.t_brkc
-# define termForw2Charp (cc_t *)&termForw2Char
-# define termAytCharp (cc_t *)&termAytChar
-
-# else
-
-extern struct termio new_tc;
-
-# define termEofChar new_tc.c_cc[VEOF]
-# define termEraseChar new_tc.c_cc[VERASE]
-# define termIntChar new_tc.c_cc[VINTR]
-# define termKillChar new_tc.c_cc[VKILL]
-# define termQuitChar new_tc.c_cc[VQUIT]
-
-# ifndef VSUSP
-extern cc_t termSuspChar;
-# else
-# define termSuspChar new_tc.c_cc[VSUSP]
-# endif
-# if defined(VFLUSHO) && !defined(VDISCARD)
-# define VDISCARD VFLUSHO
-# endif
-# ifndef VDISCARD
-extern cc_t termFlushChar;
-# else
-# define termFlushChar new_tc.c_cc[VDISCARD]
-# endif
-# ifndef VWERASE
-extern cc_t termWerasChar;
-# else
-# define termWerasChar new_tc.c_cc[VWERASE]
-# endif
-# ifndef VREPRINT
-extern cc_t termRprntChar;
-# else
-# define termRprntChar new_tc.c_cc[VREPRINT]
-# endif
-# ifndef VLNEXT
-extern cc_t termLiteralNextChar;
-# else
-# define termLiteralNextChar new_tc.c_cc[VLNEXT]
-# endif
-# ifndef VSTART
-extern cc_t termStartChar;
-# else
-# define termStartChar new_tc.c_cc[VSTART]
-# endif
-# ifndef VSTOP
-extern cc_t termStopChar;
-# else
-# define termStopChar new_tc.c_cc[VSTOP]
-# endif
-# ifndef VEOL
-extern cc_t termForw1Char;
-# else
-# define termForw1Char new_tc.c_cc[VEOL]
-# endif
-# ifndef VEOL2
-extern cc_t termForw2Char;
-# else
-# define termForw2Char new_tc.c_cc[VEOL]
-# endif
-# ifndef VSTATUS
-extern cc_t termAytChar;
-#else
-# define termAytChar new_tc.c_cc[VSTATUS]
-#endif
-
-# if !defined(CRAY) || defined(__STDC__)
-# define termEofCharp &termEofChar
-# define termEraseCharp &termEraseChar
-# define termIntCharp &termIntChar
-# define termKillCharp &termKillChar
-# define termQuitCharp &termQuitChar
-# define termSuspCharp &termSuspChar
-# define termFlushCharp &termFlushChar
-# define termWerasCharp &termWerasChar
-# define termRprntCharp &termRprntChar
-# define termLiteralNextCharp &termLiteralNextChar
-# define termStartCharp &termStartChar
-# define termStopCharp &termStopChar
-# define termForw1Charp &termForw1Char
-# define termForw2Charp &termForw2Char
-# define termAytCharp &termAytChar
-# else
- /* Work around a compiler bug */
-# define termEofCharp 0
-# define termEraseCharp 0
-# define termIntCharp 0
-# define termKillCharp 0
-# define termQuitCharp 0
-# define termSuspCharp 0
-# define termFlushCharp 0
-# define termWerasCharp 0
-# define termRprntCharp 0
-# define termLiteralNextCharp 0
-# define termStartCharp 0
-# define termStopCharp 0
-# define termForw1Charp 0
-# define termForw2Charp 0
-# define termAytCharp 0
-# endif
-#endif
-
-
-/* Ring buffer structures which are shared */
-
-extern Ring
- netoring,
- netiring,
- ttyoring,
- ttyiring;
-
-/* Tn3270 section */
-#if defined(TN3270)
-
-extern int
- HaveInput, /* Whether an asynchronous I/O indication came in */
- noasynchtty, /* Don't do signals on I/O (SIGURG, SIGIO) */
- noasynchnet, /* Don't do signals on I/O (SIGURG, SIGIO) */
- sigiocount, /* Count of SIGIO receptions */
- shell_active; /* Subshell is active */
-
-extern char
- *Ibackp, /* Oldest byte of 3270 data */
- Ibuf[], /* 3270 buffer */
- *Ifrontp, /* Where next 3270 byte goes */
- tline[],
- *transcom; /* Transparent command */
-
-extern int
- settranscom P((int, char**));
-
-extern void
- inputAvailable P((int));
-#endif /* defined(TN3270) */
diff --git a/crypto/telnet/telnet/fdset.h b/crypto/telnet/telnet/fdset.h
deleted file mode 100644
index 045bb7221419..000000000000
--- a/crypto/telnet/telnet/fdset.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)fdset.h 8.1 (Berkeley) 6/6/93
- */
-
-/*
- * The following is defined just in case someone should want to run
- * this telnet on a 4.2 system.
- *
- */
-
-#ifndef FD_SETSIZE
-
-#define FD_SET(n, p) ((p)->fds_bits[0] |= (1<<(n)))
-#define FD_CLR(n, p) ((p)->fds_bits[0] &= ~(1<<(n)))
-#define FD_ISSET(n, p) ((p)->fds_bits[0] & (1<<(n)))
-#define FD_ZERO(p) ((p)->fds_bits[0] = 0)
-
-#endif
diff --git a/crypto/telnet/telnet/general.h b/crypto/telnet/telnet/general.h
deleted file mode 100644
index 4efa9519469e..000000000000
--- a/crypto/telnet/telnet/general.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)general.h 8.1 (Berkeley) 6/6/93
- */
-
-/*
- * Some general definitions.
- */
-
-
-#define numberof(x) (sizeof x/sizeof x[0])
-#define highestof(x) (numberof(x)-1)
-
-#define ClearElement(x) memset((char *)&x, 0, sizeof x)
-#define ClearArray(x) memset((char *)x, 0, sizeof x)
diff --git a/crypto/telnet/telnet/main.c b/crypto/telnet/telnet/main.c
deleted file mode 100644
index 9049385e200f..000000000000
--- a/crypto/telnet/telnet/main.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char copyright[] =
-"@(#) Copyright (c) 1988, 1990, 1993\n\
- The Regents of the University of California. All rights reserved.\n";
-#endif /* not lint */
-
-#ifndef lint
-static const char sccsid[] = "@(#)main.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <stdlib.h>
-
-#include "ring.h"
-#include "externs.h"
-#include "defines.h"
-
-#if defined(AUTHENTICATION)
-#include <libtelnet/auth.h>
-#endif
-#if defined(ENCRYPTION)
-#include <libtelnet/encrypt.h>
-#endif
-
-/* These values need to be the same as defined in libtelnet/kerberos5.c */
-/* Either define them in both places, or put in some common header file. */
-#define OPTS_FORWARD_CREDS 0x00000002
-#define OPTS_FORWARDABLE_CREDS 0x00000001
-
-#if 0
-#define FORWARD
-#endif
-
-void init_terminal(void);
-void init_network(void);
-void init_telnet(void);
-void init_sys(void);
-void init_3270(void);
-
-/*
- * Initialize variables.
- */
- void
-tninit()
-{
- init_terminal();
-
- init_network();
-
- init_telnet();
-
- init_sys();
-
-#if defined(TN3270)
- init_3270();
-#endif
-}
-
- void
-usage()
-{
- fprintf(stderr, "Usage: %s %s%s%s%s\n",
- prompt,
-#ifdef AUTHENTICATION
- "[-8] [-E] [-K] [-L] [-S tos] [-X atype] [-a] [-c] [-d] [-e char]",
- "\n\t[-k realm] [-l user] [-f/-F] [-n tracefile] ",
-#else
- "[-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user]",
- "\n\t[-n tracefile]",
-#endif
-#if defined(TN3270) && defined(unix)
-# ifdef AUTHENTICATION
- "[-noasynch] [-noasynctty]\n\t[-noasyncnet] [-r] [-t transcom] ",
-# else
- "[-noasynch] [-noasynctty] [-noasyncnet] [-r]\n\t[-t transcom]",
-# endif
-#else
- "[-r] ",
-#endif
-#ifdef ENCRYPTION
- "[-x] [host-name [port]]"
-#else /* ENCRYPTION */
- "[host-name [port]]"
-#endif /* ENCRYPTION */
- );
- exit(1);
-}
-
-/*
- * main. Parse arguments, invoke the protocol or command parser.
- */
-
- int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- extern char *optarg;
- extern int optind;
- int ch;
- char *user, *strrchr();
-#ifdef FORWARD
- extern int forward_flags;
-#endif /* FORWARD */
-
- tninit(); /* Clear out things */
-#if defined(CRAY) && !defined(__STDC__)
- _setlist_init(); /* Work around compiler bug */
-#endif
-
- TerminalSaveState();
-
- if ((prompt = strrchr(argv[0], '/')))
- ++prompt;
- else
- prompt = argv[0];
-
- user = NULL;
-
- rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE;
- autologin = -1;
-
- while ((ch = getopt(argc, argv, "8EKLS:X:acde:fFk:l:n:rt:x")) != EOF) {
- switch(ch) {
- case '8':
- eight = 3; /* binary output and input */
- break;
- case 'E':
- rlogin = escape = _POSIX_VDISABLE;
- break;
- case 'K':
-#ifdef AUTHENTICATION
- autologin = 0;
-#endif
- break;
- case 'L':
- eight |= 2; /* binary output only */
- break;
- case 'S':
- {
-#ifdef HAS_GETTOS
- extern int tos;
-
- if ((tos = parsetos(optarg, "tcp")) < 0)
- fprintf(stderr, "%s%s%s%s\n",
- prompt, ": Bad TOS argument '",
- optarg,
- "; will try to use default TOS");
-#else
- fprintf(stderr,
- "%s: Warning: -S ignored, no parsetos() support.\n",
- prompt);
-#endif
- }
- break;
- case 'X':
-#ifdef AUTHENTICATION
- auth_disable_name(optarg);
-#endif
- break;
- case 'a':
- autologin = 1;
- break;
- case 'c':
- skiprc = 1;
- break;
- case 'd':
- debug = 1;
- break;
- case 'e':
- set_escape_char(optarg);
- break;
- case 'f':
-#if defined(AUTHENTICATION) && defined(KRB5) && defined(FORWARD)
- if (forward_flags & OPTS_FORWARD_CREDS) {
- fprintf(stderr,
- "%s: Only one of -f and -F allowed.\n",
- prompt);
- usage();
- }
- forward_flags |= OPTS_FORWARD_CREDS;
-#else
- fprintf(stderr,
- "%s: Warning: -f ignored, no Kerberos V5 support.\n",
- prompt);
-#endif
- break;
- case 'F':
-#if defined(AUTHENTICATION) && defined(KRB5) && defined(FORWARD)
- if (forward_flags & OPTS_FORWARD_CREDS) {
- fprintf(stderr,
- "%s: Only one of -f and -F allowed.\n",
- prompt);
- usage();
- }
- forward_flags |= OPTS_FORWARD_CREDS;
- forward_flags |= OPTS_FORWARDABLE_CREDS;
-#else
- fprintf(stderr,
- "%s: Warning: -F ignored, no Kerberos V5 support.\n",
- prompt);
-#endif
- break;
- case 'k':
-#if defined(AUTHENTICATION) && defined(KRB4)
- {
- extern char *dest_realm, dst_realm_buf[], dst_realm_sz;
- dest_realm = dst_realm_buf;
- (void)strncpy(dest_realm, optarg, dst_realm_sz);
- }
-#else
- fprintf(stderr,
- "%s: Warning: -k ignored, no Kerberos V4 support.\n",
- prompt);
-#endif
- break;
- case 'l':
- autologin = 1;
- user = optarg;
- break;
- case 'n':
-#if defined(TN3270) && defined(unix)
- /* distinguish between "-n oasynch" and "-noasynch" */
- if (argv[optind - 1][0] == '-' && argv[optind - 1][1]
- == 'n' && argv[optind - 1][2] == 'o') {
- if (!strcmp(optarg, "oasynch")) {
- noasynchtty = 1;
- noasynchnet = 1;
- } else if (!strcmp(optarg, "oasynchtty"))
- noasynchtty = 1;
- else if (!strcmp(optarg, "oasynchnet"))
- noasynchnet = 1;
- } else
-#endif /* defined(TN3270) && defined(unix) */
- SetNetTrace(optarg);
- break;
- case 'r':
- rlogin = '~';
- break;
- case 't':
-#if defined(TN3270) && defined(unix)
- transcom = tline;
- (void)strcpy(transcom, optarg);
-#else
- fprintf(stderr,
- "%s: Warning: -t ignored, no TN3270 support.\n",
- prompt);
-#endif
- break;
- case 'x':
-#ifdef ENCRYPTION
- encrypt_auto(1);
- decrypt_auto(1);
-#else /* ENCRYPTION */
- fprintf(stderr,
- "%s: Warning: -x ignored, no ENCRYPT support.\n",
- prompt);
-#endif /* ENCRYPTION */
- break;
- case '?':
- default:
- usage();
- /* NOTREACHED */
- }
- }
- if (autologin == -1)
- autologin = (rlogin == _POSIX_VDISABLE) ? 0 : 1;
-
- argc -= optind;
- argv += optind;
-
- if (argc) {
- char *args[7], **argp = args;
-
- if (argc > 2)
- usage();
- *argp++ = prompt;
- if (user) {
- *argp++ = "-l";
- *argp++ = user;
- }
- *argp++ = argv[0]; /* host */
- if (argc > 1)
- *argp++ = argv[1]; /* port */
- *argp = 0;
-
- if (setjmp(toplevel) != 0)
- Exit(0);
- if (tn(argp - args, args) == 1)
- return (0);
- else
- return (1);
- }
- (void)setjmp(toplevel);
- for (;;) {
-#ifdef TN3270
- if (shell_active)
- shell_continue();
- else
-#endif
- command(1, 0, 0);
- }
- return 0;
-}
diff --git a/crypto/telnet/telnet/network.c b/crypto/telnet/telnet/network.c
deleted file mode 100644
index 9964bc205cef..000000000000
--- a/crypto/telnet/telnet/network.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)network.c 8.2 (Berkeley) 12/15/93";
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <errno.h>
-
-#include <arpa/telnet.h>
-#include <unistd.h>
-
-#include "ring.h"
-
-#include "defines.h"
-#include "externs.h"
-#include "fdset.h"
-
-Ring netoring, netiring;
-unsigned char netobuf[2*BUFSIZ], netibuf[BUFSIZ];
-
-/*
- * Initialize internal network data structures.
- */
-
- void
-init_network()
-{
- if (ring_init(&netoring, netobuf, sizeof netobuf) != 1) {
- exit(1);
- }
- if (ring_init(&netiring, netibuf, sizeof netibuf) != 1) {
- exit(1);
- }
- NetTrace = stdout;
-}
-
-
-/*
- * Check to see if any out-of-band data exists on a socket (for
- * Telnet "synch" processing).
- */
-
- int
-stilloob()
-{
- static struct timeval timeout = { 0 };
- fd_set excepts;
- int value;
-
- do {
- FD_ZERO(&excepts);
- FD_SET(net, &excepts);
- value = select(net+1, (fd_set *)0, (fd_set *)0, &excepts, &timeout);
- } while ((value == -1) && (errno == EINTR));
-
- if (value < 0) {
- perror("select");
- (void) quit();
- /* NOTREACHED */
- }
- if (FD_ISSET(net, &excepts)) {
- return 1;
- } else {
- return 0;
- }
-}
-
-
-/*
- * setneturg()
- *
- * Sets "neturg" to the current location.
- */
-
- void
-setneturg()
-{
- ring_mark(&netoring);
-}
-
-
-/*
- * netflush
- * Send as much data as possible to the network,
- * handling requests for urgent data.
- *
- * The return value indicates whether we did any
- * useful work.
- */
-
-
- int
-netflush()
-{
- register int n, n1;
-
-#ifdef ENCRYPTION
- if (encrypt_output)
- ring_encrypt(&netoring, encrypt_output);
-#endif /* ENCRYPTION */
- if ((n1 = n = ring_full_consecutive(&netoring)) > 0) {
- if (!ring_at_mark(&netoring)) {
- n = send(net, (char *)netoring.consume, n, 0); /* normal write */
- } else {
- /*
- * In 4.2 (and 4.3) systems, there is some question about
- * what byte in a sendOOB operation is the "OOB" data.
- * To make ourselves compatible, we only send ONE byte
- * out of band, the one WE THINK should be OOB (though
- * we really have more the TCP philosophy of urgent data
- * rather than the Unix philosophy of OOB data).
- */
- n = send(net, (char *)netoring.consume, 1, MSG_OOB);/* URGENT data */
- }
- }
- if (n < 0) {
- if (errno != ENOBUFS && errno != EWOULDBLOCK) {
- setcommandmode();
- perror(hostname);
- (void)NetClose(net);
- ring_clear_mark(&netoring);
- longjmp(peerdied, -1);
- /*NOTREACHED*/
- }
- n = 0;
- }
- if (netdata && n) {
- Dump('>', netoring.consume, n);
- }
- if (n) {
- ring_consumed(&netoring, n);
- /*
- * If we sent all, and more to send, then recurse to pick
- * up the other half.
- */
- if ((n1 == n) && ring_full_consecutive(&netoring)) {
- (void) netflush();
- }
- return 1;
- } else {
- return 0;
- }
-}
diff --git a/crypto/telnet/telnet/ring.c b/crypto/telnet/telnet/ring.c
deleted file mode 100644
index 13fe6c2b79cb..000000000000
--- a/crypto/telnet/telnet/ring.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)ring.c 8.2 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * This defines a structure for a ring buffer.
- *
- * The circular buffer has two parts:
- *(((
- * full: [consume, supply)
- * empty: [supply, consume)
- *]]]
- *
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-#ifdef size_t
-#undef size_t
-#endif
-
-#include <sys/types.h>
-#ifndef FILIO_H
-#include <sys/ioctl.h>
-#endif
-#include <sys/socket.h>
-
-#include "ring.h"
-#include "general.h"
-
-/* Internal macros */
-
-#if !defined(MIN)
-#define MIN(a,b) (((a)<(b))? (a):(b))
-#endif /* !defined(MIN) */
-
-#define ring_subtract(d,a,b) (((a)-(b) >= 0)? \
- (a)-(b): (((a)-(b))+(d)->size))
-
-#define ring_increment(d,a,c) (((a)+(c) < (d)->top)? \
- (a)+(c) : (((a)+(c))-(d)->size))
-
-#define ring_decrement(d,a,c) (((a)-(c) >= (d)->bottom)? \
- (a)-(c) : (((a)-(c))-(d)->size))
-
-
-/*
- * The following is a clock, used to determine full, empty, etc.
- *
- * There is some trickiness here. Since the ring buffers are initialized
- * to ZERO on allocation, we need to make sure, when interpreting the
- * clock, that when the times are EQUAL, then the buffer is FULL.
- */
-static u_long ring_clock = 0;
-
-
-#define ring_empty(d) (((d)->consume == (d)->supply) && \
- ((d)->consumetime >= (d)->supplytime))
-#define ring_full(d) (((d)->supply == (d)->consume) && \
- ((d)->supplytime > (d)->consumetime))
-
-
-
-
-
-/* Buffer state transition routines */
-
- int
- ring_init(ring, buffer, count)
-Ring *ring;
- unsigned char *buffer;
- int count;
-{
- memset((char *)ring, 0, sizeof *ring);
-
- ring->size = count;
-
- ring->supply = ring->consume = ring->bottom = buffer;
-
- ring->top = ring->bottom+ring->size;
-
-#ifdef ENCRYPTION
- ring->clearto = 0;
-#endif /* ENCRYPTION */
-
- return 1;
-}
-
-/* Mark routines */
-
-/*
- * Mark the most recently supplied byte.
- */
-
- void
-ring_mark(ring)
- Ring *ring;
-{
- ring->mark = ring_decrement(ring, ring->supply, 1);
-}
-
-/*
- * Is the ring pointing to the mark?
- */
-
- int
-ring_at_mark(ring)
- Ring *ring;
-{
- if (ring->mark == ring->consume) {
- return 1;
- } else {
- return 0;
- }
-}
-
-/*
- * Clear any mark set on the ring.
- */
-
- void
-ring_clear_mark(ring)
- Ring *ring;
-{
- ring->mark = 0;
-}
-
-/*
- * Add characters from current segment to ring buffer.
- */
- void
-ring_supplied(ring, count)
- Ring *ring;
- int count;
-{
- ring->supply = ring_increment(ring, ring->supply, count);
- ring->supplytime = ++ring_clock;
-}
-
-/*
- * We have just consumed "c" bytes.
- */
- void
-ring_consumed(ring, count)
- Ring *ring;
- int count;
-{
- if (count == 0) /* don't update anything */
- return;
-
- if (ring->mark &&
- (ring_subtract(ring, ring->mark, ring->consume) < count)) {
- ring->mark = 0;
- }
-#ifdef ENCRYPTION
- if (ring->consume < ring->clearto &&
- ring->clearto <= ring->consume + count)
- ring->clearto = 0;
- else if (ring->consume + count > ring->top &&
- ring->bottom <= ring->clearto &&
- ring->bottom + ((ring->consume + count) - ring->top))
- ring->clearto = 0;
-#endif /* ENCRYPTION */
- ring->consume = ring_increment(ring, ring->consume, count);
- ring->consumetime = ++ring_clock;
- /*
- * Try to encourage "ring_empty_consecutive()" to be large.
- */
- if (ring_empty(ring)) {
- ring->consume = ring->supply = ring->bottom;
- }
-}
-
-
-
-/* Buffer state query routines */
-
-
-/* Number of bytes that may be supplied */
- int
-ring_empty_count(ring)
- Ring *ring;
-{
- if (ring_empty(ring)) { /* if empty */
- return ring->size;
- } else {
- return ring_subtract(ring, ring->consume, ring->supply);
- }
-}
-
-/* number of CONSECUTIVE bytes that may be supplied */
- int
-ring_empty_consecutive(ring)
- Ring *ring;
-{
- if ((ring->consume < ring->supply) || ring_empty(ring)) {
- /*
- * if consume is "below" supply, or empty, then
- * return distance to the top
- */
- return ring_subtract(ring, ring->top, ring->supply);
- } else {
- /*
- * else, return what we may.
- */
- return ring_subtract(ring, ring->consume, ring->supply);
- }
-}
-
-/* Return the number of bytes that are available for consuming
- * (but don't give more than enough to get to cross over set mark)
- */
-
- int
-ring_full_count(ring)
- Ring *ring;
-{
- if ((ring->mark == 0) || (ring->mark == ring->consume)) {
- if (ring_full(ring)) {
- return ring->size; /* nothing consumed, but full */
- } else {
- return ring_subtract(ring, ring->supply, ring->consume);
- }
- } else {
- return ring_subtract(ring, ring->mark, ring->consume);
- }
-}
-
-/*
- * Return the number of CONSECUTIVE bytes available for consuming.
- * However, don't return more than enough to cross over set mark.
- */
- int
-ring_full_consecutive(ring)
- Ring *ring;
-{
- if ((ring->mark == 0) || (ring->mark == ring->consume)) {
- if ((ring->supply < ring->consume) || ring_full(ring)) {
- return ring_subtract(ring, ring->top, ring->consume);
- } else {
- return ring_subtract(ring, ring->supply, ring->consume);
- }
- } else {
- if (ring->mark < ring->consume) {
- return ring_subtract(ring, ring->top, ring->consume);
- } else { /* Else, distance to mark */
- return ring_subtract(ring, ring->mark, ring->consume);
- }
- }
-}
-
-/*
- * Move data into the "supply" portion of of the ring buffer.
- */
- void
-ring_supply_data(ring, buffer, count)
- Ring *ring;
- unsigned char *buffer;
- int count;
-{
- int i;
-
- while (count) {
- i = MIN(count, ring_empty_consecutive(ring));
- memmove(ring->supply, buffer, i);
- ring_supplied(ring, i);
- count -= i;
- buffer += i;
- }
-}
-
-#ifdef notdef
-
-/*
- * Move data from the "consume" portion of the ring buffer
- */
- void
-ring_consume_data(ring, buffer, count)
- Ring *ring;
- unsigned char *buffer;
- int count;
-{
- int i;
-
- while (count) {
- i = MIN(count, ring_full_consecutive(ring));
- memmove(buffer, ring->consume, i);
- ring_consumed(ring, i);
- count -= i;
- buffer += i;
- }
-}
-#endif
-
-#ifdef ENCRYPTION
- void
-ring_encrypt(ring, encryptor)
- Ring *ring;
- void (*encryptor)();
-{
- unsigned char *s, *c;
-
- if (ring_empty(ring) || ring->clearto == ring->supply)
- return;
-
- if (!(c = ring->clearto))
- c = ring->consume;
-
- s = ring->supply;
-
- if (s <= c) {
- (*encryptor)(c, ring->top - c);
- (*encryptor)(ring->bottom, s - ring->bottom);
- } else
- (*encryptor)(c, s - c);
-
- ring->clearto = ring->supply;
-}
-
- void
-ring_clearto(ring)
- Ring *ring;
-{
- if (!ring_empty(ring))
- ring->clearto = ring->supply;
- else
- ring->clearto = 0;
-}
-#endif /* ENCRYPTION */
diff --git a/crypto/telnet/telnet/ring.h b/crypto/telnet/telnet/ring.h
deleted file mode 100644
index 2a36781e5ae5..000000000000
--- a/crypto/telnet/telnet/ring.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)ring.h 8.1 (Berkeley) 6/6/93
- */
-
-#if defined(P)
-# undef P
-#endif
-
-#if defined(__STDC__) || defined(LINT_ARGS)
-# define P(x) x
-#else
-# define P(x) ()
-#endif
-
-/*
- * This defines a structure for a ring buffer.
- *
- * The circular buffer has two parts:
- *(((
- * full: [consume, supply)
- * empty: [supply, consume)
- *]]]
- *
- */
-typedef struct {
- unsigned char *consume, /* where data comes out of */
- *supply, /* where data comes in to */
- *bottom, /* lowest address in buffer */
- *top, /* highest address+1 in buffer */
- *mark; /* marker (user defined) */
-#ifdef ENCRYPTION
- unsigned char *clearto; /* Data to this point is clear text */
- unsigned char *encryyptedto; /* Data is encrypted to here */
-#endif /* ENCRYPTION */
- int size; /* size in bytes of buffer */
- u_long consumetime, /* help us keep straight full, empty, etc. */
- supplytime;
-} Ring;
-
-/* Here are some functions and macros to deal with the ring buffer */
-
-/* Initialization routine */
-extern int
- ring_init P((Ring *ring, unsigned char *buffer, int count));
-
-/* Data movement routines */
-extern void
- ring_supply_data P((Ring *ring, unsigned char *buffer, int count));
-#ifdef notdef
-extern void
- ring_consume_data P((Ring *ring, unsigned char *buffer, int count));
-#endif
-
-/* Buffer state transition routines */
-extern void
- ring_supplied P((Ring *ring, int count)),
- ring_consumed P((Ring *ring, int count));
-
-/* Buffer state query routines */
-extern int
- ring_empty_count P((Ring *ring)),
- ring_empty_consecutive P((Ring *ring)),
- ring_full_count P((Ring *ring)),
- ring_full_consecutive P((Ring *ring));
-
-#ifdef ENCRYPTION
-extern void
- ring_encrypt P((Ring *ring, void (*func)())),
- ring_clearto P((Ring *ring));
-#endif /* ENCRYPTION */
-
-extern void
- ring_clear_mark(),
- ring_mark();
diff --git a/crypto/telnet/telnet/sys_bsd.c b/crypto/telnet/telnet/sys_bsd.c
deleted file mode 100644
index ed5f459e957c..000000000000
--- a/crypto/telnet/telnet/sys_bsd.c
+++ /dev/null
@@ -1,1221 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)sys_bsd.c 8.4 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-/*
- * The following routines try to encapsulate what is system dependent
- * (at least between 4.x and dos) which is used in telnet.c.
- */
-
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <signal.h>
-#include <errno.h>
-#include <arpa/telnet.h>
-#include <unistd.h>
-
-#include "ring.h"
-
-#include "fdset.h"
-
-#include "defines.h"
-#include "externs.h"
-#include "types.h"
-
-#if defined(CRAY) || (defined(USE_TERMIO) && !defined(SYSV_TERMIO))
-#define SIG_FUNC_RET void
-#else
-#define SIG_FUNC_RET int
-#endif
-
-#ifdef SIGINFO
-extern SIG_FUNC_RET ayt_status();
-#endif
-
-int
- tout, /* Output file descriptor */
- tin, /* Input file descriptor */
- net;
-
-#ifndef USE_TERMIO
-struct tchars otc = { 0 }, ntc = { 0 };
-struct ltchars oltc = { 0 }, nltc = { 0 };
-struct sgttyb ottyb = { 0 }, nttyb = { 0 };
-int olmode = 0;
-# define cfgetispeed(ptr) (ptr)->sg_ispeed
-# define cfgetospeed(ptr) (ptr)->sg_ospeed
-# define old_tc ottyb
-
-#else /* USE_TERMIO */
-struct termio old_tc = { 0 };
-extern struct termio new_tc;
-
-# ifndef TCSANOW
-# ifdef TCSETS
-# define TCSANOW TCSETS
-# define TCSADRAIN TCSETSW
-# define tcgetattr(f, t) ioctl(f, TCGETS, (char *)t)
-# else
-# ifdef TCSETA
-# define TCSANOW TCSETA
-# define TCSADRAIN TCSETAW
-# define tcgetattr(f, t) ioctl(f, TCGETA, (char *)t)
-# else
-# define TCSANOW TIOCSETA
-# define TCSADRAIN TIOCSETAW
-# define tcgetattr(f, t) ioctl(f, TIOCGETA, (char *)t)
-# endif
-# endif
-# define tcsetattr(f, a, t) ioctl(f, a, (char *)t)
-# define cfgetospeed(ptr) ((ptr)->c_cflag&CBAUD)
-# ifdef CIBAUD
-# define cfgetispeed(ptr) (((ptr)->c_cflag&CIBAUD) >> IBSHIFT)
-# else
-# define cfgetispeed(ptr) cfgetospeed(ptr)
-# endif
-# endif /* TCSANOW */
-# ifdef sysV88
-# define TIOCFLUSH TC_PX_DRAIN
-# endif
-#endif /* USE_TERMIO */
-
-static fd_set ibits, obits, xbits;
-
-
- void
-init_sys()
-{
- tout = fileno(stdout);
- tin = fileno(stdin);
- FD_ZERO(&ibits);
- FD_ZERO(&obits);
- FD_ZERO(&xbits);
-
- errno = 0;
-}
-
-
- int
-TerminalWrite(buf, n)
- char *buf;
- int n;
-{
- return write(tout, buf, n);
-}
-
- int
-TerminalRead(buf, n)
- char *buf;
- int n;
-{
- return read(tin, buf, n);
-}
-
-/*
- *
- */
-
- int
-TerminalAutoFlush()
-{
-#if defined(LNOFLSH)
- int flush;
-
- ioctl(0, TIOCLGET, (char *)&flush);
- return !(flush&LNOFLSH); /* if LNOFLSH, no autoflush */
-#else /* LNOFLSH */
- return 1;
-#endif /* LNOFLSH */
-}
-
-#ifdef KLUDGELINEMODE
-extern int kludgelinemode;
-#endif
-/*
- * TerminalSpecialChars()
- *
- * Look at an input character to see if it is a special character
- * and decide what to do.
- *
- * Output:
- *
- * 0 Don't add this character.
- * 1 Do add this character
- */
-
-extern void xmitAO(), xmitEL(), xmitEC(), intp(), sendbrk();
-
- int
-TerminalSpecialChars(c)
- int c;
-{
- if (c == termIntChar) {
- intp();
- return 0;
- } else if (c == termQuitChar) {
-#ifdef KLUDGELINEMODE
- if (kludgelinemode)
- sendbrk();
- else
-#endif
- sendabort();
- return 0;
- } else if (c == termEofChar) {
- if (my_want_state_is_will(TELOPT_LINEMODE)) {
- sendeof();
- return 0;
- }
- return 1;
- } else if (c == termSuspChar) {
- sendsusp();
- return(0);
- } else if (c == termFlushChar) {
- xmitAO(); /* Transmit Abort Output */
- return 0;
- } else if (!MODE_LOCAL_CHARS(globalmode)) {
- if (c == termKillChar) {
- xmitEL();
- return 0;
- } else if (c == termEraseChar) {
- xmitEC(); /* Transmit Erase Character */
- return 0;
- }
- }
- return 1;
-}
-
-
-/*
- * Flush output to the terminal
- */
-
- void
-TerminalFlushOutput()
-{
-#ifdef TIOCFLUSH
- (void) ioctl(fileno(stdout), TIOCFLUSH, (char *) 0);
-#else
- (void) ioctl(fileno(stdout), TCFLSH, (char *) 0);
-#endif
-}
-
- void
-TerminalSaveState()
-{
-#ifndef USE_TERMIO
- ioctl(0, TIOCGETP, (char *)&ottyb);
- ioctl(0, TIOCGETC, (char *)&otc);
- ioctl(0, TIOCGLTC, (char *)&oltc);
- ioctl(0, TIOCLGET, (char *)&olmode);
-
- ntc = otc;
- nltc = oltc;
- nttyb = ottyb;
-
-#else /* USE_TERMIO */
- tcgetattr(0, &old_tc);
-
- new_tc = old_tc;
-
-#ifndef VDISCARD
- termFlushChar = CONTROL('O');
-#endif
-#ifndef VWERASE
- termWerasChar = CONTROL('W');
-#endif
-#ifndef VREPRINT
- termRprntChar = CONTROL('R');
-#endif
-#ifndef VLNEXT
- termLiteralNextChar = CONTROL('V');
-#endif
-#ifndef VSTART
- termStartChar = CONTROL('Q');
-#endif
-#ifndef VSTOP
- termStopChar = CONTROL('S');
-#endif
-#ifndef VSTATUS
- termAytChar = CONTROL('T');
-#endif
-#endif /* USE_TERMIO */
-}
-
- cc_t *
-tcval(func)
- register int func;
-{
- switch(func) {
- case SLC_IP: return(&termIntChar);
- case SLC_ABORT: return(&termQuitChar);
- case SLC_EOF: return(&termEofChar);
- case SLC_EC: return(&termEraseChar);
- case SLC_EL: return(&termKillChar);
- case SLC_XON: return(&termStartChar);
- case SLC_XOFF: return(&termStopChar);
- case SLC_FORW1: return(&termForw1Char);
-#ifdef USE_TERMIO
- case SLC_FORW2: return(&termForw2Char);
-# ifdef VDISCARD
- case SLC_AO: return(&termFlushChar);
-# endif
-# ifdef VSUSP
- case SLC_SUSP: return(&termSuspChar);
-# endif
-# ifdef VWERASE
- case SLC_EW: return(&termWerasChar);
-# endif
-# ifdef VREPRINT
- case SLC_RP: return(&termRprntChar);
-# endif
-# ifdef VLNEXT
- case SLC_LNEXT: return(&termLiteralNextChar);
-# endif
-# ifdef VSTATUS
- case SLC_AYT: return(&termAytChar);
-# endif
-#endif
-
- case SLC_SYNCH:
- case SLC_BRK:
- case SLC_EOR:
- default:
- return((cc_t *)0);
- }
-}
-
- void
-TerminalDefaultChars()
-{
-#ifndef USE_TERMIO
- ntc = otc;
- nltc = oltc;
- nttyb.sg_kill = ottyb.sg_kill;
- nttyb.sg_erase = ottyb.sg_erase;
-#else /* USE_TERMIO */
- memmove(new_tc.c_cc, old_tc.c_cc, sizeof(old_tc.c_cc));
-# ifndef VDISCARD
- termFlushChar = CONTROL('O');
-# endif
-# ifndef VWERASE
- termWerasChar = CONTROL('W');
-# endif
-# ifndef VREPRINT
- termRprntChar = CONTROL('R');
-# endif
-# ifndef VLNEXT
- termLiteralNextChar = CONTROL('V');
-# endif
-# ifndef VSTART
- termStartChar = CONTROL('Q');
-# endif
-# ifndef VSTOP
- termStopChar = CONTROL('S');
-# endif
-# ifndef VSTATUS
- termAytChar = CONTROL('T');
-# endif
-#endif /* USE_TERMIO */
-}
-
-#ifdef notdef
-void
-TerminalRestoreState()
-{
-}
-#endif
-
-/*
- * TerminalNewMode - set up terminal to a specific mode.
- * MODE_ECHO: do local terminal echo
- * MODE_FLOW: do local flow control
- * MODE_TRAPSIG: do local mapping to TELNET IAC sequences
- * MODE_EDIT: do local line editing
- *
- * Command mode:
- * MODE_ECHO|MODE_EDIT|MODE_FLOW|MODE_TRAPSIG
- * local echo
- * local editing
- * local xon/xoff
- * local signal mapping
- *
- * Linemode:
- * local/no editing
- * Both Linemode and Single Character mode:
- * local/remote echo
- * local/no xon/xoff
- * local/no signal mapping
- */
-
-
- void
-TerminalNewMode(f)
- register int f;
-{
- static int prevmode = 0;
-#ifndef USE_TERMIO
- struct tchars tc;
- struct ltchars ltc;
- struct sgttyb sb;
- int lmode;
-#else /* USE_TERMIO */
- struct termio tmp_tc;
-#endif /* USE_TERMIO */
- int onoff;
- int old;
- cc_t esc;
-
- globalmode = f&~MODE_FORCE;
- if (prevmode == f)
- return;
-
- /*
- * Write any outstanding data before switching modes
- * ttyflush() returns 0 only when there is no more data
- * left to write out, it returns -1 if it couldn't do
- * anything at all, otherwise it returns 1 + the number
- * of characters left to write.
-#ifndef USE_TERMIO
- * We would really like ask the kernel to wait for the output
- * to drain, like we can do with the TCSADRAIN, but we don't have
- * that option. The only ioctl that waits for the output to
- * drain, TIOCSETP, also flushes the input queue, which is NOT
- * what we want (TIOCSETP is like TCSADFLUSH).
-#endif
- */
- old = ttyflush(SYNCHing|flushout);
- if (old < 0 || old > 1) {
-#ifdef USE_TERMIO
- tcgetattr(tin, &tmp_tc);
-#endif /* USE_TERMIO */
- do {
- /*
- * Wait for data to drain, then flush again.
- */
-#ifdef USE_TERMIO
- tcsetattr(tin, TCSADRAIN, &tmp_tc);
-#endif /* USE_TERMIO */
- old = ttyflush(SYNCHing|flushout);
- } while (old < 0 || old > 1);
- }
-
- old = prevmode;
- prevmode = f&~MODE_FORCE;
-#ifndef USE_TERMIO
- sb = nttyb;
- tc = ntc;
- ltc = nltc;
- lmode = olmode;
-#else
- tmp_tc = new_tc;
-#endif
-
- if (f&MODE_ECHO) {
-#ifndef USE_TERMIO
- sb.sg_flags |= ECHO;
-#else
- tmp_tc.c_lflag |= ECHO;
- tmp_tc.c_oflag |= ONLCR;
- if (crlf)
- tmp_tc.c_iflag |= ICRNL;
-#endif
- } else {
-#ifndef USE_TERMIO
- sb.sg_flags &= ~ECHO;
-#else
- tmp_tc.c_lflag &= ~ECHO;
- tmp_tc.c_oflag &= ~ONLCR;
-# ifdef notdef
- if (crlf)
- tmp_tc.c_iflag &= ~ICRNL;
-# endif
-#endif
- }
-
- if ((f&MODE_FLOW) == 0) {
-#ifndef USE_TERMIO
- tc.t_startc = _POSIX_VDISABLE;
- tc.t_stopc = _POSIX_VDISABLE;
-#else
- tmp_tc.c_iflag &= ~(IXOFF|IXON); /* Leave the IXANY bit alone */
- } else {
- if (restartany < 0) {
- tmp_tc.c_iflag |= IXOFF|IXON; /* Leave the IXANY bit alone */
- } else if (restartany > 0) {
- tmp_tc.c_iflag |= IXOFF|IXON|IXANY;
- } else {
- tmp_tc.c_iflag |= IXOFF|IXON;
- tmp_tc.c_iflag &= ~IXANY;
- }
-#endif
- }
-
- if ((f&MODE_TRAPSIG) == 0) {
-#ifndef USE_TERMIO
- tc.t_intrc = _POSIX_VDISABLE;
- tc.t_quitc = _POSIX_VDISABLE;
- tc.t_eofc = _POSIX_VDISABLE;
- ltc.t_suspc = _POSIX_VDISABLE;
- ltc.t_dsuspc = _POSIX_VDISABLE;
-#else
- tmp_tc.c_lflag &= ~ISIG;
-#endif
- localchars = 0;
- } else {
-#ifdef USE_TERMIO
- tmp_tc.c_lflag |= ISIG;
-#endif
- localchars = 1;
- }
-
- if (f&MODE_EDIT) {
-#ifndef USE_TERMIO
- sb.sg_flags &= ~CBREAK;
- sb.sg_flags |= CRMOD;
-#else
- tmp_tc.c_lflag |= ICANON;
-#endif
- } else {
-#ifndef USE_TERMIO
- sb.sg_flags |= CBREAK;
- if (f&MODE_ECHO)
- sb.sg_flags |= CRMOD;
- else
- sb.sg_flags &= ~CRMOD;
-#else
- tmp_tc.c_lflag &= ~ICANON;
- tmp_tc.c_iflag &= ~ICRNL;
- tmp_tc.c_cc[VMIN] = 1;
- tmp_tc.c_cc[VTIME] = 0;
-#endif
- }
-
- if ((f&(MODE_EDIT|MODE_TRAPSIG)) == 0) {
-#ifndef USE_TERMIO
- ltc.t_lnextc = _POSIX_VDISABLE;
-#else
-# ifdef VLNEXT
- tmp_tc.c_cc[VLNEXT] = (cc_t)(_POSIX_VDISABLE);
-# endif
-#endif
- }
-
- if (f&MODE_SOFT_TAB) {
-#ifndef USE_TERMIO
- sb.sg_flags |= XTABS;
-#else
-# ifdef OXTABS
- tmp_tc.c_oflag |= OXTABS;
-# endif
-# ifdef TABDLY
- tmp_tc.c_oflag &= ~TABDLY;
- tmp_tc.c_oflag |= TAB3;
-# endif
-#endif
- } else {
-#ifndef USE_TERMIO
- sb.sg_flags &= ~XTABS;
-#else
-# ifdef OXTABS
- tmp_tc.c_oflag &= ~OXTABS;
-# endif
-# ifdef TABDLY
- tmp_tc.c_oflag &= ~TABDLY;
-# endif
-#endif
- }
-
- if (f&MODE_LIT_ECHO) {
-#ifndef USE_TERMIO
- lmode &= ~LCTLECH;
-#else
-# ifdef ECHOCTL
- tmp_tc.c_lflag &= ~ECHOCTL;
-# endif
-#endif
- } else {
-#ifndef USE_TERMIO
- lmode |= LCTLECH;
-#else
-# ifdef ECHOCTL
- tmp_tc.c_lflag |= ECHOCTL;
-# endif
-#endif
- }
-
- if (f == -1) {
- onoff = 0;
- } else {
-#ifndef USE_TERMIO
- if (f & MODE_OUTBIN)
- lmode |= LLITOUT;
- else
- lmode &= ~LLITOUT;
-
- if (f & MODE_INBIN)
- lmode |= LPASS8;
- else
- lmode &= ~LPASS8;
-#else
- if (f & MODE_INBIN)
- tmp_tc.c_iflag &= ~ISTRIP;
- else
- tmp_tc.c_iflag |= ISTRIP;
- if (f & MODE_OUTBIN) {
- tmp_tc.c_cflag &= ~(CSIZE|PARENB);
- tmp_tc.c_cflag |= CS8;
- tmp_tc.c_oflag &= ~OPOST;
- } else {
- tmp_tc.c_cflag &= ~(CSIZE|PARENB);
- tmp_tc.c_cflag |= old_tc.c_cflag & (CSIZE|PARENB);
- tmp_tc.c_oflag |= OPOST;
- }
-#endif
- onoff = 1;
- }
-
- if (f != -1) {
-#ifdef SIGTSTP
- SIG_FUNC_RET susp();
-#endif /* SIGTSTP */
-#ifdef SIGINFO
- SIG_FUNC_RET ayt();
-#endif
-
-#ifdef SIGTSTP
- (void) signal(SIGTSTP, susp);
-#endif /* SIGTSTP */
-#ifdef SIGINFO
- (void) signal(SIGINFO, ayt);
-#endif
-#if defined(USE_TERMIO) && defined(NOKERNINFO)
- tmp_tc.c_lflag |= NOKERNINFO;
-#endif
- /*
- * We don't want to process ^Y here. It's just another
- * character that we'll pass on to the back end. It has
- * to process it because it will be processed when the
- * user attempts to read it, not when we send it.
- */
-#ifndef USE_TERMIO
- ltc.t_dsuspc = _POSIX_VDISABLE;
-#else
-# ifdef VDSUSP
- tmp_tc.c_cc[VDSUSP] = (cc_t)(_POSIX_VDISABLE);
-# endif
-#endif
-#ifdef USE_TERMIO
- /*
- * If the VEOL character is already set, then use VEOL2,
- * otherwise use VEOL.
- */
- esc = (rlogin != _POSIX_VDISABLE) ? rlogin : escape;
- if ((tmp_tc.c_cc[VEOL] != esc)
-# ifdef VEOL2
- && (tmp_tc.c_cc[VEOL2] != esc)
-# endif
- ) {
- if (tmp_tc.c_cc[VEOL] == (cc_t)(_POSIX_VDISABLE))
- tmp_tc.c_cc[VEOL] = esc;
-# ifdef VEOL2
- else if (tmp_tc.c_cc[VEOL2] == (cc_t)(_POSIX_VDISABLE))
- tmp_tc.c_cc[VEOL2] = esc;
-# endif
- }
-#else
- if (tc.t_brkc == (cc_t)(_POSIX_VDISABLE))
- tc.t_brkc = esc;
-#endif
- } else {
-#ifdef SIGINFO
- SIG_FUNC_RET ayt_status();
-
- (void) signal(SIGINFO, ayt_status);
-#endif
-#ifdef SIGTSTP
- (void) signal(SIGTSTP, SIG_DFL);
-# ifndef SOLARIS
- (void) sigsetmask(sigblock(0) & ~(1<<(SIGTSTP-1)));
-# else SOLARIS
- (void) sigrelse(SIGTSTP);
-# endif SOLARIS
-#endif /* SIGTSTP */
-#ifndef USE_TERMIO
- ltc = oltc;
- tc = otc;
- sb = ottyb;
- lmode = olmode;
-#else
- tmp_tc = old_tc;
-#endif
- }
-#ifndef USE_TERMIO
- ioctl(tin, TIOCLSET, (char *)&lmode);
- ioctl(tin, TIOCSLTC, (char *)&ltc);
- ioctl(tin, TIOCSETC, (char *)&tc);
- ioctl(tin, TIOCSETN, (char *)&sb);
-#else
- if (tcsetattr(tin, TCSADRAIN, &tmp_tc) < 0)
- tcsetattr(tin, TCSANOW, &tmp_tc);
-#endif
-
-#if (!defined(TN3270)) || ((!defined(NOT43)) || defined(PUTCHAR))
-# if !defined(sysV88)
- ioctl(tin, FIONBIO, (char *)&onoff);
- ioctl(tout, FIONBIO, (char *)&onoff);
-# endif
-#endif /* (!defined(TN3270)) || ((!defined(NOT43)) || defined(PUTCHAR)) */
-#if defined(TN3270)
- if (noasynchtty == 0) {
- ioctl(tin, FIOASYNC, (char *)&onoff);
- }
-#endif /* defined(TN3270) */
-
-}
-
-/*
- * Try to guess whether speeds are "encoded" (4.2BSD) or just numeric (4.4BSD).
- */
-#if B4800 != 4800
-#define DECODE_BAUD
-#endif
-
-#ifdef DECODE_BAUD
-#ifndef B7200
-#define B7200 B4800
-#endif
-
-#ifndef B14400
-#define B14400 B9600
-#endif
-
-#ifndef B19200
-# define B19200 B14400
-#endif
-
-#ifndef B28800
-#define B28800 B19200
-#endif
-
-#ifndef B38400
-# define B38400 B28800
-#endif
-
-#ifndef B57600
-#define B57600 B38400
-#endif
-
-#ifndef B76800
-#define B76800 B57600
-#endif
-
-#ifndef B115200
-#define B115200 B76800
-#endif
-
-#ifndef B230400
-#define B230400 B115200
-#endif
-
-
-/*
- * This code assumes that the values B0, B50, B75...
- * are in ascending order. They do not have to be
- * contiguous.
- */
-struct termspeeds {
- long speed;
- long value;
-} termspeeds[] = {
- { 0, B0 }, { 50, B50 }, { 75, B75 },
- { 110, B110 }, { 134, B134 }, { 150, B150 },
- { 200, B200 }, { 300, B300 }, { 600, B600 },
- { 1200, B1200 }, { 1800, B1800 }, { 2400, B2400 },
- { 4800, B4800 }, { 7200, B7200 }, { 9600, B9600 },
- { 14400, B14400 }, { 19200, B19200 }, { 28800, B28800 },
- { 38400, B38400 }, { 57600, B57600 }, { 115200, B115200 },
- { 230400, B230400 }, { -1, B230400 }
-};
-#endif /* DECODE_BAUD */
-
- void
-TerminalSpeeds(ispeed, ospeed)
- long *ispeed;
- long *ospeed;
-{
-#ifdef DECODE_BAUD
- register struct termspeeds *tp;
-#endif /* DECODE_BAUD */
- register long in, out;
-
- out = cfgetospeed(&old_tc);
- in = cfgetispeed(&old_tc);
- if (in == 0)
- in = out;
-
-#ifdef DECODE_BAUD
- tp = termspeeds;
- while ((tp->speed != -1) && (tp->value < in))
- tp++;
- *ispeed = tp->speed;
-
- tp = termspeeds;
- while ((tp->speed != -1) && (tp->value < out))
- tp++;
- *ospeed = tp->speed;
-#else /* DECODE_BAUD */
- *ispeed = in;
- *ospeed = out;
-#endif /* DECODE_BAUD */
-}
-
- int
-TerminalWindowSize(rows, cols)
- long *rows, *cols;
-{
-#ifdef TIOCGWINSZ
- struct winsize ws;
-
- if (ioctl(fileno(stdin), TIOCGWINSZ, (char *)&ws) >= 0) {
- *rows = ws.ws_row;
- *cols = ws.ws_col;
- return 1;
- }
-#endif /* TIOCGWINSZ */
- return 0;
-}
-
- int
-NetClose(fd)
- int fd;
-{
- return close(fd);
-}
-
-
- void
-NetNonblockingIO(fd, onoff)
- int fd;
- int onoff;
-{
- ioctl(fd, FIONBIO, (char *)&onoff);
-}
-
-#if defined(TN3270)
- void
-NetSigIO(fd, onoff)
- int fd;
- int onoff;
-{
- ioctl(fd, FIOASYNC, (char *)&onoff); /* hear about input */
-}
-
- void
-NetSetPgrp(fd)
- int fd;
-{
- int myPid;
-
- myPid = getpid();
- fcntl(fd, F_SETOWN, myPid);
-}
-#endif /*defined(TN3270)*/
-
-/*
- * Various signal handling routines.
- */
-
- /* ARGSUSED */
- SIG_FUNC_RET
-deadpeer(sig)
- int sig;
-{
- setcommandmode();
- longjmp(peerdied, -1);
-}
-
- /* ARGSUSED */
- SIG_FUNC_RET
-intr(sig)
- int sig;
-{
- if (localchars) {
- intp();
- return;
- }
- setcommandmode();
- longjmp(toplevel, -1);
-}
-
- /* ARGSUSED */
- SIG_FUNC_RET
-intr2(sig)
- int sig;
-{
- if (localchars) {
-#ifdef KLUDGELINEMODE
- if (kludgelinemode)
- sendbrk();
- else
-#endif
- sendabort();
- return;
- }
-}
-
-#ifdef SIGTSTP
- /* ARGSUSED */
- SIG_FUNC_RET
-susp(sig)
- int sig;
-{
- if ((rlogin != _POSIX_VDISABLE) && rlogin_susp())
- return;
- if (localchars)
- sendsusp();
-}
-#endif
-
-#ifdef SIGWINCH
- /* ARGSUSED */
- SIG_FUNC_RET
-sendwin(sig)
- int sig;
-{
- if (connected) {
- sendnaws();
- }
-}
-#endif
-
-#ifdef SIGINFO
- /* ARGSUSED */
- SIG_FUNC_RET
-ayt(sig)
- int sig;
-{
- if (connected)
- sendayt();
- else
- ayt_status();
-}
-#endif
-
-
- void
-sys_telnet_init()
-{
- (void) signal(SIGINT, intr);
- (void) signal(SIGQUIT, intr2);
- (void) signal(SIGPIPE, deadpeer);
-#ifdef SIGWINCH
- (void) signal(SIGWINCH, sendwin);
-#endif
-#ifdef SIGTSTP
- (void) signal(SIGTSTP, susp);
-#endif
-#ifdef SIGINFO
- (void) signal(SIGINFO, ayt);
-#endif
-
- setconnmode(0);
-
- NetNonblockingIO(net, 1);
-
-#if defined(TN3270)
- if (noasynchnet == 0) { /* DBX can't handle! */
- NetSigIO(net, 1);
- NetSetPgrp(net);
- }
-#endif /* defined(TN3270) */
-
-#if defined(SO_OOBINLINE)
- if (SetSockOpt(net, SOL_SOCKET, SO_OOBINLINE, 1) == -1) {
- perror("SetSockOpt");
- }
-#endif /* defined(SO_OOBINLINE) */
-}
-
-/*
- * Process rings -
- *
- * This routine tries to fill up/empty our various rings.
- *
- * The parameter specifies whether this is a poll operation,
- * or a block-until-something-happens operation.
- *
- * The return value is 1 if something happened, 0 if not.
- */
-
- int
-process_rings(netin, netout, netex, ttyin, ttyout, poll)
- int poll; /* If 0, then block until something to do */
-{
- register int c;
- /* One wants to be a bit careful about setting returnValue
- * to one, since a one implies we did some useful work,
- * and therefore probably won't be called to block next
- * time (TN3270 mode only).
- */
- int returnValue = 0;
- static struct timeval TimeValue = { 0 };
-
- if (netout) {
- FD_SET(net, &obits);
- }
- if (ttyout) {
- FD_SET(tout, &obits);
- }
-#if defined(TN3270)
- if (ttyin) {
- FD_SET(tin, &ibits);
- }
-#else /* defined(TN3270) */
- if (ttyin) {
- FD_SET(tin, &ibits);
- }
-#endif /* defined(TN3270) */
-#if defined(TN3270)
- if (netin) {
- FD_SET(net, &ibits);
- }
-# else /* !defined(TN3270) */
- if (netin) {
- FD_SET(net, &ibits);
- }
-# endif /* !defined(TN3270) */
- if (netex) {
- FD_SET(net, &xbits);
- }
- if ((c = select(16, &ibits, &obits, &xbits,
- (poll == 0)? (struct timeval *)0 : &TimeValue)) < 0) {
- if (c == -1) {
- /*
- * we can get EINTR if we are in line mode,
- * and the user does an escape (TSTP), or
- * some other signal generator.
- */
- if (errno == EINTR) {
- return 0;
- }
-# if defined(TN3270)
- /*
- * we can get EBADF if we were in transparent
- * mode, and the transcom process died.
- */
- if (errno == EBADF) {
- /*
- * zero the bits (even though kernel does it)
- * to make sure we are selecting on the right
- * ones.
- */
- FD_ZERO(&ibits);
- FD_ZERO(&obits);
- FD_ZERO(&xbits);
- return 0;
- }
-# endif /* defined(TN3270) */
- /* I don't like this, does it ever happen? */
- printf("sleep(5) from telnet, after select: %s\r\n", strerror(errno));
- sleep(5);
- }
- return 0;
- }
-
- /*
- * Any urgent data?
- */
- if (FD_ISSET(net, &xbits)) {
- FD_CLR(net, &xbits);
- SYNCHing = 1;
- (void) ttyflush(1); /* flush already enqueued data */
- }
-
- /*
- * Something to read from the network...
- */
- if (FD_ISSET(net, &ibits)) {
- int canread;
-
- FD_CLR(net, &ibits);
- canread = ring_empty_consecutive(&netiring);
-#if !defined(SO_OOBINLINE)
- /*
- * In 4.2 (and some early 4.3) systems, the
- * OOB indication and data handling in the kernel
- * is such that if two separate TCP Urgent requests
- * come in, one byte of TCP data will be overlaid.
- * This is fatal for Telnet, but we try to live
- * with it.
- *
- * In addition, in 4.2 (and...), a special protocol
- * is needed to pick up the TCP Urgent data in
- * the correct sequence.
- *
- * What we do is: if we think we are in urgent
- * mode, we look to see if we are "at the mark".
- * If we are, we do an OOB receive. If we run
- * this twice, we will do the OOB receive twice,
- * but the second will fail, since the second
- * time we were "at the mark", but there wasn't
- * any data there (the kernel doesn't reset
- * "at the mark" until we do a normal read).
- * Once we've read the OOB data, we go ahead
- * and do normal reads.
- *
- * There is also another problem, which is that
- * since the OOB byte we read doesn't put us
- * out of OOB state, and since that byte is most
- * likely the TELNET DM (data mark), we would
- * stay in the TELNET SYNCH (SYNCHing) state.
- * So, clocks to the rescue. If we've "just"
- * received a DM, then we test for the
- * presence of OOB data when the receive OOB
- * fails (and AFTER we did the normal mode read
- * to clear "at the mark").
- */
- if (SYNCHing) {
- int atmark;
- static int bogus_oob = 0, first = 1;
-
- ioctl(net, SIOCATMARK, (char *)&atmark);
- if (atmark) {
- c = recv(net, netiring.supply, canread, MSG_OOB);
- if ((c == -1) && (errno == EINVAL)) {
- c = recv(net, netiring.supply, canread, 0);
- if (clocks.didnetreceive < clocks.gotDM) {
- SYNCHing = stilloob(net);
- }
- } else if (first && c > 0) {
- /*
- * Bogosity check. Systems based on 4.2BSD
- * do not return an error if you do a second
- * recv(MSG_OOB). So, we do one. If it
- * succeeds and returns exactly the same
- * data, then assume that we are running
- * on a broken system and set the bogus_oob
- * flag. (If the data was different, then
- * we probably got some valid new data, so
- * increment the count...)
- */
- int i;
- i = recv(net, netiring.supply + c, canread - c, MSG_OOB);
- if (i == c &&
- memcmp(netiring.supply, netiring.supply + c, i) == 0) {
- bogus_oob = 1;
- first = 0;
- } else if (i < 0) {
- bogus_oob = 0;
- first = 0;
- } else
- c += i;
- }
- if (bogus_oob && c > 0) {
- int i;
- /*
- * Bogosity. We have to do the read
- * to clear the atmark to get out of
- * an infinate loop.
- */
- i = read(net, netiring.supply + c, canread - c);
- if (i > 0)
- c += i;
- }
- } else {
- c = recv(net, netiring.supply, canread, 0);
- }
- } else {
- c = recv(net, netiring.supply, canread, 0);
- }
- settimer(didnetreceive);
-#else /* !defined(SO_OOBINLINE) */
- c = recv(net, (char *)netiring.supply, canread, 0);
-#endif /* !defined(SO_OOBINLINE) */
- if (c < 0 && errno == EWOULDBLOCK) {
- c = 0;
- } else if (c <= 0) {
- return -1;
- }
- if (netdata) {
- Dump('<', netiring.supply, c);
- }
- if (c)
- ring_supplied(&netiring, c);
- returnValue = 1;
- }
-
- /*
- * Something to read from the tty...
- */
- if (FD_ISSET(tin, &ibits)) {
- FD_CLR(tin, &ibits);
- c = TerminalRead(ttyiring.supply, ring_empty_consecutive(&ttyiring));
- if (c < 0 && errno == EIO)
- c = 0;
- if (c < 0 && errno == EWOULDBLOCK) {
- c = 0;
- } else {
- /* EOF detection for line mode!!!! */
- if ((c == 0) && MODE_LOCAL_CHARS(globalmode) && isatty(tin)) {
- /* must be an EOF... */
- *ttyiring.supply = termEofChar;
- c = 1;
- }
- if (c <= 0) {
- return -1;
- }
- if (termdata) {
- Dump('<', ttyiring.supply, c);
- }
- ring_supplied(&ttyiring, c);
- }
- returnValue = 1; /* did something useful */
- }
-
- if (FD_ISSET(net, &obits)) {
- FD_CLR(net, &obits);
- returnValue |= netflush();
- }
- if (FD_ISSET(tout, &obits)) {
- FD_CLR(tout, &obits);
- returnValue |= (ttyflush(SYNCHing|flushout) > 0);
- }
-
- return returnValue;
-}
diff --git a/crypto/telnet/telnet/telnet.1 b/crypto/telnet/telnet/telnet.1
deleted file mode 100644
index b996fea3b2b4..000000000000
--- a/crypto/telnet/telnet/telnet.1
+++ /dev/null
@@ -1,1366 +0,0 @@
-.\" Copyright (c) 1983, 1990, 1993
-.\" The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
-.\"
-.\" @(#)telnet.1 8.6 (Berkeley) 6/1/94
-.\"
-.Dd June 1, 1994
-.Dt TELNET 1
-.Os BSD 4.2
-.Sh NAME
-.Nm telnet
-.Nd user interface to the
-.Tn TELNET
-protocol
-.Sh SYNOPSIS
-.Nm telnet
-.Op Fl 8EFKLacdfrx
-.Op Fl S Ar tos
-.Op Fl X Ar authtype
-.Op Fl e Ar escapechar
-.Op Fl k Ar realm
-.Op Fl l Ar user
-.Op Fl n Ar tracefile
-.Oo
-.Ar host
-.Op port
-.Oc
-.Sh DESCRIPTION
-The
-.Nm telnet
-command
-is used to communicate with another host using the
-.Tn TELNET
-protocol.
-If
-.Nm telnet
-is invoked without the
-.Ar host
-argument, it enters command mode,
-indicated by its prompt
-.Pq Nm telnet\&> .
-In this mode, it accepts and executes the commands listed below.
-If it is invoked with arguments, it performs an
-.Ic open
-command with those arguments.
-.Pp
-Options:
-.Bl -tag -width indent
-.It Fl 8
-Specifies an 8-bit data path. This causes an attempt to
-negotiate the
-.Dv TELNET BINARY
-option on both input and output.
-.It Fl E
-Stops any character from being recognized as an escape character.
-.It Fl F
-If Kerberos V5 authentication is being used, the
-.Fl F
-option allows the local credentials to be forwarded
-to the remote system, including any credentials that
-have already been forwarded into the local environment.
-.It Fl K
-Specifies no automatic login to the remote system.
-.It Fl L
-Specifies an 8-bit data path on output. This causes the
-BINARY option to be negotiated on output.
-.It Fl S Ar tos
-Sets the IP type-of-service (TOS) option for the telnet
-connection to the value
-.Ar tos,
-which can be a numeric TOS value
-or, on systems that support it, a symbolic
-TOS name found in the /etc/iptos file.
-.It Fl X Ar atype
-Disables the
-.Ar atype
-type of authentication.
-.It Fl a
-Attempt automatic login.
-Currently, this sends the user name via the
-.Ev USER
-variable
-of the
-.Ev ENVIRON
-option if supported by the remote system.
-The name used is that of the current user as returned by
-.Xr getlogin 2
-if it agrees with the current user ID,
-otherwise it is the name associated with the user ID.
-.It Fl c
-Disables the reading of the user's
-.Pa \&.telnetrc
-file. (See the
-.Ic toggle skiprc
-command on this man page.)
-.It Fl d
-Sets the initial value of the
-.Ic debug
-toggle to
-.Dv TRUE
-.It Fl e Ar escape char
-Sets the initial
-.Nm
-.Nm telnet
-escape character to
-.Ar escape char.
-If
-.Ar escape char
-is omitted, then
-there will be no escape character.
-.It Fl f
-If Kerberos V5 authentication is being used, the
-.Fl f
-option allows the local credentials to be forwarded to the remote system.
-.ne 1i
-.It Fl k Ar realm
-If Kerberos authentication is being used, the
-.Fl k
-option requests that telnet obtain tickets for the remote host in
-realm realm instead of the remote host's realm, as determined
-by
-.Xr krb_realmofhost 3 .
-.It Fl l Ar user
-When connecting to the remote system, if the remote system
-understands the
-.Ev ENVIRON
-option, then
-.Ar user
-will be sent to the remote system as the value for the variable USER.
-This option implies the
-.Fl a
-option.
-This option may also be used with the
-.Ic open
-command.
-.It Fl n Ar tracefile
-Opens
-.Ar tracefile
-for recording trace information.
-See the
-.Ic set tracefile
-command below.
-.It Fl r
-Specifies a user interface similar to
-.Xr rlogin 1 .
-In this
-mode, the escape character is set to the tilde (~) character,
-unless modified by the -e option.
-.It Fl x
-Turns on encryption of the data stream if possible. This
-option is not available outside of the United States and
-Canada.
-.It Ar host
-Indicates the official name, an alias, or the Internet address
-of a remote host.
-.It Ar port
-Indicates a port number (address of an application). If a number is
-not specified, the default
-.Nm telnet
-port is used.
-.El
-.Pp
-When in rlogin mode, a line of the form ~. disconnects from the
-remote host; ~ is the telnet escape character.
-Similarly, the line ~^Z suspends the telnet session.
-The line ~^] escapes to the normal telnet escape prompt.
-.Pp
-Once a connection has been opened,
-.Nm telnet
-will attempt to enable the
-.Dv TELNET LINEMODE
-option.
-If this fails, then
-.Nm telnet
-will revert to one of two input modes:
-either \*(Lqcharacter at a time\*(Rq
-or \*(Lqold line by line\*(Rq
-depending on what the remote system supports.
-.Pp
-When
-.Dv LINEMODE
-is enabled, character processing is done on the
-local system, under the control of the remote system. When input
-editing or character echoing is to be disabled, the remote system
-will relay that information. The remote system will also relay
-changes to any special characters that happen on the remote
-system, so that they can take effect on the local system.
-.Pp
-In \*(Lqcharacter at a time\*(Rq mode, most
-text typed is immediately sent to the remote host for processing.
-.Pp
-In \*(Lqold line by line\*(Rq mode, all text is echoed locally,
-and (normally) only completed lines are sent to the remote host.
-The \*(Lqlocal echo character\*(Rq (initially \*(Lq^E\*(Rq) may be used
-to turn off and on the local echo
-(this would mostly be used to enter passwords
-without the password being echoed).
-.Pp
-If the
-.Dv LINEMODE
-option is enabled, or if the
-.Ic localchars
-toggle is
-.Dv TRUE
-(the default for \*(Lqold line by line\*(Lq; see below),
-the user's
-.Ic quit ,
-.Ic intr ,
-and
-.Ic flush
-characters are trapped locally, and sent as
-.Tn TELNET
-protocol sequences to the remote side.
-If
-.Dv LINEMODE
-has ever been enabled, then the user's
-.Ic susp
-and
-.Ic eof
-are also sent as
-.Tn TELNET
-protocol sequences,
-and
-.Ic quit
-is sent as a
-.Dv TELNET ABORT
-instead of
-.Dv BREAK
-There are options (see
-.Ic toggle
-.Ic autoflush
-and
-.Ic toggle
-.Ic autosynch
-below)
-which cause this action to flush subsequent output to the terminal
-(until the remote host acknowledges the
-.Tn TELNET
-sequence) and flush previous terminal input
-(in the case of
-.Ic quit
-and
-.Ic intr ) .
-.Pp
-While connected to a remote host,
-.Nm telnet
-command mode may be entered by typing the
-.Nm telnet
-\*(Lqescape character\*(Rq (initially \*(Lq^]\*(Rq).
-When in command mode, the normal terminal editing conventions are available.
-.Pp
-The following
-.Nm telnet
-commands are available.
-Only enough of each command to uniquely identify it need be typed
-(this is also true for arguments to the
-.Ic mode ,
-.Ic set ,
-.Ic toggle ,
-.Ic unset ,
-.Ic slc ,
-.Ic environ ,
-and
-.Ic display
-commands).
-.Pp
-.Bl -tag -width "mode type"
-.It Ic auth Ar argument ...
-The auth command manipulates the information sent through the
-.Dv TELNET AUTHENTICATE
-option. Valid arguments for the
-auth command are as follows:
-.Bl -tag -width "disable type"
-.It Ic disable Ar type
-Disables the specified type of authentication. To
-obtain a list of available types, use the
-.Ic auth disable \&?
-command.
-.It Ic enable Ar type
-Enables the specified type of authentication. To
-obtain a list of available types, use the
-.Ic auth enable \&?
-command.
-.It Ic status
-Lists the current status of the various types of
-authentication.
-.El
-.It Ic close
-Close a
-.Tn TELNET
-session and return to command mode.
-.It Ic display Ar argument ...
-Displays all, or some, of the
-.Ic set
-and
-.Ic toggle
-values (see below).
-.It Ic encrypt Ar argument ...
-The encrypt command manipulates the information sent through the
-.Dv TELNET ENCRYPT
-option.
-.Pp
-Note: Because of export controls, the
-.Dv TELNET ENCRYPT
-option is not supported outside of the United States and Canada.
-.Pp
-Valid arguments for the encrypt command are as follows:
-.Bl -tag -width Ar
-.It Ic disable Ar type Ic [input|output]
-Disables the specified type of encryption. If you
-omit the input and output, both input and output
-are disabled. To obtain a list of available
-types, use the
-.Ic encrypt disable \&?
-command.
-.It Ic enable Ar type Ic [input|output]
-Enables the specified type of encryption. If you
-omit input and output, both input and output are
-enabled. To obtain a list of available types, use the
-.Ic encrypt enable \&?
-command.
-.It Ic input
-This is the same as the
-.Ic encrypt start input
-command.
-.It Ic -input
-This is the same as the
-.Ic encrypt stop input
-command.
-.It Ic output
-This is the same as the
-.Ic encrypt start output
-command.
-.It Ic -output
-This is the same as the
-.Ic encrypt stop output
-command.
-.It Ic start Ic [input|output]
-Attempts to start encryption. If you omit
-.Ic input
-and
-.Ic output,
-both input and output are enabled. To
-obtain a list of available types, use the
-.Ic encrypt enable \&?
-command.
-.It Ic status
-Lists the current status of encryption.
-.It Ic stop Ic [input|output]
-Stops encryption. If you omit input and output,
-encryption is on both input and output.
-.It Ic type Ar type
-Sets the default type of encryption to be used
-with later
-.Ic encrypt start
-or
-.Ic encrypt stop
-commands.
-.El
-.It Ic environ Ar arguments...
-The
-.Ic environ
-command is used to manipulate the
-the variables that my be sent through the
-.Dv TELNET ENVIRON
-option.
-The initial set of variables is taken from the users
-environment, with only the
-.Ev DISPLAY
-and
-.Ev PRINTER
-variables being exported by default.
-The
-.Ev USER
-variable is also exported if the
-.Fl a
-or
-.Fl l
-options are used.
-.br
-Valid arguments for the
-.Ic environ
-command are:
-.Bl -tag -width Fl
-.It Ic define Ar variable value
-Define the variable
-.Ar variable
-to have a value of
-.Ar value.
-Any variables defined by this command are automatically exported.
-The
-.Ar value
-may be enclosed in single or double quotes so
-that tabs and spaces may be included.
-.It Ic undefine Ar variable
-Remove
-.Ar variable
-from the list of environment variables.
-.It Ic export Ar variable
-Mark the variable
-.Ar variable
-to be exported to the remote side.
-.It Ic unexport Ar variable
-Mark the variable
-.Ar variable
-to not be exported unless
-explicitly asked for by the remote side.
-.It Ic list
-List the current set of environment variables.
-Those marked with a
-.Cm *
-will be sent automatically,
-other variables will only be sent if explicitly requested.
-.It Ic \&?
-Prints out help information for the
-.Ic environ
-command.
-.El
-.It Ic logout
-Sends the
-.Dv TELNET LOGOUT
-option to the remote side.
-This command is similar to a
-.Ic close
-command; however, if the remote side does not support the
-.Dv LOGOUT
-option, nothing happens.
-If, however, the remote side does support the
-.Dv LOGOUT
-option, this command should cause the remote side to close the
-.Tn TELNET
-connection.
-If the remote side also supports the concept of
-suspending a user's session for later reattachment,
-the logout argument indicates that you
-should terminate the session immediately.
-.It Ic mode Ar type
-.Ar Type
-is one of several options, depending on the state of the
-.Tn TELNET
-session.
-The remote host is asked for permission to go into the requested mode.
-If the remote host is capable of entering that mode, the requested
-mode will be entered.
-.Bl -tag -width Ar
-.It Ic character
-Disable the
-.Dv TELNET LINEMODE
-option, or, if the remote side does not understand the
-.Dv LINEMODE
-option, then enter \*(Lqcharacter at a time\*(Lq mode.
-.It Ic line
-Enable the
-.Dv TELNET LINEMODE
-option, or, if the remote side does not understand the
-.Dv LINEMODE
-option, then attempt to enter \*(Lqold-line-by-line\*(Lq mode.
-.It Ic isig Pq Ic \-isig
-Attempt to enable (disable) the
-.Dv TRAPSIG
-mode of the
-.Dv LINEMODE
-option.
-This requires that the
-.Dv LINEMODE
-option be enabled.
-.It Ic edit Pq Ic \-edit
-Attempt to enable (disable) the
-.Dv EDIT
-mode of the
-.Dv LINEMODE
-option.
-This requires that the
-.Dv LINEMODE
-option be enabled.
-.It Ic softtabs Pq Ic \-softtabs
-Attempt to enable (disable) the
-.Dv SOFT_TAB
-mode of the
-.Dv LINEMODE
-option.
-This requires that the
-.Dv LINEMODE
-option be enabled.
-.ne 1i
-.It Ic litecho Pq Ic \-litecho
-Attempt to enable (disable) the
-.Dv LIT_ECHO
-mode of the
-.Dv LINEMODE
-option.
-This requires that the
-.Dv LINEMODE
-option be enabled.
-.It Ic \&?
-Prints out help information for the
-.Ic mode
-command.
-.El
-.It Xo
-.Ic open Ar host
-.Oo Op Fl l
-.Ar user
-.Oc Ns Oo Fl
-.Ar port Oc
-.Xc
-Open a connection to the named host.
-If no port number
-is specified,
-.Nm telnet
-will attempt to contact a
-.Tn TELNET
-server at the default port.
-The host specification may be either a host name (see
-.Xr hosts 5 )
-or an Internet address specified in the \*(Lqdot notation\*(Rq (see
-.Xr inet 3 ) .
-The
-.Op Fl l
-option may be used to specify the user name
-to be passed to the remote system via the
-.Ev ENVIRON
-option.
-When connecting to a non-standard port,
-.Nm telnet
-omits any automatic initiation of
-.Tn TELNET
-options. When the port number is preceded by a minus sign,
-the initial option negotiation is done.
-After establishing a connection, the file
-.Pa \&.telnetrc
-in the
-users home directory is opened. Lines beginning with a # are
-comment lines. Blank lines are ignored. Lines that begin
-without white space are the start of a machine entry. The
-first thing on the line is the name of the machine that is
-being connected to. The rest of the line, and successive
-lines that begin with white space are assumed to be
-.Nm telnet
-commands and are processed as if they had been typed
-in manually to the
-.Nm telnet
-command prompt.
-.It Ic quit
-Close any open
-.Tn TELNET
-session and exit
-.Nm telnet .
-An end of file (in command mode) will also close a session and exit.
-.It Ic send Ar arguments
-Sends one or more special character sequences to the remote host.
-The following are the arguments which may be specified
-(more than one argument may be specified at a time):
-.Pp
-.Bl -tag -width escape
-.It Ic abort
-Sends the
-.Dv TELNET ABORT
-(Abort
-processes)
-sequence.
-.It Ic ao
-Sends the
-.Dv TELNET AO
-(Abort Output) sequence, which should cause the remote system to flush
-all output
-.Em from
-the remote system
-.Em to
-the user's terminal.
-.It Ic ayt
-Sends the
-.Dv TELNET AYT
-(Are You There)
-sequence, to which the remote system may or may not choose to respond.
-.It Ic brk
-Sends the
-.Dv TELNET BRK
-(Break) sequence, which may have significance to the remote
-system.
-.It Ic ec
-Sends the
-.Dv TELNET EC
-(Erase Character)
-sequence, which should cause the remote system to erase the last character
-entered.
-.It Ic el
-Sends the
-.Dv TELNET EL
-(Erase Line)
-sequence, which should cause the remote system to erase the line currently
-being entered.
-.It Ic eof
-Sends the
-.Dv TELNET EOF
-(End Of File)
-sequence.
-.It Ic eor
-Sends the
-.Dv TELNET EOR
-(End of Record)
-sequence.
-.It Ic escape
-Sends the current
-.Nm telnet
-escape character (initially \*(Lq^\*(Rq).
-.It Ic ga
-Sends the
-.Dv TELNET GA
-(Go Ahead)
-sequence, which likely has no significance to the remote system.
-.It Ic getstatus
-If the remote side supports the
-.Dv TELNET STATUS
-command,
-.Ic getstatus
-will send the subnegotiation to request that the server send
-its current option status.
-.ne 1i
-.It Ic ip
-Sends the
-.Dv TELNET IP
-(Interrupt Process) sequence, which should cause the remote
-system to abort the currently running process.
-.It Ic nop
-Sends the
-.Dv TELNET NOP
-(No OPeration)
-sequence.
-.It Ic susp
-Sends the
-.Dv TELNET SUSP
-(SUSPend process)
-sequence.
-.It Ic synch
-Sends the
-.Dv TELNET SYNCH
-sequence.
-This sequence causes the remote system to discard all previously typed
-(but not yet read) input.
-This sequence is sent as
-.Tn TCP
-urgent
-data (and may not work if the remote system is a
-.Bx 4.2
-system -- if
-it doesn't work, a lower case \*(Lqr\*(Rq may be echoed on the terminal).
-.It Ic do Ar cmd
-.It Ic dont Ar cmd
-.It Ic will Ar cmd
-.It Ic wont Ar cmd
-Sends the
-.Dv TELNET DO
-.Ar cmd
-sequence.
-.Ar Cmd
-can be either a decimal number between 0 and 255,
-or a symbolic name for a specific
-.Dv TELNET
-command.
-.Ar Cmd
-can also be either
-.Ic help
-or
-.Ic \&?
-to print out help information, including
-a list of known symbolic names.
-.It Ic \&?
-Prints out help information for the
-.Ic send
-command.
-.El
-.It Ic set Ar argument value
-.It Ic unset Ar argument value
-The
-.Ic set
-command will set any one of a number of
-.Nm telnet
-variables to a specific value or to
-.Dv TRUE .
-The special value
-.Ic off
-turns off the function associated with
-the variable, this is equivalent to using the
-.Ic unset
-command.
-The
-.Ic unset
-command will disable or set to
-.Dv FALSE
-any of the specified functions.
-The values of variables may be interrogated with the
-.Ic display
-command.
-The variables which may be set or unset, but not toggled, are
-listed here. In addition, any of the variables for the
-.Ic toggle
-command may be explicitly set or unset using
-the
-.Ic set
-and
-.Ic unset
-commands.
-.Bl -tag -width escape
-.It Ic ayt
-If
-.Tn TELNET
-is in localchars mode, or
-.Dv LINEMODE
-is enabled, and the status character is typed, a
-.Dv TELNET AYT
-sequence (see
-.Ic send ayt
-preceding) is sent to the
-remote host. The initial value for the "Are You There"
-character is the terminal's status character.
-.It Ic echo
-This is the value (initially \*(Lq^E\*(Rq) which, when in
-\*(Lqline by line\*(Rq mode, toggles between doing local echoing
-of entered characters (for normal processing), and suppressing
-echoing of entered characters (for entering, say, a password).
-.It Ic eof
-If
-.Nm telnet
-is operating in
-.Dv LINEMODE
-or \*(Lqold line by line\*(Rq mode, entering this character
-as the first character on a line will cause this character to be
-sent to the remote system.
-The initial value of the eof character is taken to be the terminal's
-.Ic eof
-character.
-.It Ic erase
-If
-.Nm telnet
-is in
-.Ic localchars
-mode (see
-.Ic toggle
-.Ic localchars
-below),
-.Sy and
-if
-.Nm telnet
-is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
-character is typed, a
-.Dv TELNET EC
-sequence (see
-.Ic send
-.Ic ec
-above)
-is sent to the remote system.
-The initial value for the erase character is taken to be
-the terminal's
-.Ic erase
-character.
-.It Ic escape
-This is the
-.Nm telnet
-escape character (initially \*(Lq^[\*(Rq) which causes entry
-into
-.Nm telnet
-command mode (when connected to a remote system).
-.It Ic flushoutput
-If
-.Nm telnet
-is in
-.Ic localchars
-mode (see
-.Ic toggle
-.Ic localchars
-below)
-and the
-.Ic flushoutput
-character is typed, a
-.Dv TELNET AO
-sequence (see
-.Ic send
-.Ic ao
-above)
-is sent to the remote host.
-The initial value for the flush character is taken to be
-the terminal's
-.Ic flush
-character.
-.It Ic forw1
-.It Ic forw2
-If
-.Tn TELNET
-is operating in
-.Dv LINEMODE ,
-these are the
-characters that, when typed, cause partial lines to be
-forwarded to the remote system. The initial value for
-the forwarding characters are taken from the terminal's
-eol and eol2 characters.
-.It Ic interrupt
-If
-.Nm telnet
-is in
-.Ic localchars
-mode (see
-.Ic toggle
-.Ic localchars
-below)
-and the
-.Ic interrupt
-character is typed, a
-.Dv TELNET IP
-sequence (see
-.Ic send
-.Ic ip
-above)
-is sent to the remote host.
-The initial value for the interrupt character is taken to be
-the terminal's
-.Ic intr
-character.
-.It Ic kill
-If
-.Nm telnet
-is in
-.Ic localchars
-mode (see
-.Ic toggle
-.Ic localchars
-below),
-.Ic and
-if
-.Nm telnet
-is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
-character is typed, a
-.Dv TELNET EL
-sequence (see
-.Ic send
-.Ic el
-above)
-is sent to the remote system.
-The initial value for the kill character is taken to be
-the terminal's
-.Ic kill
-character.
-.It Ic lnext
-If
-.Nm telnet
-is operating in
-.Dv LINEMODE
-or \*(Lqold line by line\*(Lq mode, then this character is taken to
-be the terminal's
-.Ic lnext
-character.
-The initial value for the lnext character is taken to be
-the terminal's
-.Ic lnext
-character.
-.It Ic quit
-If
-.Nm telnet
-is in
-.Ic localchars
-mode (see
-.Ic toggle
-.Ic localchars
-below)
-and the
-.Ic quit
-character is typed, a
-.Dv TELNET BRK
-sequence (see
-.Ic send
-.Ic brk
-above)
-is sent to the remote host.
-The initial value for the quit character is taken to be
-the terminal's
-.Ic quit
-character.
-.It Ic reprint
-If
-.Nm telnet
-is operating in
-.Dv LINEMODE
-or \*(Lqold line by line\*(Lq mode, then this character is taken to
-be the terminal's
-.Ic reprint
-character.
-The initial value for the reprint character is taken to be
-the terminal's
-.Ic reprint
-character.
-.It Ic rlogin
-This is the rlogin escape character.
-If set, the normal
-.Tn TELNET
-escape character is ignored unless it is
-preceded by this character at the beginning of a line.
-This character, at the beginning of a line followed by
-a "." closes the connection; when followed by a ^Z it
-suspends the telnet command. The initial state is to
-disable the rlogin escape character.
-.It Ic start
-If the
-.Dv TELNET TOGGLE-FLOW-CONTROL
-option has been enabled,
-then this character is taken to
-be the terminal's
-.Ic start
-character.
-The initial value for the kill character is taken to be
-the terminal's
-.Ic start
-character.
-.It Ic stop
-If the
-.Dv TELNET TOGGLE-FLOW-CONTROL
-option has been enabled,
-then this character is taken to
-be the terminal's
-.Ic stop
-character.
-The initial value for the kill character is taken to be
-the terminal's
-.Ic stop
-character.
-.It Ic susp
-If
-.Nm telnet
-is in
-.Ic localchars
-mode, or
-.Dv LINEMODE
-is enabled, and the
-.Ic suspend
-character is typed, a
-.Dv TELNET SUSP
-sequence (see
-.Ic send
-.Ic susp
-above)
-is sent to the remote host.
-The initial value for the suspend character is taken to be
-the terminal's
-.Ic suspend
-character.
-.ne 1i
-.It Ic tracefile
-This is the file to which the output, caused by
-.Ic netdata
-or
-.Ic option
-tracing being
-.Dv TRUE ,
-will be written. If it is set to
-.Dq Fl ,
-then tracing information will be written to standard output (the default).
-.It Ic worderase
-If
-.Nm telnet
-is operating in
-.Dv LINEMODE
-or \*(Lqold line by line\*(Lq mode, then this character is taken to
-be the terminal's
-.Ic worderase
-character.
-The initial value for the worderase character is taken to be
-the terminal's
-.Ic worderase
-character.
-.It Ic \&?
-Displays the legal
-.Ic set
-.Pq Ic unset
-commands.
-.El
-.It Ic slc Ar state
-The
-.Ic slc
-command (Set Local Characters) is used to set
-or change the state of the the special
-characters when the
-.Dv TELNET LINEMODE
-option has
-been enabled. Special characters are characters that get
-mapped to
-.Tn TELNET
-commands sequences (like
-.Ic ip
-or
-.Ic quit )
-or line editing characters (like
-.Ic erase
-and
-.Ic kill ) .
-By default, the local special characters are exported.
-.Bl -tag -width Fl
-.It Ic check
-Verify the current settings for the current special characters.
-The remote side is requested to send all the current special
-character settings, and if there are any discrepancies with
-the local side, the local side will switch to the remote value.
-.It Ic export
-Switch to the local defaults for the special characters. The
-local default characters are those of the local terminal at
-the time when
-.Nm telnet
-was started.
-.It Ic import
-Switch to the remote defaults for the special characters.
-The remote default characters are those of the remote system
-at the time when the
-.Tn TELNET
-connection was established.
-.It Ic \&?
-Prints out help information for the
-.Ic slc
-command.
-.El
-.It Ic status
-Show the current status of
-.Nm telnet .
-This includes the peer one is connected to, as well
-as the current mode.
-.It Ic toggle Ar arguments ...
-Toggle (between
-.Dv TRUE
-and
-.Dv FALSE )
-various flags that control how
-.Nm telnet
-responds to events.
-These flags may be set explicitly to
-.Dv TRUE
-or
-.Dv FALSE
-using the
-.Ic set
-and
-.Ic unset
-commands listed above.
-More than one argument may be specified.
-The state of these flags may be interrogated with the
-.Ic display
-command.
-Valid arguments are:
-.Bl -tag -width Ar
-.It Ic authdebug
-Turns on debugging information for the authentication code.
-.It Ic autoflush
-If
-.Ic autoflush
-and
-.Ic localchars
-are both
-.Dv TRUE ,
-then when the
-.Ic ao ,
-or
-.Ic quit
-characters are recognized (and transformed into
-.Tn TELNET
-sequences; see
-.Ic set
-above for details),
-.Nm telnet
-refuses to display any data on the user's terminal
-until the remote system acknowledges (via a
-.Dv TELNET TIMING MARK
-option)
-that it has processed those
-.Tn TELNET
-sequences.
-The initial value for this toggle is
-.Dv TRUE
-if the terminal user had not
-done an "stty noflsh", otherwise
-.Dv FALSE
-(see
-.Xr stty 1 ) .
-.It Ic autodecrypt
-When the
-.Dv TELNET ENCRYPT
-option is negotiated, by
-default the actual encryption (decryption) of the data
-stream does not start automatically. The autoencrypt
-(autodecrypt) command states that encryption of the
-output (input) stream should be enabled as soon as
-possible.
-.sp
-.Pp
-Note: Because of export controls, the
-.Dv TELNET ENCRYPT
-option is not supported outside the United States and Canada.
-.It Ic autologin
-If the remote side supports the
-.Dv TELNET AUTHENTICATION
-option
-.Tn TELNET
-attempts to use it to perform automatic authentication. If the
-.Dv AUTHENTICATION
-option is not supported, the user's login
-name are propagated through the
-.Dv TELNET ENVIRON
-option.
-This command is the same as specifying
-.Ar a
-option on the
-.Ic open
-command.
-.It Ic autosynch
-If
-.Ic autosynch
-and
-.Ic localchars
-are both
-.Dv TRUE ,
-then when either the
-.Ic intr
-or
-.Ic quit
-characters is typed (see
-.Ic set
-above for descriptions of the
-.Ic intr
-and
-.Ic quit
-characters), the resulting
-.Tn TELNET
-sequence sent is followed by the
-.Dv TELNET SYNCH
-sequence.
-This procedure
-.Ic should
-cause the remote system to begin throwing away all previously
-typed input until both of the
-.Tn TELNET
-sequences have been read and acted upon.
-The initial value of this toggle is
-.Dv FALSE .
-.It Ic binary
-Enable or disable the
-.Dv TELNET BINARY
-option on both input and output.
-.It Ic inbinary
-Enable or disable the
-.Dv TELNET BINARY
-option on input.
-.It Ic outbinary
-Enable or disable the
-.Dv TELNET BINARY
-option on output.
-.It Ic crlf
-If this is
-.Dv TRUE ,
-then carriage returns will be sent as
-.Li <CR><LF> .
-If this is
-.Dv FALSE ,
-then carriage returns will be send as
-.Li <CR><NUL> .
-The initial value for this toggle is
-.Dv FALSE .
-.It Ic crmod
-Toggle carriage return mode.
-When this mode is enabled, most carriage return characters received from
-the remote host will be mapped into a carriage return followed by
-a line feed.
-This mode does not affect those characters typed by the user, only
-those received from the remote host.
-This mode is not very useful unless the remote host
-only sends carriage return, but never line feed.
-The initial value for this toggle is
-.Dv FALSE .
-.It Ic debug
-Toggles socket level debugging (useful only to the
-.Ic super user ) .
-The initial value for this toggle is
-.Dv FALSE .
-.It Ic encdebug
-Turns on debugging information for the encryption code.
-.It Ic localchars
-If this is
-.Dv TRUE ,
-then the
-.Ic flush ,
-.Ic interrupt ,
-.Ic quit ,
-.Ic erase ,
-and
-.Ic kill
-characters (see
-.Ic set
-above) are recognized locally, and transformed into (hopefully) appropriate
-.Tn TELNET
-control sequences
-(respectively
-.Ic ao ,
-.Ic ip ,
-.Ic brk ,
-.Ic ec ,
-and
-.Ic el ;
-see
-.Ic send
-above).
-The initial value for this toggle is
-.Dv TRUE
-in \*(Lqold line by line\*(Rq mode,
-and
-.Dv FALSE
-in \*(Lqcharacter at a time\*(Rq mode.
-When the
-.Dv LINEMODE
-option is enabled, the value of
-.Ic localchars
-is ignored, and assumed to always be
-.Dv TRUE .
-If
-.Dv LINEMODE
-has ever been enabled, then
-.Ic quit
-is sent as
-.Ic abort ,
-and
-.Ic eof and
-.B suspend
-are sent as
-.Ic eof and
-.Ic susp ,
-see
-.Ic send
-above).
-.It Ic netdata
-Toggles the display of all network data (in hexadecimal format).
-The initial value for this toggle is
-.Dv FALSE .
-.It Ic options
-Toggles the display of some internal
-.Nm telnet
-protocol processing (having to do with
-.Tn TELNET
-options).
-The initial value for this toggle is
-.Dv FALSE .
-.ne 1i
-.It Ic prettydump
-When the
-.Ic netdata
-toggle is enabled, if
-.Ic prettydump
-is enabled the output from the
-.Ic netdata
-command will be formatted in a more user readable format.
-Spaces are put between each character in the output, and the
-beginning of any
-.Tn TELNET
-escape sequence is preceded by a '*' to aid in locating them.
-.It Ic skiprc
-When the skiprc toggle is
-.Dv TRUE ,
-.Tn TELNET
-skips the reading of the
-.Pa \&.telnetrc
-file in the users home
-directory when connections are opened. The initial
-value for this toggle is
-.Dv FALSE.
-.It Ic termdata
-Toggles the display of all terminal data (in hexadecimal format).
-The initial value for this toggle is
-.Dv FALSE .
-.It Ic verbose_encrypt
-When the
-.Ic verbose_encrypt
-toggle is
-.Dv TRUE ,
-.Tn TELNET
-prints out a message each time encryption is enabled or
-disabled. The initial value for this toggle is
-.Dv FALSE.
-Note: Because of export controls, data encryption
-is not supported outside of the United States and Canada.
-.It Ic \&?
-Displays the legal
-.Ic toggle
-commands.
-.El
-.It Ic z
-Suspend
-.Nm telnet .
-This command only works when the user is using the
-.Xr csh 1 .
-.It Ic \&! Op Ar command
-Execute a single command in a subshell on the local
-system. If
-.Ic command
-is omitted, then an interactive
-subshell is invoked.
-.It Ic \&? Op Ar command
-Get help. With no arguments,
-.Nm telnet
-prints a help summary.
-If a command is specified,
-.Nm telnet
-will print the help information for just that command.
-.El
-.Sh ENVIRONMENT
-.Nm Telnet
-uses at least the
-.Ev HOME ,
-.Ev SHELL ,
-.Ev DISPLAY ,
-and
-.Ev TERM
-environment variables.
-Other environment variables may be propagated
-to the other side via the
-.Dv TELNET ENVIRON
-option.
-.Sh FILES
-.Bl -tag -width ~/.telnetrc -compact
-.It Pa ~/.telnetrc
-user customized telnet startup values
-.El
-.Sh HISTORY
-The
-.Nm Telnet
-command appeared in
-.Bx 4.2 .
-.Sh NOTES
-.Pp
-On some remote systems, echo has to be turned off manually when in
-\*(Lqold line by line\*(Rq mode.
-.Pp
-In \*(Lqold line by line\*(Rq mode or
-.Dv LINEMODE
-the terminal's
-.Ic eof
-character is only recognized (and sent to the remote system)
-when it is the first character on a line.
diff --git a/crypto/telnet/telnet/telnet.c b/crypto/telnet/telnet/telnet.c
deleted file mode 100644
index 1c1ee333fa72..000000000000
--- a/crypto/telnet/telnet/telnet.c
+++ /dev/null
@@ -1,2662 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#include <sys/types.h>
-
-#if defined(unix)
-#include <signal.h>
-/* By the way, we need to include curses.h before telnet.h since,
- * among other things, telnet.h #defines 'DO', which is a variable
- * declared in curses.h.
- */
-#endif /* defined(unix) */
-
-#include <arpa/telnet.h>
-
-#include <ctype.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <termcap.h>
-
-#include "ring.h"
-
-#include "defines.h"
-#include "externs.h"
-#include "types.h"
-#include "general.h"
-
-#if defined(AUTHENTICATION)
-#include <libtelnet/auth.h>
-#endif
-#if defined(ENCRYPTION)
-#include <libtelnet/encrypt.h>
-#endif
-#include <libtelnet/misc.h>
-
-#define strip(x) ((my_want_state_is_wont(TELOPT_BINARY)) ? ((x)&0x7f) : (x))
-
-static unsigned char subbuffer[SUBBUFSIZE],
- *subpointer, *subend; /* buffer for sub-options */
-#define SB_CLEAR() subpointer = subbuffer;
-#define SB_TERM() { subend = subpointer; SB_CLEAR(); }
-#define SB_ACCUM(c) if (subpointer < (subbuffer+sizeof subbuffer)) { \
- *subpointer++ = (c); \
- }
-
-#define SB_GET() ((*subpointer++)&0xff)
-#define SB_PEEK() ((*subpointer)&0xff)
-#define SB_EOF() (subpointer >= subend)
-#define SB_LEN() (subend - subpointer)
-
-char options[256]; /* The combined options */
-char do_dont_resp[256];
-char will_wont_resp[256];
-
-int
- eight = 0,
- autologin = 0, /* Autologin anyone? */
- skiprc = 0,
- connected,
- showoptions,
- In3270, /* Are we in 3270 mode? */
- ISend, /* trying to send network data in */
- debug = 0,
- crmod,
- netdata, /* Print out network data flow */
- crlf, /* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */
-#if defined(TN3270)
- noasynchtty = 0,/* User specified "-noasynch" on command line */
- noasynchnet = 0,/* User specified "-noasynch" on command line */
- askedSGA = 0, /* We have talked about suppress go ahead */
-#endif /* defined(TN3270) */
- telnetport,
- SYNCHing, /* we are in TELNET SYNCH mode */
- flushout, /* flush output */
- autoflush = 0, /* flush output when interrupting? */
- autosynch, /* send interrupt characters with SYNCH? */
- localflow, /* we handle flow control locally */
- restartany, /* if flow control enabled, restart on any character */
- localchars, /* we recognize interrupt/quit */
- donelclchars, /* the user has set "localchars" */
- donebinarytoggle, /* the user has put us in binary */
- dontlecho, /* do we suppress local echoing right now? */
- globalmode,
- clienteof = 0;
-
-char *prompt = 0;
-
-cc_t escape;
-cc_t rlogin;
-#ifdef KLUDGELINEMODE
-cc_t echoc;
-#endif
-
-/*
- * Telnet receiver states for fsm
- */
-#define TS_DATA 0
-#define TS_IAC 1
-#define TS_WILL 2
-#define TS_WONT 3
-#define TS_DO 4
-#define TS_DONT 5
-#define TS_CR 6
-#define TS_SB 7 /* sub-option collection */
-#define TS_SE 8 /* looking for sub-option end */
-
-static int telrcv_state;
-#ifdef OLD_ENVIRON
-unsigned char telopt_environ = TELOPT_NEW_ENVIRON;
-#else
-# define telopt_environ TELOPT_NEW_ENVIRON
-#endif
-
-jmp_buf toplevel = { 0 };
-jmp_buf peerdied;
-
-int flushline;
-int linemode;
-
-#ifdef KLUDGELINEMODE
-int kludgelinemode = 1;
-#endif
-
-/*
- * The following are some clocks used to decide how to interpret
- * the relationship between various variables.
- */
-
-Clocks clocks;
-
-#ifdef notdef
-Modelist modelist[] = {
- { "telnet command mode", COMMAND_LINE },
- { "character-at-a-time mode", 0 },
- { "character-at-a-time mode (local echo)", LOCAL_ECHO|LOCAL_CHARS },
- { "line-by-line mode (remote echo)", LINE | LOCAL_CHARS },
- { "line-by-line mode", LINE | LOCAL_ECHO | LOCAL_CHARS },
- { "line-by-line mode (local echoing suppressed)", LINE | LOCAL_CHARS },
- { "3270 mode", 0 },
-};
-#endif
-
-
-/*
- * Initialize telnet environment.
- */
-
- void
-init_telnet()
-{
- env_init();
-
- SB_CLEAR();
- ClearArray(options);
-
- connected = In3270 = ISend = localflow = donebinarytoggle = 0;
-#if defined(AUTHENTICATION) || defined(ENCRYPTION)
- auth_encrypt_connect(connected);
-#endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
- restartany = -1;
-
- SYNCHing = 0;
-
- /* Don't change NetTrace */
-
- escape = CONTROL(']');
- rlogin = _POSIX_VDISABLE;
-#ifdef KLUDGELINEMODE
- echoc = CONTROL('E');
-#endif
-
- flushline = 1;
- telrcv_state = TS_DATA;
-}
-
-
-#ifdef notdef
-#include <varargs.h>
-
- /*VARARGS*/
- static void
-printring(va_alist)
- va_dcl
-{
- va_list ap;
- char buffer[100]; /* where things go */
- char *ptr;
- char *format;
- char *string;
- Ring *ring;
- int i;
-
- va_start(ap);
-
- ring = va_arg(ap, Ring *);
- format = va_arg(ap, char *);
- ptr = buffer;
-
- while ((i = *format++) != 0) {
- if (i == '%') {
- i = *format++;
- switch (i) {
- case 'c':
- *ptr++ = va_arg(ap, int);
- break;
- case 's':
- string = va_arg(ap, char *);
- ring_supply_data(ring, buffer, ptr-buffer);
- ring_supply_data(ring, string, strlen(string));
- ptr = buffer;
- break;
- case 0:
- ExitString("printring: trailing %%.\n", 1);
- /*NOTREACHED*/
- default:
- ExitString("printring: unknown format character.\n", 1);
- /*NOTREACHED*/
- }
- } else {
- *ptr++ = i;
- }
- }
- ring_supply_data(ring, buffer, ptr-buffer);
-}
-#endif
-
-/*
- * These routines are in charge of sending option negotiations
- * to the other side.
- *
- * The basic idea is that we send the negotiation if either side
- * is in disagreement as to what the current state should be.
- */
-
- void
-send_do(c, init)
- register int c, init;
-{
- if (init) {
- if (((do_dont_resp[c] == 0) && my_state_is_do(c)) ||
- my_want_state_is_do(c))
- return;
- set_my_want_state_do(c);
- do_dont_resp[c]++;
- }
- NET2ADD(IAC, DO);
- NETADD(c);
- printoption("SENT", DO, c);
-}
-
- void
-send_dont(c, init)
- register int c, init;
-{
- if (init) {
- if (((do_dont_resp[c] == 0) && my_state_is_dont(c)) ||
- my_want_state_is_dont(c))
- return;
- set_my_want_state_dont(c);
- do_dont_resp[c]++;
- }
- NET2ADD(IAC, DONT);
- NETADD(c);
- printoption("SENT", DONT, c);
-}
-
- void
-send_will(c, init)
- register int c, init;
-{
- if (init) {
- if (((will_wont_resp[c] == 0) && my_state_is_will(c)) ||
- my_want_state_is_will(c))
- return;
- set_my_want_state_will(c);
- will_wont_resp[c]++;
- }
- NET2ADD(IAC, WILL);
- NETADD(c);
- printoption("SENT", WILL, c);
-}
-
- void
-send_wont(c, init)
- register int c, init;
-{
- if (init) {
- if (((will_wont_resp[c] == 0) && my_state_is_wont(c)) ||
- my_want_state_is_wont(c))
- return;
- set_my_want_state_wont(c);
- will_wont_resp[c]++;
- }
- NET2ADD(IAC, WONT);
- NETADD(c);
- printoption("SENT", WONT, c);
-}
-
-
- void
-willoption(option)
- int option;
-{
- int new_state_ok = 0;
-
- if (do_dont_resp[option]) {
- --do_dont_resp[option];
- if (do_dont_resp[option] && my_state_is_do(option))
- --do_dont_resp[option];
- }
-
- if ((do_dont_resp[option] == 0) && my_want_state_is_dont(option)) {
-
- switch (option) {
-
- case TELOPT_ECHO:
-# if defined(TN3270)
- /*
- * The following is a pain in the rear-end.
- * Various IBM servers (some versions of Wiscnet,
- * possibly Fibronics/Spartacus, and who knows who
- * else) will NOT allow us to send "DO SGA" too early
- * in the setup proceedings. On the other hand,
- * 4.2 servers (telnetd) won't set SGA correctly.
- * So, we are stuck. Empirically (but, based on
- * a VERY small sample), the IBM servers don't send
- * out anything about ECHO, so we postpone our sending
- * "DO SGA" until we see "WILL ECHO" (which 4.2 servers
- * DO send).
- */
- {
- if (askedSGA == 0) {
- askedSGA = 1;
- if (my_want_state_is_dont(TELOPT_SGA))
- send_do(TELOPT_SGA, 1);
- }
- }
- /* Fall through */
- case TELOPT_EOR:
-#endif /* defined(TN3270) */
- case TELOPT_BINARY:
- case TELOPT_SGA:
- settimer(modenegotiated);
- /* FALL THROUGH */
- case TELOPT_STATUS:
-#if defined(AUTHENTICATION)
- case TELOPT_AUTHENTICATION:
-#endif
-#ifdef ENCRYPTION
- case TELOPT_ENCRYPT:
-#endif /* ENCRYPTION */
- new_state_ok = 1;
- break;
-
- case TELOPT_TM:
- if (flushout)
- flushout = 0;
- /*
- * Special case for TM. If we get back a WILL,
- * pretend we got back a WONT.
- */
- set_my_want_state_dont(option);
- set_my_state_dont(option);
- return; /* Never reply to TM will's/wont's */
-
- case TELOPT_LINEMODE:
- default:
- break;
- }
-
- if (new_state_ok) {
- set_my_want_state_do(option);
- send_do(option, 0);
- setconnmode(0); /* possibly set new tty mode */
- } else {
- do_dont_resp[option]++;
- send_dont(option, 0);
- }
- }
- set_my_state_do(option);
-#ifdef ENCRYPTION
- if (option == TELOPT_ENCRYPT)
- encrypt_send_support();
-#endif /* ENCRYPTION */
-}
-
- void
-wontoption(option)
- int option;
-{
- if (do_dont_resp[option]) {
- --do_dont_resp[option];
- if (do_dont_resp[option] && my_state_is_dont(option))
- --do_dont_resp[option];
- }
-
- if ((do_dont_resp[option] == 0) && my_want_state_is_do(option)) {
-
- switch (option) {
-
-#ifdef KLUDGELINEMODE
- case TELOPT_SGA:
- if (!kludgelinemode)
- break;
- /* FALL THROUGH */
-#endif
- case TELOPT_ECHO:
- settimer(modenegotiated);
- break;
-
- case TELOPT_TM:
- if (flushout)
- flushout = 0;
- set_my_want_state_dont(option);
- set_my_state_dont(option);
- return; /* Never reply to TM will's/wont's */
-
- default:
- break;
- }
- set_my_want_state_dont(option);
- if (my_state_is_do(option))
- send_dont(option, 0);
- setconnmode(0); /* Set new tty mode */
- } else if (option == TELOPT_TM) {
- /*
- * Special case for TM.
- */
- if (flushout)
- flushout = 0;
- set_my_want_state_dont(option);
- }
- set_my_state_dont(option);
-}
-
- static void
-dooption(option)
- int option;
-{
- int new_state_ok = 0;
-
- if (will_wont_resp[option]) {
- --will_wont_resp[option];
- if (will_wont_resp[option] && my_state_is_will(option))
- --will_wont_resp[option];
- }
-
- if (will_wont_resp[option] == 0) {
- if (my_want_state_is_wont(option)) {
-
- switch (option) {
-
- case TELOPT_TM:
- /*
- * Special case for TM. We send a WILL, but pretend
- * we sent WONT.
- */
- send_will(option, 0);
- set_my_want_state_wont(TELOPT_TM);
- set_my_state_wont(TELOPT_TM);
- return;
-
-# if defined(TN3270)
- case TELOPT_EOR: /* end of record */
-# endif /* defined(TN3270) */
- case TELOPT_BINARY: /* binary mode */
- case TELOPT_NAWS: /* window size */
- case TELOPT_TSPEED: /* terminal speed */
- case TELOPT_LFLOW: /* local flow control */
- case TELOPT_TTYPE: /* terminal type option */
- case TELOPT_SGA: /* no big deal */
-#ifdef ENCRYPTION
- case TELOPT_ENCRYPT: /* encryption variable option */
-#endif /* ENCRYPTION */
- new_state_ok = 1;
- break;
-
- case TELOPT_NEW_ENVIRON: /* New environment variable option */
-#ifdef OLD_ENVIRON
- if (my_state_is_will(TELOPT_OLD_ENVIRON))
- send_wont(TELOPT_OLD_ENVIRON, 1); /* turn off the old */
- goto env_common;
- case TELOPT_OLD_ENVIRON: /* Old environment variable option */
- if (my_state_is_will(TELOPT_NEW_ENVIRON))
- break; /* Don't enable if new one is in use! */
- env_common:
- telopt_environ = option;
-#endif
- new_state_ok = 1;
- break;
-
-#if defined(AUTHENTICATION)
- case TELOPT_AUTHENTICATION:
- if (autologin)
- new_state_ok = 1;
- break;
-#endif
-
- case TELOPT_XDISPLOC: /* X Display location */
- if (env_getvalue((unsigned char *)"DISPLAY"))
- new_state_ok = 1;
- break;
-
- case TELOPT_LINEMODE:
-#ifdef KLUDGELINEMODE
- kludgelinemode = 0;
- send_do(TELOPT_SGA, 1);
-#endif
- set_my_want_state_will(TELOPT_LINEMODE);
- send_will(option, 0);
- set_my_state_will(TELOPT_LINEMODE);
- slc_init();
- return;
-
- case TELOPT_ECHO: /* We're never going to echo... */
- default:
- break;
- }
-
- if (new_state_ok) {
- set_my_want_state_will(option);
- send_will(option, 0);
- setconnmode(0); /* Set new tty mode */
- } else {
- will_wont_resp[option]++;
- send_wont(option, 0);
- }
- } else {
- /*
- * Handle options that need more things done after the
- * other side has acknowledged the option.
- */
- switch (option) {
- case TELOPT_LINEMODE:
-#ifdef KLUDGELINEMODE
- kludgelinemode = 0;
- send_do(TELOPT_SGA, 1);
-#endif
- set_my_state_will(option);
- slc_init();
- send_do(TELOPT_SGA, 0);
- return;
- }
- }
- }
- set_my_state_will(option);
-}
-
- static void
-dontoption(option)
- int option;
-{
-
- if (will_wont_resp[option]) {
- --will_wont_resp[option];
- if (will_wont_resp[option] && my_state_is_wont(option))
- --will_wont_resp[option];
- }
-
- if ((will_wont_resp[option] == 0) && my_want_state_is_will(option)) {
- switch (option) {
- case TELOPT_LINEMODE:
- linemode = 0; /* put us back to the default state */
- break;
-#ifdef OLD_ENVIRON
- case TELOPT_NEW_ENVIRON:
- /*
- * The new environ option wasn't recognized, try
- * the old one.
- */
- send_will(TELOPT_OLD_ENVIRON, 1);
- telopt_environ = TELOPT_OLD_ENVIRON;
- break;
-#endif
- }
- /* we always accept a DONT */
- set_my_want_state_wont(option);
- if (my_state_is_will(option))
- send_wont(option, 0);
- setconnmode(0); /* Set new tty mode */
- }
- set_my_state_wont(option);
-}
-
-/*
- * Given a buffer returned by tgetent(), this routine will turn
- * the pipe seperated list of names in the buffer into an array
- * of pointers to null terminated names. We toss out any bad,
- * duplicate, or verbose names (names with spaces).
- */
-
-static char *name_unknown = "UNKNOWN";
-static char *unknown[] = { 0, 0 };
-
- char **
-mklist(buf, name)
- char *buf, *name;
-{
- register int n;
- register char c, *cp, **argvp, *cp2, **argv, **avt;
-
- if (name) {
- if ((int)strlen(name) > 40) {
- name = 0;
- unknown[0] = name_unknown;
- } else {
- unknown[0] = name;
- upcase(name);
- }
- } else
- unknown[0] = name_unknown;
- /*
- * Count up the number of names.
- */
- for (n = 1, cp = buf; *cp && *cp != ':'; cp++) {
- if (*cp == '|')
- n++;
- }
- /*
- * Allocate an array to put the name pointers into
- */
- argv = (char **)malloc((n+3)*sizeof(char *));
- if (argv == 0)
- return(unknown);
-
- /*
- * Fill up the array of pointers to names.
- */
- *argv = 0;
- argvp = argv+1;
- n = 0;
- for (cp = cp2 = buf; (c = *cp); cp++) {
- if (c == '|' || c == ':') {
- *cp++ = '\0';
- /*
- * Skip entries that have spaces or are over 40
- * characters long. If this is our environment
- * name, then put it up front. Otherwise, as
- * long as this is not a duplicate name (case
- * insensitive) add it to the list.
- */
- if (n || (cp - cp2 > 41))
- ;
- else if (name && (strncasecmp(name, cp2, cp-cp2) == 0))
- *argv = cp2;
- else if (is_unique(cp2, argv+1, argvp))
- *argvp++ = cp2;
- if (c == ':')
- break;
- /*
- * Skip multiple delimiters. Reset cp2 to
- * the beginning of the next name. Reset n,
- * the flag for names with spaces.
- */
- while ((c = *cp) == '|')
- cp++;
- cp2 = cp;
- n = 0;
- }
- /*
- * Skip entries with spaces or non-ascii values.
- * Convert lower case letters to upper case.
- */
- if ((c == ' ') || !isascii(c))
- n = 1;
- else if (islower(c))
- *cp = toupper(c);
- }
-
- /*
- * Check for an old V6 2 character name. If the second
- * name points to the beginning of the buffer, and is
- * only 2 characters long, move it to the end of the array.
- */
- if ((argv[1] == buf) && (strlen(argv[1]) == 2)) {
- --argvp;
- for (avt = &argv[1]; avt < argvp; avt++)
- *avt = *(avt+1);
- *argvp++ = buf;
- }
-
- /*
- * Duplicate last name, for TTYPE option, and null
- * terminate the array. If we didn't find a match on
- * our terminal name, put that name at the beginning.
- */
- cp = *(argvp-1);
- *argvp++ = cp;
- *argvp = 0;
-
- if (*argv == 0) {
- if (name)
- *argv = name;
- else {
- --argvp;
- for (avt = argv; avt < argvp; avt++)
- *avt = *(avt+1);
- }
- }
- if (*argv)
- return(argv);
- else
- return(unknown);
-}
-
- int
-is_unique(name, as, ae)
- register char *name, **as, **ae;
-{
- register char **ap;
- register int n;
-
- n = strlen(name) + 1;
- for (ap = as; ap < ae; ap++)
- if (strncasecmp(*ap, name, n) == 0)
- return(0);
- return (1);
-}
-
-#ifdef TERMCAP
-char termbuf[1024];
-
- /*ARGSUSED*/
- int
-setupterm(tname, fd, errp)
- char *tname;
- int fd, *errp;
-{
- if (tgetent(termbuf, tname) == 1) {
- termbuf[1023] = '\0';
- if (errp)
- *errp = 1;
- return(0);
- }
- if (errp)
- *errp = 0;
- return(-1);
-}
-#else
-#define termbuf ttytype
-extern char ttytype[];
-#endif
-
-int resettermname = 1;
-
- char *
-gettermname()
-{
- char *tname;
- static char **tnamep = 0;
- static char **next;
- int err;
-
- if (resettermname) {
- resettermname = 0;
- if (tnamep && tnamep != unknown)
- free(tnamep);
- if ((tname = (char *)env_getvalue((unsigned char *)"TERM")) &&
- (setupterm(tname, 1, &err) == 0)) {
- tnamep = mklist(termbuf, tname);
- } else {
- if (tname && ((int)strlen(tname) <= 40)) {
- unknown[0] = tname;
- upcase(tname);
- } else
- unknown[0] = name_unknown;
- tnamep = unknown;
- }
- next = tnamep;
- }
- if (*next == 0)
- next = tnamep;
- return(*next++);
-}
-/*
- * suboption()
- *
- * Look at the sub-option buffer, and try to be helpful to the other
- * side.
- *
- * Currently we recognize:
- *
- * Terminal type, send request.
- * Terminal speed (send request).
- * Local flow control (is request).
- * Linemode
- */
-
- static void
-suboption()
-{
- unsigned char subchar;
-
- printsub('<', subbuffer, SB_LEN()+2);
- switch (subchar = SB_GET()) {
- case TELOPT_TTYPE:
- if (my_want_state_is_wont(TELOPT_TTYPE))
- return;
- if (SB_EOF() || SB_GET() != TELQUAL_SEND) {
- return;
- } else {
- char *name;
- unsigned char temp[50];
- int len;
-
-#if defined(TN3270)
- if (tn3270_ttype()) {
- return;
- }
-#endif /* defined(TN3270) */
- name = gettermname();
- len = strlen(name) + 4 + 2;
- if (len < NETROOM()) {
- sprintf((char *)temp, "%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE,
- TELQUAL_IS, name, IAC, SE);
- ring_supply_data(&netoring, temp, len);
- printsub('>', &temp[2], len-2);
- } else {
- ExitString("No room in buffer for terminal type.\n", 1);
- /*NOTREACHED*/
- }
- }
- break;
- case TELOPT_TSPEED:
- if (my_want_state_is_wont(TELOPT_TSPEED))
- return;
- if (SB_EOF())
- return;
- if (SB_GET() == TELQUAL_SEND) {
- long ospeed, ispeed;
- unsigned char temp[50];
- int len;
-
- TerminalSpeeds(&ispeed, &ospeed);
-
- sprintf((char *)temp, "%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED,
- TELQUAL_IS, ospeed, ispeed, IAC, SE);
- len = strlen((char *)temp+4) + 4; /* temp[3] is 0 ... */
-
- if (len < NETROOM()) {
- ring_supply_data(&netoring, temp, len);
- printsub('>', temp+2, len - 2);
- }
-/*@*/ else printf("lm_will: not enough room in buffer\n");
- }
- break;
- case TELOPT_LFLOW:
- if (my_want_state_is_wont(TELOPT_LFLOW))
- return;
- if (SB_EOF())
- return;
- switch(SB_GET()) {
- case LFLOW_RESTART_ANY:
- restartany = 1;
- break;
- case LFLOW_RESTART_XON:
- restartany = 0;
- break;
- case LFLOW_ON:
- localflow = 1;
- break;
- case LFLOW_OFF:
- localflow = 0;
- break;
- default:
- return;
- }
- setcommandmode();
- setconnmode(0);
- break;
-
- case TELOPT_LINEMODE:
- if (my_want_state_is_wont(TELOPT_LINEMODE))
- return;
- if (SB_EOF())
- return;
- switch (SB_GET()) {
- case WILL:
- lm_will(subpointer, SB_LEN());
- break;
- case WONT:
- lm_wont(subpointer, SB_LEN());
- break;
- case DO:
- lm_do(subpointer, SB_LEN());
- break;
- case DONT:
- lm_dont(subpointer, SB_LEN());
- break;
- case LM_SLC:
- slc(subpointer, SB_LEN());
- break;
- case LM_MODE:
- lm_mode(subpointer, SB_LEN(), 0);
- break;
- default:
- break;
- }
- break;
-
-#ifdef OLD_ENVIRON
- case TELOPT_OLD_ENVIRON:
-#endif
- case TELOPT_NEW_ENVIRON:
- if (SB_EOF())
- return;
- switch(SB_PEEK()) {
- case TELQUAL_IS:
- case TELQUAL_INFO:
- if (my_want_state_is_dont(subchar))
- return;
- break;
- case TELQUAL_SEND:
- if (my_want_state_is_wont(subchar)) {
- return;
- }
- break;
- default:
- return;
- }
- env_opt(subpointer, SB_LEN());
- break;
-
- case TELOPT_XDISPLOC:
- if (my_want_state_is_wont(TELOPT_XDISPLOC))
- return;
- if (SB_EOF())
- return;
- if (SB_GET() == TELQUAL_SEND) {
- unsigned char temp[50], *dp;
- int len;
-
- if ((dp = env_getvalue((unsigned char *)"DISPLAY")) == NULL) {
- /*
- * Something happened, we no longer have a DISPLAY
- * variable. So, turn off the option.
- */
- send_wont(TELOPT_XDISPLOC, 1);
- break;
- }
- sprintf((char *)temp, "%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC,
- TELQUAL_IS, dp, IAC, SE);
- len = strlen((char *)temp+4) + 4; /* temp[3] is 0 ... */
-
- if (len < NETROOM()) {
- ring_supply_data(&netoring, temp, len);
- printsub('>', temp+2, len - 2);
- }
-/*@*/ else printf("lm_will: not enough room in buffer\n");
- }
- break;
-
-#if defined(AUTHENTICATION)
- case TELOPT_AUTHENTICATION: {
- if (!autologin)
- break;
- if (SB_EOF())
- return;
- switch(SB_GET()) {
- case TELQUAL_IS:
- if (my_want_state_is_dont(TELOPT_AUTHENTICATION))
- return;
- auth_is(subpointer, SB_LEN());
- break;
- case TELQUAL_SEND:
- if (my_want_state_is_wont(TELOPT_AUTHENTICATION))
- return;
- auth_send(subpointer, SB_LEN());
- break;
- case TELQUAL_REPLY:
- if (my_want_state_is_wont(TELOPT_AUTHENTICATION))
- return;
- auth_reply(subpointer, SB_LEN());
- break;
- case TELQUAL_NAME:
- if (my_want_state_is_dont(TELOPT_AUTHENTICATION))
- return;
- auth_name(subpointer, SB_LEN());
- break;
- }
- }
- break;
-#endif
-#ifdef ENCRYPTION
- case TELOPT_ENCRYPT:
- if (SB_EOF())
- return;
- switch(SB_GET()) {
- case ENCRYPT_START:
- if (my_want_state_is_dont(TELOPT_ENCRYPT))
- return;
- encrypt_start(subpointer, SB_LEN());
- break;
- case ENCRYPT_END:
- if (my_want_state_is_dont(TELOPT_ENCRYPT))
- return;
- encrypt_end();
- break;
- case ENCRYPT_SUPPORT:
- if (my_want_state_is_wont(TELOPT_ENCRYPT))
- return;
- encrypt_support(subpointer, SB_LEN());
- break;
- case ENCRYPT_REQSTART:
- if (my_want_state_is_wont(TELOPT_ENCRYPT))
- return;
- encrypt_request_start(subpointer, SB_LEN());
- break;
- case ENCRYPT_REQEND:
- if (my_want_state_is_wont(TELOPT_ENCRYPT))
- return;
- /*
- * We can always send an REQEND so that we cannot
- * get stuck encrypting. We should only get this
- * if we have been able to get in the correct mode
- * anyhow.
- */
- encrypt_request_end();
- break;
- case ENCRYPT_IS:
- if (my_want_state_is_dont(TELOPT_ENCRYPT))
- return;
- encrypt_is(subpointer, SB_LEN());
- break;
- case ENCRYPT_REPLY:
- if (my_want_state_is_wont(TELOPT_ENCRYPT))
- return;
- encrypt_reply(subpointer, SB_LEN());
- break;
- case ENCRYPT_ENC_KEYID:
- if (my_want_state_is_dont(TELOPT_ENCRYPT))
- return;
- encrypt_enc_keyid(subpointer, SB_LEN());
- break;
- case ENCRYPT_DEC_KEYID:
- if (my_want_state_is_wont(TELOPT_ENCRYPT))
- return;
- encrypt_dec_keyid(subpointer, SB_LEN());
- break;
- default:
- break;
- }
- break;
-#endif /* ENCRYPTION */
- default:
- break;
- }
-}
-
-static unsigned char str_lm[] = { IAC, SB, TELOPT_LINEMODE, 0, 0, IAC, SE };
-
- void
-lm_will(cmd, len)
- unsigned char *cmd;
- int len;
-{
- if (len < 1) {
-/*@*/ printf("lm_will: no command!!!\n"); /* Should not happen... */
- return;
- }
- switch(cmd[0]) {
- case LM_FORWARDMASK: /* We shouldn't ever get this... */
- default:
- str_lm[3] = DONT;
- str_lm[4] = cmd[0];
- if (NETROOM() > sizeof(str_lm)) {
- ring_supply_data(&netoring, str_lm, sizeof(str_lm));
- printsub('>', &str_lm[2], sizeof(str_lm)-2);
- }
-/*@*/ else printf("lm_will: not enough room in buffer\n");
- break;
- }
-}
-
- void
-lm_wont(cmd, len)
- unsigned char *cmd;
- int len;
-{
- if (len < 1) {
-/*@*/ printf("lm_wont: no command!!!\n"); /* Should not happen... */
- return;
- }
- switch(cmd[0]) {
- case LM_FORWARDMASK: /* We shouldn't ever get this... */
- default:
- /* We are always DONT, so don't respond */
- return;
- }
-}
-
- void
-lm_do(cmd, len)
- unsigned char *cmd;
- int len;
-{
- if (len < 1) {
-/*@*/ printf("lm_do: no command!!!\n"); /* Should not happen... */
- return;
- }
- switch(cmd[0]) {
- case LM_FORWARDMASK:
- default:
- str_lm[3] = WONT;
- str_lm[4] = cmd[0];
- if (NETROOM() > sizeof(str_lm)) {
- ring_supply_data(&netoring, str_lm, sizeof(str_lm));
- printsub('>', &str_lm[2], sizeof(str_lm)-2);
- }
-/*@*/ else printf("lm_do: not enough room in buffer\n");
- break;
- }
-}
-
- void
-lm_dont(cmd, len)
- unsigned char *cmd;
- int len;
-{
- if (len < 1) {
-/*@*/ printf("lm_dont: no command!!!\n"); /* Should not happen... */
- return;
- }
- switch(cmd[0]) {
- case LM_FORWARDMASK:
- default:
- /* we are always WONT, so don't respond */
- break;
- }
-}
-
-static unsigned char str_lm_mode[] = {
- IAC, SB, TELOPT_LINEMODE, LM_MODE, 0, IAC, SE
-};
-
- void
-lm_mode(cmd, len, init)
- unsigned char *cmd;
- int len, init;
-{
- if (len != 1)
- return;
- if ((linemode&MODE_MASK&~MODE_ACK) == *cmd)
- return;
- if (*cmd&MODE_ACK)
- return;
- linemode = *cmd&(MODE_MASK&~MODE_ACK);
- str_lm_mode[4] = linemode;
- if (!init)
- str_lm_mode[4] |= MODE_ACK;
- if (NETROOM() > sizeof(str_lm_mode)) {
- ring_supply_data(&netoring, str_lm_mode, sizeof(str_lm_mode));
- printsub('>', &str_lm_mode[2], sizeof(str_lm_mode)-2);
- }
-/*@*/ else printf("lm_mode: not enough room in buffer\n");
- setconnmode(0); /* set changed mode */
-}
-
-
-
-/*
- * slc()
- * Handle special character suboption of LINEMODE.
- */
-
-struct spc {
- cc_t val;
- cc_t *valp;
- char flags; /* Current flags & level */
- char mylevel; /* Maximum level & flags */
-} spc_data[NSLC+1];
-
-#define SLC_IMPORT 0
-#define SLC_EXPORT 1
-#define SLC_RVALUE 2
-static int slc_mode = SLC_EXPORT;
-
- void
-slc_init()
-{
- register struct spc *spcp;
-
- localchars = 1;
- for (spcp = spc_data; spcp < &spc_data[NSLC+1]; spcp++) {
- spcp->val = 0;
- spcp->valp = 0;
- spcp->flags = spcp->mylevel = SLC_NOSUPPORT;
- }
-
-#define initfunc(func, flags) { \
- spcp = &spc_data[func]; \
- if ((spcp->valp = tcval(func))) { \
- spcp->val = *spcp->valp; \
- spcp->mylevel = SLC_VARIABLE|flags; \
- } else { \
- spcp->val = 0; \
- spcp->mylevel = SLC_DEFAULT; \
- } \
- }
-
- initfunc(SLC_SYNCH, 0);
- /* No BRK */
- initfunc(SLC_AO, 0);
- initfunc(SLC_AYT, 0);
- /* No EOR */
- initfunc(SLC_ABORT, SLC_FLUSHIN|SLC_FLUSHOUT);
- initfunc(SLC_EOF, 0);
-#ifndef SYSV_TERMIO
- initfunc(SLC_SUSP, SLC_FLUSHIN);
-#endif
- initfunc(SLC_EC, 0);
- initfunc(SLC_EL, 0);
-#ifndef SYSV_TERMIO
- initfunc(SLC_EW, 0);
- initfunc(SLC_RP, 0);
- initfunc(SLC_LNEXT, 0);
-#endif
- initfunc(SLC_XON, 0);
- initfunc(SLC_XOFF, 0);
-#ifdef SYSV_TERMIO
- spc_data[SLC_XON].mylevel = SLC_CANTCHANGE;
- spc_data[SLC_XOFF].mylevel = SLC_CANTCHANGE;
-#endif
- initfunc(SLC_FORW1, 0);
-#ifdef USE_TERMIO
- initfunc(SLC_FORW2, 0);
- /* No FORW2 */
-#endif
-
- initfunc(SLC_IP, SLC_FLUSHIN|SLC_FLUSHOUT);
-#undef initfunc
-
- if (slc_mode == SLC_EXPORT)
- slc_export();
- else
- slc_import(1);
-
-}
-
- void
-slcstate()
-{
- printf("Special characters are %s values\n",
- slc_mode == SLC_IMPORT ? "remote default" :
- slc_mode == SLC_EXPORT ? "local" :
- "remote");
-}
-
- void
-slc_mode_export()
-{
- slc_mode = SLC_EXPORT;
- if (my_state_is_will(TELOPT_LINEMODE))
- slc_export();
-}
-
- void
-slc_mode_import(def)
- int def;
-{
- slc_mode = def ? SLC_IMPORT : SLC_RVALUE;
- if (my_state_is_will(TELOPT_LINEMODE))
- slc_import(def);
-}
-
-unsigned char slc_import_val[] = {
- IAC, SB, TELOPT_LINEMODE, LM_SLC, 0, SLC_VARIABLE, 0, IAC, SE
-};
-unsigned char slc_import_def[] = {
- IAC, SB, TELOPT_LINEMODE, LM_SLC, 0, SLC_DEFAULT, 0, IAC, SE
-};
-
- void
-slc_import(def)
- int def;
-{
- if (NETROOM() > sizeof(slc_import_val)) {
- if (def) {
- ring_supply_data(&netoring, slc_import_def, sizeof(slc_import_def));
- printsub('>', &slc_import_def[2], sizeof(slc_import_def)-2);
- } else {
- ring_supply_data(&netoring, slc_import_val, sizeof(slc_import_val));
- printsub('>', &slc_import_val[2], sizeof(slc_import_val)-2);
- }
- }
-/*@*/ else printf("slc_import: not enough room\n");
-}
-
- void
-slc_export()
-{
- register struct spc *spcp;
-
- TerminalDefaultChars();
-
- slc_start_reply();
- for (spcp = &spc_data[1]; spcp < &spc_data[NSLC+1]; spcp++) {
- if (spcp->mylevel != SLC_NOSUPPORT) {
- if (spcp->val == (cc_t)(_POSIX_VDISABLE))
- spcp->flags = SLC_NOSUPPORT;
- else
- spcp->flags = spcp->mylevel;
- if (spcp->valp)
- spcp->val = *spcp->valp;
- slc_add_reply(spcp - spc_data, spcp->flags, spcp->val);
- }
- }
- slc_end_reply();
- (void)slc_update();
- setconnmode(1); /* Make sure the character values are set */
-}
-
- void
-slc(cp, len)
- register unsigned char *cp;
- int len;
-{
- register struct spc *spcp;
- register int func,level;
-
- slc_start_reply();
-
- for (; len >= 3; len -=3, cp +=3) {
-
- func = cp[SLC_FUNC];
-
- if (func == 0) {
- /*
- * Client side: always ignore 0 function.
- */
- continue;
- }
- if (func > NSLC) {
- if ((cp[SLC_FLAGS] & SLC_LEVELBITS) != SLC_NOSUPPORT)
- slc_add_reply(func, SLC_NOSUPPORT, 0);
- continue;
- }
-
- spcp = &spc_data[func];
-
- level = cp[SLC_FLAGS]&(SLC_LEVELBITS|SLC_ACK);
-
- if ((cp[SLC_VALUE] == (unsigned char)spcp->val) &&
- ((level&SLC_LEVELBITS) == (spcp->flags&SLC_LEVELBITS))) {
- continue;
- }
-
- if (level == (SLC_DEFAULT|SLC_ACK)) {
- /*
- * This is an error condition, the SLC_ACK
- * bit should never be set for the SLC_DEFAULT
- * level. Our best guess to recover is to
- * ignore the SLC_ACK bit.
- */
- cp[SLC_FLAGS] &= ~SLC_ACK;
- }
-
- if (level == ((spcp->flags&SLC_LEVELBITS)|SLC_ACK)) {
- spcp->val = (cc_t)cp[SLC_VALUE];
- spcp->flags = cp[SLC_FLAGS]; /* include SLC_ACK */
- continue;
- }
-
- level &= ~SLC_ACK;
-
- if (level <= (spcp->mylevel&SLC_LEVELBITS)) {
- spcp->flags = cp[SLC_FLAGS]|SLC_ACK;
- spcp->val = (cc_t)cp[SLC_VALUE];
- }
- if (level == SLC_DEFAULT) {
- if ((spcp->mylevel&SLC_LEVELBITS) != SLC_DEFAULT)
- spcp->flags = spcp->mylevel;
- else
- spcp->flags = SLC_NOSUPPORT;
- }
- slc_add_reply(func, spcp->flags, spcp->val);
- }
- slc_end_reply();
- if (slc_update())
- setconnmode(1); /* set the new character values */
-}
-
- void
-slc_check()
-{
- register struct spc *spcp;
-
- slc_start_reply();
- for (spcp = &spc_data[1]; spcp < &spc_data[NSLC+1]; spcp++) {
- if (spcp->valp && spcp->val != *spcp->valp) {
- spcp->val = *spcp->valp;
- if (spcp->val == (cc_t)(_POSIX_VDISABLE))
- spcp->flags = SLC_NOSUPPORT;
- else
- spcp->flags = spcp->mylevel;
- slc_add_reply(spcp - spc_data, spcp->flags, spcp->val);
- }
- }
- slc_end_reply();
- setconnmode(1);
-}
-
-
-unsigned char slc_reply[128];
-unsigned char *slc_replyp;
-
- void
-slc_start_reply()
-{
- slc_replyp = slc_reply;
- *slc_replyp++ = IAC;
- *slc_replyp++ = SB;
- *slc_replyp++ = TELOPT_LINEMODE;
- *slc_replyp++ = LM_SLC;
-}
-
- void
-slc_add_reply(func, flags, value)
- unsigned char func;
- unsigned char flags;
- cc_t value;
-{
- if ((*slc_replyp++ = func) == IAC)
- *slc_replyp++ = IAC;
- if ((*slc_replyp++ = flags) == IAC)
- *slc_replyp++ = IAC;
- if ((*slc_replyp++ = (unsigned char)value) == IAC)
- *slc_replyp++ = IAC;
-}
-
- void
-slc_end_reply()
-{
- register int len;
-
- *slc_replyp++ = IAC;
- *slc_replyp++ = SE;
- len = slc_replyp - slc_reply;
- if (len <= 6)
- return;
- if (NETROOM() > len) {
- ring_supply_data(&netoring, slc_reply, slc_replyp - slc_reply);
- printsub('>', &slc_reply[2], slc_replyp - slc_reply - 2);
- }
-/*@*/else printf("slc_end_reply: not enough room\n");
-}
-
- int
-slc_update()
-{
- register struct spc *spcp;
- int need_update = 0;
-
- for (spcp = &spc_data[1]; spcp < &spc_data[NSLC+1]; spcp++) {
- if (!(spcp->flags&SLC_ACK))
- continue;
- spcp->flags &= ~SLC_ACK;
- if (spcp->valp && (*spcp->valp != spcp->val)) {
- *spcp->valp = spcp->val;
- need_update = 1;
- }
- }
- return(need_update);
-}
-
-#ifdef OLD_ENVIRON
-# ifdef ENV_HACK
-/*
- * Earlier version of telnet/telnetd from the BSD code had
- * the definitions of VALUE and VAR reversed. To ensure
- * maximum interoperability, we assume that the server is
- * an older BSD server, until proven otherwise. The newer
- * BSD servers should be able to handle either definition,
- * so it is better to use the wrong values if we don't
- * know what type of server it is.
- */
-int env_auto = 1;
-int old_env_var = OLD_ENV_VAR;
-int old_env_value = OLD_ENV_VALUE;
-# else
-# define old_env_var OLD_ENV_VAR
-# define old_env_value OLD_ENV_VALUE
-# endif
-#endif
-
- void
-env_opt(buf, len)
- register unsigned char *buf;
- register int len;
-{
- register unsigned char *ep = 0, *epc = 0;
- register int i;
-
- switch(buf[0]&0xff) {
- case TELQUAL_SEND:
- env_opt_start();
- if (len == 1) {
- env_opt_add(NULL);
- } else for (i = 1; i < len; i++) {
- switch (buf[i]&0xff) {
-#ifdef OLD_ENVIRON
- case OLD_ENV_VAR:
-# ifdef ENV_HACK
- if (telopt_environ == TELOPT_OLD_ENVIRON
- && env_auto) {
- /* Server has the same definitions */
- old_env_var = OLD_ENV_VAR;
- old_env_value = OLD_ENV_VALUE;
- }
- /* FALL THROUGH */
-# endif
- case OLD_ENV_VALUE:
- /*
- * Although OLD_ENV_VALUE is not legal, we will
- * still recognize it, just in case it is an
- * old server that has VAR & VALUE mixed up...
- */
- /* FALL THROUGH */
-#else
- case NEW_ENV_VAR:
-#endif
- case ENV_USERVAR:
- if (ep) {
- *epc = 0;
- env_opt_add(ep);
- }
- ep = epc = &buf[i+1];
- break;
- case ENV_ESC:
- i++;
- /*FALL THROUGH*/
- default:
- if (epc)
- *epc++ = buf[i];
- break;
- }
- }
- if (ep) {
- *epc = 0;
- env_opt_add(ep);
- }
- env_opt_end(1);
- break;
-
- case TELQUAL_IS:
- case TELQUAL_INFO:
- /* Ignore for now. We shouldn't get it anyway. */
- break;
-
- default:
- break;
- }
-}
-
-#define OPT_REPLY_SIZE 256
-unsigned char *opt_reply;
-unsigned char *opt_replyp;
-unsigned char *opt_replyend;
-
- void
-env_opt_start()
-{
- if (opt_reply)
- opt_reply = (unsigned char *)realloc(opt_reply, OPT_REPLY_SIZE);
- else
- opt_reply = (unsigned char *)malloc(OPT_REPLY_SIZE);
- if (opt_reply == NULL) {
-/*@*/ printf("env_opt_start: malloc()/realloc() failed!!!\n");
- opt_reply = opt_replyp = opt_replyend = NULL;
- return;
- }
- opt_replyp = opt_reply;
- opt_replyend = opt_reply + OPT_REPLY_SIZE;
- *opt_replyp++ = IAC;
- *opt_replyp++ = SB;
- *opt_replyp++ = telopt_environ;
- *opt_replyp++ = TELQUAL_IS;
-}
-
- void
-env_opt_start_info()
-{
- env_opt_start();
- if (opt_replyp)
- opt_replyp[-1] = TELQUAL_INFO;
-}
-
- void
-env_opt_add(ep)
- register unsigned char *ep;
-{
- register unsigned char *vp, c;
-
- if (opt_reply == NULL) /*XXX*/
- return; /*XXX*/
-
- if (ep == NULL || *ep == '\0') {
- /* Send user defined variables first. */
- env_default(1, 0);
- while ((ep = env_default(0, 0)))
- env_opt_add(ep);
-
- /* Now add the list of well know variables. */
- env_default(1, 1);
- while ((ep = env_default(0, 1)))
- env_opt_add(ep);
- return;
- }
- vp = env_getvalue(ep);
- if (opt_replyp + (vp ? strlen((char *)vp) : 0) +
- strlen((char *)ep) + 6 > opt_replyend)
- {
- register int len;
- opt_replyend += OPT_REPLY_SIZE;
- len = opt_replyend - opt_reply;
- opt_reply = (unsigned char *)realloc(opt_reply, len);
- if (opt_reply == NULL) {
-/*@*/ printf("env_opt_add: realloc() failed!!!\n");
- opt_reply = opt_replyp = opt_replyend = NULL;
- return;
- }
- opt_replyp = opt_reply + len - (opt_replyend - opt_replyp);
- opt_replyend = opt_reply + len;
- }
- if (opt_welldefined(ep))
-#ifdef OLD_ENVIRON
- if (telopt_environ == TELOPT_OLD_ENVIRON)
- *opt_replyp++ = old_env_var;
- else
-#endif
- *opt_replyp++ = NEW_ENV_VAR;
- else
- *opt_replyp++ = ENV_USERVAR;
- for (;;) {
- while ((c = *ep++)) {
- switch(c&0xff) {
- case IAC:
- *opt_replyp++ = IAC;
- break;
- case NEW_ENV_VAR:
- case NEW_ENV_VALUE:
- case ENV_ESC:
- case ENV_USERVAR:
- *opt_replyp++ = ENV_ESC;
- break;
- }
- *opt_replyp++ = c;
- }
- if ((ep = vp)) {
-#ifdef OLD_ENVIRON
- if (telopt_environ == TELOPT_OLD_ENVIRON)
- *opt_replyp++ = old_env_value;
- else
-#endif
- *opt_replyp++ = NEW_ENV_VALUE;
- vp = NULL;
- } else
- break;
- }
-}
-
- int
-opt_welldefined(ep)
- char *ep;
-{
- if ((strcmp(ep, "USER") == 0) ||
- (strcmp(ep, "DISPLAY") == 0) ||
- (strcmp(ep, "PRINTER") == 0) ||
- (strcmp(ep, "SYSTEMTYPE") == 0) ||
- (strcmp(ep, "JOB") == 0) ||
- (strcmp(ep, "ACCT") == 0))
- return(1);
- return(0);
-}
- void
-env_opt_end(emptyok)
- register int emptyok;
-{
- register int len;
-
- len = opt_replyp - opt_reply + 2;
- if (emptyok || len > 6) {
- *opt_replyp++ = IAC;
- *opt_replyp++ = SE;
- if (NETROOM() > len) {
- ring_supply_data(&netoring, opt_reply, len);
- printsub('>', &opt_reply[2], len - 2);
- }
-/*@*/ else printf("slc_end_reply: not enough room\n");
- }
- if (opt_reply) {
- free(opt_reply);
- opt_reply = opt_replyp = opt_replyend = NULL;
- }
-}
-
-
-
- int
-telrcv()
-{
- register int c;
- register int scc;
- register unsigned char *sbp;
- int count;
- int returnValue = 0;
-
- scc = 0;
- count = 0;
- while (TTYROOM() > 2) {
- if (scc == 0) {
- if (count) {
- ring_consumed(&netiring, count);
- returnValue = 1;
- count = 0;
- }
- sbp = netiring.consume;
- scc = ring_full_consecutive(&netiring);
- if (scc == 0) {
- /* No more data coming in */
- break;
- }
- }
-
- c = *sbp++ & 0xff, scc--; count++;
-#ifdef ENCRYPTION
- if (decrypt_input)
- c = (*decrypt_input)(c);
-#endif /* ENCRYPTION */
-
- switch (telrcv_state) {
-
- case TS_CR:
- telrcv_state = TS_DATA;
- if (c == '\0') {
- break; /* Ignore \0 after CR */
- }
- else if ((c == '\n') && my_want_state_is_dont(TELOPT_ECHO) && !crmod) {
- TTYADD(c);
- break;
- }
- /* Else, fall through */
-
- case TS_DATA:
- if (c == IAC) {
- telrcv_state = TS_IAC;
- break;
- }
-# if defined(TN3270)
- if (In3270) {
- *Ifrontp++ = c;
- while (scc > 0) {
- c = *sbp++ & 0377, scc--; count++;
-#ifdef ENCRYPTION
- if (decrypt_input)
- c = (*decrypt_input)(c);
-#endif /* ENCRYPTION */
- if (c == IAC) {
- telrcv_state = TS_IAC;
- break;
- }
- *Ifrontp++ = c;
- }
- } else
-# endif /* defined(TN3270) */
- /*
- * The 'crmod' hack (see following) is needed
- * since we can't * set CRMOD on output only.
- * Machines like MULTICS like to send \r without
- * \n; since we must turn off CRMOD to get proper
- * input, the mapping is done here (sigh).
- */
- if ((c == '\r') && my_want_state_is_dont(TELOPT_BINARY)) {
- if (scc > 0) {
- c = *sbp&0xff;
-#ifdef ENCRYPTION
- if (decrypt_input)
- c = (*decrypt_input)(c);
-#endif /* ENCRYPTION */
- if (c == 0) {
- sbp++, scc--; count++;
- /* a "true" CR */
- TTYADD('\r');
- } else if (my_want_state_is_dont(TELOPT_ECHO) &&
- (c == '\n')) {
- sbp++, scc--; count++;
- TTYADD('\n');
- } else {
-#ifdef ENCRYPTION
- if (decrypt_input)
- (*decrypt_input)(-1);
-#endif /* ENCRYPTION */
-
- TTYADD('\r');
- if (crmod) {
- TTYADD('\n');
- }
- }
- } else {
- telrcv_state = TS_CR;
- TTYADD('\r');
- if (crmod) {
- TTYADD('\n');
- }
- }
- } else {
- TTYADD(c);
- }
- continue;
-
- case TS_IAC:
-process_iac:
- switch (c) {
-
- case WILL:
- telrcv_state = TS_WILL;
- continue;
-
- case WONT:
- telrcv_state = TS_WONT;
- continue;
-
- case DO:
- telrcv_state = TS_DO;
- continue;
-
- case DONT:
- telrcv_state = TS_DONT;
- continue;
-
- case DM:
- /*
- * We may have missed an urgent notification,
- * so make sure we flush whatever is in the
- * buffer currently.
- */
- printoption("RCVD", IAC, DM);
- SYNCHing = 1;
- (void) ttyflush(1);
- SYNCHing = stilloob();
- settimer(gotDM);
- break;
-
- case SB:
- SB_CLEAR();
- telrcv_state = TS_SB;
- continue;
-
-# if defined(TN3270)
- case EOR:
- if (In3270) {
- if (Ibackp == Ifrontp) {
- Ibackp = Ifrontp = Ibuf;
- ISend = 0; /* should have been! */
- } else {
- Ibackp += DataFromNetwork(Ibackp, Ifrontp-Ibackp, 1);
- ISend = 1;
- }
- }
- printoption("RCVD", IAC, EOR);
- break;
-# endif /* defined(TN3270) */
-
- case IAC:
-# if !defined(TN3270)
- TTYADD(IAC);
-# else /* !defined(TN3270) */
- if (In3270) {
- *Ifrontp++ = IAC;
- } else {
- TTYADD(IAC);
- }
-# endif /* !defined(TN3270) */
- break;
-
- case NOP:
- case GA:
- default:
- printoption("RCVD", IAC, c);
- break;
- }
- telrcv_state = TS_DATA;
- continue;
-
- case TS_WILL:
- printoption("RCVD", WILL, c);
- willoption(c);
- SetIn3270();
- telrcv_state = TS_DATA;
- continue;
-
- case TS_WONT:
- printoption("RCVD", WONT, c);
- wontoption(c);
- SetIn3270();
- telrcv_state = TS_DATA;
- continue;
-
- case TS_DO:
- printoption("RCVD", DO, c);
- dooption(c);
- SetIn3270();
- if (c == TELOPT_NAWS) {
- sendnaws();
- } else if (c == TELOPT_LFLOW) {
- localflow = 1;
- setcommandmode();
- setconnmode(0);
- }
- telrcv_state = TS_DATA;
- continue;
-
- case TS_DONT:
- printoption("RCVD", DONT, c);
- dontoption(c);
- flushline = 1;
- setconnmode(0); /* set new tty mode (maybe) */
- SetIn3270();
- telrcv_state = TS_DATA;
- continue;
-
- case TS_SB:
- if (c == IAC) {
- telrcv_state = TS_SE;
- } else {
- SB_ACCUM(c);
- }
- continue;
-
- case TS_SE:
- if (c != SE) {
- if (c != IAC) {
- /*
- * This is an error. We only expect to get
- * "IAC IAC" or "IAC SE". Several things may
- * have happend. An IAC was not doubled, the
- * IAC SE was left off, or another option got
- * inserted into the suboption are all possibilities.
- * If we assume that the IAC was not doubled,
- * and really the IAC SE was left off, we could
- * get into an infinate loop here. So, instead,
- * we terminate the suboption, and process the
- * partial suboption if we can.
- */
- SB_ACCUM(IAC);
- SB_ACCUM(c);
- subpointer -= 2;
- SB_TERM();
-
- printoption("In SUBOPTION processing, RCVD", IAC, c);
- suboption(); /* handle sub-option */
- SetIn3270();
- telrcv_state = TS_IAC;
- goto process_iac;
- }
- SB_ACCUM(c);
- telrcv_state = TS_SB;
- } else {
- SB_ACCUM(IAC);
- SB_ACCUM(SE);
- subpointer -= 2;
- SB_TERM();
- suboption(); /* handle sub-option */
- SetIn3270();
- telrcv_state = TS_DATA;
- }
- }
- }
- if (count)
- ring_consumed(&netiring, count);
- return returnValue||count;
-}
-
-static int bol = 1, local = 0;
-
- int
-rlogin_susp()
-{
- if (local) {
- local = 0;
- bol = 1;
- command(0, "z\n", 2);
- return(1);
- }
- return(0);
-}
-
- static int
-telsnd()
-{
- int tcc;
- int count;
- int returnValue = 0;
- unsigned char *tbp;
-
- tcc = 0;
- count = 0;
- while (NETROOM() > 2) {
- register int sc;
- register int c;
-
- if (tcc == 0) {
- if (count) {
- ring_consumed(&ttyiring, count);
- returnValue = 1;
- count = 0;
- }
- tbp = ttyiring.consume;
- tcc = ring_full_consecutive(&ttyiring);
- if (tcc == 0) {
- break;
- }
- }
- c = *tbp++ & 0xff, sc = strip(c), tcc--; count++;
- if (rlogin != _POSIX_VDISABLE) {
- if (bol) {
- bol = 0;
- if (sc == rlogin) {
- local = 1;
- continue;
- }
- } else if (local) {
- local = 0;
- if (sc == '.' || c == termEofChar) {
- bol = 1;
- command(0, "close\n", 6);
- continue;
- }
- if (sc == termSuspChar) {
- bol = 1;
- command(0, "z\n", 2);
- continue;
- }
- if (sc == escape) {
- command(0, (char *)tbp, tcc);
- bol = 1;
- count += tcc;
- tcc = 0;
- flushline = 1;
- break;
- }
- if (sc != rlogin) {
- ++tcc;
- --tbp;
- --count;
- c = sc = rlogin;
- }
- }
- if ((sc == '\n') || (sc == '\r'))
- bol = 1;
- } else if (sc == escape) {
- /*
- * Double escape is a pass through of a single escape character.
- */
- if (tcc && strip(*tbp) == escape) {
- tbp++;
- tcc--;
- count++;
- bol = 0;
- } else {
- command(0, (char *)tbp, tcc);
- bol = 1;
- count += tcc;
- tcc = 0;
- flushline = 1;
- break;
- }
- } else
- bol = 0;
-#ifdef KLUDGELINEMODE
- if (kludgelinemode && (globalmode&MODE_EDIT) && (sc == echoc)) {
- if (tcc > 0 && strip(*tbp) == echoc) {
- tcc--; tbp++; count++;
- } else {
- dontlecho = !dontlecho;
- settimer(echotoggle);
- setconnmode(0);
- flushline = 1;
- break;
- }
- }
-#endif
- if (MODE_LOCAL_CHARS(globalmode)) {
- if (TerminalSpecialChars(sc) == 0) {
- bol = 1;
- break;
- }
- }
- if (my_want_state_is_wont(TELOPT_BINARY)) {
- switch (c) {
- case '\n':
- /*
- * If we are in CRMOD mode (\r ==> \n)
- * on our local machine, then probably
- * a newline (unix) is CRLF (TELNET).
- */
- if (MODE_LOCAL_CHARS(globalmode)) {
- NETADD('\r');
- }
- NETADD('\n');
- bol = flushline = 1;
- break;
- case '\r':
- if (!crlf) {
- NET2ADD('\r', '\0');
- } else {
- NET2ADD('\r', '\n');
- }
- bol = flushline = 1;
- break;
- case IAC:
- NET2ADD(IAC, IAC);
- break;
- default:
- NETADD(c);
- break;
- }
- } else if (c == IAC) {
- NET2ADD(IAC, IAC);
- } else {
- NETADD(c);
- }
- }
- if (count)
- ring_consumed(&ttyiring, count);
- return returnValue||count; /* Non-zero if we did anything */
-}
-
-/*
- * Scheduler()
- *
- * Try to do something.
- *
- * If we do something useful, return 1; else return 0.
- *
- */
-
-
- int
-Scheduler(block)
- int block; /* should we block in the select ? */
-{
- /* One wants to be a bit careful about setting returnValue
- * to one, since a one implies we did some useful work,
- * and therefore probably won't be called to block next
- * time (TN3270 mode only).
- */
- int returnValue;
- int netin, netout, netex, ttyin, ttyout;
-
- /* Decide which rings should be processed */
-
- netout = ring_full_count(&netoring) &&
- (flushline ||
- (my_want_state_is_wont(TELOPT_LINEMODE)
-#ifdef KLUDGELINEMODE
- && (!kludgelinemode || my_want_state_is_do(TELOPT_SGA))
-#endif
- ) ||
- my_want_state_is_will(TELOPT_BINARY));
- ttyout = ring_full_count(&ttyoring);
-
-#if defined(TN3270)
- ttyin = ring_empty_count(&ttyiring) && (clienteof == 0) && (shell_active == 0);
-#else /* defined(TN3270) */
- ttyin = ring_empty_count(&ttyiring) && (clienteof == 0);
-#endif /* defined(TN3270) */
-
-#if defined(TN3270)
- netin = ring_empty_count(&netiring);
-# else /* !defined(TN3270) */
- netin = !ISend && ring_empty_count(&netiring);
-# endif /* !defined(TN3270) */
-
- netex = !SYNCHing;
-
- /* If we have seen a signal recently, reset things */
-# if defined(TN3270) && defined(unix)
- if (HaveInput) {
- HaveInput = 0;
- (void) signal(SIGIO, inputAvailable);
- }
-#endif /* defined(TN3270) && defined(unix) */
-
- /* Call to system code to process rings */
-
- returnValue = process_rings(netin, netout, netex, ttyin, ttyout, !block);
-
- /* Now, look at the input rings, looking for work to do. */
-
- if (ring_full_count(&ttyiring)) {
-# if defined(TN3270)
- if (In3270) {
- int c;
-
- c = DataFromTerminal(ttyiring.consume,
- ring_full_consecutive(&ttyiring));
- if (c) {
- returnValue = 1;
- ring_consumed(&ttyiring, c);
- }
- } else {
-# endif /* defined(TN3270) */
- returnValue |= telsnd();
-# if defined(TN3270)
- }
-# endif /* defined(TN3270) */
- }
-
- if (ring_full_count(&netiring)) {
-# if !defined(TN3270)
- returnValue |= telrcv();
-# else /* !defined(TN3270) */
- returnValue = Push3270();
-# endif /* !defined(TN3270) */
- }
- return returnValue;
-}
-
-/*
- * Select from tty and network...
- */
- void
-telnet(user)
- char *user;
-{
- sys_telnet_init();
-
-#if defined(AUTHENTICATION) || defined(ENCRYPTION)
- {
- static char local_host[256] = { 0 };
-
- if (!local_host[0]) {
- gethostname(local_host, sizeof(local_host));
- local_host[sizeof(local_host)-1] = 0;
- }
- auth_encrypt_init(local_host, hostname, "TELNET", 0);
- auth_encrypt_user(user);
- }
-#endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
-# if !defined(TN3270)
- if (telnetport) {
-#if defined(AUTHENTICATION)
- if (autologin)
- send_will(TELOPT_AUTHENTICATION, 1);
-#endif
-#ifdef ENCRYPTION
- send_do(TELOPT_ENCRYPT, 1);
- send_will(TELOPT_ENCRYPT, 1);
-#endif /* ENCRYPTION */
- send_do(TELOPT_SGA, 1);
- send_will(TELOPT_TTYPE, 1);
- send_will(TELOPT_NAWS, 1);
- send_will(TELOPT_TSPEED, 1);
- send_will(TELOPT_LFLOW, 1);
- send_will(TELOPT_LINEMODE, 1);
- send_will(TELOPT_NEW_ENVIRON, 1);
- send_do(TELOPT_STATUS, 1);
- if (env_getvalue((unsigned char *)"DISPLAY"))
- send_will(TELOPT_XDISPLOC, 1);
- if (eight)
- tel_enter_binary(eight);
- }
-# endif /* !defined(TN3270) */
-
-# if !defined(TN3270)
- for (;;) {
- int schedValue;
-
- while ((schedValue = Scheduler(0)) != 0) {
- if (schedValue == -1) {
- setcommandmode();
- return;
- }
- }
-
- if (Scheduler(1) == -1) {
- setcommandmode();
- return;
- }
- }
-# else /* !defined(TN3270) */
- for (;;) {
- int schedValue;
-
- while (!In3270 && !shell_active) {
- if (Scheduler(1) == -1) {
- setcommandmode();
- return;
- }
- }
-
- while ((schedValue = Scheduler(0)) != 0) {
- if (schedValue == -1) {
- setcommandmode();
- return;
- }
- }
- /* If there is data waiting to go out to terminal, don't
- * schedule any more data for the terminal.
- */
- if (ring_full_count(&ttyoring)) {
- schedValue = 1;
- } else {
- if (shell_active) {
- if (shell_continue() == 0) {
- ConnectScreen();
- }
- } else if (In3270) {
- schedValue = DoTerminalOutput();
- }
- }
- if (schedValue && (shell_active == 0)) {
- if (Scheduler(1) == -1) {
- setcommandmode();
- return;
- }
- }
- }
-# endif /* !defined(TN3270) */
-}
-
-#if 0 /* XXX - this not being in is a bug */
-/*
- * nextitem()
- *
- * Return the address of the next "item" in the TELNET data
- * stream. This will be the address of the next character if
- * the current address is a user data character, or it will
- * be the address of the character following the TELNET command
- * if the current address is a TELNET IAC ("I Am a Command")
- * character.
- */
-
- static char *
-nextitem(current)
- char *current;
-{
- if ((*current&0xff) != IAC) {
- return current+1;
- }
- switch (*(current+1)&0xff) {
- case DO:
- case DONT:
- case WILL:
- case WONT:
- return current+3;
- case SB: /* loop forever looking for the SE */
- {
- register char *look = current+2;
-
- for (;;) {
- if ((*look++&0xff) == IAC) {
- if ((*look++&0xff) == SE) {
- return look;
- }
- }
- }
- }
- default:
- return current+2;
- }
-}
-#endif /* 0 */
-
-/*
- * netclear()
- *
- * We are about to do a TELNET SYNCH operation. Clear
- * the path to the network.
- *
- * Things are a bit tricky since we may have sent the first
- * byte or so of a previous TELNET command into the network.
- * So, we have to scan the network buffer from the beginning
- * until we are up to where we want to be.
- *
- * A side effect of what we do, just to keep things
- * simple, is to clear the urgent data pointer. The principal
- * caller should be setting the urgent data pointer AFTER calling
- * us in any case.
- */
-
- static void
-netclear()
-{
-#if 0 /* XXX */
- register char *thisitem, *next;
- char *good;
-#define wewant(p) ((nfrontp > p) && ((*p&0xff) == IAC) && \
- ((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))
-
- thisitem = netobuf;
-
- while ((next = nextitem(thisitem)) <= netobuf.send) {
- thisitem = next;
- }
-
- /* Now, thisitem is first before/at boundary. */
-
- good = netobuf; /* where the good bytes go */
-
- while (netoring.add > thisitem) {
- if (wewant(thisitem)) {
- int length;
-
- next = thisitem;
- do {
- next = nextitem(next);
- } while (wewant(next) && (nfrontp > next));
- length = next-thisitem;
- memmove(good, thisitem, length);
- good += length;
- thisitem = next;
- } else {
- thisitem = nextitem(thisitem);
- }
- }
-
-#endif /* 0 */
-}
-
-/*
- * These routines add various telnet commands to the data stream.
- */
-
- static void
-doflush()
-{
- NET2ADD(IAC, DO);
- NETADD(TELOPT_TM);
- flushline = 1;
- flushout = 1;
- (void) ttyflush(1); /* Flush/drop output */
- /* do printoption AFTER flush, otherwise the output gets tossed... */
- printoption("SENT", DO, TELOPT_TM);
-}
-
- void
-xmitAO()
-{
- NET2ADD(IAC, AO);
- printoption("SENT", IAC, AO);
- if (autoflush) {
- doflush();
- }
-}
-
-
- void
-xmitEL()
-{
- NET2ADD(IAC, EL);
- printoption("SENT", IAC, EL);
-}
-
- void
-xmitEC()
-{
- NET2ADD(IAC, EC);
- printoption("SENT", IAC, EC);
-}
-
-
- int
-dosynch()
-{
- netclear(); /* clear the path to the network */
- NETADD(IAC);
- setneturg();
- NETADD(DM);
- printoption("SENT", IAC, DM);
- return 1;
-}
-
-int want_status_response = 0;
-
- int
-get_status()
-{
- unsigned char tmp[16];
- register unsigned char *cp;
-
- if (my_want_state_is_dont(TELOPT_STATUS)) {
- printf("Remote side does not support STATUS option\n");
- return 0;
- }
- cp = tmp;
-
- *cp++ = IAC;
- *cp++ = SB;
- *cp++ = TELOPT_STATUS;
- *cp++ = TELQUAL_SEND;
- *cp++ = IAC;
- *cp++ = SE;
- if (NETROOM() >= cp - tmp) {
- ring_supply_data(&netoring, tmp, cp-tmp);
- printsub('>', tmp+2, cp - tmp - 2);
- }
- ++want_status_response;
- return 1;
-}
-
- void
-intp()
-{
- NET2ADD(IAC, IP);
- printoption("SENT", IAC, IP);
- flushline = 1;
- if (autoflush) {
- doflush();
- }
- if (autosynch) {
- dosynch();
- }
-}
-
- void
-sendbrk()
-{
- NET2ADD(IAC, BREAK);
- printoption("SENT", IAC, BREAK);
- flushline = 1;
- if (autoflush) {
- doflush();
- }
- if (autosynch) {
- dosynch();
- }
-}
-
- void
-sendabort()
-{
- NET2ADD(IAC, ABORT);
- printoption("SENT", IAC, ABORT);
- flushline = 1;
- if (autoflush) {
- doflush();
- }
- if (autosynch) {
- dosynch();
- }
-}
-
- void
-sendsusp()
-{
- NET2ADD(IAC, SUSP);
- printoption("SENT", IAC, SUSP);
- flushline = 1;
- if (autoflush) {
- doflush();
- }
- if (autosynch) {
- dosynch();
- }
-}
-
- void
-sendeof()
-{
- NET2ADD(IAC, xEOF);
- printoption("SENT", IAC, xEOF);
-}
-
- void
-sendayt()
-{
- NET2ADD(IAC, AYT);
- printoption("SENT", IAC, AYT);
-}
-
-/*
- * Send a window size update to the remote system.
- */
-
- void
-sendnaws()
-{
- long rows, cols;
- unsigned char tmp[16];
- register unsigned char *cp;
-
- if (my_state_is_wont(TELOPT_NAWS))
- return;
-
-#define PUTSHORT(cp, x) { if ((*cp++ = ((x)>>8)&0xff) == IAC) *cp++ = IAC; \
- if ((*cp++ = ((x))&0xff) == IAC) *cp++ = IAC; }
-
- if (TerminalWindowSize(&rows, &cols) == 0) { /* Failed */
- return;
- }
-
- cp = tmp;
-
- *cp++ = IAC;
- *cp++ = SB;
- *cp++ = TELOPT_NAWS;
- PUTSHORT(cp, cols);
- PUTSHORT(cp, rows);
- *cp++ = IAC;
- *cp++ = SE;
- if (NETROOM() >= cp - tmp) {
- ring_supply_data(&netoring, tmp, cp-tmp);
- printsub('>', tmp+2, cp - tmp - 2);
- }
-}
-
- void
-tel_enter_binary(rw)
- int rw;
-{
- if (rw&1)
- send_do(TELOPT_BINARY, 1);
- if (rw&2)
- send_will(TELOPT_BINARY, 1);
-}
-
- void
-tel_leave_binary(rw)
- int rw;
-{
- if (rw&1)
- send_dont(TELOPT_BINARY, 1);
- if (rw&2)
- send_wont(TELOPT_BINARY, 1);
-}
diff --git a/crypto/telnet/telnet/terminal.c b/crypto/telnet/telnet/terminal.c
deleted file mode 100644
index a2383d9e6696..000000000000
--- a/crypto/telnet/telnet/terminal.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (c) 1988, 1990, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)terminal.c 8.2 (Berkeley) 2/16/95";
-#endif /* not lint */
-
-#include <arpa/telnet.h>
-#include <sys/types.h>
-
-#include "ring.h"
-
-#include "externs.h"
-#include "types.h"
-
-#if defined(ENCRYPTION)
-#include <libtelnet/encrypt.h>
-#endif
-
-Ring ttyoring, ttyiring;
-unsigned char ttyobuf[2*BUFSIZ], ttyibuf[BUFSIZ];
-
-int termdata; /* Debugging flag */
-
-#ifdef USE_TERMIO
-# ifndef VDISCARD
-cc_t termFlushChar;
-# endif
-# ifndef VLNEXT
-cc_t termLiteralNextChar;
-# endif
-# ifndef VSUSP
-cc_t termSuspChar;
-# endif
-# ifndef VWERASE
-cc_t termWerasChar;
-# endif
-# ifndef VREPRINT
-cc_t termRprntChar;
-# endif
-# ifndef VSTART
-cc_t termStartChar;
-# endif
-# ifndef VSTOP
-cc_t termStopChar;
-# endif
-# ifndef VEOL
-cc_t termForw1Char;
-# endif
-# ifndef VEOL2
-cc_t termForw2Char;
-# endif
-# ifndef VSTATUS
-cc_t termAytChar;
-# endif
-#else
-cc_t termForw2Char;
-cc_t termAytChar;
-#endif
-
-/*
- * initialize the terminal data structures.
- */
-
- void
-init_terminal()
-{
- if (ring_init(&ttyoring, ttyobuf, sizeof ttyobuf) != 1) {
- exit(1);
- }
- if (ring_init(&ttyiring, ttyibuf, sizeof ttyibuf) != 1) {
- exit(1);
- }
- autoflush = TerminalAutoFlush();
-}
-
-
-/*
- * Send as much data as possible to the terminal.
- *
- * Return value:
- * -1: No useful work done, data waiting to go out.
- * 0: No data was waiting, so nothing was done.
- * 1: All waiting data was written out.
- * n: All data - n was written out.
- */
-
-
- int
-ttyflush(drop)
- int drop;
-{
- register int n, n0, n1;
-
- n0 = ring_full_count(&ttyoring);
- if ((n1 = n = ring_full_consecutive(&ttyoring)) > 0) {
- if (drop) {
- TerminalFlushOutput();
- /* we leave 'n' alone! */
- } else {
- n = TerminalWrite(ttyoring.consume, n);
- }
- }
- if (n > 0) {
- if (termdata && n) {
- Dump('>', ttyoring.consume, n);
- }
- /*
- * If we wrote everything, and the full count is
- * larger than what we wrote, then write the
- * rest of the buffer.
- */
- if (n1 == n && n0 > n) {
- n1 = n0 - n;
- if (!drop)
- n1 = TerminalWrite(ttyoring.bottom, n1);
- if (n1 > 0)
- n += n1;
- }
- ring_consumed(&ttyoring, n);
- }
- if (n < 0)
- return -1;
- if (n == n0) {
- if (n0)
- return -1;
- return 0;
- }
- return n0 - n + 1;
-}
-
-
-/*
- * These routines decides on what the mode should be (based on the values
- * of various global variables).
- */
-
-
- int
-getconnmode()
-{
- extern int linemode;
- int mode = 0;
-#ifdef KLUDGELINEMODE
- extern int kludgelinemode;
-#endif
-
- if (In3270)
- return(MODE_FLOW);
-
- if (my_want_state_is_dont(TELOPT_ECHO))
- mode |= MODE_ECHO;
-
- if (localflow)
- mode |= MODE_FLOW;
-
- if (my_want_state_is_will(TELOPT_BINARY))
- mode |= MODE_INBIN;
-
- if (his_want_state_is_will(TELOPT_BINARY))
- mode |= MODE_OUTBIN;
-
-#ifdef KLUDGELINEMODE
- if (kludgelinemode) {
- if (my_want_state_is_dont(TELOPT_SGA)) {
- mode |= (MODE_TRAPSIG|MODE_EDIT);
- if (dontlecho && (clocks.echotoggle > clocks.modenegotiated)) {
- mode &= ~MODE_ECHO;
- }
- }
- return(mode);
- }
-#endif
- if (my_want_state_is_will(TELOPT_LINEMODE))
- mode |= linemode;
- return(mode);
-}
-
- void
-setconnmode(force)
- int force;
-{
-#ifdef ENCRYPTION
- static int enc_passwd = 0;
-#endif /* ENCRYPTION */
- register int newmode;
-
- newmode = getconnmode()|(force?MODE_FORCE:0);
-
- TerminalNewMode(newmode);
-
-#ifdef ENCRYPTION
- if ((newmode & (MODE_ECHO|MODE_EDIT)) == MODE_EDIT) {
- if (my_want_state_is_will(TELOPT_ENCRYPT)
- && (enc_passwd == 0) && !encrypt_output) {
- encrypt_request_start(0, 0);
- enc_passwd = 1;
- }
- } else {
- if (enc_passwd) {
- encrypt_request_end();
- enc_passwd = 0;
- }
- }
-#endif /* ENCRYPTION */
-
-}
-
-
- void
-setcommandmode()
-{
- TerminalNewMode(-1);
-}
diff --git a/crypto/telnet/telnet/tn3270.c b/crypto/telnet/telnet/tn3270.c
deleted file mode 100644
index 5a453d98cc5b..000000000000
--- a/crypto/telnet/telnet/tn3270.c
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)tn3270.c 8.2 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <arpa/telnet.h>
-
-#include "general.h"
-
-#include "defines.h"
-#include "ring.h"
-#include "externs.h"
-#include "fdset.h"
-
-#if defined(TN3270)
-
-#include "../ctlr/screen.h"
-#include "../general/globals.h"
-
-#include "../sys_curses/telextrn.h"
-#include "../ctlr/externs.h"
-
-#if defined(unix)
-int
- HaveInput, /* There is input available to scan */
- cursesdata, /* Do we dump curses data? */
- sigiocount; /* Number of times we got a SIGIO */
-
-char tline[200];
-char *transcom = 0; /* transparent mode command (default: none) */
-#endif /* defined(unix) */
-
-char Ibuf[8*BUFSIZ], *Ifrontp, *Ibackp;
-
-static char sb_terminal[] = { IAC, SB,
- TELOPT_TTYPE, TELQUAL_IS,
- 'I', 'B', 'M', '-', '3', '2', '7', '8', '-', '2',
- IAC, SE };
-#define SBTERMMODEL 13
-
-static int
- Sent3270TerminalType; /* Have we said we are a 3270? */
-
-#endif /* defined(TN3270) */
-
-
- void
-init_3270()
-{
-#if defined(TN3270)
-#if defined(unix)
- HaveInput = 0;
- sigiocount = 0;
-#endif /* defined(unix) */
- Sent3270TerminalType = 0;
- Ifrontp = Ibackp = Ibuf;
- init_ctlr(); /* Initialize some things */
- init_keyboard();
- init_screen();
- init_system();
-#endif /* defined(TN3270) */
-}
-
-
-#if defined(TN3270)
-
-/*
- * DataToNetwork - queue up some data to go to network. If "done" is set,
- * then when last byte is queued, we add on an IAC EOR sequence (so,
- * don't call us with "done" until you want that done...)
- *
- * We actually do send all the data to the network buffer, since our
- * only client needs for us to do that.
- */
-
- int
-DataToNetwork(buffer, count, done)
- register char *buffer; /* where the data is */
- register int count; /* how much to send */
- int done; /* is this the last of a logical block */
-{
- register int loop, c;
- int origCount;
-
- origCount = count;
-
- while (count) {
- /* If not enough room for EORs, IACs, etc., wait */
- if (NETROOM() < 6) {
- fd_set o;
-
- FD_ZERO(&o);
- netflush();
- while (NETROOM() < 6) {
- FD_SET(net, &o);
- (void) select(net+1, (fd_set *) 0, &o, (fd_set *) 0,
- (struct timeval *) 0);
- netflush();
- }
- }
- c = ring_empty_count(&netoring);
- if (c > count) {
- c = count;
- }
- loop = c;
- while (loop) {
- if (((unsigned char)*buffer) == IAC) {
- break;
- }
- buffer++;
- loop--;
- }
- if ((c = c-loop)) {
- ring_supply_data(&netoring, buffer-c, c);
- count -= c;
- }
- if (loop) {
- NET2ADD(IAC, IAC);
- count--;
- buffer++;
- }
- }
-
- if (done) {
- NET2ADD(IAC, EOR);
- netflush(); /* try to move along as quickly as ... */
- }
- return(origCount - count);
-}
-
-
-#if defined(unix)
- void
-inputAvailable(signo)
- int signo;
-{
- HaveInput = 1;
- sigiocount++;
-}
-#endif /* defined(unix) */
-
- void
-outputPurge()
-{
- (void) ttyflush(1);
-}
-
-
-/*
- * The following routines are places where the various tn3270
- * routines make calls into telnet.c.
- */
-
-/*
- * DataToTerminal - queue up some data to go to terminal.
- *
- * Note: there are people who call us and depend on our processing
- * *all* the data at one time (thus the select).
- */
-
- int
-DataToTerminal(buffer, count)
- register char *buffer; /* where the data is */
- register int count; /* how much to send */
-{
- register int c;
- int origCount;
-
- origCount = count;
-
- while (count) {
- if (TTYROOM() == 0) {
-#if defined(unix)
- fd_set o;
-
- FD_ZERO(&o);
-#endif /* defined(unix) */
- (void) ttyflush(0);
- while (TTYROOM() == 0) {
-#if defined(unix)
- FD_SET(tout, &o);
- (void) select(tout+1, (fd_set *) 0, &o, (fd_set *) 0,
- (struct timeval *) 0);
-#endif /* defined(unix) */
- (void) ttyflush(0);
- }
- }
- c = TTYROOM();
- if (c > count) {
- c = count;
- }
- ring_supply_data(&ttyoring, buffer, c);
- count -= c;
- buffer += c;
- }
- return(origCount);
-}
-
-
-/*
- * Push3270 - Try to send data along the 3270 output (to screen) direction.
- */
-
- int
-Push3270()
-{
- int save = ring_full_count(&netiring);
-
- if (save) {
- if (Ifrontp+save > Ibuf+sizeof Ibuf) {
- if (Ibackp != Ibuf) {
- memmove(Ibuf, Ibackp, Ifrontp-Ibackp);
- Ifrontp -= (Ibackp-Ibuf);
- Ibackp = Ibuf;
- }
- }
- if (Ifrontp+save < Ibuf+sizeof Ibuf) {
- (void)telrcv();
- }
- }
- return save != ring_full_count(&netiring);
-}
-
-
-/*
- * Finish3270 - get the last dregs of 3270 data out to the terminal
- * before quitting.
- */
-
- void
-Finish3270()
-{
- while (Push3270() || !DoTerminalOutput()) {
-#if defined(unix)
- HaveInput = 0;
-#endif /* defined(unix) */
- ;
- }
-}
-
-
-/* StringToTerminal - output a null terminated string to the terminal */
-
- void
-StringToTerminal(s)
- char *s;
-{
- int count;
-
- count = strlen(s);
- if (count) {
- (void) DataToTerminal(s, count); /* we know it always goes... */
- }
-}
-
-
-#if ((!defined(NOT43)) || defined(PUTCHAR))
-/* _putchar - output a single character to the terminal. This name is so that
- * curses(3x) can call us to send out data.
- */
-
- void
-_putchar(c)
- char c;
-{
-#if defined(sun) /* SunOS 4.0 bug */
- c &= 0x7f;
-#endif /* defined(sun) */
- if (cursesdata) {
- Dump('>', &c, 1);
- }
- if (!TTYROOM()) {
- (void) DataToTerminal(&c, 1);
- } else {
- TTYADD(c);
- }
-}
-#endif /* ((!defined(NOT43)) || defined(PUTCHAR)) */
-
- void
-SetIn3270()
-{
- if (Sent3270TerminalType && my_want_state_is_will(TELOPT_BINARY)
- && my_want_state_is_do(TELOPT_BINARY) && !donebinarytoggle) {
- if (!In3270) {
- In3270 = 1;
- Init3270(); /* Initialize 3270 functions */
- /* initialize terminal key mapping */
- InitTerminal(); /* Start terminal going */
- setconnmode(0);
- }
- } else {
- if (In3270) {
- StopScreen(1);
- In3270 = 0;
- Stop3270(); /* Tell 3270 we aren't here anymore */
- setconnmode(0);
- }
- }
-}
-
-/*
- * tn3270_ttype()
- *
- * Send a response to a terminal type negotiation.
- *
- * Return '0' if no more responses to send; '1' if a response sent.
- */
-
- int
-tn3270_ttype()
-{
- /*
- * Try to send a 3270 type terminal name. Decide which one based
- * on the format of our screen, and (in the future) color
- * capaiblities.
- */
- InitTerminal(); /* Sets MaxNumberColumns, MaxNumberLines */
- if ((MaxNumberLines >= 24) && (MaxNumberColumns >= 80)) {
- Sent3270TerminalType = 1;
- if ((MaxNumberLines >= 27) && (MaxNumberColumns >= 132)) {
- MaxNumberLines = 27;
- MaxNumberColumns = 132;
- sb_terminal[SBTERMMODEL] = '5';
- } else if (MaxNumberLines >= 43) {
- MaxNumberLines = 43;
- MaxNumberColumns = 80;
- sb_terminal[SBTERMMODEL] = '4';
- } else if (MaxNumberLines >= 32) {
- MaxNumberLines = 32;
- MaxNumberColumns = 80;
- sb_terminal[SBTERMMODEL] = '3';
- } else {
- MaxNumberLines = 24;
- MaxNumberColumns = 80;
- sb_terminal[SBTERMMODEL] = '2';
- }
- NumberLines = 24; /* before we start out... */
- NumberColumns = 80;
- ScreenSize = NumberLines*NumberColumns;
- if ((MaxNumberLines*MaxNumberColumns) > MAXSCREENSIZE) {
- ExitString("Programming error: MAXSCREENSIZE too small.\n",
- 1);
- /*NOTREACHED*/
- }
- printsub('>', sb_terminal+2, sizeof sb_terminal-2);
- ring_supply_data(&netoring, sb_terminal, sizeof sb_terminal);
- return 1;
- } else {
- return 0;
- }
-}
-
-#if defined(unix)
- int
-settranscom(argc, argv)
- int argc;
- char *argv[];
-{
- int i;
-
- if (argc == 1 && transcom) {
- transcom = 0;
- }
- if (argc == 1) {
- return 1;
- }
- transcom = tline;
- (void) strcpy(transcom, argv[1]);
- for (i = 2; i < argc; ++i) {
- (void) strcat(transcom, " ");
- (void) strcat(transcom, argv[i]);
- }
- return 1;
-}
-#endif /* defined(unix) */
-
-#endif /* defined(TN3270) */
diff --git a/crypto/telnet/telnet/types.h b/crypto/telnet/telnet/types.h
deleted file mode 100644
index 191d311fd154..000000000000
--- a/crypto/telnet/telnet/types.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)types.h 8.1 (Berkeley) 6/6/93
- */
-
-typedef struct {
- char *modedescriptions;
- char modetype;
-} Modelist;
-
-extern Modelist modelist[];
-
-typedef struct {
- int
- system, /* what the current time is */
- echotoggle, /* last time user entered echo character */
- modenegotiated, /* last time operating mode negotiated */
- didnetreceive, /* last time we read data from network */
- gotDM; /* when did we last see a data mark */
-} Clocks;
-
-extern Clocks clocks;
diff --git a/crypto/telnet/telnet/utilities.c b/crypto/telnet/telnet/utilities.c
deleted file mode 100644
index 0ee882ebd87c..000000000000
--- a/crypto/telnet/telnet/utilities.c
+++ /dev/null
@@ -1,946 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- */
-
-#ifndef lint
-static const char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
-#endif /* not lint */
-
-#define TELOPTS
-#define TELCMDS
-#define SLC_NAMES
-#include <arpa/telnet.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <unistd.h>
-
-#include <ctype.h>
-
-#include "general.h"
-
-#include "fdset.h"
-
-#include "ring.h"
-
-#include "defines.h"
-
-#include "externs.h"
-
-#if defined(AUTHENTICATION)
-#include <libtelnet/auth.h>
-#endif
-#if defined(ENCRYPTION)
-#include <libtelnet/encrypt.h>
-#endif
-
-FILE *NetTrace = 0; /* Not in bss, since needs to stay */
-int prettydump;
-
-/*
- * upcase()
- *
- * Upcase (in place) the argument.
- */
-
- void
-upcase(argument)
- register char *argument;
-{
- register int c;
-
- while ((c = *argument) != 0) {
- if (islower(c)) {
- *argument = toupper(c);
- }
- argument++;
- }
-}
-
-/*
- * SetSockOpt()
- *
- * Compensate for differences in 4.2 and 4.3 systems.
- */
-
- int
-SetSockOpt(fd, level, option, yesno)
- int fd, level, option, yesno;
-{
-#ifndef NOT43
- return setsockopt(fd, level, option,
- (char *)&yesno, sizeof yesno);
-#else /* NOT43 */
- if (yesno == 0) { /* Can't do that in 4.2! */
- fprintf(stderr, "Error: attempt to turn off an option 0x%x.\n",
- option);
- return -1;
- }
- return setsockopt(fd, level, option, 0, 0);
-#endif /* NOT43 */
-}
-
-/*
- * The following are routines used to print out debugging information.
- */
-
-unsigned char NetTraceFile[256] = "(standard output)";
-
- void
-SetNetTrace(file)
- register char *file;
-{
- if (NetTrace && NetTrace != stdout)
- fclose(NetTrace);
- if (file && (strcmp(file, "-") != 0)) {
- NetTrace = fopen(file, "w");
- if (NetTrace) {
- strcpy((char *)NetTraceFile, file);
- return;
- }
- fprintf(stderr, "Cannot open %s.\n", file);
- }
- NetTrace = stdout;
- strcpy((char *)NetTraceFile, "(standard output)");
-}
-
- void
-Dump(direction, buffer, length)
- char direction;
- unsigned char *buffer;
- int length;
-{
-# define BYTES_PER_LINE 32
-# define min(x,y) ((x<y)? x:y)
- unsigned char *pThis;
- int offset;
-
- offset = 0;
-
- while (length) {
- /* print one line */
- fprintf(NetTrace, "%c 0x%x\t", direction, offset);
- pThis = buffer;
- if (prettydump) {
- buffer = buffer + min(length, BYTES_PER_LINE/2);
- while (pThis < buffer) {
- fprintf(NetTrace, "%c%.2x",
- (((*pThis)&0xff) == 0xff) ? '*' : ' ',
- (*pThis)&0xff);
- pThis++;
- }
- length -= BYTES_PER_LINE/2;
- offset += BYTES_PER_LINE/2;
- } else {
- buffer = buffer + min(length, BYTES_PER_LINE);
- while (pThis < buffer) {
- fprintf(NetTrace, "%.2x", (*pThis)&0xff);
- pThis++;
- }
- length -= BYTES_PER_LINE;
- offset += BYTES_PER_LINE;
- }
- if (NetTrace == stdout) {
- fprintf(NetTrace, "\r\n");
- } else {
- fprintf(NetTrace, "\n");
- }
- if (length < 0) {
- fflush(NetTrace);
- return;
- }
- /* find next unique line */
- }
- fflush(NetTrace);
-}
-
-
- void
-printoption(direction, cmd, option)
- char *direction;
- int cmd, option;
-{
- if (!showoptions)
- return;
- if (cmd == IAC) {
- if (TELCMD_OK(option))
- fprintf(NetTrace, "%s IAC %s", direction, TELCMD(option));
- else
- fprintf(NetTrace, "%s IAC %d", direction, option);
- } else {
- register char *fmt;
- fmt = (cmd == WILL) ? "WILL" : (cmd == WONT) ? "WONT" :
- (cmd == DO) ? "DO" : (cmd == DONT) ? "DONT" : 0;
- if (fmt) {
- fprintf(NetTrace, "%s %s ", direction, fmt);
- if (TELOPT_OK(option))
- fprintf(NetTrace, "%s", TELOPT(option));
- else if (option == TELOPT_EXOPL)
- fprintf(NetTrace, "EXOPL");
- else
- fprintf(NetTrace, "%d", option);
- } else
- fprintf(NetTrace, "%s %d %d", direction, cmd, option);
- }
- if (NetTrace == stdout) {
- fprintf(NetTrace, "\r\n");
- fflush(NetTrace);
- } else {
- fprintf(NetTrace, "\n");
- }
- return;
-}
-
- void
-optionstatus()
-{
- register int i;
- extern char will_wont_resp[], do_dont_resp[];
-
- for (i = 0; i < 256; i++) {
- if (do_dont_resp[i]) {
- if (TELOPT_OK(i))
- printf("resp DO_DONT %s: %d\n", TELOPT(i), do_dont_resp[i]);
- else if (TELCMD_OK(i))
- printf("resp DO_DONT %s: %d\n", TELCMD(i), do_dont_resp[i]);
- else
- printf("resp DO_DONT %d: %d\n", i,
- do_dont_resp[i]);
- if (my_want_state_is_do(i)) {
- if (TELOPT_OK(i))
- printf("want DO %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf("want DO %s\n", TELCMD(i));
- else
- printf("want DO %d\n", i);
- } else {
- if (TELOPT_OK(i))
- printf("want DONT %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf("want DONT %s\n", TELCMD(i));
- else
- printf("want DONT %d\n", i);
- }
- } else {
- if (my_state_is_do(i)) {
- if (TELOPT_OK(i))
- printf(" DO %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf(" DO %s\n", TELCMD(i));
- else
- printf(" DO %d\n", i);
- }
- }
- if (will_wont_resp[i]) {
- if (TELOPT_OK(i))
- printf("resp WILL_WONT %s: %d\n", TELOPT(i), will_wont_resp[i]);
- else if (TELCMD_OK(i))
- printf("resp WILL_WONT %s: %d\n", TELCMD(i), will_wont_resp[i]);
- else
- printf("resp WILL_WONT %d: %d\n",
- i, will_wont_resp[i]);
- if (my_want_state_is_will(i)) {
- if (TELOPT_OK(i))
- printf("want WILL %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf("want WILL %s\n", TELCMD(i));
- else
- printf("want WILL %d\n", i);
- } else {
- if (TELOPT_OK(i))
- printf("want WONT %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf("want WONT %s\n", TELCMD(i));
- else
- printf("want WONT %d\n", i);
- }
- } else {
- if (my_state_is_will(i)) {
- if (TELOPT_OK(i))
- printf(" WILL %s\n", TELOPT(i));
- else if (TELCMD_OK(i))
- printf(" WILL %s\n", TELCMD(i));
- else
- printf(" WILL %d\n", i);
- }
- }
- }
-
-}
-
- void
-printsub(direction, pointer, length)
- char direction; /* '<' or '>' */
- unsigned char *pointer; /* where suboption data sits */
- int length; /* length of suboption data */
-{
- register int i;
- char buf[512];
- extern int want_status_response;
-
- if (showoptions || direction == 0 ||
- (want_status_response && (pointer[0] == TELOPT_STATUS))) {
- if (direction) {
- fprintf(NetTrace, "%s IAC SB ",
- (direction == '<')? "RCVD":"SENT");
- if (length >= 3) {
- register int j;
-
- i = pointer[length-2];
- j = pointer[length-1];
-
- if (i != IAC || j != SE) {
- fprintf(NetTrace, "(terminated by ");
- if (TELOPT_OK(i))
- fprintf(NetTrace, "%s ", TELOPT(i));
- else if (TELCMD_OK(i))
- fprintf(NetTrace, "%s ", TELCMD(i));
- else
- fprintf(NetTrace, "%d ", i);
- if (TELOPT_OK(j))
- fprintf(NetTrace, "%s", TELOPT(j));
- else if (TELCMD_OK(j))
- fprintf(NetTrace, "%s", TELCMD(j));
- else
- fprintf(NetTrace, "%d", j);
- fprintf(NetTrace, ", not IAC SE!) ");
- }
- }
- length -= 2;
- }
- if (length < 1) {
- fprintf(NetTrace, "(Empty suboption??\?)");
- if (NetTrace == stdout)
- fflush(NetTrace);
- return;
- }
- switch (pointer[0]) {
- case TELOPT_TTYPE:
- fprintf(NetTrace, "TERMINAL-TYPE ");
- switch (pointer[1]) {
- case TELQUAL_IS:
- fprintf(NetTrace, "IS \"%.*s\"", length-2, (char *)pointer+2);
- break;
- case TELQUAL_SEND:
- fprintf(NetTrace, "SEND");
- break;
- default:
- fprintf(NetTrace,
- "- unknown qualifier %d (0x%x).",
- pointer[1], pointer[1]);
- }
- break;
- case TELOPT_TSPEED:
- fprintf(NetTrace, "TERMINAL-SPEED");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case TELQUAL_IS:
- fprintf(NetTrace, " IS ");
- fprintf(NetTrace, "%.*s", length-2, (char *)pointer+2);
- break;
- default:
- if (pointer[1] == 1)
- fprintf(NetTrace, " SEND");
- else
- fprintf(NetTrace, " %d (unknown)", pointer[1]);
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
- }
- break;
-
- case TELOPT_LFLOW:
- fprintf(NetTrace, "TOGGLE-FLOW-CONTROL");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case LFLOW_OFF:
- fprintf(NetTrace, " OFF"); break;
- case LFLOW_ON:
- fprintf(NetTrace, " ON"); break;
- case LFLOW_RESTART_ANY:
- fprintf(NetTrace, " RESTART-ANY"); break;
- case LFLOW_RESTART_XON:
- fprintf(NetTrace, " RESTART-XON"); break;
- default:
- fprintf(NetTrace, " %d (unknown)", pointer[1]);
- }
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
-
- case TELOPT_NAWS:
- fprintf(NetTrace, "NAWS");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- if (length == 2) {
- fprintf(NetTrace, " ?%d?", pointer[1]);
- break;
- }
- fprintf(NetTrace, " %d %d (%d)",
- pointer[1], pointer[2],
- (int)((((unsigned int)pointer[1])<<8)|((unsigned int)pointer[2])));
- if (length == 4) {
- fprintf(NetTrace, " ?%d?", pointer[3]);
- break;
- }
- fprintf(NetTrace, " %d %d (%d)",
- pointer[3], pointer[4],
- (int)((((unsigned int)pointer[3])<<8)|((unsigned int)pointer[4])));
- for (i = 5; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
-
-#if defined(AUTHENTICATION)
- case TELOPT_AUTHENTICATION:
- fprintf(NetTrace, "AUTHENTICATION");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case TELQUAL_REPLY:
- case TELQUAL_IS:
- fprintf(NetTrace, " %s ", (pointer[1] == TELQUAL_IS) ?
- "IS" : "REPLY");
- if (AUTHTYPE_NAME_OK(pointer[2]))
- fprintf(NetTrace, "%s ", AUTHTYPE_NAME(pointer[2]));
- else
- fprintf(NetTrace, "%d ", pointer[2]);
- if (length < 3) {
- fprintf(NetTrace, "(partial suboption??\?)");
- break;
- }
- fprintf(NetTrace, "%s|%s",
- ((pointer[3] & AUTH_WHO_MASK) == AUTH_WHO_CLIENT) ?
- "CLIENT" : "SERVER",
- ((pointer[3] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ?
- "MUTUAL" : "ONE-WAY");
-
- auth_printsub(&pointer[1], length - 1, buf, sizeof(buf));
- fprintf(NetTrace, "%s", buf);
- break;
-
- case TELQUAL_SEND:
- i = 2;
- fprintf(NetTrace, " SEND ");
- while (i < length) {
- if (AUTHTYPE_NAME_OK(pointer[i]))
- fprintf(NetTrace, "%s ", AUTHTYPE_NAME(pointer[i]));
- else
- fprintf(NetTrace, "%d ", pointer[i]);
- if (++i >= length) {
- fprintf(NetTrace, "(partial suboption??\?)");
- break;
- }
- fprintf(NetTrace, "%s|%s ",
- ((pointer[i] & AUTH_WHO_MASK) == AUTH_WHO_CLIENT) ?
- "CLIENT" : "SERVER",
- ((pointer[i] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ?
- "MUTUAL" : "ONE-WAY");
- ++i;
- }
- break;
-
- case TELQUAL_NAME:
- i = 2;
- fprintf(NetTrace, " NAME \"");
- while (i < length)
- putc(pointer[i++], NetTrace);
- putc('"', NetTrace);
- break;
-
- default:
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
- }
- break;
-#endif
-
-#ifdef ENCRYPTION
- case TELOPT_ENCRYPT:
- fprintf(NetTrace, "ENCRYPT");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case ENCRYPT_START:
- fprintf(NetTrace, " START");
- break;
-
- case ENCRYPT_END:
- fprintf(NetTrace, " END");
- break;
-
- case ENCRYPT_REQSTART:
- fprintf(NetTrace, " REQUEST-START");
- break;
-
- case ENCRYPT_REQEND:
- fprintf(NetTrace, " REQUEST-END");
- break;
-
- case ENCRYPT_IS:
- case ENCRYPT_REPLY:
- fprintf(NetTrace, " %s ", (pointer[1] == ENCRYPT_IS) ?
- "IS" : "REPLY");
- if (length < 3) {
- fprintf(NetTrace, " (partial suboption??\?)");
- break;
- }
- if (ENCTYPE_NAME_OK(pointer[2]))
- fprintf(NetTrace, "%s ", ENCTYPE_NAME(pointer[2]));
- else
- fprintf(NetTrace, " %d (unknown)", pointer[2]);
-
- encrypt_printsub(&pointer[1], length - 1, buf, sizeof(buf));
- fprintf(NetTrace, "%s", buf);
- break;
-
- case ENCRYPT_SUPPORT:
- i = 2;
- fprintf(NetTrace, " SUPPORT ");
- while (i < length) {
- if (ENCTYPE_NAME_OK(pointer[i]))
- fprintf(NetTrace, "%s ", ENCTYPE_NAME(pointer[i]));
- else
- fprintf(NetTrace, "%d ", pointer[i]);
- i++;
- }
- break;
-
- case ENCRYPT_ENC_KEYID:
- fprintf(NetTrace, " ENC_KEYID ");
- goto encommon;
-
- case ENCRYPT_DEC_KEYID:
- fprintf(NetTrace, " DEC_KEYID ");
- goto encommon;
-
- default:
- fprintf(NetTrace, " %d (unknown)", pointer[1]);
- encommon:
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " %d", pointer[i]);
- break;
- }
- break;
-#endif /* ENCRYPTION */
-
- case TELOPT_LINEMODE:
- fprintf(NetTrace, "LINEMODE ");
- if (length < 2) {
- fprintf(NetTrace, " (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case WILL:
- fprintf(NetTrace, "WILL ");
- goto common;
- case WONT:
- fprintf(NetTrace, "WONT ");
- goto common;
- case DO:
- fprintf(NetTrace, "DO ");
- goto common;
- case DONT:
- fprintf(NetTrace, "DONT ");
- common:
- if (length < 3) {
- fprintf(NetTrace, "(no option??\?)");
- break;
- }
- switch (pointer[2]) {
- case LM_FORWARDMASK:
- fprintf(NetTrace, "Forward Mask");
- for (i = 3; i < length; i++)
- fprintf(NetTrace, " %x", pointer[i]);
- break;
- default:
- fprintf(NetTrace, "%d (unknown)", pointer[2]);
- for (i = 3; i < length; i++)
- fprintf(NetTrace, " %d", pointer[i]);
- break;
- }
- break;
-
- case LM_SLC:
- fprintf(NetTrace, "SLC");
- for (i = 2; i < length - 2; i += 3) {
- if (SLC_NAME_OK(pointer[i+SLC_FUNC]))
- fprintf(NetTrace, " %s", SLC_NAME(pointer[i+SLC_FUNC]));
- else
- fprintf(NetTrace, " %d", pointer[i+SLC_FUNC]);
- switch (pointer[i+SLC_FLAGS]&SLC_LEVELBITS) {
- case SLC_NOSUPPORT:
- fprintf(NetTrace, " NOSUPPORT"); break;
- case SLC_CANTCHANGE:
- fprintf(NetTrace, " CANTCHANGE"); break;
- case SLC_VARIABLE:
- fprintf(NetTrace, " VARIABLE"); break;
- case SLC_DEFAULT:
- fprintf(NetTrace, " DEFAULT"); break;
- }
- fprintf(NetTrace, "%s%s%s",
- pointer[i+SLC_FLAGS]&SLC_ACK ? "|ACK" : "",
- pointer[i+SLC_FLAGS]&SLC_FLUSHIN ? "|FLUSHIN" : "",
- pointer[i+SLC_FLAGS]&SLC_FLUSHOUT ? "|FLUSHOUT" : "");
- if (pointer[i+SLC_FLAGS]& ~(SLC_ACK|SLC_FLUSHIN|
- SLC_FLUSHOUT| SLC_LEVELBITS))
- fprintf(NetTrace, "(0x%x)", pointer[i+SLC_FLAGS]);
- fprintf(NetTrace, " %d;", pointer[i+SLC_VALUE]);
- if ((pointer[i+SLC_VALUE] == IAC) &&
- (pointer[i+SLC_VALUE+1] == IAC))
- i++;
- }
- for (; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
-
- case LM_MODE:
- fprintf(NetTrace, "MODE ");
- if (length < 3) {
- fprintf(NetTrace, "(no mode??\?)");
- break;
- }
- {
- char tbuf[64];
- sprintf(tbuf, "%s%s%s%s%s",
- pointer[2]&MODE_EDIT ? "|EDIT" : "",
- pointer[2]&MODE_TRAPSIG ? "|TRAPSIG" : "",
- pointer[2]&MODE_SOFT_TAB ? "|SOFT_TAB" : "",
- pointer[2]&MODE_LIT_ECHO ? "|LIT_ECHO" : "",
- pointer[2]&MODE_ACK ? "|ACK" : "");
- fprintf(NetTrace, "%s", tbuf[1] ? &tbuf[1] : "0");
- }
- if (pointer[2]&~(MODE_MASK))
- fprintf(NetTrace, " (0x%x)", pointer[2]);
- for (i = 3; i < length; i++)
- fprintf(NetTrace, " ?0x%x?", pointer[i]);
- break;
- default:
- fprintf(NetTrace, "%d (unknown)", pointer[1]);
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " %d", pointer[i]);
- }
- break;
-
- case TELOPT_STATUS: {
- register char *cp;
- register int j, k;
-
- fprintf(NetTrace, "STATUS");
-
- switch (pointer[1]) {
- default:
- if (pointer[1] == TELQUAL_SEND)
- fprintf(NetTrace, " SEND");
- else
- fprintf(NetTrace, " %d (unknown)", pointer[1]);
- for (i = 2; i < length; i++)
- fprintf(NetTrace, " ?%d?", pointer[i]);
- break;
- case TELQUAL_IS:
- if (--want_status_response < 0)
- want_status_response = 0;
- if (NetTrace == stdout)
- fprintf(NetTrace, " IS\r\n");
- else
- fprintf(NetTrace, " IS\n");
-
- for (i = 2; i < length; i++) {
- switch(pointer[i]) {
- case DO: cp = "DO"; goto common2;
- case DONT: cp = "DONT"; goto common2;
- case WILL: cp = "WILL"; goto common2;
- case WONT: cp = "WONT"; goto common2;
- common2:
- i++;
- if (TELOPT_OK((int)pointer[i]))
- fprintf(NetTrace, " %s %s", cp, TELOPT(pointer[i]));
- else
- fprintf(NetTrace, " %s %d", cp, pointer[i]);
-
- if (NetTrace == stdout)
- fprintf(NetTrace, "\r\n");
- else
- fprintf(NetTrace, "\n");
- break;
-
- case SB:
- fprintf(NetTrace, " SB ");
- i++;
- j = k = i;
- while (j < length) {
- if (pointer[j] == SE) {
- if (j+1 == length)
- break;
- if (pointer[j+1] == SE)
- j++;
- else
- break;
- }
- pointer[k++] = pointer[j++];
- }
- printsub(0, &pointer[i], k - i);
- if (i < length) {
- fprintf(NetTrace, " SE");
- i = j;
- } else
- i = j - 1;
-
- if (NetTrace == stdout)
- fprintf(NetTrace, "\r\n");
- else
- fprintf(NetTrace, "\n");
-
- break;
-
- default:
- fprintf(NetTrace, " %d", pointer[i]);
- break;
- }
- }
- break;
- }
- break;
- }
-
- case TELOPT_XDISPLOC:
- fprintf(NetTrace, "X-DISPLAY-LOCATION ");
- switch (pointer[1]) {
- case TELQUAL_IS:
- fprintf(NetTrace, "IS \"%.*s\"", length-2, (char *)pointer+2);
- break;
- case TELQUAL_SEND:
- fprintf(NetTrace, "SEND");
- break;
- default:
- fprintf(NetTrace, "- unknown qualifier %d (0x%x).",
- pointer[1], pointer[1]);
- }
- break;
-
- case TELOPT_NEW_ENVIRON:
- fprintf(NetTrace, "NEW-ENVIRON ");
-#ifdef OLD_ENVIRON
- goto env_common1;
- case TELOPT_OLD_ENVIRON:
- fprintf(NetTrace, "OLD-ENVIRON");
- env_common1:
-#endif
- switch (pointer[1]) {
- case TELQUAL_IS:
- fprintf(NetTrace, "IS ");
- goto env_common;
- case TELQUAL_SEND:
- fprintf(NetTrace, "SEND ");
- goto env_common;
- case TELQUAL_INFO:
- fprintf(NetTrace, "INFO ");
- env_common:
- {
- register int noquote = 2;
-#if defined(ENV_HACK) && defined(OLD_ENVIRON)
- extern int old_env_var, old_env_value;
-#endif
- for (i = 2; i < length; i++ ) {
- switch (pointer[i]) {
- case NEW_ENV_VALUE:
-#ifdef OLD_ENVIRON
- /* case NEW_ENV_OVAR: */
- if (pointer[0] == TELOPT_OLD_ENVIRON) {
-# ifdef ENV_HACK
- if (old_env_var == OLD_ENV_VALUE)
- fprintf(NetTrace, "\" (VALUE) " + noquote);
- else
-# endif
- fprintf(NetTrace, "\" VAR " + noquote);
- } else
-#endif /* OLD_ENVIRON */
- fprintf(NetTrace, "\" VALUE " + noquote);
- noquote = 2;
- break;
-
- case NEW_ENV_VAR:
-#ifdef OLD_ENVIRON
- /* case OLD_ENV_VALUE: */
- if (pointer[0] == TELOPT_OLD_ENVIRON) {
-# ifdef ENV_HACK
- if (old_env_value == OLD_ENV_VAR)
- fprintf(NetTrace, "\" (VAR) " + noquote);
- else
-# endif
- fprintf(NetTrace, "\" VALUE " + noquote);
- } else
-#endif /* OLD_ENVIRON */
- fprintf(NetTrace, "\" VAR " + noquote);
- noquote = 2;
- break;
-
- case ENV_ESC:
- fprintf(NetTrace, "\" ESC " + noquote);
- noquote = 2;
- break;
-
- case ENV_USERVAR:
- fprintf(NetTrace, "\" USERVAR " + noquote);
- noquote = 2;
- break;
-
- default:
- if (isprint(pointer[i]) && pointer[i] != '"') {
- if (noquote) {
- putc('"', NetTrace);
- noquote = 0;
- }
- putc(pointer[i], NetTrace);
- } else {
- fprintf(NetTrace, "\" %03o " + noquote,
- pointer[i]);
- noquote = 2;
- }
- break;
- }
- }
- if (!noquote)
- putc('"', NetTrace);
- break;
- }
- }
- break;
-
- default:
- if (TELOPT_OK(pointer[0]))
- fprintf(NetTrace, "%s (unknown)", TELOPT(pointer[0]));
- else
- fprintf(NetTrace, "%d (unknown)", pointer[0]);
- for (i = 1; i < length; i++)
- fprintf(NetTrace, " %d", pointer[i]);
- break;
- }
- if (direction) {
- if (NetTrace == stdout)
- fprintf(NetTrace, "\r\n");
- else
- fprintf(NetTrace, "\n");
- }
- if (NetTrace == stdout)
- fflush(NetTrace);
- }
-}
-
-/* EmptyTerminal - called to make sure that the terminal buffer is empty.
- * Note that we consider the buffer to run all the
- * way to the kernel (thus the select).
- */
-
- void
-EmptyTerminal()
-{
-#if defined(unix)
- fd_set o;
-
- FD_ZERO(&o);
-#endif /* defined(unix) */
-
- if (TTYBYTES() == 0) {
-#if defined(unix)
- FD_SET(tout, &o);
- (void) select(tout+1, (fd_set *) 0, &o, (fd_set *) 0,
- (struct timeval *) 0); /* wait for TTLOWAT */
-#endif /* defined(unix) */
- } else {
- while (TTYBYTES()) {
- (void) ttyflush(0);
-#if defined(unix)
- FD_SET(tout, &o);
- (void) select(tout+1, (fd_set *) 0, &o, (fd_set *) 0,
- (struct timeval *) 0); /* wait for TTLOWAT */
-#endif /* defined(unix) */
- }
- }
-}
-
- void
-SetForExit()
-{
- setconnmode(0);
-#if defined(TN3270)
- if (In3270) {
- Finish3270();
- }
-#else /* defined(TN3270) */
- do {
- (void)telrcv(); /* Process any incoming data */
- EmptyTerminal();
- } while (ring_full_count(&netiring)); /* While there is any */
-#endif /* defined(TN3270) */
- setcommandmode();
- fflush(stdout);
- fflush(stderr);
-#if defined(TN3270)
- if (In3270) {
- StopScreen(1);
- }
-#endif /* defined(TN3270) */
- setconnmode(0);
- EmptyTerminal(); /* Flush the path to the tty */
- setcommandmode();
-}
-
- void
-Exit(returnCode)
- int returnCode;
-{
- SetForExit();
- exit(returnCode);
-}
-
- void
-ExitString(string, returnCode)
- char *string;
- int returnCode;
-{
- SetForExit();
- fwrite(string, 1, strlen(string), stderr);
- exit(returnCode);
-}
diff --git a/crypto/telnet/telnetd/defs.h b/crypto/telnet/telnetd/defs.h
deleted file mode 100644
index a73d4a619978..000000000000
--- a/crypto/telnet/telnetd/defs.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)defs.h 8.1 (Berkeley) 6/4/93
- */
-
-/*
- * Telnet server defines
- */
-#include <sys/types.h>
-#include <sys/param.h>
-
-#ifndef BSD
-# define BSD 43
-#endif
-
-#if defined(CRAY) && !defined(LINEMODE)
-# define SYSV_TERMIO
-# define LINEMODE
-# define KLUDGELINEMODE
-# define DIAGNOSTICS
-# if defined(UNICOS50) && !defined(UNICOS5)
-# define UNICOS5
-# endif
-# if !defined(UNICOS5)
-# define BFTPDAEMON
-# define HAS_IP_TOS
-# endif
-#endif /* CRAY */
-#if defined(UNICOS5) && !defined(NO_SETSID)
-# define NO_SETSID
-#endif
-
-#if defined(PRINTOPTIONS) && defined(DIAGNOSTICS)
-#define TELOPTS
-#define TELCMDS
-#define SLC_NAMES
-#endif
-
-#if defined(SYSV_TERMIO) && !defined(USE_TERMIO)
-# define USE_TERMIO
-#endif
-
-#include <sys/socket.h>
-#ifndef CRAY
-#include <sys/wait.h>
-#endif /* CRAY */
-#include <fcntl.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#ifndef FILIO_H
-#include <sys/ioctl.h>
-#else
-#include <sys/filio.h>
-#endif
-
-#include <netinet/in.h>
-
-#include <arpa/telnet.h>
-
-#include <stdio.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#endif
-#include <signal.h>
-#include <errno.h>
-#include <netdb.h>
-#include <syslog.h>
-#ifndef LOG_DAEMON
-#define LOG_DAEMON 0
-#endif
-#ifndef LOG_ODELAY
-#define LOG_ODELAY 0
-#endif
-#include <ctype.h>
-#ifndef NO_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-
-#ifndef USE_TERMIO
-#include <sgtty.h>
-#else
-# ifdef SYSV_TERMIO
-# include <termio.h>
-# else
-# include <termios.h>
-# endif
-#endif
-#if !defined(USE_TERMIO) || defined(NO_CC_T)
-typedef unsigned char cc_t;
-#endif
-
-#ifdef __STDC__
-#include <unistd.h>
-#endif
-
-#ifndef _POSIX_VDISABLE
-# ifdef VDISABLE
-# define _POSIX_VDISABLE VDISABLE
-# else
-# define _POSIX_VDISABLE ((unsigned char)'\377')
-# endif
-#endif
-
-
-#ifdef CRAY
-# ifdef CRAY1
-# include <sys/pty.h>
-# ifndef FD_ZERO
-# include <sys/select.h>
-# endif /* FD_ZERO */
-# endif /* CRAY1 */
-
-#include <memory.h>
-#endif /* CRAY */
-
-#ifdef __hpux
-#include <sys/ptyio.h>
-#endif
-
-#if !defined(TIOCSCTTY) && defined(TCSETCTTY)
-# define TIOCSCTTY TCSETCTTY
-#endif
-
-#ifndef FD_SET
-#ifndef HAVE_fd_set
-typedef struct fd_set { int fds_bits[1]; } fd_set;
-#endif
-
-#define FD_SET(n, p) ((p)->fds_bits[0] |= (1<<(n)))
-#define FD_CLR(n, p) ((p)->fds_bits[0] &= ~(1<<(n)))
-#define FD_ISSET(n, p) ((p)->fds_bits[0] & (1<<(n)))
-#define FD_ZERO(p) ((p)->fds_bits[0] = 0)
-#endif /* FD_SET */
-
-/*
- * I/O data buffers defines
- */
-#define NETSLOP 64
-#ifdef CRAY
-#undef BUFSIZ
-#define BUFSIZ 2048
-#endif
-
-#define NIACCUM(c) { *netip++ = c; \
- ncc++; \
- }
-
-/* clock manipulations */
-#define settimer(x) (clocks.x = ++clocks.system)
-#define sequenceIs(x,y) (clocks.x < clocks.y)
-
-/*
- * Linemode support states, in decreasing order of importance
- */
-#define REAL_LINEMODE 0x04
-#define KLUDGE_OK 0x03
-#define NO_AUTOKLUDGE 0x02
-#define KLUDGE_LINEMODE 0x01
-#define NO_LINEMODE 0x00
-
-/*
- * Structures of information for each special character function.
- */
-typedef struct {
- unsigned char flag; /* the flags for this function */
- cc_t val; /* the value of the special character */
-} slcent, *Slcent;
-
-typedef struct {
- slcent defset; /* the default settings */
- slcent current; /* the current settings */
- cc_t *sptr; /* a pointer to the char in */
- /* system data structures */
-} slcfun, *Slcfun;
-
-#ifdef DIAGNOSTICS
-/*
- * Diagnostics capabilities
- */
-#define TD_REPORT 0x01 /* Report operations to client */
-#define TD_EXERCISE 0x02 /* Exercise client's implementation */
-#define TD_NETDATA 0x04 /* Display received data stream */
-#define TD_PTYDATA 0x08 /* Display data passed to pty */
-#define TD_OPTIONS 0x10 /* Report just telnet options */
-#endif /* DIAGNOSTICS */
-
-/*
- * We keep track of each side of the option negotiation.
- */
-
-#define MY_STATE_WILL 0x01
-#define MY_WANT_STATE_WILL 0x02
-#define MY_STATE_DO 0x04
-#define MY_WANT_STATE_DO 0x08
-
-/*
- * Macros to check the current state of things
- */
-
-#define my_state_is_do(opt) (options[opt]&MY_STATE_DO)
-#define my_state_is_will(opt) (options[opt]&MY_STATE_WILL)
-#define my_want_state_is_do(opt) (options[opt]&MY_WANT_STATE_DO)
-#define my_want_state_is_will(opt) (options[opt]&MY_WANT_STATE_WILL)
-
-#define my_state_is_dont(opt) (!my_state_is_do(opt))
-#define my_state_is_wont(opt) (!my_state_is_will(opt))
-#define my_want_state_is_dont(opt) (!my_want_state_is_do(opt))
-#define my_want_state_is_wont(opt) (!my_want_state_is_will(opt))
-
-#define set_my_state_do(opt) (options[opt] |= MY_STATE_DO)
-#define set_my_state_will(opt) (options[opt] |= MY_STATE_WILL)
-#define set_my_want_state_do(opt) (options[opt] |= MY_WANT_STATE_DO)
-#define set_my_want_state_will(opt) (options[opt] |= MY_WANT_STATE_WILL)
-
-#define set_my_state_dont(opt) (options[opt] &= ~MY_STATE_DO)
-#define set_my_state_wont(opt) (options[opt] &= ~MY_STATE_WILL)
-#define set_my_want_state_dont(opt) (options[opt] &= ~MY_WANT_STATE_DO)
-#define set_my_want_state_wont(opt) (options[opt] &= ~MY_WANT_STATE_WILL)
-
-/*
- * Tricky code here. What we want to know is if the MY_STATE_WILL
- * and MY_WANT_STATE_WILL bits have the same value. Since the two
- * bits are adjacent, a little arithmatic will show that by adding
- * in the lower bit, the upper bit will be set if the two bits were
- * different, and clear if they were the same.
- */
-#define my_will_wont_is_changing(opt) \
- ((options[opt]+MY_STATE_WILL) & MY_WANT_STATE_WILL)
-
-#define my_do_dont_is_changing(opt) \
- ((options[opt]+MY_STATE_DO) & MY_WANT_STATE_DO)
-
-/*
- * Make everything symetrical
- */
-
-#define HIS_STATE_WILL MY_STATE_DO
-#define HIS_WANT_STATE_WILL MY_WANT_STATE_DO
-#define HIS_STATE_DO MY_STATE_WILL
-#define HIS_WANT_STATE_DO MY_WANT_STATE_WILL
-
-#define his_state_is_do my_state_is_will
-#define his_state_is_will my_state_is_do
-#define his_want_state_is_do my_want_state_is_will
-#define his_want_state_is_will my_want_state_is_do
-
-#define his_state_is_dont my_state_is_wont
-#define his_state_is_wont my_state_is_dont
-#define his_want_state_is_dont my_want_state_is_wont
-#define his_want_state_is_wont my_want_state_is_dont
-
-#define set_his_state_do set_my_state_will
-#define set_his_state_will set_my_state_do
-#define set_his_want_state_do set_my_want_state_will
-#define set_his_want_state_will set_my_want_state_do
-
-#define set_his_state_dont set_my_state_wont
-#define set_his_state_wont set_my_state_dont
-#define set_his_want_state_dont set_my_want_state_wont
-#define set_his_want_state_wont set_my_want_state_dont
-
-#define his_will_wont_is_changing my_do_dont_is_changing
-#define his_do_dont_is_changing my_will_wont_is_changing
diff --git a/crypto/telnet/telnetd/ext.h b/crypto/telnet/telnetd/ext.h
deleted file mode 100644
index f60139e078ac..000000000000
--- a/crypto/telnet/telnetd/ext.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)ext.h 8.2 (Berkeley) 12/15/93
- */
-
-/*
- * Telnet server variable declarations
- */
-extern char options[256];
-extern char do_dont_resp[256];
-extern char will_wont_resp[256];
-extern int linemode; /* linemode on/off */
-#ifdef LINEMODE
-extern int uselinemode; /* what linemode to use (on/off) */
-extern int editmode; /* edit modes in use */
-extern int useeditmode; /* edit modes to use */
-extern int alwayslinemode; /* command line option */
-extern int lmodetype; /* Client support for linemode */
-#endif /* LINEMODE */
-extern int flowmode; /* current flow control state */
-extern int restartany; /* restart output on any character state */
-#ifdef DIAGNOSTICS
-extern int diagnostic; /* telnet diagnostic capabilities */
-#endif /* DIAGNOSTICS */
-#ifdef BFTPDAEMON
-extern int bftpd; /* behave as bftp daemon */
-#endif /* BFTPDAEMON */
-#if defined(SecurID)
-extern int require_SecurID;
-#endif
-#if defined(AUTHENTICATION)
-extern int auth_level;
-#endif
-
-extern slcfun slctab[NSLC + 1]; /* slc mapping table */
-
-char *terminaltype;
-
-/*
- * I/O data buffers, pointers, and counters.
- */
-extern char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp;
-
-extern char netibuf[BUFSIZ], *netip;
-
-extern char netobuf[BUFSIZ+NETSLOP], *nfrontp, *nbackp;
-extern char *neturg; /* one past last bye of urgent data */
-
-extern int pcc, ncc;
-
-#if defined(CRAY2) && defined(UNICOS5)
-extern int unpcc; /* characters left unprocessed by CRAY-2 terminal routine */
-extern char *unptyip; /* pointer to remaining characters in buffer */
-#endif
-
-extern int pty, net;
-extern char *line;
-extern int SYNCHing; /* we are in TELNET SYNCH mode */
-
-#ifndef P
-# ifdef __STDC__
-# define P(x) x
-# else
-# define P(x) ()
-# endif
-#endif
-
-extern void
- _termstat P((void)),
- add_slc P((int, int, int)),
- check_slc P((void)),
- change_slc P((int, int, int)),
- cleanup P((int)),
- clientstat P((int, int, int)),
- copy_termbuf P((char *, int)),
- deferslc P((void)),
- defer_terminit P((void)),
- do_opt_slc P((unsigned char *, int)),
- doeof P((void)),
- dooption P((int)),
- dontoption P((int)),
- edithost P((char *, char *)),
- fatal P((int, char *)),
- fatalperror P((int, char *)),
- get_slc_defaults P((void)),
- init_env P((void)),
- init_termbuf P((void)),
- interrupt P((void)),
- localstat P((void)),
- flowstat P((void)),
- netclear P((void)),
- netflush P((void)),
-#ifdef DIAGNOSTICS
- printoption P((char *, int)),
- printdata P((char *, char *, int)),
- printsub P((int, unsigned char *, int)),
-#endif
- ptyflush P((void)),
- putchr P((int)),
- putf P((char *, char *)),
- recv_ayt P((void)),
- send_do P((int, int)),
- send_dont P((int, int)),
- send_slc P((void)),
- send_status P((void)),
- send_will P((int, int)),
- send_wont P((int, int)),
- sendbrk P((void)),
- sendsusp P((void)),
- set_termbuf P((void)),
- start_login P((char *, int, char *)),
- start_slc P((int)),
-#if defined(AUTHENTICATION)
- start_slave P((char *)),
-#else
- start_slave P((char *, int, char *)),
-#endif
- suboption P((void)),
- telrcv P((void)),
- ttloop P((void)),
- tty_binaryin P((int)),
- tty_binaryout P((int));
-
-extern int
- end_slc P((unsigned char **)),
- getnpty P((void)),
-#ifndef convex
- getpty P((int *)),
-#endif
- login_tty P((int)),
- spcset P((int, cc_t *, cc_t **)),
- stilloob P((int)),
- terminit P((void)),
- termstat P((void)),
- tty_flowmode P((void)),
- tty_restartany P((void)),
- tty_isbinaryin P((void)),
- tty_isbinaryout P((void)),
- tty_iscrnl P((void)),
- tty_isecho P((void)),
- tty_isediting P((void)),
- tty_islitecho P((void)),
- tty_isnewmap P((void)),
- tty_israw P((void)),
- tty_issofttab P((void)),
- tty_istrapsig P((void)),
- tty_linemode P((void));
-
-extern void
- tty_rspeed P((int)),
- tty_setecho P((int)),
- tty_setedit P((int)),
- tty_setlinemode P((int)),
- tty_setlitecho P((int)),
- tty_setsig P((int)),
- tty_setsofttab P((int)),
- tty_tspeed P((int)),
- willoption P((int)),
- wontoption P((int)),
- writenet P((unsigned char *, int));
-
-#ifdef ENCRYPTION
-extern void (*encrypt_output) P((unsigned char *, int));
-extern int (*decrypt_input) P((int));
-extern char *nclearto;
-#endif /* ENCRYPTION */
-
-
-/*
- * The following are some clocks used to decide how to interpret
- * the relationship between various variables.
- */
-
-extern struct {
- int
- system, /* what the current time is */
- echotoggle, /* last time user entered echo character */
- modenegotiated, /* last time operating mode negotiated */
- didnetreceive, /* last time we read data from network */
- ttypesubopt, /* ttype subopt is received */
- tspeedsubopt, /* tspeed subopt is received */
- environsubopt, /* environ subopt is received */
- oenvironsubopt, /* old environ subopt is received */
- xdisplocsubopt, /* xdisploc subopt is received */
- baseline, /* time started to do timed action */
- gotDM; /* when did we last see a data mark */
-} clocks;
-
-
-#if defined(CRAY2) && defined(UNICOS5)
-extern int needtermstat;
-#endif
-
-#ifndef DEFAULT_IM
-# ifdef CRAY
-# define DEFAULT_IM "\r\n\r\nCray UNICOS (%h) (%t)\r\n\r\r\n\r"
-# else
-# ifdef sun
-# define DEFAULT_IM "\r\n\r\nSunOS UNIX (%h) (%t)\r\n\r\r\n\r"
-# else
-# ifdef ultrix
-# define DEFAULT_IM "\r\n\r\nULTRIX (%h) (%t)\r\n\r\r\n\r"
-# else
-# ifdef __FreeBSD__
-# define DEFAULT_IM "\r\n\r\nFreeBSD (%h) (%t)\r\n\r\r\n\r"
-# else
-# define DEFAULT_IM "\r\n\r\n4.4 BSD UNIX (%h) (%t)\r\n\r\r\n\r"
-# endif
-# endif
-# endif
-# endif
-#endif
diff --git a/crypto/telnet/telnetd/pathnames.h b/crypto/telnet/telnetd/pathnames.h
deleted file mode 100644
index c8b0806e7814..000000000000
--- a/crypto/telnet/telnetd/pathnames.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)pathnames.h 8.1 (Berkeley) 6/4/93
- */
-
-#if BSD > 43
-
-# include <paths.h>
-
-# ifndef _PATH_LOGIN
-# define _PATH_LOGIN "/usr/bin/login"
-# endif
-
-#else
-
-# define _PATH_TTY "/dev/tty"
-# ifndef _PATH_LOGIN
-# define _PATH_LOGIN "/bin/login"
-# endif
-
-#endif
-
-#ifdef BFTPDAEMON
-#define BFTPPATH "/usr/ucb/bftp"
-#endif /* BFTPDAEMON */
diff --git a/crypto/telnet/telnetd/telnetd.h b/crypto/telnet/telnetd/telnetd.h
deleted file mode 100644
index 234b9739e758..000000000000
--- a/crypto/telnet/telnetd/telnetd.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * @(#)telnetd.h 8.1 (Berkeley) 6/4/93
- */
-
-
-#include "defs.h"
-#include "ext.h"
-
-#ifdef DIAGNOSTICS
-#define DIAG(a,b) if (diagnostic & (a)) b
-#else
-#define DIAG(a,b)
-#endif
-
-/* other external variables */
-extern char **environ;
-extern int errno;
-
diff --git a/etc/protocols b/etc/protocols
index c451b671678f..6617c01144f0 100644
--- a/etc/protocols
+++ b/etc/protocols
@@ -1,7 +1,7 @@
#
# Internet (IP) protocols
#
-# $Id: protocols,v 1.3 1995/08/29 19:29:35 wollman Exp $
+# $Id: protocols,v 1.6 1997/02/23 09:20:45 peter Exp $
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
#
# Updated for FreeBSD based on RFC 1340, Assigned Numbers (July 1992).
@@ -22,7 +22,9 @@ rdp 27 RDP # "reliable datagram" protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
xtp 36 XTP # Xpress Tranfer Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
+ip6 41 IPV6 # internet protocol version 6
rsvp 46 RSVP # Resource ReSerVation Protocol
+icmp6 58 ICMPV6 # ICMP for IPv6
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
diff --git a/gnu/libexec/uucp/uuchk/uuchk.8 b/gnu/libexec/uucp/uuchk/uuchk.8
deleted file mode 100644
index dbeb17ce540c..000000000000
--- a/gnu/libexec/uucp/uuchk/uuchk.8
+++ /dev/null
@@ -1,46 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uuchk 1 "Taylor UUCP 1.06"
-.SH NAME
-uuchk \- displays information from the UUCP configuration
-.SH SYNOPSIS
-.B uuchk
-[-s system] [standard UUCP options]
-.SH DESCRIPTION
-The
-.B uuchk
-The
-.B uuchk
-program reads the UUCP configuration files and displays
-a rather lengthy description of what it finds. This is useful when
-configuring UUCP to make certain that the UUCP package will do
-what you expect it to do.
-.SH OPTIONS
-The following options may be given to
-.B uuchk:
-.TP 5
-.B \-s, \-\-system
-Display the
-configuration for just the specified system, rather than for all
-systems. The
-.B uuchk
-program also supports the standard UUCP program
-options.
-.TP 5
-.B \-x type
-.TP 5
-.B \-\-debug type
-.TP 5
-.B \-I file
-.TP 5
-.B \-\-config file
-.TP 5
-.B \-v, \-\-version
-.TP 5
-.B \-\-help
-Standard UUCP options.
-.SH SEE ALSO
-uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
-
diff --git a/gnu/libexec/uucp/uuconv/uuconv.1 b/gnu/libexec/uucp/uuconv/uuconv.1
deleted file mode 100644
index b95c9e1d4f1f..000000000000
--- a/gnu/libexec/uucp/uuconv/uuconv.1
+++ /dev/null
@@ -1,57 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uuconv 1 "Taylor UUCP 1.06"
-.SH NAME
-uuconv \- convert UUCP configuration files
-.SH SYNOPSIS
-.B uuconv
-\-i type \-o type [-p program] [standard UUCP options]
-.SH DESCRIPTION
-The
-.B uuconv
-program can be used to convert UUCP configuration
-files from one format to another. This can be useful for
-administrators converting from an older UUCP package. Taylor UUCP
-is able to read and use old configuration file formats, but some
-new features can not be selected using the old formats.
-.PP
-The type of configuration file to read is specified
-using the `-i' or `--input' options. The type of configuration file to
-write is specified using the `-o' or `--output' options.
-.PP
-The supported configuration file types are `taylor', `v2', and
-`hdb'. For a description of the `taylor' configuration files, see
-*Note Configuration Files::. The other types of configuration files
-are used by traditional UUCP packages, and are not described in this
-manual.
-.PP
-An input configuration of type `v2' or `hdb' is read from a compiled
-in directory (specified by `oldconfigdir' in `Makefile'). An input
-configuration of type `taylor' is read from a compiled in directory by
-default, but may be overridden with the standard `-I' or `--config'
-options.
-.PP
-The output configuration is written to files in the directory in
-which
-.B uuconv
-is run.
-.PP
-Some information in the input files may not be representable in the
-desired output format, in which case
-.B uuconv
-will silently discard it.
-The output of
-.B uuconv
-should be carefully checked before it is used.
-The
-.B uuchk(8)
-program may be used for this purpose.
-.PP
-The `-p' or `--program' option may be used to convert specific `cu'
-configuration information, rather than the default of only converting
-the `uucp' configuration information.
-.SH SEE ALSO
-cu(1), uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
-
diff --git a/gnu/libexec/uucp/uulog/uulog.1 b/gnu/libexec/uucp/uulog/uulog.1
deleted file mode 100644
index ef4d7c72404e..000000000000
--- a/gnu/libexec/uucp/uulog/uulog.1
+++ /dev/null
@@ -1,84 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uulog 1 "Taylor UUCP 1.06"
-.SH NAME
-uulog \- display UUCP log entries
-.SH SYNOPSIS
-.B uulog
-[-#] [-n lines] [-sf system] [-u user] [-DSF] [--lines lines]
-[--system system] [--user user] [--debuglog] [--statslog]
-[--follow] [--follow=system] [standard UUCP options]
-.SH DESCRIPTION
-The
-.B uulog
-program can be used to display entries in the UUCP log
-file. It can select the entries for a particular system or a
-particular user. You can use it to see what has happened to your
-queued jobs in the past.
-.SH OPTIONS
-The following options may be given to
-.B uuname.
-.TP 5
-.B \-#, \-n lines, \-\-lines lines
-Here `#' is a number; e.g., `-10'. The specified number of lines
-is displayed from the end of the log file. The default is to
-display the entire log file, unless the `-f', `-F', or `--follow'
-options are used, in which case the default is to display 10 lines.
-.TP 5
-.B \-s system, \-\-system system
-Display only log entries pertaining to the specified system.
-.TP 5
-.B \-u user, \-\-user user
-Display only log entries pertaining to the specified user.
-.TP 5
-.B \-D, \-\-debuglog
-Display the debugging log file.
-.TP 5
-.B \-S, \-\-statslog
-Display the statistics log file.
-.B \-F, \-\-follow
-Keep displaying the log file forever, printing new lines as they
-are appended to the log file.
-.TP 5
-.B \-f system, \-\-follow=system
-Keep displaying the log file forever, displaying only log entries
-pertaining to the specified system.
-.TP 5
-.B \-X type
-.TP 5
-.B \-\-debug type
-.TP 5
-.B \-I file
-.TP 5
-.B \-\-config file
-.TP 5
-.B \-v, \-\-version
-.TP 5
-.B \-\-help
-Standard UUCP options.
-Note that
-.B uulog
-specifies the debugging type using `-X' rather than the usual `-x'.
-.PP
-The operation of
-.B uulog
-depends to some degree upon the type of log
-files generated by the UUCP programs. This is a compile time option.
-If the UUCP programs have been compiled to use HDB style log files,
-.B uulog
-changes in the following ways:
-.PP
-The new options `-x' and `--uuxqtlog' may be used to list the
-.B uuxqt
-log file.
-.PP
-It is no longer possible to omit all arguments: one of `-s',
-`--system', `-f', `--follow=system', `-D', `--debuglog', `-S',
-`--statslog', `-x', or `--uuxqtlog' must be used.
-.PP
-The option `--system ANY' may be used to list log file entries
-which do not pertain to any particular system.
-.SH SEE ALSO
-uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
diff --git a/gnu/libexec/uucp/uuname/uuname.1 b/gnu/libexec/uucp/uuname/uuname.1
deleted file mode 100644
index 3ae8e127132e..000000000000
--- a/gnu/libexec/uucp/uuname/uuname.1
+++ /dev/null
@@ -1,45 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uuname 1 "Taylor UUCP 1.06"
-.SH NAME
-uuname \- list known remote UUCP sites
-.SH SYNOPSIS
-.B uuname
-[-a] [-l] [standard UUCP options]
-.SH DESCRIPTION
-The
-.B uuname
-program by default lists all the remote systems your
-system knows about. You can also use it to get the name of your
-local system. It is mostly useful for shell scripts.
-.SH OPTIONS
-The following options may be given to
-.B uuname.
-.TP 5
-.B \-a, \-\-aliases
-List all aliases for remote systems, as well as their canonical
-names. Aliases may be specified in the
-.I sys
-file.
-.TP 5
-.B \-l, \-\-local
-Print the UUCP name of the local system, rather than listing the
-names of all the remote systems.
-.TP 5
-.B \-x type
-.TP 5
-.B \-\-debug type
-.TP 5
-.B \-I file
-.TP 5
-.B \-\-config file
-.TP 5
-.B \-v, \-\-version
-.TP 5
-.B \-\-help
-Standard UUCP options.
-.SH SEE ALSO
-uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
-
diff --git a/gnu/libexec/uucp/uupick/uupick.1 b/gnu/libexec/uucp/uupick/uupick.1
deleted file mode 100644
index 0933cbcbb98a..000000000000
--- a/gnu/libexec/uucp/uupick/uupick.1
+++ /dev/null
@@ -1,72 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uupick 1 "Taylor UUCP 1.06"
-.SH NAME
-uupick \- retrieve files transferred by uuto
-.SH SYNOPSIS
-.B uupick
-[\-s] [standard UUCP options]
-.SH DESCRIPTION
-The
-.B uupick
-program is used to conveniently retrieve files
-transferred by the
-.B uuto(1)
-program.
-For each file transferred by
-.B uuto(1),
-.B uupick
-will display the
-source system, the file name, and whether the name refers to a regular
-file or a directory. It will then wait for the user to specify an
-action to take. One of the following commands must be entered:
-.TP 5
-.I q
-Quit out of
-.B uupick.
-.TP 5
-.I RETURN
-Skip the file.
-.TP 5
-.I m [directory]
-Move the file or directory to the specified directory. If no
-directory is specified, the file is moved to the current directory.
-.TP 5
-.I a [directory]
-Move all files from this system to the specified directory. If no
-directory is specified, the files are moved to the current
-directory.
-.TP 5
-.I p
-List the file on standard output.
-.TP 5
-.I d
-Delete the file.
-.TP 5
-.I ! [command]
-Execute `command' as a shell escape.
-.SH OPTIONS
-The following options may be given to
-.B uupick.
-.TP 5
-.B \-s, \-\-system system
-This option may be used to restrict
-.B uupick
-to only present files transferred from a particular system.
-.TP 5
-.B \-x type
-.TP 5
-.B \-\-debug type
-.TP 5
-.B \-I file
-.TP 5
-.B \-\-config file
-.TP 5
-.B \-v, \-\-version
-.TP 5
-.B \-\-help
-Standard UUCP options.
-.SH SEE ALSO
-uucp(1), uuto(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
diff --git a/gnu/libexec/uucp/uusched/uusched.8 b/gnu/libexec/uucp/uusched/uusched.8
deleted file mode 100644
index c1c1508dd7b5..000000000000
--- a/gnu/libexec/uucp/uusched/uusched.8
+++ /dev/null
@@ -1,24 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-.TH uusched 8 "Taylor UUCP 1.06"
-.SH NAME
-uusched \- UUCP file transfer daemon
-.SH SYNOPSIS
-.B uusched
-[uucico options]
-.SH DESCRIPTION
-The
-.B uusched
-program is actually just a shell script which invokes
-the
-.B uucico(8)
-daemon. It is provided for backward compatibility. It
-causes
-uucico(8) to call all systems for which there is work. Any
-option which may be given to uucico(8) may also be given to
-.B uusched
-.SH SEE ALSO
-uucico(8), uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
-
diff --git a/gnu/libexec/uucp/uuto/uuto.1 b/gnu/libexec/uucp/uuto/uuto.1
deleted file mode 100644
index b215b99888df..000000000000
--- a/gnu/libexec/uucp/uuto/uuto.1
+++ /dev/null
@@ -1,41 +0,0 @@
-''' $Id: uustat.1,v 1.8 1997/02/22 15:28:49 peter Exp $
-''' based on the uucp texinfo documentation
-.TH uuto 1 "Taylor UUCP 1.06"
-.SH NAME
-uuto \- send files to a user on a remote system.
-.SH SYNOPSIS
-.B uuto
-[uucp options] files... system!user
-.SH DESCRIPTION
-The
-.B uuto
-program may be used to conveniently send files to a
-particular user on a remote system. It will arrange for mail to be sent
-to the remote user when the files arrive on the remote system, and he or
-she may easily retrieve the files using the
-.B uupick
-program. Note that
-.B uuto
-does not provide any
-security--any user on the remote system can examine the files.
-.PP
-The last argument specifies the system and user name to which to send
-the files. The other arguments are the files or directories to be sent.
-.PP
-The
-.B uuto
-program is actually just a trivial shell script which
-invokes the
-.B uucp
-program with the appropriate arguments. Any option
-which may be given to
-.B uucp
-may also be given to
-.B uuto.
-.SH SEE ALSO
-uucp(1)
-.SH AUTHOR
-Ian Lance Taylor (ian@airs.com).
-This Manpage based on the Taylor UUCP 1.06 Texinfo documentation.
-
-
diff --git a/include/elf.h b/include/elf.h
deleted file mode 100644
index 0e45bbf53499..000000000000
--- a/include/elf.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * Copyright (c) 1997 John D. Polstra.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$
- */
-
-#ifndef _ELF_H_
-#define _ELF_H_
-
-#include <sys/types.h>
-#include <machine/elf.h>
-
-#endif /* !_ELF_H_ */
diff --git a/include/stringlist.h b/include/stringlist.h
deleted file mode 100644
index 138b2a71da0b..000000000000
--- a/include/stringlist.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* $NetBSD: stringlist.h,v 1.2 1997/01/17 06:11:36 lukem Exp $ */
-
-/*
- * Copyright (c) 1994 Christos Zoulas
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Christos Zoulas.
- * 4. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
- */
-
-#ifndef _STRINGLIST_H
-#define _STRINGLIST_H
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-/*
- * Simple string list
- */
-typedef struct _stringlist {
- char **sl_str;
- size_t sl_max;
- size_t sl_cur;
-} StringList;
-
-__BEGIN_DECLS
-StringList *sl_init __P((void));
-void sl_add __P((StringList *, char *));
-void sl_free __P((StringList *, int));
-char *sl_find __P((StringList *, char *));
-__END_DECLS
-
-#endif /* _STRINGLIST_H */
diff --git a/kerberosIV/Makefile.inc b/kerberosIV/Makefile.inc
deleted file mode 100644
index 7fed9c3520d6..000000000000
--- a/kerberosIV/Makefile.inc
+++ /dev/null
@@ -1,102 +0,0 @@
-# $Id$
-
-.if !defined(DISTRIBUTION)
-
-DISTRIBUTION= krb
-
-.if !defined(INCLUDEOBJDIR)
-
-KRB4DIR= ${.CURDIR}/../../../crypto/kerberosIV
-TELNETDIR= ${.CURDIR}/../../../crypto/telnet
-
-.if exists(${.OBJDIR}/../../include)
-INCLUDEOBJDIR= ${.OBJDIR}/../../include
-.else
-INCLUDEOBJDIR= ${.CURDIR}/../../include
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libacl)
-ACLOBJDIR= ${.OBJDIR}/../../lib/libacl
-.else
-ACLOBJDIR= ${.CURDIR}/../../lib/libacl
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libkadm)
-KADMOBJDIR= ${.OBJDIR}/../../lib/libkadm
-.else
-KADMOBJDIR= ${.CURDIR}/../../lib/libkadm
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libkafs)
-KAFSOBJDIR= ${.OBJDIR}/../../lib/libkafs
-.else
-KAFSOBJDIR= ${.CURDIR}/../../lib/libkafs
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libkdb)
-KDBOBJDIR= ${.OBJDIR}/../../lib/libkdb
-.else
-KDBOBJDIR= ${.CURDIR}/../../lib/libkdb
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libkrb)
-KRBOBJDIR= ${.OBJDIR}/../../lib/libkrb
-.else
-KRBOBJDIR= ${.CURDIR}/../../lib/libkrb
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libroken)
-ROKENOBJDIR= ${.OBJDIR}/../../lib/libroken
-.else
-ROKENOBJDIR= ${.CURDIR}/../../lib/libroken
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libsl)
-SLOBJDIR= ${.OBJDIR}/../../lib/libsl
-.else
-SLOBJDIR= ${.CURDIR}/../../lib/libsl
-.endif
-
-.if exists(${.OBJDIR}/../../lib/libtelnet)
-TELNETOBJDIR= ${.OBJDIR}/../../lib/libtelnet
-.else
-TELNETOBJDIR= ${.CURDIR}/../../lib/libtelnet
-.endif
-
-CFLAGS+= -I${.CURDIR}/../../include -Wall -DHAVE_CONFIG_H \
- -I${INCLUDEOBJDIR} -DBINDIR=\"/usr/bin\" -DSBINDIR=\"/usr/sbin\"
-
-#${INCLUDEOBJDIR}/protos.h: ${KRB4DIR}/include/protos.H
-# cd ${INCLUDEOBJDIR} ; ln -sf ${.ALLSRC} ${.TARGET}
-
-COMPILE_ET= compile_et
-
-${KADMOBJDIR}/kadm_err.c ${KADMOBJDIR}/kadm_err.h: ${KRB4DIR}/lib/kadm/kadm_err.et
- test -e ${KADMOBJDIR}/kadm_err.et || ln -s ${.ALLSRC} ${KADMOBJDIR}
- cd ${KADMOBJDIR}; ${COMPILE_ET} kadm_err.et
-
-CLEANFILES+=${KADMOBJDIR}/kadm_err.h ${KADMOBJDIR}/kadm_err.c ${KADMOBJDIR}/kadm_err.et
-
-${KRBOBJDIR}/krb_err.c ${KRBOBJDIR}/krb_err.h: ${KRB4DIR}/lib/krb/krb_err.et
- test -e ${KRBOBJDIR}/krb_err.et || ln -s ${.ALLSRC} ${KRBOBJDIR}
- cd ${KRBOBJDIR}; ${COMPILE_ET} krb_err.et
-
-CLEANFILES+=${KRBOBJDIR}/krb_err.h ${KRBOBJDIR}/krb_err.c ${KRBOBJDIR}/krb_err.et
-
-#beforedepend all: ${INCLUDEOBJDIR}/protos.h
-
-.if defined(INCLUDES)
-beforeinstall: ${INCLUDES}
-.for INC in ${INCLUDES}
- ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
- ${INC} ${DESTDIR}/usr/include
-.endfor
-.endif
-
-.else
-
-KRB4DIR= ${.CURDIR}/../../crypto/kerberosIV
-
-.endif
-
-.endif
diff --git a/kerberosIV/README b/kerberosIV/README
deleted file mode 100644
index 9f97cf60f95a..000000000000
--- a/kerberosIV/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This subtree is world-exportable, as it does not contain any
-cryptographic code.
-
-At the time of writing, it did not even contain source code, only
-Makefiles and headers.
-
-Please maintain this "exportable" status quo.
-
-Thanks!
-
-MarkM
-markm@freebsd.org
-20th Sept 1997
diff --git a/kerberosIV/include/Makefile b/kerberosIV/include/Makefile
deleted file mode 100644
index 504da2e7dbe9..000000000000
--- a/kerberosIV/include/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-
-.if exists(${.OBJDIR}/../../include)
-INCLUDEOBJDIR= ${.OBJDIR}/../include
-.else
-INCLUDEOBJDIR= ${.CURDIR}/../include
-.endif
-
-depend lint tags:
-
-.include <bsd.prog.mk>
-
-#${INCLUDEOBJDIR}/protos.h: ${KRB4DIR}/include/protos.H
-# cd ${INCLUDEOBJDIR} ; ln -sf ${.ALLSRC} ${.TARGET}
-
-#all: ${INCLUDEOBJDIR}/protos.h
-
-#CLEANFILES= ${INCLUDEOBJDIR}/protos.h
diff --git a/kerberosIV/include/config.h b/kerberosIV/include/config.h
deleted file mode 100644
index 6d0b8bcf18d3..000000000000
--- a/kerberosIV/include/config.h
+++ /dev/null
@@ -1,985 +0,0 @@
-/* include/config.h. Generated automatically by configure. */
-/* 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. */
-/* #undef gid_t */
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* 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. */
-#define HAVE_MMAP 1
-
-/* Define if your struct stat has st_blksize. */
-#define HAVE_ST_BLKSIZE 1
-
-/* 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). */
-#define RETSIGTYPE void
-
-/* 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>. */
-#define SYS_SIGLIST_DECLARED 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef uid_t */
-
-/* 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 this if RETSIGTYPE == void */
-#define VOID_RETSIGTYPE 1
-
-/* Define this if struct utmp have ut_user */
-/* #undef HAVE_UT_USER */
-
-/* Define this if struct utmp have ut_host */
-#define HAVE_UT_HOST 1
-
-/* Define this if struct utmp have ut_addr */
-/* #undef HAVE_UT_ADDR */
-
-/* Define this if struct utmp have ut_type */
-/* #undef HAVE_UT_TYPE */
-
-/* Define this if struct utmp have ut_pid */
-/* #undef HAVE_UT_PID */
-
-/* Define this if struct utmp have ut_id */
-/* #undef HAVE_UT_ID */
-
-/* Define this if struct utmpx have ut_syslen */
-/* #undef HAVE_UT_SYSLEN */
-
-/* Define this if struct winsize is declared in sys/termios.h */
-#define HAVE_STRUCT_WINSIZE 1
-
-/* Define this if struct winsize have ws_xpixel */
-#define HAVE_WS_XPIXEL 1
-
-/* Define this if struct winsize have ws_ypixel */
-#define HAVE_WS_YPIXEL 1
-
-/* Define this to be the directory where the dictionary for cracklib */
-/* resides */
-/* #undef DICTPATH */
-
-/* Define this if you want to use SOCKS v5 */
-/* #undef SOCKS */
-
-/* Define this to the path of the mail spool directory */
-/* #undef KRB4_MAILDIR */
-
-/* Define this if `struct sockaddr' includes sa_len */
-#define SOCKADDR_HAS_SA_LEN 1
-
-/* Define this if `struct siaentity' includes ouid */
-/* #undef SIAENTITY_HAS_OUID */
-
-/* Define if getlogin has POSIX flavour, as opposed to BSD */
-/* #undef POSIX_GETLOGIN */
-
-/* Define if getpwnam_r has POSIX flavour */
-/* #undef POSIX_GETPWNAM_R */
-
-/* define if getcwd() is broken (such as in SunOS) */
-/* #undef BROKEN_GETCWD */
-
-/* define if the system is missing a prototype for crypt() */
-/* #undef NEED_CRYPT_PROTO */
-
-/* define if the system is missing a prototype for strtok_r() */
-#define NEED_STRTOK_R_PROTO 1
-
-/* define if /bin/ls takes -A */
-#define HAVE_LS_A 1
-
-/* define if you have h_errno */
-#define HAVE_H_ERRNO 1
-
-/* define if you have h_errlist but not hstrerror */
-#define HAVE_H_ERRLIST 1
-
-/* define if you have h_nerr but not hstrerror */
-#define HAVE_H_NERR 1
-
-/* define if your system doesn't declare h_errlist */
-/* #undef HAVE_H_ERRLIST_DECLARATION */
-
-/* define if your system doesn't declare h_nerr */
-/* #undef HAVE_H_NERR_DECLARATION */
-
-/* define this if you need a declaration for h_errno */
-#define HAVE_H_ERRNO_DECLARATION 1
-
-/* define if you need a declaration for optarg */
-/* #undef HAVE_OPTARG_DECLARATION */
-
-/* define if you need a declaration for optind */
-/* #undef HAVE_OPTIND_DECLARATION */
-
-/* define if you need a declaration for opterr */
-/* #undef HAVE_OPTERR_DECLARATION */
-
-/* define if you need a declaration for optopt */
-/* #undef HAVE_OPTOPT_DECLARATION */
-
-/* define if you need a declaration for __progname */
-/* #undef HAVE___PROGNAME_DECLARATION */
-
-/* Define if you have the XauReadAuth function. */
-#define HAVE_XAUREADAUTH 1
-
-/* Define if you have the XauWriteAuth function. */
-#define HAVE_XAUWRITEAUTH 1
-
-/* 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. */
-/* #undef HAVE__STRICMP */
-
-/* Define if you have the asnprintf function. */
-/* #undef HAVE_ASNPRINTF */
-
-/* Define if you have the asprintf function. */
-#define HAVE_ASPRINTF 1
-
-/* Define if you have the chown function. */
-#define HAVE_CHOWN 1
-
-/* Define if you have the daemon function. */
-#define HAVE_DAEMON 1
-
-/* Define if you have the dbm_firstkey function. */
-#define HAVE_DBM_FIRSTKEY 1
-
-/* Define if you have the dbopen function. */
-#define HAVE_DBOPEN 1
-
-/* Define if you have the dn_expand function. */
-#define HAVE_DN_EXPAND 1
-
-/* Define if you have the el_init function. */
-#define HAVE_EL_INIT 1
-
-/* Define if you have the err function. */
-#define HAVE_ERR 1
-
-/* Define if you have the errx function. */
-#define HAVE_ERRX 1
-
-/* Define if you have the fchmod function. */
-#define HAVE_FCHMOD 1
-
-/* Define if you have the fchown function. */
-#define HAVE_FCHOWN 1
-
-/* Define if you have the fcntl function. */
-#define HAVE_FCNTL 1
-
-/* Define if you have the flock function. */
-#define HAVE_FLOCK 1
-
-/* Define if you have the forkpty function. */
-#define HAVE_FORKPTY 1
-
-/* 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. */
-#define HAVE_GETCWD 1
-
-/* Define if you have the getdtablesize function. */
-#define HAVE_GETDTABLESIZE 1
-
-/* 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. */
-#define HAVE_GETLOGIN 1
-
-/* Define if you have the getopt function. */
-#define HAVE_GETOPT 1
-
-/* Define if you have the getpagesize function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define if you have the getpriority function. */
-#define HAVE_GETPRIORITY 1
-
-/* Define if you have the getpwnam_r function. */
-/* #undef HAVE_GETPWNAM_R */
-
-/* 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. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define if you have the getudbnam function. */
-/* #undef HAVE_GETUDBNAM */
-
-/* Define if you have the getuid function. */
-#define HAVE_GETUID 1
-
-/* Define if you have the getusershell function. */
-#define HAVE_GETUSERSHELL 1
-
-/* Define if you have the grantpt function. */
-/* #undef HAVE_GRANTPT */
-
-/* Define if you have the hstrerror function. */
-#define HAVE_HSTRERROR 1
-
-/* Define if you have the inet_aton function. */
-#define HAVE_INET_ATON 1
-
-/* Define if you have the initgroups function. */
-#define HAVE_INITGROUPS 1
-
-/* Define if you have the innetgr function. */
-#define HAVE_INNETGR 1
-
-/* Define if you have the iruserok function. */
-#define HAVE_IRUSEROK 1
-
-/* Define if you have the logout function. */
-#define HAVE_LOGOUT 1
-
-/* Define if you have the logwtmp function. */
-#define HAVE_LOGWTMP 1
-
-/* Define if you have the lstat function. */
-#define HAVE_LSTAT 1
-
-/* Define if you have the memmove function. */
-#define HAVE_MEMMOVE 1
-
-/* Define if you have the mkstemp function. */
-#define HAVE_MKSTEMP 1
-
-/* 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 ptsname function. */
-/* #undef HAVE_PTSNAME */
-
-/* Define if you have the putenv function. */
-#define HAVE_PUTENV 1
-
-/* Define if you have the rand function. */
-#define HAVE_RAND 1
-
-/* Define if you have the random function. */
-#define HAVE_RANDOM 1
-
-/* Define if you have the rcmd function. */
-#define HAVE_RCMD 1
-
-/* Define if you have the readline function. */
-#define HAVE_READLINE 1
-
-/* Define if you have the res_search function. */
-#define HAVE_RES_SEARCH 1
-
-/* Define if you have the revoke function. */
-#define HAVE_REVOKE 1
-
-/* Define if you have the setegid function. */
-#define HAVE_SETEGID 1
-
-/* Define if you have the setenv function. */
-#define HAVE_SETENV 1
-
-/* Define if you have the seteuid function. */
-#define HAVE_SETEUID 1
-
-/* Define if you have the setitimer function. */
-#define HAVE_SETITIMER 1
-
-/* Define if you have the setlim function. */
-/* #undef HAVE_SETLIM */
-
-/* Define if you have the setlogin function. */
-#define HAVE_SETLOGIN 1
-
-/* Define if you have the setpcred function. */
-/* #undef HAVE_SETPCRED */
-
-/* Define if you have the setpgid function. */
-#define HAVE_SETPGID 1
-
-/* Define if you have the setpriority function. */
-#define HAVE_SETPRIORITY 1
-
-/* Define if you have the setproctitle function. */
-#define HAVE_SETPROCTITLE 1
-
-/* Define if you have the setregid function. */
-#define HAVE_SETREGID 1
-
-/* 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. */
-#define HAVE_SETREUID 1
-
-/* Define if you have the setsid function. */
-#define HAVE_SETSID 1
-
-/* 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 snprintf function. */
-#define HAVE_SNPRINTF 1
-
-/* Define if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define if you have the strcasecmp function. */
-#define HAVE_STRCASECMP 1
-
-/* Define if you have the strdup function. */
-#define HAVE_STRDUP 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strftime function. */
-#define HAVE_STRFTIME 1
-
-/* Define if you have the strlwr function. */
-/* #undef HAVE_STRLWR */
-
-/* Define if you have the strnlen function. */
-/* #undef HAVE_STRNLEN */
-
-/* Define if you have the strtok_r function. */
-/* #undef HAVE_STRTOK_R */
-
-/* Define if you have the strupr function. */
-/* #undef HAVE_STRUPR */
-
-/* Define if you have the swab function. */
-#define HAVE_SWAB 1
-
-/* Define if you have the syslog function. */
-#define HAVE_SYSLOG 1
-
-/* Define if you have the tgetent function. */
-#define HAVE_TGETENT 1
-
-/* Define if you have the ttyname function. */
-#define HAVE_TTYNAME 1
-
-/* Define if you have the ttyslot function. */
-#define HAVE_TTYSLOT 1
-
-/* Define if you have the ulimit function. */
-/* #undef HAVE_ULIMIT */
-
-/* Define if you have the uname function. */
-#define HAVE_UNAME 1
-
-/* Define if you have the unlockpt function. */
-/* #undef HAVE_UNLOCKPT */
-
-/* Define if you have the unsetenv function. */
-#define HAVE_UNSETENV 1
-
-/* Define if you have the vasnprintf function. */
-/* #undef HAVE_VASNPRINTF */
-
-/* Define if you have the vasprintf function. */
-#define HAVE_VASPRINTF 1
-
-/* Define if you have the verr function. */
-#define HAVE_VERR 1
-
-/* Define if you have the verrx function. */
-#define HAVE_VERRX 1
-
-/* Define if you have the vhangup function. */
-/* #undef HAVE_VHANGUP */
-
-/* Define if you have the vsnprintf function. */
-#define HAVE_VSNPRINTF 1
-
-/* Define if you have the vwarn function. */
-#define HAVE_VWARN 1
-
-/* Define if you have the vwarnx function. */
-#define HAVE_VWARNX 1
-
-/* Define if you have the warn function. */
-#define HAVE_WARN 1
-
-/* Define if you have the warnx function. */
-#define HAVE_WARNX 1
-
-/* Define if you have the yp_get_default_domain function. */
-#define HAVE_YP_GET_DEFAULT_DOMAIN 1
-
-/* Define if you have the <arpa/ftp.h> header file. */
-#define HAVE_ARPA_FTP_H 1
-
-/* Define if you have the <arpa/inet.h> header file. */
-#define HAVE_ARPA_INET_H 1
-
-/* Define if you have the <arpa/nameser.h> header file. */
-#define HAVE_ARPA_NAMESER_H 1
-
-/* Define if you have the <arpa/telnet.h> header file. */
-#define HAVE_ARPA_TELNET_H 1
-
-/* Define if you have the <bind/bitypes.h> header file. */
-/* #undef HAVE_BIND_BITYPES_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 <dbm.h> header file. */
-/* #undef HAVE_DBM_H */
-
-/* Define if you have the <dirent.h> header file. */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the <err.h> header file. */
-#define HAVE_ERR_H 1
-
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <grp.h> header file. */
-#define HAVE_GRP_H 1
-
-/* Define if you have the <io.h> header file. */
-/* #undef HAVE_IO_H */
-
-/* Define if you have the <lastlog.h> header file. */
-/* #undef HAVE_LASTLOG_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. */
-#define HAVE_NDBM_H 1
-
-/* Define if you have the <net/if.h> header file. */
-#define HAVE_NET_IF_H 1
-
-/* Define if you have the <net/if_tun.h> header file. */
-#define HAVE_NET_IF_TUN_H 1
-
-/* Define if you have the <net/if_var.h> header file. */
-#define HAVE_NET_IF_VAR_H 1
-
-/* Define if you have the <netdb.h> header file. */
-#define HAVE_NETDB_H 1
-
-/* Define if you have the <netinet/in.h> header file. */
-#define HAVE_NETINET_IN_H 1
-
-/* 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. */
-#define HAVE_NETINET_IN_SYSTM_H 1
-
-/* Define if you have the <netinet/ip.h> header file. */
-#define HAVE_NETINET_IP_H 1
-
-/* Define if you have the <netinet/tcp.h> header file. */
-#define HAVE_NETINET_TCP_H 1
-
-/* Define if you have the <paths.h> header file. */
-#define HAVE_PATHS_H 1
-
-/* Define if you have the <pty.h> header file. */
-/* #undef HAVE_PTY_H */
-
-/* Define if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
-
-/* Define if you have the <resolv.h> header file. */
-#define HAVE_RESOLV_H 1
-
-/* Define if you have the <rpcsvc/dbm.h> header file. */
-/* #undef HAVE_RPCSVC_DBM_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/cdefs.h> header file. */
-#define HAVE_SYS_CDEFS_H 1
-
-/* Define if you have the <sys/file.h> header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define if you have the <sys/filio.h> header file. */
-#define HAVE_SYS_FILIO_H 1
-
-/* Define if you have the <sys/ioccom.h> header file. */
-#define HAVE_SYS_IOCCOM_H 1
-
-/* Define if you have the <sys/ioctl.h> header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define if you have the <sys/locking.h> header file. */
-/* #undef HAVE_SYS_LOCKING_H */
-
-/* Define if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
-/* Define if you have the <sys/param.h> header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define if you have the <sys/proc.h> header file. */
-#define HAVE_SYS_PROC_H 1
-
-/* 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. */
-#define HAVE_SYS_RESOURCE_H 1
-
-/* Define if you have the <sys/select.h> header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define if you have the <sys/sockio.h> header file. */
-#define HAVE_SYS_SOCKIO_H 1
-
-/* 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. */
-#define HAVE_SYS_SYSCALL_H 1
-
-/* Define if you have the <sys/sysctl.h> header file. */
-#define HAVE_SYS_SYSCTL_H 1
-
-/* 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. */
-#define HAVE_SYS_TIME_H 1
-
-/* 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. */
-#define HAVE_SYS_TIMES_H 1
-
-/* Define if you have the <sys/tty.h> header file. */
-#define HAVE_SYS_TTY_H 1
-
-/* 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. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define if you have the <sys/un.h> header file. */
-#define HAVE_SYS_UN_H 1
-
-/* Define if you have the <sys/utsname.h> header file. */
-#define HAVE_SYS_UTSNAME_H 1
-
-/* Define if you have the <sys/wait.h> header file. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
-
-/* Define if you have the <termio.h> header file. */
-/* #undef HAVE_TERMIO_H */
-
-/* Define if you have the <termios.h> header file. */
-#define HAVE_TERMIOS_H 1
-
-/* Define if you have the <tmpdir.h> header file. */
-/* #undef HAVE_TMPDIR_H */
-
-/* Define if you have the <ttyent.h> header file. */
-#define HAVE_TTYENT_H 1
-
-/* 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. */
-#define HAVE_UNISTD_H 1
-
-/* 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. */
-#define HAVE_UTIME_H 1
-
-/* Define if you have the <utmp.h> header file. */
-#define HAVE_UTMP_H 1
-
-/* 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 <winsock.h> header file. */
-/* #undef HAVE_WINSOCK_H */
-
-/* Define if you have the X11 library (-lX11). */
-/* #undef HAVE_LIBX11 */
-
-/* Define if you have the Xau library (-lXau). */
-#define HAVE_LIBXAU 1
-
-/* 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 edit library (-ledit). */
-#define HAVE_LIBEDIT 1
-
-/* Define if you have the gdbm library (-lgdbm). */
-/* #undef HAVE_LIBGDBM */
-
-/* Define if you have the ndbm library (-lndbm). */
-/* #undef HAVE_LIBNDBM */
-
-/* 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). */
-#define HAVE_LIBREADLINE 1
-
-/* 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). */
-#define HAVE_LIBTERMCAP 1
-
-/* Define if you have the util library (-lutil). */
-#define HAVE_LIBUTIL 1
-
-#define HAVE_INT8_T 1
-#define HAVE_INT16_T 1
-#define HAVE_INT32_T 1
-#define HAVE_INT64_T 1
-#define HAVE_U_INT8_T 1
-#define HAVE_U_INT16_T 1
-#define HAVE_U_INT32_T 1
-#define HAVE_U_INT64_T 1
-
-#define RCSID(msg) \
-static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
-
-/*
- * Set ORGANIZATION to be the desired organization string printed
- * by the 'kinit' program. It may have spaces.
- */
-#define ORGANIZATION "eBones International"
-
-#if 0
-#define BINDIR "/usr/athena/bin"
-#define LIBDIR "/usr/athena/lib"
-#define LIBEXECDIR "/usr/athena/libexec"
-#define SBINDIR "/usr/athena/sbin"
-#endif
-
-#if 0
-#define KRB_CNF_FILES { "/etc/krb.conf", "/etc/kerberosIV/krb.conf", 0}
-#define KRB_RLM_FILES { "/etc/krb.realms", "/etc/kerberosIV/krb.realms", 0}
-#define KRB_EQUIV "/etc/krb.equiv"
-
-#define KEYFILE "/etc/srvtab"
-
-#define KRBDIR "/var/kerberos"
-#define DBM_FILE KRBDIR "/principal"
-#define DEFAULT_ACL_DIR KRBDIR
-
-#define KRBLOG "/var/log/kerberos.log" /* master server */
-#define KRBSLAVELOG "/var/log/kerberos_slave.log" /* slave server */
-#define KADM_SYSLOG "/var/log/admin_server.syslog"
-#define K_LOGFIL "/var/log/kpropd.log"
-#endif
-
-/* Maximum values on all known systems */
-#define MaxHostNameLen (64+4)
-#define MaxPathLen (1024+4)
-
-/*
- * Define NDBM if you are using the 4.3 ndbm library (which is part of
- * libc). If not defined, 4.2 dbm will be assumed.
- */
-#if defined(HAVE_DBM_FIRSTKEY)
-#define NDBM
-#endif
-
-/* ftp stuff -------------------------------------------------- */
-
-#define KERBEROS
-
-/* telnet stuff ----------------------------------------------- */
-
-/* define this if you have kerberos 4 */
-#define KRB4 1
-
-/* define this if you want encryption */
-#define ENCRYPTION 1
-
-/* define this if you want authentication */
-#define AUTHENTICATION 1
-
-#if defined(ENCRYPTION) && !defined(AUTHENTICATION)
-#define AUTHENTICATION 1
-#endif
-
-/* Set this if you want des encryption */
-#define DES_ENCRYPTION 1
-
-/* Set this to the default system lead string for telnetd
- * can contain %-escapes: %s=sysname, %m=machine, %r=os-release
- * %v=os-version, %t=tty, %h=hostname, %d=date and time
- */
-/* #undef USE_IM */
-
-/* define this if you want diagnostics in telnetd */
-#define DIAGNOSTICS 1
-
-/* define this if you want support for broken ENV_{VALUE,VAR} systems */
-/* #undef ENV_HACK */
-
-/* */
-#define OLD_ENVIRON 1
-
-/* Used with login -p */
-/* #undef LOGIN_ARGS */
-
-/* Define if there are working stream ptys */
-/* #undef STREAMSPTY */
-
-/* set this to a sensible login */
-#ifndef LOGIN_PATH
-#define LOGIN_PATH BINDIR "/login"
-#endif
-
-
-/* ------------------------------------------------------------ */
-
-/*
- * Define this if your ndbm-library really is berkeley db and creates
- * files that ends in .db.
- */
-#define HAVE_NEW_DB 1
-
-/* Define this if you have a working getmsg */
-/* #undef HAVE_GETMSG */
-
-/* Define to enable new master key code */
-/* #undef RANDOM_MKEY */
-
-/* Location of the master key file, default value lives in <kdc.h> */
-/* #undef MKEYFILE */
-
-/* Define if you don't want support for afs, might be a good idea on
- AIX if you don't have afs */
-#define NO_AFS 1
-
-/* Define if you have a readline compatible library */
-#define HAVE_READLINE 1
-
-#ifdef VOID_RETSIGTYPE
-#define SIGRETURN(x) return
-#else
-#define SIGRETURN(x) return (RETSIGTYPE)(x)
-#endif
-
-/* Define this if your compiler supports '#pragma weak' */
-#define HAVE_PRAGMA_WEAK 1
-
-/* Temporary fixes for krb_{rd,mk}_safe */
-#define DES_QUAD_GUESS 0
-#define DES_QUAD_NEW 1
-#define DES_QUAD_OLD 2
-
-/* Set this to one of the constants above to specify default checksum
- type to emit */
-#define DES_QUAD_DEFAULT DES_QUAD_GUESS
-
-/*
- * AIX braindamage!
- */
-#if _AIX
-#define _ALL_SOURCE
-#define _POSIX_SOURCE
-/* this is left for hysteric reasons :-) */
-#define unix /* well, ok... */
-#endif
-
-/*
- * SunOS braindamage! (Sun include files are generally braindead)
- */
-#if (defined(sun) || defined(__sun))
-#if defined(__svr4__) || defined(__SVR4)
-#define SunOS 5
-#else
-#define SunOS 4
-#endif
-#endif
-
-#if defined(__sgi) || defined(sgi)
-#if defined(__SYSTYPE_SVR4) || defined(_SYSTYPE_SVR4)
-#define IRIX 5
-#else
-#define IRIX 4
-#endif
-#endif
-
-/* IRIX 4 braindamage */
-#if IRIX == 4 && !defined(__STDC__)
-#define __STDC__ 0
-#endif
diff --git a/kerberosIV/include/version.h b/kerberosIV/include/version.h
deleted file mode 100644
index ae8ca52958f3..000000000000
--- a/kerberosIV/include/version.h
+++ /dev/null
@@ -1,2 +0,0 @@
-char *krb4_long_version = "@(#)$Version: krb4-0.9.6 by root on greenpeace.grondar.za (i386-unknown-freebsd3.0) Sun Jun 22 18:14:59 SAT 1997 $";
-char *krb4_version = "krb4-0.9.6";
diff --git a/kerberosIV/lib/Makefile b/kerberosIV/lib/Makefile
deleted file mode 100644
index 7ec7481669d3..000000000000
--- a/kerberosIV/lib/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-SUBDIR= libroken libsl libacl libkadm libkafs libkdb libkrb libtelnet
-
-.include <bsd.subdir.mk>
diff --git a/kerberosIV/lib/Makefile.inc b/kerberosIV/lib/Makefile.inc
deleted file mode 100644
index 8e7fb59d82e8..000000000000
--- a/kerberosIV/lib/Makefile.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-# $Id$
-
-SHLIB_MAJOR?= 3
-SHLIB_MINOR?= 0
-
-.include "../Makefile.inc"
diff --git a/kerberosIV/lib/libacl/Makefile b/kerberosIV/lib/libacl/Makefile
deleted file mode 100644
index 1233c0f08d4f..000000000000
--- a/kerberosIV/lib/libacl/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# $Id$
-
-LIB= acl
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/lib/acl
-SRCS= acl_files.c
-MAN3= ${KRB4DIR}/man/acl_check.3
-MLINKS= acl_check.3 acl_canonicalize_principal.3 \
- acl_check.3 acl_exact_match.3 \
- acl_check.3 acl_add.3 \
- acl_check.3 acl_delete.3 \
- acl_check.3 acl_initialize.3
-
-INCLUDES= ${KRB4DIR}/lib/acl/acl.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/acl
diff --git a/kerberosIV/lib/libkadm/Makefile b/kerberosIV/lib/libkadm/Makefile
deleted file mode 100644
index 7c7f5229d654..000000000000
--- a/kerberosIV/lib/libkadm/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# $Id$
-
-LIB= kadm
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/kadm \
- -I${KRBOBJDIR} \
- -I${KADMOBJDIR}
-SRCS= kadm_cli_wrap.c kadm_stream.c kadm_supp.c \
- ${KADMOBJDIR}/kadm_err.c
-
-INCLUDES= ${KRB4DIR}/lib/kadm/kadm.h ${KADMOBJDIR}/kadm_err.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/kadm
-
-beforedepend all: ${KADMOBJDIR}/kadm_err.h ${KRBOBJDIR}/krb_err.h
diff --git a/kerberosIV/lib/libkafs/Makefile b/kerberosIV/lib/libkafs/Makefile
deleted file mode 100644
index d99425ee0712..000000000000
--- a/kerberosIV/lib/libkafs/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-LIB= kafs
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/lib/kafs
-SRCS= afssys.c afskrb.c
-MAN3= ${KRB4DIR}/man/kafs.3
-MLINKS= kafs.3 k_hasafs.3 kafs.3 k_afsklog.3 kafs.3 k_afsklog_uid.3 \
- kafs.3 k_pioctl.3 kafs.3 k_unlog.3 kafs.3 k_setpag.3 \
- kafs.3 k_afs_cell_of_file.3
-
-
-INCLUDES= ${KRB4DIR}/lib/kafs/kafs.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/kafs
diff --git a/kerberosIV/lib/libkdb/Makefile b/kerberosIV/lib/libkdb/Makefile
deleted file mode 100644
index b38eb2a494ac..000000000000
--- a/kerberosIV/lib/libkdb/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# $Id$
-
-LIB= kdb
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/lib/kdb \
- -I${KADMOBJDIR}
-SRCS= krb_cache.c krb_kdb_utils.c copykey.c krb_lib.c krb_dbm.c \
- print_princ.c base64.c
-
-INCLUDES= ${KRB4DIR}/lib/kdb/kdc.h ${KRB4DIR}/lib/kdb/krb_db.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/kdb
diff --git a/kerberosIV/lib/libkrb/Makefile b/kerberosIV/lib/libkrb/Makefile
deleted file mode 100644
index 8481240c0858..000000000000
--- a/kerberosIV/lib/libkrb/Makefile
+++ /dev/null
@@ -1,66 +0,0 @@
-# $Id$
-
-LIB= krb
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRBOBJDIR}
-SRCS= cr_err_reply.c create_auth_reply.c create_ciph.c \
- create_death_packet.c create_ticket.c dest_tkt.c get_in_tkt.c \
- get_svc_in_tkt.c getrealm.c k_localtime.c krb_err_txt.c \
- krb_get_in_tkt.c kuserok.c parse_name.c kntoln.c mk_auth.c \
- krb_check_auth.c mk_err.c mk_safe.c rd_err.c rd_safe.c \
- recvauth.c mk_priv.c rd_req.c decomp_ticket.c lifetime.c \
- month_sname.c stime.c read_service_key.c getst.c sendauth.c \
- netread.c netwrite.c rd_priv.c krb_equiv.c str2key.c \
- get_ad_tkt.c mk_req.c get_cred.c get_tf_realm.c \
- get_tf_fullname.c one.c save_credentials.c send_to_kdc.c \
- get_host.c get_krbrlm.c k_gethostname.c tf_util.c \
- debug_decl.c k_flock.c tkt_string.c getaddrs.c \
- k_getsockinst.c k_getport.c lsb_addr_comp.c name2name.c \
- get_default_principal.c realm_parse.c verify_user.c \
- rw.c kdc_reply.c encrypt_ktext.c swab.c gettimeofday.c \
- check_time.c krb_err.c et_list.c resolve.c unparse_name.c \
- logging.c k_concat.c \
- snprintf.c strdup.c strtok_r.c strcasecmp.c
-MAN3= ${KRB4DIR}/man/kerberos.3 \
- ${KRB4DIR}/man/krb_realmofhost.3 \
- ${KRB4DIR}/man/krb_sendauth.3 \
- ${KRB4DIR}/man/krb_set_tkt_string.3 \
- ${KRB4DIR}/man/kuserok.3 \
- ${KRB4DIR}/man/tf_util.3
-MLINKS= kerberos.3 krb_mk_req.3 \
- kerberos.3 krb_rd_req.3 \
- kerberos.3 krb_kntoln.3 \
- kerberos.3 krb_set_key.3 \
- kerberos.3 krb_get_cred.3 \
- kerberos.3 krb_mk_priv.3 \
- kerberos.3 krb_rd_priv.3 \
- kerberos.3 krb_mk_safe.3 \
- kerberos.3 krb_rd_safe.3 \
- kerberos.3 krb_mk_err.3 \
- kerberos.3 krb_rd_err.3 \
- kerberos.3 krb_ck_repl.3 \
- krb_realmofhost.3 krb_get_phost.3 \
- krb_realmofhost.3 krb_get_krbhst.3 \
- krb_realmofhost.3 krb_get_admhst.3 \
- krb_realmofhost.3 krb_get_lrealm.3 \
- krb_sendauth.3 krb_recvauth.3 \
- krb_sendauth.3 krb_net_write.3 \
- krb_sendauth.3 krb_net_read.3 \
- tf_util.3 tf_init.3 \
- tf_util.3 tf_get_pname.3 \
- tf_util.3 tf_get_pinst.3 \
- tf_util.3 tf_get_cred.3 \
- tf_util.3 tf_close.3
-
-INCLUDES= ${KRB4DIR}/lib/krb/krb.h ${KRB4DIR}/lib/krb/klog.h \
- ${KRB4DIR}/lib/krb/prot.h ${KRBOBJDIR}/krb_err.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/krb
-.PATH: ${KRB4DIR}/lib/roken
-
-beforedepend all: ${KRBOBJDIR}/krb_err.h
diff --git a/kerberosIV/lib/libroken/Makefile b/kerberosIV/lib/libroken/Makefile
deleted file mode 100644
index cf5f42039427..000000000000
--- a/kerberosIV/lib/libroken/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# $Id$
-
-LIB= roken
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken
-SRCS= k_getpwuid.c k_getpwnam.c signal.c tm2time.c \
- verify.c inaddr2str.c mini_inetd.c get_window_size.c \
- warnerr.c snprintf.c strlwr.c strnlen.c strtok_r.c strupr.c
-NOPIC= yes
-
-install:
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/roken
diff --git a/kerberosIV/lib/libsl/Makefile b/kerberosIV/lib/libsl/Makefile
deleted file mode 100644
index 7b3a06cddc04..000000000000
--- a/kerberosIV/lib/libsl/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# $Id$
-
-LIB= sl
-CFLAGS+= -I${KRB4DIR}/include \
- -I${INCLUDEOBJDIR} \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/sl
-SRCS= sl.c
-NOPIC= yes
-
-install:
-
-.include <bsd.lib.mk>
-
-.PATH: ${KRB4DIR}/lib/sl
diff --git a/kerberosIV/lib/libtelnet/Makefile b/kerberosIV/lib/libtelnet/Makefile
deleted file mode 100644
index e561da1734b1..000000000000
--- a/kerberosIV/lib/libtelnet/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# $Id$
-
-LIB= telnet
-
-SRCS= genget.c getent.c misc.c encrypt.c auth.c kerberos.c enc_des.c
-
-CFLAGS+= -DHAS_CGETENT -DENCRYPTION -DDES_ENCRYPTION -DAUTHENTICATION \
- -DKRB4 -I${TELNETDIR} \
- -I${KRB4DIR}/lib/krb
-
-INCLUDES= ${TELNETDIR}/arpa/telnet.h
-
-.include <bsd.lib.mk>
-
-.PATH: ${TELNETDIR}/libtelnet
diff --git a/kerberosIV/libexec/Makefile b/kerberosIV/libexec/Makefile
deleted file mode 100644
index 36f9a31b4c58..000000000000
--- a/kerberosIV/libexec/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-SUBDIR= kauthd kipd kpropd telnetd
-
-.include <bsd.subdir.mk>
diff --git a/kerberosIV/libexec/Makefile.inc b/kerberosIV/libexec/Makefile.inc
deleted file mode 100644
index 496b56efcc1a..000000000000
--- a/kerberosIV/libexec/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-BINDIR= /usr/libexec
-
-.include "../Makefile.inc"
diff --git a/kerberosIV/libexec/kauthd/Makefile b/kerberosIV/libexec/kauthd/Makefile
deleted file mode 100644
index e3166c39dd76..000000000000
--- a/kerberosIV/libexec/kauthd/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# $Id$
-
-PROG= kauthd
-MAN8= ${KRB4DIR}/man/kauthd.8
-SRCS= kauthd.c encdata.c marshall.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kafs \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/appl/kauth
-LDADD= -L${ROKENOBJDIR} -lroken -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/appl/kauth
diff --git a/kerberosIV/libexec/kipd/Makefile b/kerberosIV/libexec/kipd/Makefile
deleted file mode 100644
index 2001257b3113..000000000000
--- a/kerberosIV/libexec/kipd/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# $Id$
-
-PROG= kipd
-NOMAN= yes
-SRCS= kipd.c common.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/appl/kip
-LDADD= -L${ROKENOBJDIR} -lroken -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/appl/kip
diff --git a/kerberosIV/libexec/kpropd/Makefile b/kerberosIV/libexec/kpropd/Makefile
deleted file mode 100644
index 5e1d1f5b311c..000000000000
--- a/kerberosIV/libexec/kpropd/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-
-PROG= kpropd
-MAN8= ${KRB4DIR}/man/kpropd.8
-SRCS= kpropd.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/slave \
- -I${INCLOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/slave
diff --git a/kerberosIV/libexec/telnetd/Makefile b/kerberosIV/libexec/telnetd/Makefile
deleted file mode 100644
index 9301d1b4c0ab..000000000000
--- a/kerberosIV/libexec/telnetd/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id$
-
-# Do not define -DKLUDGELINEMODE, as it does not interact well with many
-# telnet implementations.
-
-PROG= telnetd
-MAN8= telnetd.8
-
-CFLAGS+= -DLINEMODE -DUSE_TERMIO -DDIAGNOSTICS -DOLD_ENVIRON \
- -DENV_HACK -DAUTHENTICATION -DENCRYPTION \
- -I${TELNETDIR}
-
-SRCS= global.c slc.c state.c sys_term.c telnetd.c \
- termstat.c utility.c authenc.c
-
-DPADD= ${LIBUTIL} ${LIBTERMCAP} ${LIBTELNET} ${LIBDES} ${LIBKRB}
-LDADD= -lutil -ltermcap -L${TELNETOBJDIR} -ltelnet -ldes \
- -L${KRBOBJDIR} -lkrb
-
-.include <bsd.prog.mk>
-
-.PATH: ${TELNETDIR}/telnetd
diff --git a/kerberosIV/share/info/Makefile b/kerberosIV/share/info/Makefile
deleted file mode 100644
index 0360a58be245..000000000000
--- a/kerberosIV/share/info/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# @(#)Makefile 8.1 (Berkeley) 6/5/93
-
-NOOBJ= noobj
-
-all clean cleandir depend lint tags:
-
-beforeinstall:
- ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 dir-tmpl \
- ${DESTDIR}${BINDIR}/info/dir-tmpl
- if [ ! -f ${DESTDIR}${BINDIR}/info/dir ]; then \
- ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 dir-tmpl \
- ${DESTDIR}${BINDIR}/info/dir ; \
- fi
-
-.include <bsd.prog.mk>
diff --git a/kerberosIV/usr.bin/Makefile b/kerberosIV/usr.bin/Makefile
deleted file mode 100644
index 1af6e53c8f3d..000000000000
--- a/kerberosIV/usr.bin/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-SUBDIR= kadmin kauth kdestroy kinit klist ksrvtgt telnet
-
-.include <bsd.subdir.mk>
diff --git a/kerberosIV/usr.bin/Makefile.inc b/kerberosIV/usr.bin/Makefile.inc
deleted file mode 100644
index 61e68a7b6cfe..000000000000
--- a/kerberosIV/usr.bin/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-BINDIR= /usr/bin
-
-.include "../Makefile.inc"
diff --git a/kerberosIV/usr.bin/kadmin/Makefile b/kerberosIV/usr.bin/kadmin/Makefile
deleted file mode 100644
index b239c947e06b..000000000000
--- a/kerberosIV/usr.bin/kadmin/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-
-PROG= kadmin
-MAN8= ${KRB4DIR}/man/kadmin.8
-SRCS= kadmin.c new_pwd.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/sl \
- -I${KRB4DIR}/lib/acl \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/kadmin \
- -I${KADMOBJDIR} \
- -I${KRBOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${SLOBJDIR} -lsl \
- -L${ACLOBJDIR} -lacl -L${KADMOBJDIR} -lkadm \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb \
- -ldes -lcom_err -lreadline
-DPADD= ${LIBROKEN} ${LIBSL} ${LIBACL} ${LIBKADM} ${LIBKDB} ${LIBKRB} \
- ${LIBDES} ${LIBCOM_ERR}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/kadmin
-
-beforedepend all: ${KADMOBJDIR}/kadm_err.h ${KRBOBJDIR}/krb_err.h
diff --git a/kerberosIV/usr.bin/kauth/Makefile b/kerberosIV/usr.bin/kauth/Makefile
deleted file mode 100644
index 35265dcf0991..000000000000
--- a/kerberosIV/usr.bin/kauth/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# $Id$
-
-PROG= kauth
-MAN1= ${KRB4DIR}/man/kauth.1
-SRCS= kauth.c rkinit.c encdata.c marshall.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kafs \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/appl/kauth
-LDADD= -L${ROKENOBJDIR} -lroken -L${KAFSOBJDIR} -lkafs \
- -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKAFS} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/appl/kauth
diff --git a/kerberosIV/usr.bin/kdestroy/Makefile b/kerberosIV/usr.bin/kdestroy/Makefile
deleted file mode 100644
index 4bb0aef8bb9c..000000000000
--- a/kerberosIV/usr.bin/kdestroy/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# $Id$
-
-PROG= kdestroy
-MAN1= ${KRB4DIR}/man/kdestroy.1
-SRCS= kdestroy.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kafs \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/kuser
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KAFSOBJDIR} -lkafs -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKAFS} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/kuser
diff --git a/kerberosIV/usr.bin/klist/Makefile b/kerberosIV/usr.bin/klist/Makefile
deleted file mode 100644
index 2159fa07898a..000000000000
--- a/kerberosIV/usr.bin/klist/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# $Id$
-
-PROG= klist
-MAN1= ${KRB4DIR}/man/klist.1
-SRCS= klist.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kafs \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/kuser
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KAFSOBJDIR} -lkafs -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKAFS} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/kuser
diff --git a/kerberosIV/usr.bin/ksrvtgt/Makefile b/kerberosIV/usr.bin/ksrvtgt/Makefile
deleted file mode 100644
index 5a8f189bace9..000000000000
--- a/kerberosIV/usr.bin/ksrvtgt/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# $Id$
-
-MAN1= ${KRB4DIR}/man/ksrvtgt.1
-
-beforeinstall:
- ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
- ${KRB4DIR}/appl/kauth/ksrvtgt.in ${DESTDIR}${BINDIR}/ksrvtgt
-
-depend all:
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/appl/kauth
diff --git a/kerberosIV/usr.bin/telnet/Makefile b/kerberosIV/usr.bin/telnet/Makefile
deleted file mode 100644
index 1e19cb12c5a0..000000000000
--- a/kerberosIV/usr.bin/telnet/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# $Id$
-
-PROG= telnet
-
-CFLAGS+= -DTERMCAP -DKLUDGELINEMODE -DUSE_TERMIO -DENV_HACK -DSKEY \
- -DENCRYPTION -DAUTHENTICATION -DKRB4 \
- -I${TELNETDIR}
-
-SRCS= authenc.c commands.c main.c network.c ring.c sys_bsd.c \
- telnet.c terminal.c tn3270.c utilities.c
-
-DPADD= ${LIBTERMCAP} ${LIBTELNET} ${LIBDES} ${LIBKRB}
-LDADD= -ltermcap -L${TELNETOBJDIR} -ltelnet -ldes -L${KRBOBJDIR} -lkrb
-
-.include <bsd.prog.mk>
-
-.PATH: ${TELNETDIR}/telnet
diff --git a/kerberosIV/usr.sbin/Makefile b/kerberosIV/usr.sbin/Makefile
deleted file mode 100644
index ee5e94fdadd3..000000000000
--- a/kerberosIV/usr.sbin/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# $Id$
-
-SUBDIR= ext_srvtab kadmind kdb_destroy kdb_edit kdb_init kdb_util \
- kerberos kip kprop ksrvutil kstash
-
-.include <bsd.subdir.mk>
diff --git a/kerberosIV/usr.sbin/Makefile.inc b/kerberosIV/usr.sbin/Makefile.inc
deleted file mode 100644
index 3b63d9766ebc..000000000000
--- a/kerberosIV/usr.sbin/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $Id$
-
-BINDIR= /usr/sbin
-
-.include "../Makefile.inc"
diff --git a/kerberosIV/usr.sbin/ext_srvtab/Makefile b/kerberosIV/usr.sbin/ext_srvtab/Makefile
deleted file mode 100644
index f9d7d01f15b1..000000000000
--- a/kerberosIV/usr.sbin/ext_srvtab/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= ext_srvtab
-MAN8= ${KRB4DIR}/man/ext_srvtab.8
-SRCS= ext_srvtab.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/admin \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/kerberosIV/usr.sbin/kadmind/Makefile b/kerberosIV/usr.sbin/kadmind/Makefile
deleted file mode 100644
index 1ee92b9e2c16..000000000000
--- a/kerberosIV/usr.sbin/kadmind/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id$
-
-PROG= kadmind
-MAN8= ${KRB4DIR}/man/kadmind.8
-SRCS= kadm_server.c kadm_funcs.c admin_server.c kadm_ser_wrap.c \
- pw_check.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/sl \
- -I${KRB4DIR}/lib/acl \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/kadmin \
- -I${KADMOBJDIR} \
- -I${KRBOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${SLOBJDIR} -lsl \
- -L${ACLOBJDIR} -lacl -L${KADMOBJDIR} -lkadm \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb \
- -ldes -lcom_err
-DPADD= ${LIBROKEN} ${LIBSL} ${LIBACL} ${LIBKADM} ${LIBKDB} ${LIBKRB} \
- ${LIBDES} ${LIBCOM_ERR}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/kadmin
-
-beforedepend all: ${KADMOBJDIR}/kadm_err.h ${KRBOBJDIR}/krb_err.h
diff --git a/kerberosIV/usr.sbin/kdb_destroy/Makefile b/kerberosIV/usr.sbin/kdb_destroy/Makefile
deleted file mode 100644
index af5277d776f6..000000000000
--- a/kerberosIV/usr.sbin/kdb_destroy/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= kdb_destroy
-MAN8= ${KRB4DIR}/man/kdb_destroy.8
-SRCS= kdb_destroy.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/kerberosIV/usr.sbin/kdb_edit/Makefile b/kerberosIV/usr.sbin/kdb_edit/Makefile
deleted file mode 100644
index e5a7ff9617c9..000000000000
--- a/kerberosIV/usr.sbin/kdb_edit/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= kdb_edit
-MAN8= ${KRB4DIR}/man/kdb_edit.8
-SRCS= kdb_edit.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/kerberosIV/usr.sbin/kdb_init/Makefile b/kerberosIV/usr.sbin/kdb_init/Makefile
deleted file mode 100644
index d51519a5b9fb..000000000000
--- a/kerberosIV/usr.sbin/kdb_init/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= kdb_init
-MAN8= ${KRB4DIR}/man/kdb_init.8
-SRCS= kdb_init.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/kerberosIV/usr.sbin/kdb_util/Makefile b/kerberosIV/usr.sbin/kdb_util/Makefile
deleted file mode 100644
index e43fd5555c24..000000000000
--- a/kerberosIV/usr.sbin/kdb_util/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= kdb_util
-MAN8= ${KRB4DIR}/man/kdb_util.8
-SRCS= kdb_util.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/kerberosIV/usr.sbin/kerberos/Makefile b/kerberosIV/usr.sbin/kerberos/Makefile
deleted file mode 100644
index 5c9f0242bbcf..000000000000
--- a/kerberosIV/usr.sbin/kerberos/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id$
-
-PROG= kerberos
-MAN1= ${KRB4DIR}/man/kerberos.1
-MAN5= ${KRB4DIR}/man/krb.conf.5 ${KRB4DIR}/man/krb.realms.5 \
- ${KRB4DIR}/man/krb.equiv.5
-MAN8= ${KRB4DIR}/man/kerberos.8
-SRCS= kerberos.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KADMOBJDIR} \
- -I${KRBOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb \
- -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/server
diff --git a/kerberosIV/usr.sbin/kip/Makefile b/kerberosIV/usr.sbin/kip/Makefile
deleted file mode 100644
index 17dfb39f2883..000000000000
--- a/kerberosIV/usr.sbin/kip/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# $Id$
-
-PROG= kip
-NOMAN= true
-SRCS= kip.c common.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/kadmin \
- -I${KRBOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/appl/kip
diff --git a/kerberosIV/usr.sbin/kprop/Makefile b/kerberosIV/usr.sbin/kprop/Makefile
deleted file mode 100644
index 1fc0515d0a44..000000000000
--- a/kerberosIV/usr.sbin/kprop/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-
-PROG= kprop
-MAN8= ${KRB4DIR}/man/kprop.8
-SRCS= kprop.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/slave \
- -I${INCLOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKRB} ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/slave
diff --git a/kerberosIV/usr.sbin/ksrvutil/Makefile b/kerberosIV/usr.sbin/ksrvutil/Makefile
deleted file mode 100644
index b01a66afe035..000000000000
--- a/kerberosIV/usr.sbin/ksrvutil/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id: Makefile,v 1.2 1997/10/02 15:03:23 markm Exp $
-
-PROG= ksrvutil
-MAN8= ${KRB4DIR}/man/ksrvutil.8
-SRCS= ksrvutil.c ksrvutil_get.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/sl \
- -I${KRB4DIR}/lib/acl \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${KADMOBJDIR} \
- -I${KRBOBJDIR} \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken -L${KADMOBJDIR} -lkadm \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes -lcom_err
-DPADD= ${LIBROKEN} ${LIBKADM} ${LIBKDB} ${LIBKRB} \
- ${LIBDES} ${LIBCOM_ERR}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/kadmin
-
-beforedepend all: ${KADMOBJDIR}/kadm_err.h ${KRBOBJDIR}/krb_err.h
diff --git a/kerberosIV/usr.sbin/kstash/Makefile b/kerberosIV/usr.sbin/kstash/Makefile
deleted file mode 100644
index 0dcdc60b651a..000000000000
--- a/kerberosIV/usr.sbin/kstash/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-PROG= kstash
-MAN8= ${KRB4DIR}/man/kstash.8
-SRCS= kstash.c
-CFLAGS+= -I${KRB4DIR}/include \
- -I${KRB4DIR}/lib/roken \
- -I${KRB4DIR}/lib/krb \
- -I${KRB4DIR}/admin \
- -I${KRB4DIR}/lib/kadm \
- -I${KRB4DIR}/lib/kdb \
- -I${.CURDIR}/../include
-LDADD= -L${ROKENOBJDIR} -lroken \
- -L${KDBOBJDIR} -lkdb -L${KRBOBJDIR} -lkrb -ldes
-DPADD= ${LIBROKEN} ${LIBKDB} ${LIBKRB} \
- ${LIBDES}
-
-.include <bsd.prog.mk>
-
-.PATH: ${KRB4DIR}/admin
diff --git a/lib/libc/gen/arc4random.3 b/lib/libc/gen/arc4random.3
deleted file mode 100644
index 25c6d4d0a02e..000000000000
--- a/lib/libc/gen/arc4random.3
+++ /dev/null
@@ -1,83 +0,0 @@
-.\" $OpenBSD: arc4random.3,v 1.2 1997/04/27 22:40:25 angelos Exp $
-.\" Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Niels Provos.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
-.\"
-.\" Manual page, using -mandoc macros
-.\"
-.Dd April 15, 1997
-.Dt ARC4RANDOM 3
-.Os
-.Sh NAME
-.Nm arc4random,
-.Nm arc4random_stir,
-.Nm arc4random_addrandom
-.Nd arc4 random number generator.
-.Sh SYNOPSIS
-.Fd #include <stdlib.h>
-.Ft u_int32_t
-.Fn arc4random "void"
-.Ft void
-.Fn arc4random_stir "void"
-.Ft void
-.Fn arc4random_addrandom "unsigned char *dat" "int datlen"
-.Sh DESCRIPTION
-The
-.Fn arc4random
-function uses the key stream generator employed by the
-arc4 cipher, which uses 8*8 8 bit S-Boxes. The S-Boxes
-can be in about
-.if t 2\u\s71700\s10\d
-.if n (2**1700)
-states.
-.Pp
-The
-.Fn arc4random_stir
-function reads data from
-.Pa /dev/urandom
-and uses it to permutate the S-Boxes via
-.Fn arc4random_addrandom .
-.Pp
-There is no need to call
-.Fn arc4random_stir
-before using
-.Fn arc4random ,
-since
-.Fn arc4random
-automatically initalizes itself.
-.Sh SEE ALSO
-.Xr rand 3 ,
-.Xr random 3 ,
-.Xr srandomdev 3
-.Sh HISTORY
-.Pa RC4
-has been designed by RSA Data Security, Inc. It was posted anonymously
-to the USENET and was confirmed to be equivalent by several sources who
-had access to the original cipher. Since
-.Pa RC4
-used to be a trade secret, the cipher is now refered to as
-.Pa ARC4 .
diff --git a/lib/libc/gen/arc4random.c b/lib/libc/gen/arc4random.c
deleted file mode 100644
index b9f8a4846832..000000000000
--- a/lib/libc/gen/arc4random.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* $Id: arc4random.c,v 1.1 1996/12/28 06:33:01 dm Exp $ */
-
-/*
- * Arc4 random number generator for OpenBSD.
- * Copyright 1996 David Mazieres <dm@lcs.mit.edu>.
- *
- * Modification and redistribution in source and binary forms is
- * permitted provided that due credit is given to the author and the
- * OpenBSD project (for instance by leaving this copyright notice
- * intact).
- */
-
-/*
- * This code is derived from section 17.1 of Applied Cryptography,
- * second edition, which describes a stream cipher allegedly
- * compatible with RSA Labs "RC4" cipher (the actual description of
- * which is a trade secret). The same algorithm is used as a stream
- * cipher called "arcfour" in Tatu Ylonen's ssh package.
- *
- * Here the stream cipher has been modified always to include the time
- * when initializing the state. That makes it impossible to
- * regenerate the same random sequence twice, so this can't be used
- * for encryption, but will generate good random numbers.
- *
- * RC4 is a registered trademark of RSA Laboratories.
- */
-
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-struct arc4_stream {
- u_int8_t i;
- u_int8_t j;
- u_int8_t s[256];
-};
-
-static int rs_initialized;
-static struct arc4_stream rs;
-
-static inline void
-arc4_init(as)
- struct arc4_stream *as;
-{
- int n;
-
- for (n = 0; n < 256; n++)
- as->s[n] = n;
- as->i = 0;
- as->j = 0;
-}
-
-static inline void
-arc4_addrandom(as, dat, datlen)
- struct arc4_stream *as;
- u_char *dat;
- int datlen;
-{
- int n;
- u_int8_t si;
-
- as->i--;
- for (n = 0; n < 256; n++) {
- as->i = (as->i + 1);
- si = as->s[as->i];
- as->j = (as->j + si + dat[n % datlen]);
- as->s[as->i] = as->s[as->j];
- as->s[as->j] = si;
- }
-}
-
-static void
-arc4_stir(as)
- struct arc4_stream *as;
-{
- int fd;
- struct {
- struct timeval tv;
- pid_t pid;
- u_int8_t rnd[128 - sizeof(struct timeval) - sizeof(pid_t)];
- } rdat;
-
- gettimeofday(&rdat.tv, NULL);
- rdat.pid = getpid();
- fd = open("/dev/urandom", O_RDONLY, 0);
- if (fd >= 0) {
- (void) read(fd, rdat.rnd, sizeof(rdat.rnd));
- close(fd);
- }
- /* fd < 0? Ah, what the heck. We'll just take whatever was on the
- * stack... */
-
- arc4_addrandom(as, (void *) &rdat, sizeof(rdat));
-}
-
-static inline u_int8_t
-arc4_getbyte(as)
- struct arc4_stream *as;
-{
- u_int8_t si, sj;
-
- as->i = (as->i + 1);
- si = as->s[as->i];
- as->j = (as->j + si);
- sj = as->s[as->j];
- as->s[as->i] = sj;
- as->s[as->j] = si;
- return (as->s[(si + sj) & 0xff]);
-}
-
-static inline u_int32_t
-arc4_getword(as)
- struct arc4_stream *as;
-{
- u_int32_t val;
- val = arc4_getbyte(as) << 24;
- val |= arc4_getbyte(as) << 16;
- val |= arc4_getbyte(as) << 8;
- val |= arc4_getbyte(as);
- return val;
-}
-
-void
-arc4random_stir()
-{
- if (!rs_initialized) {
- arc4_init(&rs);
- rs_initialized = 1;
- }
- arc4_stir(&rs);
-}
-
-void
-arc4random_addrandom(dat, datlen)
- u_char *dat;
- int datlen;
-{
- if (!rs_initialized)
- arc4random_stir();
- arc4_addrandom(&rs, dat, datlen);
-}
-
-u_int32_t
-arc4random()
-{
- if (!rs_initialized)
- arc4random_stir();
- return arc4_getword(&rs);
-}
-
-#if 0
-/*-------- Test code for i386 --------*/
-#include <stdio.h>
-#include <machine/pctr.h>
-int
-main(int argc, char **argv)
-{
- const int iter = 1000000;
- int i;
- pctrval v;
-
- v = rdtsc();
- for (i = 0; i < iter; i++)
- arc4random();
- v = rdtsc() - v;
- v /= iter;
-
- printf("%qd cycles\n", v);
-}
-#endif
diff --git a/lib/libc/gen/stringlist.3 b/lib/libc/gen/stringlist.3
deleted file mode 100644
index 5023c5cebb02..000000000000
--- a/lib/libc/gen/stringlist.3
+++ /dev/null
@@ -1,120 +0,0 @@
-.\" $NetBSD: stringlist.3,v 1.2 1997/04/09 08:59:25 kleink Exp $
-.\"
-.\" Copyright (c) 1997 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This file was contributed to The NetBSD Foundation by Luke Mewburn.
-.\"
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the NetBSD
-.\" Foundation, Inc. and its contributors.
-.\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 REGENTS 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.
-.\"
-.Dd February 24, 1997
-.Os NetBSD 1.3
-.Dt STRINGLIST 3
-.Sh NAME
-.Nm stringlist ,
-.Nm sl_init ,
-.Nm sl_add ,
-.Nm sl_free ,
-.Nm sl_find
-.Nd stringlist manipulation functions
-.Sh SYNOPSIS
-.Fd #include <stringlist.h>
-.Ft StringList *
-.Fn sl_init
-.Ft void
-.Fn sl_add "StringList *sl" "char *item"
-.Ft void
-.Fn sl_free "StringList *sl" "int freeall"
-.Ft char *
-.Fn sl_find "StringList *sl" "char *item"
-.Sh DESCRIPTION
-The
-.Nm
-functions manipulate stringlists, which are lists of
-strings that extend automatically if necessary.
-.Pp
-The
-.Ar StringList
-structure has the following definition:
-.Bd -literal -offset indent
-typedef struct _stringlist {
- char **sl_str;
- size_t sl_max;
- size_t sl_cur;
-} StringList;
-.Ed
-.Pp
-.Bl -tag -width "sl_str" -offset indent
-.It Ar sl_str
-a pointer to the base of the array containing the list.
-.It Ar sl_max
-the size of
-.Ar sl_str .
-.It Ar sl_cur
-the offset in
-.Ar sl_str
-of the current element.
-.El
-.Pp
-The following stringlist manipulation functions are available:
-.Bl -tag -width "sl_init()"
-.It Fn sl_init
-Create a stringlist.
-Returns a pointer to a
-.Ar StringList .
-.It Fn sl_free
-Releases memory occupied by
-.Ar sl
-and the
-.Ar sl->sl_str
-array.
-If
-.Ar freeall
-is non-zero, then each of the items within
-.Ar sl->sl_str
-is released as well.
-.It Fn sl_add
-Add
-.Ar item
-to
-.Ar sl->sl_str
-at
-.Ar sl->sl_cur ,
-extending the size of
-.Ar sl->sl_str
-.It Fn sl_find
-Find
-.Ar item
-in
-.Ar sl ,
-returning NULL if it's not found.
-.El
-.Sh SEE ALSO
-.Xr free 3 ,
-.Xr malloc 3
diff --git a/lib/libc/gen/stringlist.c b/lib/libc/gen/stringlist.c
deleted file mode 100644
index 57c4d91485e8..000000000000
--- a/lib/libc/gen/stringlist.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* $NetBSD: stringlist.c,v 1.2 1997/01/17 07:26:20 lukem Exp $ */
-
-/*
- * Copyright (c) 1994 Christos Zoulas
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Christos Zoulas.
- * 4. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$NetBSD: stringlist.c,v 1.2 1997/01/17 07:26:20 lukem Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include <err.h>
-#include <stdlib.h>
-#include <stringlist.h>
-
-#define _SL_CHUNKSIZE 20
-
-/*
- * sl_init(): Initialize a string list
- */
-StringList *
-sl_init()
-{
- StringList *sl = malloc(sizeof(StringList));
- if (sl == NULL)
- err(1, "stringlist: %m");
-
- sl->sl_cur = 0;
- sl->sl_max = _SL_CHUNKSIZE;
- sl->sl_str = malloc(sl->sl_max * sizeof(char *));
- if (sl->sl_str == NULL)
- err(1, "stringlist: %m");
- return sl;
-}
-
-
-/*
- * sl_add(): Add an item to the string list
- */
-void
-sl_add(sl, name)
- StringList *sl;
- char *name;
-{
- if (sl->sl_cur == sl->sl_max - 1) {
- sl->sl_max += _SL_CHUNKSIZE;
- sl->sl_str = realloc(sl->sl_str, sl->sl_max * sizeof(char *));
- if (sl->sl_str == NULL)
- err(1, "stringlist: %m");
- }
- sl->sl_str[sl->sl_cur++] = name;
-}
-
-
-/*
- * sl_free(): Free a stringlist
- */
-void
-sl_free(sl, all)
- StringList *sl;
- int all;
-{
- size_t i;
-
- if (sl == NULL)
- return;
- if (sl->sl_str) {
- if (all)
- for (i = 0; i < sl->sl_cur; i++)
- free(sl->sl_str[i]);
- free(sl->sl_str);
- }
- free(sl);
-}
-
-
-/*
- * sl_find(): Find a name in the string list
- */
-char *
-sl_find(sl, name)
- StringList *sl;
- char *name;
-{
- size_t i;
-
- for (i = 0; i < sl->sl_cur; i++)
- if (strcmp(sl->sl_str[i], name) == 0)
- return sl->sl_str[i];
-
- return NULL;
-}
diff --git a/lib/libc/i386/string/memcpy.S b/lib/libc/i386/string/memcpy.S
deleted file mode 100644
index 1617c7153aac..000000000000
--- a/lib/libc/i386/string/memcpy.S
+++ /dev/null
@@ -1,2 +0,0 @@
-#define MEMCOPY
-#include "bcopy.S"
diff --git a/lib/libc/locale/mskanji.c b/lib/libc/locale/mskanji.c
deleted file mode 100644
index bce27fe43386..000000000000
--- a/lib/libc/locale/mskanji.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * ja_JP.SJIS locale table for BSD4.4/rune
- * version 1.0
- * (C) Sin'ichiro MIYATANI / Phase One, Inc
- * May 12, 1995
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Phase One, Inc.
- * 4. The name of Phase One, Inc. may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- */
-
-#ifdef XPG4
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)mskanji.c 1.0 (Phase One) 5/5/95";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-
-#include <errno.h>
-#include <rune.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-rune_t _MSKanji_sgetrune __P((const char *, size_t, char const **));
-int _MSKanji_sputrune __P((rune_t, char *, size_t, char **));
-
-int
-_MSKanji_init(rl)
- _RuneLocale *rl;
-{
- rl->sgetrune = _MSKanji_sgetrune;
- rl->sputrune = _MSKanji_sputrune;
-
- _CurrentRuneLocale = rl;
- __mb_cur_max = 2;
- return (0);
-}
-
-rune_t
-_MSKanji_sgetrune(string, n, result)
- const char *string;
- size_t n;
- char const **result;
-{
- rune_t rune = 0;
-
- if (n < 1 ) {
- rune = _INVALID_RUNE;
- } else {
- rune = *( string++ ) & 0xff;
- if ( ( rune > 0x80 && rune < 0xa0 )
- || ( rune >= 0xe0 && rune < 0xfa ) ) {
- if ( n < 2 ) {
- rune = (rune_t)_INVALID_RUNE;
- --string;
- } else {
- rune = ( rune << 8 ) | ( *( string++ ) & 0xff );
- }
- }
- }
- if (result) *result = string;
- return rune;
-}
-
-int
-_MSKanji_sputrune(c, string, n, result)
- rune_t c;
- char *string, **result;
- size_t n;
-{
- int len, i;
-
- len = ( c > 0x100 ) ? 2 : 1;
- if ( n < len ) {
- if ( result ) *result = (char *) 0;
- } else {
- if ( result ) *result = string + len;
- for ( i = len; i-- > 0; ) {
- *( string++ ) = c >> ( i << 3 );
- }
- }
- return len;
-}
-#endif /* XPG4 */
diff --git a/lib/libedit/editrc.5 b/lib/libedit/editrc.5
deleted file mode 100644
index e9b2992aaf06..000000000000
--- a/lib/libedit/editrc.5
+++ /dev/null
@@ -1,292 +0,0 @@
-.\" $NetBSD: editrc.5,v 1.4 1997/04/24 20:20:31 christos Exp $
-.\"
-.\" Copyright (c) 1997 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This file was contributed to The NetBSD Foundation by Luke Mewburn.
-.\"
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the NetBSD
-.\" Foundation, Inc. and its contributors.
-.\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 REGENTS 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.
-.\"
-.Dd January 11, 1997
-.Os BSD 4.4
-.Dt EDITRC 5
-.Sh NAME
-.Nm editrc
-.Nd configuration file for editline library
-.Sh SYNOPSIS
-.Nm
-.Sh DESCRIPTION
-The
-.Nm
-file defines various settings to be used by the
-.Xr editline 3
-library.
-.Pp
-The format of each line is either:
-.Dl prog:command [arg [...]]
-or
-.Dl command [arg [...]]
-.Pp
-.Ar command
-is one of the
-.Xr editline 3
-builtin commands.
-Refer to
-.Sx BUILTIN COMMANDS
-for more information.
-.Pp
-.Ar prog
-is the program name string that a program defines when it calls
-.Xr el_init 3
-to setup
-.Xr editline 3 ,
-which is usually
-.Va argv[0] .
-.Ar command
-will be executed for any program which matches
-.Ar prog .
-.Pp
-.Ar prog
-may also be a
-.Xr regex 3
-style
-regular expression, in which case
-.Ar command
-will be executed for any program that matches the regular expression.
-.Sh BUILTIN COMMANDS
-The
-.Nm editline
-library has some builtin commands, which affect the way
-that the line editing and history functions operate.
-These are based on similar named builtins present in the
-.Xr tcsh 1
-shell.
-.Pp
-The following builtin commands are available:
-.Bl -tag -width 4n
-.It Ic bind Xo
-.Op Fl a
-.Op Fl e
-.Op Fl k
-.Op Fl l
-.Op Fl r
-.Op Fl s
-.Op Fl v
-.Op Ar key Op Ar command
-.Xc
-Without options, list all bound keys, and the editor command to which
-each is bound.
-If
-.Ar key
-is supplied, show the bindings for
-.Ar key .
-If
-.Ar key command
-is supplied, bind
-.Ar command
-to
-.Ar key .
-Options include:
-.Bl -tag -width 4n
-.It Fl e
-Bind all keys to the standard GNU Emacs-like bindings.
-.It Fl v
-Bind all keys to the standard
-.Xr vi 1 -like
-bindings.
-.It Fl a
-List or change key bindings in the
-.Xr vi 1
-mode alternate (command mode) key map.
-.It Fl k
-.Ar key
-is interpreted as a symbolic arrow key name, which may be one of
-.Sq up ,
-.Sq down ,
-.Sq left
-or
-.Sq right .
-.It Fl l
-List all editor commands and a short description of each.
-.It Fl r
-Remove a key's binding.
-.It Fl s
-.Ar command
-is taken as a literal string and treated as terminal input when
-.Ar key
-is typed.
-Bound keys in
-.Ar command
-are themselves reinterpreted, and this continues for ten levels of
-interpretation.
-.El
-.Pp
-.Ar key
-and
-.Ar command
-can contain control characters of the form
-.Sm off
-.Sq No ^ Ar character
-.Sm on
-.Po
-e.g.
-.Sq ^A
-.Pc ,
-and the following backslashed escape sequences:
-.Pp
-.Bl -tag -compact -offset indent -width 4n
-.It Ic \ea
-Bell
-.It Ic \eb
-Backspace
-.It Ic \ee
-Escape
-.It Ic \ef
-Formfeed
-.It Ic \en
-Newline
-.It Ic \er
-Carriage return
-.It Ic \et
-Horizontal tab
-.It Ic \ev
-Vertical tab
-.Sm off
-.It Sy \e Ar nnn
-.Sm on
-The ASCII character corresponding to the octal number
-.Ar nnn .
-.El
-.Pp
-.Sq \e
-nullifies the special meaning of the following character,
-if it has any, notably
-.Sq \e
-and
-.Sq ^ .
-.It Ic echotc Xo
-.Op Fl sv
-.Ar arg
-.Ar ...
-.Xc
-Exercise terminal capabilities given in
-.Ar arg Ar ... .
-If
-.Ar arg
-is
-.Sq baud ,
-.Sq cols ,
-.Sq lines ,
-.Sq rows ,
-.Sq meta or
-.Sq tabs ,
-the value of that capability is printed, with
-.Dq yes
-or
-.Dq no
-indicating that the terminal does or does not have that capability.
-.Pp
-.Fl s
-returns an emptry string for non-existant capabilities, rather than
-causing an error.
-.Fl v
-causes messages to be verbose.
-.It Ic history
-List the history.
-.It Ic telltc
-List the values of all the terminal capabilities (see
-.Xr termcap 5 ).
-.It Ic settc Ar cap Ar val
-Set the terminal capability
-.Ar cap
-to
-.Ar val ,
-as defined in
-.Xr termcap 5 .
-No sanity checking is done.
-.It Ic setty Xo
-.Op Fl a
-.Op Fl d
-.Op Fl q
-.Op Fl x
-.Op Ar +mode
-.Op Ar -mode
-.Op Ar mode
-.Xc
-Control which tty modes that
-.Nm
-won't allow the user to change.
-.Fl d ,
-.Fl q
-or
-.Fl x
-tells
-.Ic setty
-to act on the
-.Sq edit ,
-.Sq quote
-or
-.Sq execute
-set of tty modes respectively; defaulting to
-.Fl x .
-.Pp
-Without other arguments,
-.Ic setty
-lists the modes in the chosen set which are fixed on
-.Po
-.Sq +mode
-.Pc
-or off
-.Po
-.Sq -mode
-.Pc .
-.Fl a
-lists all tty modes in the chosen set regardless of the setting.
-With
-.Ar +mode ,
-.Ar -mode
-or
-.Ar mode ,
-fixes
-.Ar mode
-on or off or removes control of
-.Ar mode
-in the chosen set.
-.El
-.Sh SEE ALSO
-.Xr editline 3 ,
-.Xr regex 3 ,
-.Xr termcap 5
-.Sh AUTHORS
-The
-.Nm editline
-library was written by Christos Zoulas,
-and this manual was written by Luke Mewburn,
-with some sections inspired by
-.Xr tcsh 1 .
diff --git a/lib/libutil/login_auth.3 b/lib/libutil/login_auth.3
deleted file mode 100644
index 14a2a63fcf0f..000000000000
--- a/lib/libutil/login_auth.3
+++ /dev/null
@@ -1,71 +0,0 @@
-.\" Copyright (c) 1995 David Nugent <davidn@blaze.net.au>
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, is permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice immediately at the beginning of the file, without modification,
-.\" 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. This work was done expressly for inclusion into FreeBSD. Other use
-.\" is permitted provided this notation is included.
-.\" 4. Absolutely no warranty of function or purpose is made by the author
-.\" David Nugent.
-.\" 5. Modifications may be freely made to this file providing the above
-.\" conditions are met.
-.\"
-.\" $Id$
-.\"
-.Dd December 29, 1996
-.Os FreeBSD
-.Dt LOGIN_AUTH 3
-.Sh NAME
-.Nm authenticate
-.Nm auth_script
-.Nm auth_env
-.Nm auth_scan
-.Nm auth_rmfiles
-.Nm auth_checknologin
-.Nm auth_cat
-.Nm auth_ttyok
-.Nm auth_hostok
-.Nm auth_timesok
-.Nd Authentication style support library for login class capabilities database.
-.Sh SYNOPSIS
-.Fd #include <sys/types.h>
-.Fd #include <login_cap.h>
-.Ft int
-.Fn authenticate "const char *name" "const char *classname" "const char *style" "const char *service"
-.Ft int
-.Fn auth_script "const char * path" ...
-.Ft int
-.Fn auth_env "void"
-.Ft int
-.Fn auth_scan "int ok"
-.Ft int
-.Fn auth_rmfiles "void"
-.Ft int
-.Fn auth_checknologin "login_cap_t *lc"
-.Ft int
-.Fn auth_cat "const char *file"
-.Ft int
-.Fn auth_ttyok "login_cap_t *lc" "const char *tty"
-.Ft int
-.Fn auth_hostok "login_cap_t *lc" "const char *hostname" "char const *ip"
-.Ft int
-.Fn auth_timesok "login_cap_t *lc" "time_t now"
-.Sh DESCRIPTION
-This set of functions support the login class authorisation style interface provided
-by
-.Xr login.conf 5 .
-
-.Sh RETURN VALUES
-.Sh SEE ALSO
-.Xr getcap 3 ,
-.Xr login_cap 3 ,
-.Xr login_class 3 ,
-.Xr login.conf 5 ,
-.Xr termcap 5
diff --git a/release/floppies/bin/Makefile b/release/floppies/bin/Makefile
deleted file mode 100644
index 15f5ebff4c19..000000000000
--- a/release/floppies/bin/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-# $Id: Makefile,v 1.1 1997/07/16 12:24:18 julian Exp $
-#
-SUBDIR= write_mfs_in_kernel dumpnlist
-
-.include <bsd.subdir.mk>
-
-
diff --git a/release/floppies/bin/doFS.sh b/release/floppies/bin/doFS.sh
deleted file mode 100644
index f0c2f2b189a3..000000000000
--- a/release/floppies/bin/doFS.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-:
-#set -ex
-
-VNDEVICE=vn0
-export BLOCKSIZE=512
-
-BOOTBLKDIR=$1 ; shift
-MNT=$1 ; shift
-FSSIZE=$1 ; shift
-FSPROTO=$1 ; shift
-FSINODE=$1 ; shift
-FSLABEL=$1 ; shift
-
-deadlock=20
-
-while true
-do
- rm -f fs-image
-
- if [ ! -b /dev/${VNDEVICE} -o ! -c /dev/r${VNDEVICE} ] ; then
- ( cd /dev && sh MAKEDEV ${VNDEVICE} )
- fi
-
- umount /dev/${VNDEVICE} 2>/dev/null || true
-
- umount ${MNT} 2>/dev/null || true
-
- vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
-
- dd of=fs-image if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null
- # this suppresses the `invalid primary partition table: no magic'
- awk 'BEGIN {printf "%c%c", 85, 170}' |\
- dd of=fs-image obs=1 seek=510 conv=notrunc 2>/dev/null
-
- vnconfig -s labels -c /dev/r${VNDEVICE} fs-image
-
- disklabel -Brw \
- -b ${BOOTBLKDIR}/boot1 \
- -s ${BOOTBLKDIR}/boot2 \
- /dev/r${VNDEVICE} minimum
-
- TPC=1
- CPD=1
- SPT=$(( 2 * $FSSIZE / 2))
- newfs -u ${SPT} -t ${TPC} -s $(( ${FSSIZE} * 2 )) -i ${FSINODE} -m 0 -o space /dev/r${VNDEVICE}c
-
- mount /dev/${VNDEVICE}c ${MNT}
-
- ( set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT} )
-
- df -ki /mnt
-
- set `df -ki /mnt | tail -1`
-
- umount ${MNT}
-
- fsck -p /dev/r${VNDEVICE}c < /dev/null
-
- vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true
-
- if [ $FSLABEL != "minimum" ] ; then
- echo ${FSSIZE} > fs-image.size
- break
- fi
-
- echo ">>> Filesystem is ${FSSIZE} K, $4 left"
- echo ">>> ${FSINODE} bytes/inode, $7 left"
- echo ">>> `expr ${FSSIZE} \* 1024 / ${FSINODE}`"
- echo ${FSSIZE} > fs-image.size
- break;
-done
diff --git a/release/floppies/bin/dumpnlist/Makefile b/release/floppies/bin/dumpnlist/Makefile
deleted file mode 100644
index 1149cadbbeb6..000000000000
--- a/release/floppies/bin/dumpnlist/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $Id: Makefile,v 1.1 1997/07/16 12:24:19 julian Exp $
-#
-PROG=dumpnlist
-NOMAN=yes
-
-.include <bsd.prog.mk>
-
-
diff --git a/release/floppies/bin/dumpnlist/dumpnlist.c b/release/floppies/bin/dumpnlist/dumpnlist.c
deleted file mode 100644
index 31f25c15879b..000000000000
--- a/release/floppies/bin/dumpnlist/dumpnlist.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <sys/types.h>
-#include <sys/fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <nlist.h>
-#include <stdio.h>
-
-struct nlist nl[] = {
- {"_isa_devtab_bio"},
- {"_isa_devtab_tty"},
- {"_isa_devtab_net"},
- {"_isa_devtab_null"},
- {"_isa_biotab_wdc"},
- {"_isa_biotab_fdc"},
- {"_eisadriver_set"},
- {"_eisa_dev_list"},
- {"_pcidevice_set"},
- {"_device_list"},
- {"_scbusses"},
- {"_scsi_cinit"},
- {"_scsi_dinit"},
- {"_scsi_tinit"},
- {""},
-};
-
-int
-main(int ac, char **av)
-{
- int i;
-
- i = nlist(av[1], nl);
- if (i == -1) {
- fprintf(stderr, "nlist returns error for %s\n", av[1]);
- perror("nlist");
- return 1;
- }
- printf("%d\n", sizeof(nl) / sizeof(struct nlist));
- for (i = 0; nl[i].n_name; i++) {
- printf("%s\n", nl[i].n_name);
- printf("%d %d %d %ld\n",
- nl[i].n_type, nl[i].n_other, nl[i].n_desc, nl[i].n_value);
- }
- return 0;
-}
diff --git a/release/floppies/bin/write_mfs_in_kernel/Makefile b/release/floppies/bin/write_mfs_in_kernel/Makefile
deleted file mode 100644
index cd65a8e75249..000000000000
--- a/release/floppies/bin/write_mfs_in_kernel/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $Id: Makefile,v 1.1 1997/07/16 12:24:20 julian Exp $
-#
-PROG=write_mfs_in_kernel
-NOMAN=yes
-
-.include <bsd.prog.mk>
-
-
diff --git a/release/floppies/bin/write_mfs_in_kernel/write_mfs_in_kernel.c b/release/floppies/bin/write_mfs_in_kernel/write_mfs_in_kernel.c
deleted file mode 100644
index b624ed6387d4..000000000000
--- a/release/floppies/bin/write_mfs_in_kernel/write_mfs_in_kernel.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
- * ----------------------------------------------------------------------------
- *
- * $Id: write_mfs_in_kernel.c,v 1.1 1997/07/16 12:24:21 julian Exp $
- *
- * This program patches a filesystem into a kernel made with MFS_ROOT
- * option.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <ufs/ffs/fs.h>
-
-main(int argc, char **argv)
-{
- unsigned char *buf_kernel, *buf_fs, *p,*q;
- int fd_kernel, fd_fs;
- struct stat st_kernel, st_fs;
- u_long l;
-
- if (argc < 3) {
- fprintf(stderr,"Usage:\n\t%s kernel fs\n");
- exit(2);
- }
- fd_kernel = open(argv[1],O_RDWR);
- if (fd_kernel < 0) { perror(argv[1]); exit(2); }
- fstat(fd_kernel,&st_kernel);
- fd_fs = open(argv[2],O_RDONLY);
- if (fd_fs < 0) { perror(argv[2]); exit(2); }
- fstat(fd_fs,&st_fs);
- buf_kernel = malloc(st_kernel.st_size);
- if (!buf_kernel) { perror("malloc"); exit(2); }
- buf_fs = malloc(st_fs.st_size);
- if (!buf_fs) { perror("malloc"); exit(2); }
- if (st_kernel.st_size != read(fd_kernel,buf_kernel,st_kernel.st_size))
- { perror(argv[1]); exit(2); }
- if (st_fs.st_size != read(fd_fs,buf_fs,st_fs.st_size))
- { perror(argv[2]); exit(2); }
- for(l=0,p=buf_kernel; l < st_kernel.st_size - st_fs.st_size ; l++,p++ )
- if(*p == 'M' && !strcmp(p,"MFS Filesystem goes here"))
- goto found;
- fprintf(stderr,"MFS filesystem signature not found in %s\n",argv[1]);
- exit(1);
- found:
- for(l=0,q= p + SBOFF; l < st_fs.st_size - SBOFF ; l++,q++ )
- if (*q)
- goto fail;
- memcpy(p+SBOFF,buf_fs+SBOFF,st_fs.st_size-SBOFF);
- lseek(fd_kernel,0L,SEEK_SET);
- if (st_kernel.st_size != write(fd_kernel,buf_kernel,st_kernel.st_size))
- { perror(argv[1]); exit(2); }
- exit(0);
- fail:
- l += SBOFF;
- fprintf(stderr,"Obstruction in kernel after %ld bytes (%ld Kbyte)\n",
- l, l/1024);
- fprintf(stderr,"Filesystem is %ld bytes (%ld Kbyte)\n",
- (u_long)st_fs.st_size, (u_long)st_fs.st_size/1024);
- exit(1);
-}
diff --git a/release/floppies/mk/crunch_fs.mk b/release/floppies/mk/crunch_fs.mk
deleted file mode 100644
index c6d51d19bf8e..000000000000
--- a/release/floppies/mk/crunch_fs.mk
+++ /dev/null
@@ -1,108 +0,0 @@
-###
-# $Id: crunch_fs.mk,v 1.1 1997/07/16 12:24:29 julian Exp $
-#
-# This is included to make a floppy that includes a crunch file
-#
-# Variables that control this mk include file.
-# TOP specifies where the top of the FreeBSD source tree is.. (*)
-# FS_DIRS directories to make on the fs (*)
-# STANDLINKS added symlinks to /stand on the fs
-# VERBATIM a directory that contains tree to be copied to the fs
-# FSSIZE defaults to 1440
-# FSLABEL defaults to fd1440
-# FSINODE defaults to 4000
-# FS_DEVICES devices to make on the fs (using MAKEDEV) (default = all)
-# ZIP decides if the installed cruch will also be gzip'd(def=true)
-# (*) = Mandatory
-###
-
-# If we weren't told, default to nothing
-.if ! defined( TOP )
-# define TOP!
-xxx
-.endif
-
-# mountpoint for filesystems.
-MNT= /mnt
-
-# other floppy parameters.
-FSSIZE?= 1440
-FSLABEL?= fd1440
-FSINODE?= 2000
-FS_DEVICES?= all
-ZIP?=true
-
-# Things which will get you into trouble if you change them
-TREE= tree
-LABELDIR= ${OBJTOP}/sys/i386/boot/biosboot
-
-clean:
- rm -rf tree fs-image fs-image.size step[0-9]
-
-.include <bsd.prog.mk>
-
-
-#
-# --==## Create a filesystem image ##==--
-#
-
-fs_image: ${TREE} step2 step3 step4 fs-image
-
-${TREE}: ${.CURDIR}/Makefile
- rm -rf ${TREE}
- mkdir -p ${TREE}
- cd ${TREE} && mkdir ${FS_DIRS}
- cd ${TREE} ; for i in ${STANDLINKS} ; \
- do \
- ln -s /stand $${i} ; \
- done
-
-step2: ${.CURDIR}/${CRUNCHDIRS} ${.CURDIR}/Makefile
-.if defined(CRUNCHDIRS)
- @cd ${.CURDIR} && $(MAKE) installCRUNCH DIR=${TREE}/stand ZIP=${ZIP}
-.endif
- touch step2
-
-step3: step2
-.if defined (FS_DEVICES)
- ( cd tree/dev && \
- cp ${TOP}/etc/etc.i386/MAKEDEV . && sh MAKEDEV ${FS_DEVICES} )
-.endif
- touch step3
-
-step4: step3
-.if defined(VERBATIM)
- A=`pwd`;cd ${.CURDIR}/${VERBATIM}; \
- find . \! \( -name CVS -and -prune \) -print |cpio -pdmuv $$A/tree
-.endif
- true || cp ${TOP}/etc/spwd.db tree/etc
- touch step4
-
-fs-image: step4
- sh -e ${SCRIPTDIR}/doFS.sh ${LABELDIR} ${MNT} ${FSSIZE} tree \
- ${FSINODE} ${FSLABEL}
- cp fs-image.size ${.CURDIR}
-
-
-.if defined(CRUNCHDIRS)
-installCRUNCH:
-.if !defined(DIR)
- @echo "DIR undefined in installCRUNCH" && exit 1
-.endif
-.if !defined(ZIP)
- @echo "ZIP undefined in installCRUNCH" && exit 1
-.endif
-.for CRUNCHDIR in ${CRUNCHDIRS}
- if ${ZIP} ; then \
- gzip -9 < ${CRUNCHDIR}/crunch > ${DIR}/.crunch ; \
- else \
- ln -f ${CRUNCHDIR}/crunch ${DIR}/.crunch ; \
- fi
- chmod 555 ${DIR}/.crunch
- for i in `crunchgen -l ${.CURDIR}/${CRUNCHDIR}/crunch.conf` ; do \
- ln -f ${DIR}/.crunch ${DIR}/$$i ; \
- done
- rm -f ${DIR}/.crunch
-.endfor
-.endif
-
diff --git a/release/floppies/mk/makecrunch.mk b/release/floppies/mk/makecrunch.mk
deleted file mode 100644
index 8f2d3e70afe1..000000000000
--- a/release/floppies/mk/makecrunch.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-SYSINSTALL= ${OBJTOP}/release/sysinstall/sysinstall
-
-NOCRYPT?= yes
-
-all: crunch
-
-crunch:
- -crunchgen ${.CURDIR}/crunch.conf
- ${MAKE} -f crunch.mk all NOCRYP=${NOCRYPT} \
- "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY"
-
-clean:
- rm -f *.o *.stub *.lo *_stub.c *.mk \
- crunch.cache \
- crunch.mk \
- crunch.c \
- crunch \
- .tmp_*
-
-install:
- @echo " No idea what to do to install yet"
-
-.include <bsd.prog.mk>
diff --git a/share/man/man4/man4.i386/pnp.4 b/share/man/man4/man4.i386/pnp.4
deleted file mode 100644
index e1bd71b9167c..000000000000
--- a/share/man/man4/man4.i386/pnp.4
+++ /dev/null
@@ -1,179 +0,0 @@
-.\" pnp(4) - manual page for the scanner device driver `asc'
-.\"
-.\"
-.\" Copyright (c) 1997 Luigi Rizzo
-.\"
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgements:
-.\" This product includes software developed by Luigi Rizzo.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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$
-.\"
-.Dd September 7, 1997
-.Dt PNP 4 i386
-.Os FreeBSD
-.Sh NAME
-.Nm pnp
-.Nd support for PnP devices
-.Sh SYNOPSIS
-.Cd controller pnp0
-.Sh DESCRIPTION
-Support for PnP devices in FreeBSD allows the user to override the
-configuration of PnP cards, and device drivers to fetch/modify
-parameters in the card's configuration space.
-.Pp
-The manual override mechanism requires the kernel to be compiled with
-.Cd options USERCONFIG.
-In this case, the kernel keeps a table of fixed size (20 entries as a
-default) where configuration data are held for PnP devices. Each
-PnP card can contain several independent devices (5 or 6 is not
-unusual).
-.Pp
-By booting the kernel with the
-.Dq Fl c
-flag, commands are available to
-modify the configuration of PnP cards. Commands start with the
-sequence:
-.Dl pnp CSN LDN
-where CSN and LDN are the Card Select Number and Logical Device Number
-associated to the device. Following this sequence any combination of
-the following commands can be used:
-
-.Bl -tag -width "mmmmmmmmmm""
-.It Dv irqN line
-Sets the irq line for interrupt 0 or 1 on the card. Line=0 means the line
-is unused.
-.It Dv drqN n
-Sets the drq channel used for DMA 0 or 1 on the card. Channel=4 means
-the channel is unused.
-.It Dv portN address
-Sets the base address for the N-th port's range (N=0..7). address=0
-means that the port is not used.
-.It Dv memN address
-Sets the base address for the N-th memory's range (N=0..3). address=0
-means that the memory range is not used.
-.It Dv bios
-Makes the PnP device use the configuration set by the BIOS. This
-is the default, and is generally ok if your BIOS has PnP support.
-If BIOS is used, then other parameters are ignored except "flags".
-.It Dv os
-Makes the PnP device to use the configuration specified in this entry.
-.It Dv enable
-Enables the PnP device.
-.It Dv disable
-Disables the PnP device.
-.It Dv delete
-Frees the entry used for the device, so that it can be used for
-another device with a different CSN/LDN pair.
-.It Dv flags
-Sets the value of a 32-bit flags entry which is passed to the device
-driver. This can be used to set special operation modes (e.g. SB vs. WSS
-emulation on some sound cards, etc.).
-.El
-.Pp
-The current content of the table can be printed using the
-.Ic ls
-command in userconfig. In addition to modifications done by the user,
-the table contains an entry for
-all logical devices accessed by a PnP device driver.
-.Pp
-Modifications to
-the table will be saved to the boot image on the filesystem by the
-.Xr dset 8
-command.
-.Pp
-.Sh DEVICE DRIVER SUPPORT FOR PnP
-PnP devices are automatically recognized and configured by the kernel.
-A PnP device is identified by the following data structure:
-.Bd -literal
-struct pnp_device {
- char *pd_name;
- char *(*pd_probe ) (u_long csn, u_long vendor_id);
- void (*pd_attach ) (u_long csn, u_long vend_id, char * name,
- struct isa_device *dev);
- u_long *pd_count;
- u_int *imask;
- struct isa_device dev;
-};
-.Ed
-.Pp
-The probe routine must check that the vendor_id passed is a
-recognized one, that any necessary devices on the card are enabled,
-and returns a NULL value in case of failure or a non-NULL value
-(generally a pointer to the device name) unpon success. In the probe
-routine, the function
-.Fn read_pnp_parms
-can be used to check that the logical devices are enabled.
-.Pp
-The attach routine should do all the necessary initialization, enable
-the PnP card to ISA accesses, fetch the configuration, and call the ISA
-driver for the device.
-.Pp
-The following routines and data structures can be used:
-.Bl -tag -width "xxxxxxxxxx"
-.It Dv struct pnp_cinfo
-This data structure (defined in /sys/i386/isa/pnp.h) contains all
-informations related to a PnP logical device.
-.It Fn read_pnp_parms "struct pnp_cinfo *d" "int ldn"
-This function returns the configuration of the requested
-logical device. It is not possible to specify a CSN since this function
-is only meant to be used during probe and attach routines
-.It Fn write_pnp_parms "struct pnp_cinfo *d" "int ldn"
-This function sets the parameters of the requested logical device. At
-the same time, it updates the entry in the kernel override table.
-Device drivers in general should
-.Em not
-modify the configuration of a device, since either the BIOS or the user
-(through userconfig) should know better what to do. In particular,
-device driver
-.Em should not enable
-a logical device which has
-been found disabled,
-since this would defeat the override mechanism in userconfig.
-Device
-drivers may disable a logical device, or a port range, etc, but should
-do so only that particular device or parameter is known to cause
-troubles.
-.It Fn enable_pnp_card void
-This function
-.Em must
-be used in the attach routine
-.Em only ,
-before accessing the card's ISA ports/memory address ranges.
-.El
-.Pp
-.Sh SEE ALSO
-.Xr dset 8
-.Sh BUGS
-There is no support for visual configuration of PnP devices.
-It would be nice to have commands in userconfig to fetch the
-configuration of PnP devices.
-.Sh AUTHOR
-PnP support was written by Luigi Rizzo, based on initial work done by
-Sujal Patel.
-.Sh HISTORY
-The
-.Nm
-driver first appeared in
-.Fx 2.2.5 .
diff --git a/share/man/man4/man4.i386/sb.4 b/share/man/man4/man4.i386/sb.4
deleted file mode 100644
index e6cda477118f..000000000000
--- a/share/man/man4/man4.i386/sb.4
+++ /dev/null
@@ -1,73 +0,0 @@
-.\" Man page for the SoundBlaster driver
-.\"
-.\" Copyright (c) 1997, Alex Zepeda.
-.\"
-.\" This documentation is public domain, and is provided without warranty.
-.\" Alex Zepeda, the "author" of this page is not resposible for any
-.\" consequences of any sort of manipulation of this document.
-.\"
-.\" SoundBlaster and any phrases including it's name are copyright
-.\" Creative Labs, not me.
-.\"
-.\" alex!@bigfoot.com
-.\"
-.Dd August 9, 1997
-.Dt SB 4 i386
-.Os FreeBSD
-.Sh NAME
-.Nm sb
-.Nd Creative Labs Sound Blaster and compatable device driver
-.Sh SYNOPSIS
-For all sound cards supported with the sb driver this is needed:
-.Cd controller snd0
-.Pp
-For the SoundBlaster, SB Pro, SoundBlaster16, or the Pro Audio Spectrum
- (emulating SB):
-.Cd "device sb0 at isa? port 0x220 irq 7 drq 1 vector sbintr"
-.Pp
-For specific SB16 support:
-.Cd "device sbxvi0 at isa? drq 5"
-.Pp
-For SoundBlaster 16 16 bit MIDI support:
-.Cd "device sbmidi0 at isa? port 0x300"
-.Pp
-To add Jazz16 suport:
-.Cd "options JAZZ16"
-.Pp
-To add support for the Logitech SoundMan Games:
-.Cd "options SM_GAMES"
-.Pp
-To add SG NX Pro mixer support:
-.Cd "options __SGNXPRO__"
-.Pp
-The OPL-2/3 is used in the SoundBlaster, SoundBlaster Pro, SB 16, and the
-Pro Audio Spectrum. For Yamaha OPL-2/OPL-3 FM support:
-.Cd "device opl0 at isa? port 0x388"
-.Sh DESCRIPTION
-This driver covers the SoundBlaster family of cards including the
-SoundBlaster 1.0 to the SoundBlaster 16/SoundBlaster 32. The awe driver
-provides AWE32/64 functionality. This driver is provied in FreeBSD
-versions 2.0-current through 3.0-current. You can also configure more
-then one card on a single DMA using the conflicts keyword in your
-configuration file. This is useful for boards with more then one type of
-emulation.
-.Sh BUGS
-Since the SB16 uses the same IRQ and addresses for
-the different drivers, some of the snd drivers will not be probed because
-the kernel thinks there is a conflict. This can be worked-around by
-using the "conflicts" keyword on the sb16's device line.
-.Pp
-Current version doesn't support mode changes without closing and reopening
-the device. Support for this feature may be implemented in a future
-version of this driver.
-.Sh SEE ALSO
-cdcontrol(1), cdplay(1), mixer(8)
-.Sh AUTHORS
-The original SoundBlaster DSP and SoundBlaster 16 MIDI, and Yamaha OPL-3
-drivers were written by Hannu Savolainen. The SoundBlaster 16 DSP code
-was written by J. Schuber (jsb@sth.ruhr-uni-bochum.de). Improvments to
-the OPL-3 drivers were made by Rob Hooft (hooft@chem.ruu.nl)
-.Sh HISTORY
-Sound Galaxy NX Pro support added by Hunyue Yau (Jan 6 1994). MV
-ProSonic/Jazz 16 16bit support added by JRA Gibson (April 1995). Audio
-Excel DSP 16 support added by Riccardo Facchetti (March 24 1995).
diff --git a/share/man/man8/diskless.8 b/share/man/man8/diskless.8
deleted file mode 100644
index 582e9a20bd09..000000000000
--- a/share/man/man8/diskless.8
+++ /dev/null
@@ -1,331 +0,0 @@
-.\" $NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp $
-.\"
-.\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt
-.\" 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. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
-.\"
-.Dd October 2, 1994
-.Dt DISKLESS 8
-.Os
-.Sh NAME
-.Nm diskless
-.Nd booting a system over the network
-.Sh DESCRIPTION
-The ability to boot a machine over the network is useful for
-.Xr diskless
-or
-.Xr dataless
-machines, or as a temporary measure while repairing or
-re-installing filesystems on a local disk.
-This file provides a general description of the interactions between
-a client and its server when a client is booting over the network.
-The general description is followed by specific instructions for
-configuring a server for diskless Sun clients.
-.Pp
-.Sh OPERATION
-When booting a system over the network, there are three
-phases of interaction between client and server:
-.Pp
-.Bl -tag -width 1.2 -compact
-.It 1.
-The PROM (or stage-1 bootstrap) loads a boot program.
-.It 2.
-The boot program loads a kernel.
-.It 3.
-The kernel does NFS mounts for root.
-.El
-.Pp
-Each of these phases are described in further detail below.
-.Pp
-In phase 1, the PROM loads a boot program. PROM designs
-vary widely, so this phase is inherently machine-specific.
-Sun machines use
-.Tn RARP
-to determine the client's
-.Tn IP
-address and then use
-.Tn TFTP
-to download a boot program from whoever sent the
-.Tn RARP
-reply. HP 300-series machines use the
-.Tn HP Remote Maintenance Protocol
-to download a boot program.
-Typical personal computers may load a
-network boot program either from diskette or
-using a special PROM on the network card.
-.Pp
-In phase 2, the boot program loads a kernel. Operation in
-this phase depends on the design of the boot program.
-(The design described here is the one used by Sun and NetBSD/hp300.)
-The boot program:
-.Pp
-.Bl -tag -width 2.2 -compact
-.It 2.1
-gets the client IP address using
-.Tn RARP .
-.It 2.2
-gets the client name and server
-.Tn IP
-address by broadcasting an
-.Tn RPC / BOOTPARAMS / WHOAMI
-request with the client IP address.
-.It 2.3
-gets the server path for this client's
-root using an
-.Tn RPC / BOOTPARAMS / GETFILE
-request with the client name.
-.It 2.4
-gets the root file handle by calling
-.Xr mountd 8
-with the server path for the client root.
-.It 2.5
-gets the kernel file handle by calling
-.Tn NFS
-lookup on the root file handle.
-.It 2.6
-loads the kernel using
-.Tn NFS
-read calls on the kernel file handle.
-.It 2.7
-transfers control to the kernel entry point.
-.El
-.Pp
-In phase 3, the kernel does NFS mounts for root.
-The kernel repeats much of the work done by the boot program
-because there is no standard way for the boot program to pass
-the information it gathered on to the kernel.
-The procedure used by the kernel is as follows:
-.Pp
-.Bl -tag -width 2.2 -compact
-.It 3.1
-The kernel finds a boot server using the same procedure
-as described in steps 2.1 and 2.2 above.
-.It 3.2
-The kernel gets the
-.Tn NFS
-file handle for root using the same procedure
-as described in steps 2.3 through 2.5 above.
-.It 3.3
-The kernel calls the
-.Tn NFS
-getattr function to get the last-modified time of the root
-directory, and uses it to check the system clock.
-.El
-.Sh CONFIGURATION
-Before a client can boot over the network,
-its server must be configured correctly.
-This example will demonstrate how a Sun client
-might be configured -- other clients should be similar.
-.Pp
-Assuming the client's hostname is to be
-"myclient",
-.Pp
-.Bl -tag -width 2.1 -compact
-.It 1.
-Add an entry to
-.Pa /etc/ethers
-corresponding to the client's ethernet address:
-.Bd -literal -offset indent -compact
-8:0:20:7:c5:c7 myclient
-.Ed
-This will be used by
-.Xr rarpd 8 .
-.Pp
-.It 2.
-Assign an IP address for myclient in your
-.Pa /etc/hosts
-or DNS database:
-.Bd -literal -offset indent -compact
-192.197.96.12 myclient
-.Ed
-.Pp
-.It 3.
-If booting a Sun machine, ensure that
-.Pa /etc/inetd.conf
-is configured to run
-.Xr tftpd 8
-in the directory
-.Pa /tftpboot .
-.Pp
-If booting an HP 300-series machine, ensure that
-.Pa /etc/rbootd.conf
-is configured properly to transfer the boot program to the client.
-An entry might look like this:
-.Bd -literal -offset indent -compact
-08:00:09:01:23:E6 SYS_UBOOT # myclient
-.Ed
-.Pp
-See the
-.Xr rbootd 8
-manual page for more information.
-.Pp
-.It 4.
-If booting a SPARC machine, install a copy of the appropriate diskless boot
-loader (such as
-.Pa /usr/mdec/boot )
-in the
-.Pa /tftpboot
-directory.
-Make a link such that the boot program is
-accessible by a file name composed of the client's IP address
-in HEX, a dot, and the architecture name (all upper case).
-For example:
-.Bd -literal -offset indent -compact
-# cd /tftpboot
-# ln -s boot C0C5600C.SUN4
-.Ed
-.Pp
-For a Sun3 machine, the name would be just C0C5600C
-(the sun3 PROM does not append the architecture name). The name
-used is architecture dependent, it simply has to match what the
-booting client's PROM wishes to it to be.
-If the client's PROM fails to fetch the expected file,
-.Xr tcpdump 8
-can be used to discover which filename the client is trying to read.
-.Pp
-If booting an HP 300-series machine, ensure that the network boot program
-.Pa SYS_UBOOT
-(which may be called
-.Pa uboot.lif
-before installation)
-is installed in the directory
-.Pa /usr/mdec/rbootd .
-
-.It 5.
-Add myclient to the bootparams database
-.Pa /etc/bootparams :
-.Bd -literal -offset indent -compact
-myclient root=server:/export/myclient/root
-.Ed
-.Pp
-.It 6.
-Build the swap file for myclient:
-.Bd -literal -offset indent -compact
-# mkdir /export/myclient
-# cd /export/myclient
-# dd if=/dev/zero of=swap bs=16k count=1024
-.Ed
-This creates a 16 Megabyte swap file.
-.Pp
-.It 7.
-Populate myclient's
-.Pa /
-filesystem on the server. How this is done depends on the
-client architecture and the version of the NetBSD distribution.
-It can be as simple as copying and modifying the server's root
-filesystem, or perhaps you need to get those files out of the
-standard binary distribution.
-.Pp
-Note that, unlike SunOS, you need to create a mount point for the
-client's swap:
-.Bd -literal -offset indent -compact
-# mkdir /export/myclient/root/swap
-.Ed
-.Pp
-.It 8.
-Export the required filesystems in
-.Pa /etc/exports :
-.Bd -literal -offset indent -compact
-/usr -ro myclient
-# for SunOS:
-# /export/myclient -rw=myclient,root=myclient
-# for NetBSD:
-/export/myclient -maproot=root -alldirs myclient
-.Ed
-.Pp
-If the server and client are of the same architecture, then the client
-can share the server's
-.Pa /usr
-filesystem (as is done above).
-If not, you must build a properly fleshed out
-.Pa /usr
-partition for the client in some other place.
-.Pp
-If your server was a sparc, and your client a sun3,
-you might create and fill
-.Pa /export/usr.sun3
-and then use the following
-.Pa /etc/exports
-lines:
-.Bd -literal -offset indent -compact
-/export/usr.sun3 -ro myclient
-/export/myclient -rw=myclient,root=myclient
-.Ed
-.Pp
-.It 9.
-Copy and customize at least the following files in
-.Pa /export/myclient/root :
-.Bd -literal -offset indent -compact
-# cd /export/myclient/root/etc
-# cp fstab.nfs fstab
-# cp /etc/hosts hosts
-# echo myclient > myname
-# echo 192.197.96.12 > hostname.le0
-.Ed
-.Pp
-Note that "le0" above should be replaced with the name of
-the network interface that the client will use for booting.
-.Pp
-.It 10.
-Correct the critical mount points and the swap file in the client's
-.Pa /etc/fstab
-(which will be
-.Pa /export/myclient/root/etc/fstab )
-ie.
-.Bd -literal -offset indent -compact
-myserver:/export/myclient/root / nfs rw 0 0
-myserver:/usr /usr nfs rw 0 0
-myserver:/export/myclient/swap none swap sw,nfsmntpt=/swap
-.Ed
-.Pp
-Note, you must specify the swap file in
-.Pa /etc/fstab
-or it will not be used!
-.El
-.Sh FILES
-.Bl -tag -width /usr/mdec/rbootd -compact
-.It Pa /etc/ethers
-Ethernet addresses of known clients
-.It Pa /etc/bootparams
-client root pathname
-.It Pa /etc/exports
-exported NFS mount points
-.It Pa /etc/rbootd.conf
-configuration file for HP Remote Boot Daemon
-.It Pa /tftpboot
-location of boot programs loaded by the Sun PROM
-.It Pa /usr/mdec/rbootd
-location of boot programs loaded by the HP Boot ROM
-.El
-.Sh "SEE ALSO"
-.Xr bootparams 5 ,
-.Xr ethers 5 ,
-.Xr exports 5 ,
-.Xr bootparamd 8 ,
-.Xr mountd 8 ,
-.Xr nfsd 8 ,
-.Xr rarpd 8 ,
-.Xr rbootd 8 ,
-.Xr reboot 8 ,
-.Xr tftpd 8
diff --git a/share/skel/dot.login_conf b/share/skel/dot.login_conf
deleted file mode 100644
index 9a933af2a360..000000000000
--- a/share/skel/dot.login_conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# $Id: dot.login,v 1.11 1997/08/15 23:41:24 ache Exp $
-#
-# see login.conf(5)
-#
-#me:\
-# :charset=iso-8859-1:\
-# :lang=de_DE.ISO_8859-1:
diff --git a/share/skel/dot.mail_aliases b/share/skel/dot.mail_aliases
deleted file mode 100644
index 43c8d4504b96..000000000000
--- a/share/skel/dot.mail_aliases
+++ /dev/null
@@ -1,13 +0,0 @@
-# $Id: dot.mailrc,v 1.4 1997/02/22 13:56:32 peter Exp $
-#
-# .mail_aliases - private mail aliases
-#
-# see also mail(1)
-#
-
-# FreeBSD Mailing lists aliases
-# alias freebsd-bugs freebsd-bugs@freebsd.org
-# alias freebsd-questions freebsd-questions@freebsd.org
-
-# an alias for your good friends
-# alias bicycle christoph gerhardt velophil zentralrad
diff --git a/share/skel/dot.shrc b/share/skel/dot.shrc
deleted file mode 100644
index 57103fe49a2e..000000000000
--- a/share/skel/dot.shrc
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: dot.profile,v 1.12 1997/07/15 09:37:02 charnier Exp $
-#
-# .shrc - bourne shell startup file
-#
-# This file will be used if the shell is invoked for interactive use and
-# the environment variable ENV is set to this file.
-#
-# see also sh(1), environ(7).
-#
-
-
-# file permissions: rwxr-xr-x
-#
-# umask 022
-
-# Uncomment next line to enable the builtin emacs(1) command line editor
-# in sh(1), e.g. C-a -> beginning-of-line.
-# set -o emacs
-
-
-# some useful aliases
-alias h='fc -l'
-alias j=jobs
-alias m=$PAGER
-alias ll='ls -laFo'
-alias l='ls -l'
-alias g='egrep -i'
-
-# # be paranoid
-# alias cp='cp -ip'
-# alias mv='mv -i'
-# alias rm='rm -i'
-
-
-# # set prompt: ``username@hostname$ ''
-# PS1="`whoami`@`hostname | sed 's/\..*//'`"
-# case `id -u` in
-# 0) PS1="${PS1}# ";;
-# *) PS1="${PS1}$ ";;
-# esac
-
-# search path for cd(1)
-# CDPATH=.:$HOME
diff --git a/share/syscons/fonts/iso02-8x14.fnt b/share/syscons/fonts/iso02-8x14.fnt
deleted file mode 100644
index a10765e1b1e9..000000000000
--- a/share/syscons/fonts/iso02-8x14.fnt
+++ /dev/null
@@ -1,83 +0,0 @@
-begin 644 iso02-8x14
-M`````````````````````'Z!I8&!O9F!@7X`````?O_;___#Y___?@``````
-M`&S^_O[^?#@0````````$#A\_GPX$````````!@\/.?GYQ@8/```````&#Q^
-M__]^&!@\```````````8/#P8`````/_______^?#P^?_____```````\9D)"
-M9CP```#______\.9O;V9P____P``'@X:,GC,S,S,>``````\9F9F9CP8?A@8
-M`````#XV/C`P,#!P\.``````?F9^9F9F9F[N[,``````&!C;/.<\VQ@8````
-M@,#@\/C^^/#@P(`````"!@X>/OX^'@X&`@`````8/'X8&!A^/!@``````&9F
-M9F9F9F8`9F8``````````````````````'S&8#ALQL9L.`S&?```````````
-M`/[^_OX`````&#Q^&!@8?CP8?@`````8/'X8&!@8&!@8`````!@8&!@8&!A^
-M/!@`````````&`S^#!@````````````P8/Y@,`````````````#`P,#^````
-M````````*&S^;"@``````````!`X.'Q\_OX`````````_OY\?#@X$```````
-M```````````````````8/#P\&!@8`!@8````QL;&1````````````````&QL
-M_FQL;/YL;```&!A\QL+`?`8&AL9\&!@`````PL8,&#!@QH8`````.&QL.';<
-MS,S,=@```#`P,&````````````````P8,#`P,#`P&`P`````,!@,#`P,#`P8
-M,`````````!F//\\9@```````````!@8?A@8`````````````````!@8&#``
-M`````````/X`````````````````````&!@````````"!@P8,&#`@``````X
-M;,;&UM;&QFPX`````!@X>!@8&!@8&'X`````?,8&#!@P8,#&_@````!\Q@8&
-M/`8&!L9\``````P</&S,_@P,#!X`````_L#`P/P&!@;&?``````X8,#`_,;&
-MQL9\`````/[&!@8,&#`P,#``````?,;&QGS&QL;&?`````!\QL;&?@8&!@QX
-M````````&!@````8&``````````8&````!@8,```````!@P8,&`P&`P&````
-M`````'X``'X``````````&`P&`P&#!@P8`````!\QL8,&!@8`!@8``````!\
-MQL;>WMS<P'P`````$#ALQL;^QL;&Q@````#\9F9F?&9F9F;\`````#QFPL#`
-MP,#"9CP`````^&QF9F9F9F9L^`````#^9F)H>&AB8F;^`````/YF8FAX:&!@
-M8/``````/&;"P,#>QL9F.@````#&QL;&_L;&QL;&`````#P8&!@8&!@8&#P`
-M````'@P,#`P,S,S,>`````#F9F9L>'AL9F;F`````/!@8&!@8&!B9OX`````
-MQN[^_M;&QL;&Q@````#&YO;^WL[&QL;&`````'S&QL;&QL;&QGP`````_&9F
-M9GQ@8&!@\`````!\QL;&QL;&UMY\#`X``/QF9F9\;&9F9N8`````?,;&8#@,
-M!L;&?`````!^?EH8&!@8&!@\`````,;&QL;&QL;&QGP`````QL;&QL;&QFPX
-M$`````#&QL;&UM;6_NYL`````,;&;'PX.'QLQL8`````9F9F9CP8&!@8/```
-M``#^QH8,&#!@PL;^`````#PP,#`P,#`P,#P``````(#`X'`X'`X&`@`````\
-M#`P,#`P,#`P\```0.&S&``````````````````````````````#_,#`8````
-M`````````````````'@,?,S,S'8`````X&!@>&QF9F9F?`````````!\QL#`
-MP,9\`````!P,##QLS,S,S'8`````````?,;^P,#&?``````<-C(P>#`P,#!X
-M`````````';,S,S,?`S,>```X&!@;'9F9F9FY@`````8&``X&!@8&!@\````
-M``8&``X&!@8&!F9F/```X&!@9FQX>&QFY@`````X&!@8&!@8&!@\````````
-M`.S^UM;6UL8`````````W&9F9F9F9@````````!\QL;&QL9\`````````-QF
-M9F9F?&!@\```````=LS,S,Q\#`P>``````#<=F9@8&#P`````````'S&8#@,
-MQGP`````$#`P_#`P,#`V'`````````#,S,S,S,QV`````````&9F9F9F/!@`
-M````````QL;6UM;^;`````````#&;#@X.&S&`````````,;&QL;&?@8,^```
-M````_LP8,&#&_@`````.&!@8<!@8&!@.`````!@8&!@`&!@8&!@`````<!@8
-M&`X8&!@8<`````!VW```````````````````$#ALQL;&_@``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````$#ALQL;^QL;&S@P&`,9\`````````````````'@P/#@P</"R-GX`
-M````````QGS&QL9\Q@``V'``\&!@8&!@8F;^```,&`!\QL9@.`S&QGP```!\
-MQF`X;,;&;#C.QGP``&QL``````````````!L.`!\QL9@.`P&QGP`````?,;&
-M8#@,!L;&?!AP9CP8?GY:&!@8&!@\````#!@`_H8,&#!@POX```````````!^
-M`````````&8\`/Z&#!@P8,+^```0.!#^A@P8,&#"POX````X;&PX````````
-M``````````!X#'S,S,QV#`8``````````````#`P'```.!@>'!@X>-@8/```
-M``P8,```````````````'NQ@8&!@8&!@8/``````#!@`?,9@.`S&?````&PX
-M`````````````````````````````!@8<```;#@`?,9@.`S&?`````````!\
-MQF`X#,9\&'AL.``0,##\,#`P-AP`````&#``_LP8,&#&_@```#9LV```````
-M`````````&PX`/[,&#!@QOX`````$#@0_LP8,&#&_@``#!@`_&9F9GQL9F;F
-M```,&``0.&S&QO[&QL8``#AL`!`X;,;&_L;&Q@``QGP`$#ALQL;^QL;&````
-MQ@`0.&S&QO[&QL8`````]FQ@8&!@8&)F_@````P8`#QFPL#`PF8\`````#QF
-MPL#`P,)F/`P&?&PX`#QFPL#`P,)F/````#!@`/YF8GA@8&;^`````/YF8FAX
-M:&)B9OX8'`!L`/YF8FAX:&)F_@``;#@`_F9B:'AH8F;^```,&``\&!@8&!@8
-M&#P``#QF`#P8&!@8&!@8/```S'@`^&QF9F9F9FSX`````/AL9F;V]F9F;/@`
-M`!@P`,;F]O[>SL;&Q@``;#@`QN;V_M[.QL;&```8,`!\QL;&QL;&QGP``#AL
-M`'S&QL;&QL;&?````#9L`'S&QL;&QL9\````Q@!\QL;&QL;&QGP`````````
-M`&8\&#QF````;#@`_&9F9GQL9F;F```X;#C&QL;&QL;&QGP``!@P`,;&QL;&
-MQL;&?```-FP`QL;&QL;&QL9\````Q@#&QL;&QL;&QGP```P8`&9F9F8\&!@8
-M/`````!^?EH8&!@8&!@\##@``'C,S,S8S,;&QLP````,&#``W'9F8&!@\```
-M`!@P8`!X#'S,S,QV````$#AL`'@,?,S,S'8`````S'@`>`Q\S,S,=@````#,
-M``!X#'S,S,QV````!NQ@8&!@8&!@8/`````,&#``?,;`P,#&?``````````\
-M9F!@9CP,!CP``&PX`'S&P,#`QGP````,&#``?,;^P,#&?`````````!\QO[`
-MP,9\&!P``,8``'S&_L#`QGP`````;#@`?,;^P,#&?`````P8,``X&!@8&!@\
-M````&#QF`#@8&!@8&#P```#8?"P,/&S,S,S,=@`````,?GX,/&S,S,QV````
-M`!@P`-QF9F9F9F8`````;#@`W&9F9F9F9@```!@P8`!\QL;&QL9\````$#AL
-M`'S&QL;&QGP`````-FP`?,;&QL;&?`````#&``!\QL;&QL9\````````&!@`
-M?@`8&```````;#@`W'9F8&!@\````'C,>`#,S,S,S,QV````&#!@`,S,S,S,
-MS'8`````;-@`S,S,S,S,=@````#,``#,S,S,S,QV````#!@P`,;&QL;&?@8,
-=^```$#`P_#`P,#`V'`PX`!@8``````````````!V
-`
-end
diff --git a/share/syscons/fonts/iso02-8x16.fnt b/share/syscons/fonts/iso02-8x16.fnt
deleted file mode 100644
index a28fcc372817..000000000000
--- a/share/syscons/fonts/iso02-8x16.fnt
+++ /dev/null
@@ -1,95 +0,0 @@
-begin 644 iso02-8x16
-M````````````````````````?H&E@8&]F8&!?@```````'[_V___P^?__WX`
-M`````````&S^_O[^?#@0```````````0.'S^?#@0```````````8/#SGY^<8
-M&#P`````````&#Q^__]^&!@\`````````````!@\/!@```````#________G
-MP\/G________```````\9D)"9CP``````/______PYF]O9G#______\``!X.
-M&C)XS,S,S'@````````\9F9F9CP8?A@8````````/C8^,#`P,'#PX```````
-M`'YF?F9F9F9N[NS`````````&!C;/.<\VQ@8``````"`P.#P^/[X\.#`@```
-M`````@8.'C[^/AX.!@(````````8/'X8&!A^/!@`````````9F9F9F9F9@!F
-M9@```````````````````````````'S&8#ALQL9L.`S&?```````````````
-M_O[^_@```````!@\?A@8&'X\&'X````````8/'X8&!@8&!@8````````&!@8
-M&!@8&'X\&````````````!@,_@P8```````````````P8/Q@,```````````
-M`````,#`P/X``````````````"AL_FPH`````````````!`X.'Q\_OX`````
-M``````#^_GQ\.#@0```````````````````````````````8/#P\&!@8`!@8
-M``````#&QL9$``````````````````!L;/YL;&S^;&P`````&!A\QL+`?`8&
-MAL9\&!@```````#"Q@P8,&#&A@```````#AL;#AVW,S,S'8``````#`P,&``
-M````````````````#!@P,#`P,#`8#````````#`8#`P,#`P,&#``````````
-M``!F//\\9@``````````````&!A^&!@````````````````````8&!@P````
-M`````````/X````````````````````````8&````````````@8,&#!@P(``
-M```````X;,;&UM;&QFPX````````&#AX&!@8&!@8?@```````'S&!@P8,&#`
-MQOX```````!\Q@8&/`8&!L9\````````#!P\;,S^#`P,'@```````/[`P,#\
-M!@8&QGP````````X8,#`_,;&QL9\````````_L8&#!@P,#`P,````````'S&
-MQL9\QL;&QGP```````!\QL;&?@8&!@QX```````````8&````!@8````````
-M````&!@````8&#``````````!@P8,&`P&`P&````````````?@``?@``````
-M``````!@,!@,!@P8,&````````!\QL8,&!@8`!@8`````````'S&QM[>WMS`
-M?````````!`X;,;&_L;&QL8```````#\9F9F?&9F9F;\````````/&;"P,#`
-MP,)F/````````/AL9F9F9F9F;/@```````#^9F)H>&A@8F;^````````_F9B
-M:'AH8&!@\````````#QFPL#`WL;&9CH```````#&QL;&_L;&QL;&````````
-M/!@8&!@8&!@8/````````!X,#`P,#,S,S'@```````#F9F9L>'AL9F;F````
-M````\&!@8&!@8&)F_@```````,;N_O[6QL;&QL8```````#&YO;^WL[&QL;&
-M````````?,;&QL;&QL;&?````````/QF9F9\8&!@8/````````!\QL;&QL;&
-MUMY\#`X`````_&9F9GQL9F9F]@```````'S&QF`X#`;&QGP```````!^?EH8
-M&!@8&!@\````````QL;&QL;&QL;&?````````,;&QL;&QL9L.!````````#&
-MQL;&UM;6_NYL````````QL9L?#@X?&S&Q@```````&9F9F8\&!@8&#P`````
-M``#^QH8,&#!@PL;^````````/#`P,#`P,#`P/`````````"`P.!P.!P.!@(`
-M```````\#`P,#`P,#`P\`````!`X;,8`````````````````````````````
-M````_P``,#`8````````````````````````>`Q\S,S,=@```````.!@8'AL
-M9F9F9GP```````````!\QL#`P,9\````````'`P,/&S,S,S,=@``````````
-M`'S&_L#`QGP````````<-C(P>#`P,#!X````````````=LS,S,S,?`S,>```
-M`.!@8&QV9F9F9N8````````8&``X&!@8&!@\````````!@8`#@8&!@8&!F9F
-M/````.!@8&9L>'AL9N8````````X&!@8&!@8&!@\````````````[/[6UM;6
-MQ@```````````-QF9F9F9F8```````````!\QL;&QL9\````````````W&9F
-M9F9F?&!@\````````';,S,S,S'P,#!X```````#<=F9@8&#P````````````
-M?,9@.`S&?````````!`P,/PP,#`P-AP```````````#,S,S,S,QV````````
-M````S,S,S,QX,````````````,;&UM;6_FP```````````#&;#@X.&S&````
-M````````QL;&QL;&?@8,^````````/[,&#!@QOX````````.&!@8<!@8&!@.
-M````````&!@8&``8&!@8&````````'`8&!@.&!@8&'````````!VW```````
-M```````````````0.&S&QL;^````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````!`X;,;&_L;&QL88,!X``,9\````````````````````
-M\&1L>'#@X&)F_@```````````,9\QL;&?,8``````!ON8&!@8&!@8F;^````
-M`!@P`'S&QF`X#,;&?```````?,9@.&S&QFPX#,9\`````&QL````````````
-M`````&PX`'S&P&`X#`;&?````````'S&QF`X#`;&QGP8#'@`9CP`?GY:&!@8
-M&!@\`````!@P`/Z&#!@P8,+&_@``````````````?@``````````;#@`_L:,
-M&#!@PL;^`````!@8`/Z&#!@P8,+&_@``````.&QL.```````````````````
-M``!X#'S,S,QV&#`>`````````````````#!@/````#@:'AP8.'A8&#P`````
-M``P8,``````````````````;[F!@8&!@8&!@\`````````P8`'S&8#@,QGP`
-M`````&PX`````````````````````````````````!@,>````&PX`'S&8#@,
-MQGP```````````!\QF`X#,9\&`QX`&PX`!`P,/PP,#`V'```````#!@P`/[,
-M&#!@QOX``````#9LV```````````````````;#@`_LP8,&#&_@```````!@8
-M`/[,&#!@QOX`````&#``_&9F9GQL9F;V`````!@P`!`X;,;&_L;&Q@`````X
-M;``0.&S&QO[&QL8`````QGP`$#ALQL;^QL;&``````#&$#ALQL;^QL;&Q@``
-M`````/9L8&!@8&!B9OX`````#!@`/&;"P,#`PF8\````````/&;"P,#`P,)F
-M/`P&?`!F/``\9L+`P,#"9CP`````&#!@`/YF8'A@8F;^````````_F9B:'AH
-M8&)F_A@P'@!L``#^9F)H>&AB9OX`````;#@`_F9B:'AH8F;^``````P8`#P8
-M&!@8&!@8/``````\9@`\&!@8&!@8&#P`````;#@`^&QF9F9F9FSX````````
-M^&QF9O9F9F9L^``````,&`#&YO;^WL[&QL8`````;#@`QN;V_M[.QL;&````
-M``P8`'S&QL;&QL;&?``````X;`!\QL;&QL;&QGP`````-FP`?,;&QL;&QL9\
-M``````#&`'S&QL;&QL;&?`````````````#&;#ALQ@``````;#@`_&9F9GQL
-M9F;V`````#AL.`#&QL;&QL;&?``````8,`#&QL;&QL;&QGP`````-FP`QL;&
-MQL;&QL9\``````#&`,;&QL;&QL;&?``````,&`!F9F9F/!@8&#P```````!^
-M?EH8&!@8&!@\&`QX````>,S,S-C,QL;&S```````#!@P`-QV9F!@8/``````
-M`!@P8`!X#'S,S,QV```````0.&P`>`Q\S,S,=@```````,9\`'@,?,S,S'8`
-M``````#,``!X#'S,S,QV````````YFQ@8&!@8&!@\```````#!@P`'S&P,#`
-MQGP```````````!\QL#`P,9\&`QX````;#@`?,;`P,#&?```````#!@P`'S&
-M_L#`QGP```````````!\QO[`P,9\,&`\````Q@``?,;^P,#&?````````&8\
-M`'S&_L#`QGP```````P8,``X&!@8&!@\```````8/&8`.!@8&!@8/`````!L
-M.``<#`P\;,S,S'8````````,#'X,/&S,S,QV```````,&#``W&9F9F9F9@``
-M`````&PX`-QF9F9F9F8``````!@P8`!\QL;&QL9\```````0.&P`?,;&QL;&
-M?````````#9L`'S&QL;&QGP```````#&``!\QL;&QL9\```````````8&`!^
-M`!@8`````````&PX`-QV9F!@8/```````'C,>`#,S,S,S,QV```````8,&``
-MS,S,S,S,=@```````#9L`,S,S,S,S'8```````#,``#,S,S,S,QV```````,
-M&#``QL;&QL;&?@8,^````!`P,/PP,#`P-AP8#'@``!@8````````````````
-!`#``
-`
-end
diff --git a/share/syscons/fonts/iso02-8x8.fnt b/share/syscons/fonts/iso02-8x8.fnt
deleted file mode 100644
index 449beb564c75..000000000000
--- a/share/syscons/fonts/iso02-8x8.fnt
+++ /dev/null
@@ -1,49 +0,0 @@
-begin 644 iso02-8x8
-M``````````!^@:6!O9F!?G[_V__#Y_]^;/[^_GPX$``0.'S^?#@0`#A\./[^
-MUA`X$!`X?/Y\$#@``!@\/!@``/__Y\/#Y___`#QF0D)F/`#_PYF]O9G#_P\'
-M#WW,S,QX/&9F9CP8?A@_,S\P,'#PX']C?V-C9^;`&-L\Y^<\VQB`X/C^^."`
-M``(./OX^#@(`&#Q^&!A^/!AF9F9F9@!F````````````/F,X;&PXS'@`````
-M?GY^`!@\?AA^/!C_&#Q^&!@8&``8&!@8?CP8```8#/X,&````#!@_F`P````
-M`,#`P/X````D9O]F)````!@\?O__````__]^/!@`````````````,'AX,#``
-M,`!L;&P``````&QL_FS^;&P`,'S`>`SX,```QLP8,&;&`#AL.';<S'8`8&#`
-M```````8,&!@8#`8`&`P&!@8,&```&8\_SQF````,##\,#``````````,#!@
-M````_````````````#`P``8,&#!@P(``?,;&UL;&?``P<#`P,##\`'C,##A@
-MS/P`>,P,.`S,>``</&S,_@P>`/S`^`P,S'@`.&#`^,S,>`#\S`P8,#`P`'C,
-MS'C,S'@`>,S,?`P8<```,#```#`P```P,```,#!@&#!@P&`P&````/P``/P`
-M`&`P&`P8,&``>,P,&#``,`!\QM[>WL!X`#!XS,S\S,P`_&9F?&9F_``\9L#`
-MP&8\`/AL9F9F;/@`_F)H>&AB_@#^8FAX:&#P`#QFP,#.9CX`S,S,_,S,S`!X
-M,#`P,#!X`!X,#`S,S'@`YF9L>&QFY@#P8&!@8F;^`,;N_O[6QL8`QN;VWL[&
-MQ@`X;,;&QFPX`/QF9GQ@8/``>,S,S-QX'`#\9F9\;&;F`'C,8#`8S'@`_+0P
-M,#`P>`#,S,S,S,S\`,S,S,S,>#``QL;&UO[NQ@#&QFPX.&S&`,S,S'@P,'@`
-M_L:,&#)F_@!X8&!@8&!X`,!@,!@,!@(`>!@8&!@8>``0.&S&````````````
-M``#_,#`8`````````'@,?,QV`.!@8'QF9MP```!XS,#,>``<#`Q\S,QV````
-M>,S\P'@`.&Q@\&!@\````';,S'P,^.!@;'9F9N8`,`!P,#`P>``,``P,#,S,
-M>.!@9FQX;.8`<#`P,#`P>````,S^_M;&````^,S,S,P```!XS,S,>````-QF
-M9GQ@\```=LS,?`P>``#<=F9@\````'S`>`SX`!`P?#`P-!@```#,S,S,=@``
-M`,S,S'@P````QM;^_FP```#&;#ALQ@```,S,S'P,^```_)@P9/P`'#`PX#`P
-M'``8&!@8&!@8`.`P,!PP,.``=MP````````0*$2"@H+^````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````#ALQO[&UA@.QGP```````!@
-M;'AP8.!^``!"/&9F/$(`]MS`P,#`_@`,&'[`?`;\`#QF.&QL.,QX9@``````
-M``!L.'[@.`[\`'C,8#`8S'@PS'C\,#`P,``,&/X,,&#^`````#P`````9CS^
-M#!A@_@`8_L8,,,;^`#AL;#@```````!X#'S,=@\````````0'#`V/#@P<-P`
-M#!@```````#VW,#`P,!X``P8/F`\!GP`V'`````````````````$'&PX?$`X
-M!'P```!\P'@,^#C,>##\,#`>``P8`'X,,'X`9LP```````!F/`!^##!^```8
-M`'P8,'P`#!C\QOS8S``,&'S&_L;&`'R"?,;^QL8`QGQ\QO[&Q@#&.&S&_L;&
-M`,S8P,#`P/X`#!A\QL#&?``\9L#`9CP,.&8\?,;`QGP`#!C\8'A@_`#^P,#X
-MP,#^',P`_&!X8/P`S'C^P/C`_@`8,'@P,#!X`'B$>#`P,'@`S'C\9F9F_`!\
-M9F;V9F9\``P8YO;>SL8`)!CF]M[.Q@`,&'S&QL9\`'R"?,;&QGP`9LQ\QL;&
-M?`#&?,;&QL9\``#&;#ALQ@``V'#\QOS8S``0*-;&QL9\``P8QL;&QGP`9LS&
-MQL;&?`#&`,;&QL9\``S>QF8\&#``?A@8&!@8(#@`>,SXS/C`P!@PSO#@P,``
-M#!AX#'S,?@!XA'@,?,QV`,QX>`Q\S'8`S`!X#'S,?@#,V,#`P,!X`!@P>,S`
-MS'@```!XS,#,>!AF/#QF8&8\`!@P>,S\P'@```!XS/S`>!S,`'C,_,!X`,QX
-M>,S\P'@`#!@X&!@8/`!PB'`P,#!X`)9F!G[&QGX`##X,?,S,=@`,&-SFQL;&
-M`&8\W.;&QL8```P8>,S,>`!XS`!XS,QX``!FS'C,S'@`S`!XS,S,>``8&`!^
-M`!@8`-APSMC@P,``,,PPS,S,=@``&##,S,Q^`&;,`,S,S'8`S`#,S,S,=@`,
-7&,;&9CX,>#!X,#`P.!@>&`````````#,
-`
-end
diff --git a/sys/i386/include/asm.h b/sys/i386/include/asm.h
deleted file mode 100644
index d700579696a4..000000000000
--- a/sys/i386/include/asm.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- * from: @(#)DEFS.h 5.1 (Berkeley) 4/23/90
- * $Id: asm.h,v 1.1 1997/03/09 10:39:15 bde Exp $
- */
-
-#include <sys/cdefs.h>
-
-#ifdef PIC
-#define PIC_PROLOGUE \
- pushl %ebx; \
- call 1f; \
-1: \
- popl %ebx; \
- addl $_GLOBAL_OFFSET_TABLE_+[.-1b],%ebx
-#define PIC_EPILOGUE \
- popl %ebx
-#define PIC_PLT(x) x@PLT
-#define PIC_GOT(x) x@GOT(%ebx)
-#define PIC_GOTOFF(x) x@GOTOFF(%ebx)
-#else
-#define PIC_PROLOGUE
-#define PIC_EPILOGUE
-#define PIC_PLT(x) x
-#define PIC_GOT(x) x
-#define PIC_GOTOFF(x) x
-#endif
-
-/*
- * CNAME and HIDENAME manage the relationship between symbol names in C
- * and the equivalent assembly language names. CNAME is given a name as
- * it would be used in a C program. It expands to the equivalent assembly
- * language name. HIDENAME is given an assembly-language name, and expands
- * to a possibly-modified form that will be invisible to C programs.
- */
-#if defined(__ELF__) /* { */
-#define CNAME(csym) csym
-#define HIDENAME(asmsym) __CONCAT(.,asmsym)
-#else /* } { */
-#define CNAME(csym) __CONCAT(_,csym)
-#define HIDENAME(asmsym) asmsym
-#endif /* } */
-
-
-/* XXX should use align 4,0x90 for -m486. */
-#define _START_ENTRY .text; .align 2,0x90;
-#if 0
-/* Data is not used, except perhaps by non-g prof, which we don't support. */
-#define _MID_ENTRY .data; .align 2; 8:; .long 0; \
- .text; lea 8b,%eax;
-#else
-#define _MID_ENTRY
-#endif
-
-#ifdef PROF
-
-#define ALTENTRY(x) _START_ENTRY \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x):; \
- _MID_ENTRY \
- call HIDENAME(mcount); jmp 9f
-
-#define ENTRY(x) _START_ENTRY \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x):; \
- _MID_ENTRY \
- call HIDENAME(mcount); 9:
-
-
-#define ALTASENTRY(x) _START_ENTRY \
- .globl x; .type x,@function; x:; \
- _MID_ENTRY \
- call HIDENAME(mcount); jmp 9f
-
-#define ASENTRY(x) _START_ENTRY \
- .globl x; .type x,@function; x:; \
- _MID_ENTRY \
- call HIDENAME(mcount); 9:
-
-#else /* !PROF */
-
-#define ENTRY(x) _START_ENTRY .globl CNAME(x); .type CNAME(x),@function; \
- CNAME(x):
-#define ALTENTRY(x) ENTRY(x)
-
-#define ASENTRY(x) _START_ENTRY .globl x; .type x,@function; x:
-#define ALTASENTRY(x) ASENTRY(x)
-
-#endif
-
-/*
- * This header is currently only used in lib/msun/i387.
- * Use it to generate code to select between the generic math functions
- * and the i387 ones.
- */
-#undef ENTRY
-#define ANAME(x) CNAME(__CONCAT(__i387_,x))
-#define ASELNAME(x) CNAME(__CONCAT(__arch_select_,x))
-#define AVECNAME(x) CNAME(__CONCAT(__arch_,x))
-#define GNAME(x) CNAME(__CONCAT(__generic_,x))
-
-/* Don't bother profiling this. */
-#ifdef PIC
-#define ARCH_DISPATCH(x) \
- _START_ENTRY; \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ; \
- PIC_PROLOGUE; \
- movl PIC_GOT(AVECNAME(x)),%eax; \
- PIC_EPILOGUE; \
- jmpl *(%eax)
-
-#define ARCH_SELECT(x) _START_ENTRY; \
- .type ASELNAME(x),@function; \
- ASELNAME(x): \
- PIC_PROLOGUE; \
- call PIC_PLT(CNAME(__get_hw_float)); \
- testl %eax,%eax; \
- movl PIC_GOT(ANAME(x)),%eax; \
- jne 8f; \
- movl PIC_GOT(GNAME(x)),%eax; \
- 8: \
- movl PIC_GOT(AVECNAME(x)),%edx; \
- movl %eax,(%edx); \
- PIC_EPILOGUE; \
- jmpl *%eax
-#else /* !PIC */
-#define ARCH_DISPATCH(x) \
- _START_ENTRY; \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ; \
- jmpl *AVECNAME(x)
-
-#define ARCH_SELECT(x) _START_ENTRY; \
- .type ASELNAME(x),@function; \
- ASELNAME(x): \
- call CNAME(__get_hw_float); \
- testl %eax,%eax; \
- movl $ANAME(x),%eax; \
- jne 8f; \
- movl $GNAME(x),%eax; \
- 8: \
- movl %eax,AVECNAME(x); \
- jmpl *%eax
-#endif /* PIC */
-
-#define ARCH_VECTOR(x) .data; .align 2; \
- .globl AVECNAME(x); \
- .type AVECNAME(x),@object; \
- .size AVECNAME(x),4; \
- AVECNAME(x): .long ASELNAME(x)
-
-#ifdef PROF
-
-#define ALTENTRY(x) ENTRY(x); jmp 9f
-#define ENTRY(x) ARCH_VECTOR(x); ARCH_SELECT(x); ARCH_DISPATCH(x); \
- _START_ENTRY; \
- .globl ANAME(x); .type ANAME(x),@function; ANAME(x):; \
- call HIDENAME(mcount); 9:
-
-#else /* !PROF */
-
-#define ALTENTRY(x) ENTRY(x)
-#define ENTRY(x) ARCH_VECTOR(x); ARCH_SELECT(x); ARCH_DISPATCH(x); \
- _START_ENTRY; \
- .globl ANAME(x); .type ANAME(x),@function; ANAME(x):
-
-#endif /* PROF */
-
-#ifndef RCSID
-#define RCSID(a)
-#endif
diff --git a/sys/i386/include/elf.h b/sys/i386/include/elf.h
deleted file mode 100644
index 34478e787169..000000000000
--- a/sys/i386/include/elf.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*-
- * Copyright (c) 1996-1997 John D. Polstra.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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: elf.h,v 1.1 1997/05/21 23:07:28 jdp Exp $
- */
-
-#ifndef _MACHINE_ELF_H_
-#define _MACHINE_ELF_H_ 1
-
-/*
- * ELF definitions for the i386 architecture.
- */
-
-#include <sys/elf32.h> /* Definitions common to all 32 bit architectures. */
-
-/*
- * Auxiliary vector entries for passing information to the interpreter.
- *
- * The i386 supplement to the SVR4 ABI specification names this "auxv_t",
- * but POSIX lays claim to all symbols ending with "_t".
- */
-
-typedef struct { /* Auxiliary vector entry on initial stack */
- int a_type; /* Entry type. */
- union {
- long a_val; /* Integer value. */
- void *a_ptr; /* Address. */
- void (*a_fcn)(void); /* Function pointer (not used). */
- } a_un;
-} Elf32_Auxinfo;
-
-/* Values for a_type. */
-#define AT_NULL 0 /* Terminates the vector. */
-#define AT_IGNORE 1 /* Ignored entry. */
-#define AT_EXECFD 2 /* File descriptor of program to load. */
-#define AT_PHDR 3 /* Program header of program already loaded. */
-#define AT_PHENT 4 /* Size of each program header entry. */
-#define AT_PHNUM 5 /* Number of program header entries. */
-#define AT_PAGESZ 6 /* Page size in bytes. */
-#define AT_BASE 7 /* Interpreter's base address. */
-#define AT_FLAGS 8 /* Flags (unused for i386). */
-#define AT_ENTRY 9 /* Where interpreter should transfer control. */
-
-/*
- * The following non-standard values are used for passing information
- * from John Polstra's testbed program to the dynamic linker. These
- * are expected to go away soon.
- *
- * Unfortunately, these overlap the Linux non-standard values, so they
- * must not be used in the same context.
- */
-#define AT_BRK 10 /* Starting point for sbrk and brk. */
-#define AT_DEBUG 11 /* Debugging level. */
-
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
-#define AT_NOTELF 10 /* Program is not ELF ?? */
-#define AT_UID 11 /* Real uid. */
-#define AT_EUID 12 /* Effective uid. */
-#define AT_GID 13 /* Real gid. */
-#define AT_EGID 14 /* Effective gid. */
-
-#define AT_COUNT 15 /* Count of defined aux entry types. */
-
-/*
- * Relocation types.
- */
-
-#define R_386_NONE 0 /* No relocation. */
-#define R_386_32 1 /* Add symbol value. */
-#define R_386_PC32 2 /* Add PC-relative symbol value. */
-#define R_386_GOT32 3 /* Add PC-relative GOT offset. */
-#define R_386_PLT32 4 /* Add PC-relative PLT offset. */
-#define R_386_COPY 5 /* Copy data from shared object. */
-#define R_386_GLOB_DAT 6 /* Set GOT entry to data address. */
-#define R_386_JMP_SLOT 7 /* Set GOT entry to code address. */
-#define R_386_RELATIVE 8 /* Add load address of shared object. */
-#define R_386_GOTOFF 9 /* Add GOT-relative symbol address. */
-#define R_386_GOTPC 10 /* Add PC-relative GOT table address. */
-
-#define R_386_COUNT 11 /* Count of defined relocation types. */
-
-/* Define "machine" characteristics */
-#define ELF_TARG_CLASS ELFCLASS32
-#define ELF_TARG_DATA ELFDATA2LSB
-#define ELF_TARG_MACH EM_386
-#define ELF_TARG_VER 1
-
-#endif /* !_MACHINE_ELF_H_ */
diff --git a/sys/i386/isa/snd/ulaw.h b/sys/i386/isa/snd/ulaw.h
deleted file mode 100644
index 8971f6325efa..000000000000
--- a/sys/i386/isa/snd/ulaw.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * on entry: ulaw, on exit: unsigned 8 bit.
- */
-static unsigned char ulaw_dsp[] = {
- 3, 7, 11, 15, 19, 23, 27, 31,
- 35, 39, 43, 47, 51, 55, 59, 63,
- 66, 68, 70, 72, 74, 76, 78, 80,
- 82, 84, 86, 88, 90, 92, 94, 96,
-
- 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113,
- 113, 114, 114, 115, 115, 116, 116, 117,
- 117, 118, 118, 119, 119, 120, 120, 121,
-
- 121, 121, 122, 122, 122, 122, 123, 123,
- 123, 123, 124, 124, 124, 124, 125, 125,
- 125, 125, 125, 125, 126, 126, 126, 126,
- 126, 126, 126, 126, 127, 127, 127, 127,
-
- 127, 127, 127, 127, 127, 127, 127, 127,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
-
-
- 253, 249, 245, 241, 237, 233, 229, 225,
- 221, 217, 213, 209, 205, 201, 197, 193,
- 190, 188, 186, 184, 182, 180, 178, 176,
- 174, 172, 170, 168, 166, 164, 162, 160,
-
- 158, 157, 156, 155, 154, 153, 152, 151,
- 150, 149, 148, 147, 146, 145, 144, 143,
- 143, 142, 142, 141, 141, 140, 140, 139,
- 139, 138, 138, 137, 137, 136, 136, 135,
-
- 135, 135, 134, 134, 134, 134, 133, 133,
- 133, 133, 132, 132, 132, 132, 131, 131,
- 131, 131, 131, 131, 130, 130, 130, 130,
- 130, 130, 130, 130, 129, 129, 129, 129,
-
- 129, 129, 129, 129, 129, 129, 129, 129,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
-};
-
-#ifndef DSP_ULAW_NOT_WANTED
-/*
- * on entry: unsigned 8-bit, on exit: ulaw.
- */
-static unsigned char dsp_ulaw[] = {
- 0, 0, 0, 0, 0, 1, 1, 1,
- 1, 2, 2, 2, 2, 3, 3, 3,
- 3, 4, 4, 4, 4, 5, 5, 5,
- 5, 6, 6, 6, 6, 7, 7, 7,
-
- 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 10, 10, 10, 10, 11, 11, 11,
- 11, 12, 12, 12, 12, 13, 13, 13,
- 13, 14, 14, 14, 14, 15, 15, 15,
-
- 15, 16, 16, 17, 17, 18, 18, 19,
- 19, 20, 20, 21, 21, 22, 22, 23,
- 23, 24, 24, 25, 25, 26, 26, 27,
- 27, 28, 28, 29, 29, 30, 30, 31,
-
- 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 49, 51, 53, 55, 57, 59, 61,
- 63, 66, 70, 74, 78, 84, 92, 104,
-
-
- 254, 231, 219, 211, 205, 201, 197, 193,
- 190, 188, 186, 184, 182, 180, 178, 176,
- 175, 174, 173, 172, 171, 170, 169, 168,
- 167, 166, 165, 164, 163, 162, 161, 160,
-
- 159, 159, 158, 158, 157, 157, 156, 156,
- 155, 155, 154, 154, 153, 153, 152, 152,
- 151, 151, 150, 150, 149, 149, 148, 148,
- 147, 147, 146, 146, 145, 145, 144, 144,
-
- 143, 143, 143, 143, 142, 142, 142, 142,
- 141, 141, 141, 141, 140, 140, 140, 140,
- 139, 139, 139, 139, 138, 138, 138, 138,
- 137, 137, 137, 137, 136, 136, 136, 136,
-
- 135, 135, 135, 135, 134, 134, 134, 134,
- 133, 133, 133, 133, 132, 132, 132, 132,
- 131, 131, 131, 131, 130, 130, 130, 130,
- 129, 129, 129, 129, 128, 128, 128, 128,
-};
-#endif /* !DSP_ULAW_NOT_WANTED */
diff --git a/sys/sys/elf32.h b/sys/sys/elf32.h
deleted file mode 100644
index 3177bbac7f54..000000000000
--- a/sys/sys/elf32.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*-
- * Copyright (c) 1996-1997 John D. Polstra.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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: elf32.h,v 1.1 1997/05/21 23:07:30 jdp Exp $
- */
-
-#ifndef _SYS_ELF32_H_
-#define _SYS_ELF32_H_ 1
-
-/*
- * ELF definitions common to all 32-bit architectures.
- */
-
-typedef u_int32_t Elf32_Addr;
-typedef u_int16_t Elf32_Half;
-typedef u_int32_t Elf32_Off;
-typedef int32_t Elf32_Sword;
-typedef u_int32_t Elf32_Word;
-
-/*
- * ELF header.
- */
-
-#define EI_NIDENT 16 /* Size of e_ident array. */
-
-typedef struct {
- unsigned char e_ident[EI_NIDENT]; /* File identification. */
- Elf32_Half e_type; /* File type. */
- Elf32_Half e_machine; /* Machine architecture. */
- Elf32_Word e_version; /* ELF format version. */
- Elf32_Addr e_entry; /* Entry point. */
- Elf32_Off e_phoff; /* Program header file offset. */
- Elf32_Off e_shoff; /* Section header file offset. */
- Elf32_Word e_flags; /* Architecture-specific flags. */
- Elf32_Half e_ehsize; /* Size of ELF header in bytes. */
- Elf32_Half e_phentsize; /* Size of program header entry. */
- Elf32_Half e_phnum; /* Number of program header entries. */
- Elf32_Half e_shentsize; /* Size of section header entry. */
- Elf32_Half e_shnum; /* Number of section header entries. */
- Elf32_Half e_shstrndx; /* Section name strings section. */
-} Elf32_Ehdr;
-
-/* Indexes into the e_ident array. */
-#define EI_MAG0 0 /* Magic number, byte 0. */
-#define EI_MAG1 1 /* Magic number, byte 1. */
-#define EI_MAG2 2 /* Magic number, byte 2. */
-#define EI_MAG3 3 /* Magic number, byte 3. */
-#define EI_CLASS 4 /* Class of machine. */
-#define EI_DATA 5 /* Data format. */
-#define EI_VERSION 6 /* ELF format version. */
-#define EI_PAD 7 /* Start of padding (per SVR4 ABI). */
-#define EI_BRAND 8 /* Start of architecture identification. */
-
-/* Values for the magic number bytes. */
-#define ELFMAG0 0x7f
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-
-/* Values for e_ident[EI_VERSION] and e_version. */
-#define EV_NONE 0
-#define EV_CURRENT 1
-
-/* Values for e_ident[EI_CLASS]. */
-#define ELFCLASSNONE 0 /* Unknown class. */
-#define ELFCLASS32 1 /* 32-bit architecture. */
-#define ELFCLASS64 2 /* 64-bit architecture. */
-
-/* Values for e_ident[EI_DATA]. */
-#define ELFDATANONE 0 /* Unknown data format. */
-#define ELFDATA2LSB 1 /* 2's complement little-endian. */
-#define ELFDATA2MSB 2 /* 2's complement big-endian. */
-
-/* e_ident */
-#define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
- (ehdr).e_ident[EI_MAG1] == ELFMAG1 && \
- (ehdr).e_ident[EI_MAG2] == ELFMAG2 && \
- (ehdr).e_ident[EI_MAG3] == ELFMAG3)
-
-/* Values for e_type. */
-#define ET_NONE 0 /* Unknown type. */
-#define ET_REL 1 /* Relocatable. */
-#define ET_EXEC 2 /* Executable. */
-#define ET_DYN 3 /* Shared object. */
-#define ET_CORE 4 /* Core file. */
-
-/* Values for e_machine. */
-#define EM_NONE 0 /* Unknown machine. */
-#define EM_M32 1 /* AT&T WE32100. */
-#define EM_SPARC 2 /* Sun SPARC. */
-#define EM_386 3 /* Intel i386. */
-#define EM_68K 4 /* Motorola 68000. */
-#define EM_88K 5 /* Motorola 88000. */
-#define EM_486 6 /* Intel i486. */
-#define EM_860 7 /* Intel i860. */
-#define EM_MIPS 8 /* MIPS R3000 Big-Endian only */
-
-/* Extensions */
-#define EM_MIPS_RS4_BE 10 /* MIPS R4000 Big-Endian */
-#define EM_SPARC64 11 /* SPARC v9 64-bit unoffical */
-#define EM_PARISC 15 /* HPPA */
-#define EM_PPC 20 /* PowerPC */
-
-
-/*
- * Section header.
- */
-
-typedef struct {
- Elf32_Word sh_name; /* Section name (index into the
- section header string table). */
- Elf32_Word sh_type; /* Section type. */
- Elf32_Word sh_flags; /* Section flags. */
- Elf32_Addr sh_addr; /* Address in memory image. */
- Elf32_Off sh_offset; /* Offset in file. */
- Elf32_Word sh_size; /* Size in bytes. */
- Elf32_Word sh_link; /* Index of a related section. */
- Elf32_Word sh_info; /* Depends on section type. */
- Elf32_Word sh_addralign; /* Alignment in bytes. */
- Elf32_Word sh_entsize; /* Size of each entry in section. */
-} Elf32_Shdr;
-
-/* Special section indexes. */
-#define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */
-#define SHN_LORESERVE 0xff00 /* First of reserved range. */
-#define SHN_LOPROC 0xff00 /* First processor-specific. */
-#define SHN_HIPROC 0xff1f /* Last processor-specific. */
-#define SHN_ABS 0xfff1 /* Absolute values. */
-#define SHN_COMMON 0xfff2 /* Common data. */
-#define SHN_HIRESERVE 0xffff /* Last of reserved range. */
-
-/* sh_type */
-#define SHT_NULL 0 /* inactive */
-#define SHT_PROGBITS 1 /* program defined information */
-#define SHT_SYMTAB 2 /* symbol table section */
-#define SHT_STRTAB 3 /* string table section */
-#define SHT_RELA 4 /* relocation section with addends*/
-#define SHT_HASH 5 /* symbol hash table section */
-#define SHT_DYNAMIC 6 /* dynamic section */
-#define SHT_NOTE 7 /* note section */
-#define SHT_NOBITS 8 /* no space section */
-#define SHT_REL 9 /* relation section without addends */
-#define SHT_SHLIB 10 /* reserved - purpose unknown */
-#define SHT_DYNSYM 11 /* dynamic symbol table section */
-#define SHT_LOPROC 0x70000000 /* reserved range for processor */
-#define SHT_HIPROC 0x7fffffff /* specific section header types */
-#define SHT_LOUSER 0x80000000 /* reserved range for application */
-#define SHT_HIUSER 0xffffffff /* specific indexes */
-
-
-/*
- * Program header.
- */
-
-typedef struct {
- Elf32_Word p_type; /* Entry type. */
- Elf32_Off p_offset; /* File offset of contents. */
- Elf32_Addr p_vaddr; /* Virtual address in memory image. */
- Elf32_Addr p_paddr; /* Physical address (not used). */
- Elf32_Word p_filesz; /* Size of contents in file. */
- Elf32_Word p_memsz; /* Size of contents in memory. */
- Elf32_Word p_flags; /* Access permission flags. */
- Elf32_Word p_align; /* Alignment in memory and file. */
-} Elf32_Phdr;
-
-/* Values for p_type. */
-#define PT_NULL 0 /* Unused entry. */
-#define PT_LOAD 1 /* Loadable segment. */
-#define PT_DYNAMIC 2 /* Dynamic linking information segment. */
-#define PT_INTERP 3 /* Pathname of interpreter. */
-#define PT_NOTE 4 /* Auxiliary information. */
-#define PT_SHLIB 5 /* Reserved (not used). */
-#define PT_PHDR 6 /* Location of program header itself. */
-
-#define PT_COUNT 7 /* Number of defined p_type values. */
-
-/* Values for p_flags. */
-#define PF_X 0x1 /* Executable. */
-#define PF_W 0x2 /* Writable. */
-#define PF_R 0x4 /* Readable. */
-
-/*
- * Dynamic structure. The ".dynamic" section contains an array of them.
- */
-
-typedef struct {
- Elf32_Sword d_tag; /* Entry type. */
- union {
- Elf32_Word d_val; /* Integer value. */
- Elf32_Addr d_ptr; /* Address value. */
- } d_un;
-} Elf32_Dyn;
-
-/* Values for d_tag. */
-#define DT_NULL 0 /* Terminating entry. */
-#define DT_NEEDED 1 /* String table offset of a needed shared
- library. */
-#define DT_PLTRELSZ 2 /* Total size in bytes of PLT relocations. */
-#define DT_PLTGOT 3 /* Processor-dependent address. */
-#define DT_HASH 4 /* Address of symbol hash table. */
-#define DT_STRTAB 5 /* Address of string table. */
-#define DT_SYMTAB 6 /* Address of symbol table. */
-#define DT_RELA 7 /* Address of Elf32_Rela relocations. */
-#define DT_RELASZ 8 /* Total size of Elf32_Rela relocations. */
-#define DT_RELAENT 9 /* Size of each Elf32_Rela relocation entry. */
-#define DT_STRSZ 10 /* Size of string table. */
-#define DT_SYMENT 11 /* Size of each symbol table entry. */
-#define DT_INIT 12 /* Address of initialization function. */
-#define DT_FINI 13 /* Address of finalization function. */
-#define DT_SONAME 14 /* String table offset of shared object
- name. */
-#define DT_RPATH 15 /* String table offset of library path. */
-#define DT_SYMBOLIC 16 /* Indicates "symbolic" linking. */
-#define DT_REL 17 /* Address of Elf32_Rel relocations. */
-#define DT_RELSZ 18 /* Total size of Elf32_Rel relocations. */
-#define DT_RELENT 19 /* Size of each Elf32_Rel relocation. */
-#define DT_PLTREL 20 /* Type of relocation used for PLT. */
-#define DT_DEBUG 21 /* Reserved (not used). */
-#define DT_TEXTREL 22 /* Indicates there may be relocations in
- non-writable segments. */
-#define DT_JMPREL 23 /* Address of PLT relocations. */
-
-#define DT_COUNT 24 /* Number of defined d_tag values. */
-
-/*
- * Relocation entries.
- */
-
-/* Relocations that don't need an addend field. */
-typedef struct {
- Elf32_Addr r_offset; /* Location to be relocated. */
- Elf32_Word r_info; /* Relocation type and symbol index. */
-} Elf32_Rel;
-
-/* Relocations that need an addend field. */
-typedef struct {
- Elf32_Addr r_offset; /* Location to be relocated. */
- Elf32_Word r_info; /* Relocation type and symbol index. */
- Elf32_Sword r_addend; /* Addend. */
-} Elf32_Rela;
-
-/* Macros for accessing the fields of r_info. */
-#define ELF32_R_SYM(info) ((info) >> 8)
-#define ELF32_R_TYPE(info) ((unsigned char)(info))
-
-/* Macro for constructing r_info from field values. */
-#define ELF32_R_INFO(sym, type) (((sym) << 8) + (unsigned char)(type))
-
-/*
- * Symbol table entries.
- */
-
-typedef struct {
- Elf32_Word st_name; /* String table index of name. */
- Elf32_Addr st_value; /* Symbol value. */
- Elf32_Word st_size; /* Size of associated object. */
- unsigned char st_info; /* Type and binding information. */
- unsigned char st_other; /* Reserved (not used). */
- Elf32_Half st_shndx; /* Section index of symbol. */
-} Elf32_Sym;
-
-/* Macros for accessing the fields of st_info. */
-#define ELF32_ST_BIND(info) ((info) >> 4)
-#define ELF32_ST_TYPE(info) ((info) & 0xf)
-
-/* Macro for constructing st_info from field values. */
-#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-
-/* Symbol Binding - ELF32_ST_BIND - st_info */
-#define STB_LOCAL 0 /* Local symbol */
-#define STB_GLOBAL 1 /* Global symbol */
-#define STB_WEAK 2 /* like global - lower precedence */
-#define STB_LOPROC 13 /* reserved range for processor */
-#define STB_HIPROC 15 /* specific symbol bindings */
-
-/* Symbol type - ELF32_ST_TYPE - st_info */
-#define STT_NOTYPE 0 /* Unspecified type. */
-#define STT_OBJECT 1 /* Data object. */
-#define STT_FUNC 2 /* Function. */
-#define STT_SECTION 3 /* Section. */
-#define STT_FILE 4 /* Source file. */
-#define STT_LOPROC 13 /* reserved range for processor */
-#define STT_HIPROC 15 /* specific symbol types */
-
-/* Special symbol table indexes. */
-#define STN_UNDEF 0 /* Undefined symbol index. */
-
-#endif /* !_SYS_ELF32_H_ */
diff --git a/usr.bin/c89/Makefile b/usr.bin/c89/Makefile
deleted file mode 100644
index c6f909fae871..000000000000
--- a/usr.bin/c89/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-MAN1 = c89.1
-
-beforeinstall:
- ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
- ${.CURDIR}/c89.sh ${DESTDIR}${BINDIR}/c89
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/c89/c89.1 b/usr.bin/c89/c89.1
deleted file mode 100644
index 75b4c770d30f..000000000000
--- a/usr.bin/c89/c89.1
+++ /dev/null
@@ -1,170 +0,0 @@
-.\"
-.\" Copyright (c) 1997 Joerg Wunsch
-.\"
-.\" 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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: c89.1,v 1.1.1.1 1997/09/17 20:44:54 joerg Exp $
-.\" "
-.Dd September 17, 1997
-.Os
-.Dt C89 1
-.Sh NAME
-.Nm c89
-.Nd Posix.2 C language compiler
-.Sh SYNOPSIS
-.Nm c89
-.Op Fl c
-.Op Fl D Ar name Ns Op Ar =value
-.Op ...
-.Op Fl E
-.Op Fl g
-.Op Fl I Ar directory ...
-.Op Fl L Ar directory ...
-.Op Fl o Ar outfile
-.Op Fl O
-.Op Fl s
-.Op Fl U Ar name ...
-.Ar operand ...
-.Sh DESCRIPTION
-This is the name of the C language compiler as required by the
-.St -p1003.2 .
-standard.
-.Pp
-The
-.Nm
-compiler accepts the following options:
-.Bl -tag -offset indent -width "-D name = value"
-.It Fl c
-Suppress the link-edit phase of the compilation, and do not remove any
-object files that are produced.
-.It Fl D Ar name Ns Op Ar =value
-Define name as if by a C-language
-.Ql #define
-directive. If
-no
-.Ar =value
-is given, a value of 1 will be used. The
-.Fl D
-option has lower precedence than the
-.Fl U
-option. That is, if
-.Ar name
-is used in both a
-.Fl U
-and a
-.Fl D
-option,
-.Ar name
-will be undefined regardless of the order of the options. The
-.Fl D
-option may be specified more than once.
-.It Fl E
-Copy C-language source files to the standard output, expanding all
-preprocessor directives; no compilation will be performed.
-.It Fl g
-Produce symbolic information in the object or executable files.
-.It Fl I Ar directory
-Change the algorithm for searching for headers whose names are not
-absolute pathnames to look in the directory named by the
-.Ar directory
-pathname before looking in the usual places. Thus, headers whose
-names are enclosed in double-quotes (\&"\&") will be searched for first
-in the directory of the file with the
-.Ql #include
-line, then in
-directories named in
-.Fl I
-options, and last in the usual places. For
-headers whose names are enclosed in angle brackets (<>), the header
-will be searched for only in directories named in
-.Fl I
-options and then in the usual places. Directories named in
-.Fl I
-options shall be searched in the order specified. The
-.Fl I
-option may be specified more than once.
-.It Fl L Ar directory
-Change the algorithm of searching for the libraries named in the
-.Fl l
-objects to look in the directory named by the
-.Ar directory
-pathname before looking in the usual places. Directories named in
-.Fl L
-options will be searched in the order specified. The
-.Fl L
-option may be specified more than once.
-.It Fl o Ar outfile
-Use the pathname
-.Ar outfile ,
-instead of the default
-.Pa a.out ,
-for the executable file produced.
-.It Fl O
-Optimize the compilation.
-.It Fl s
-Produce object and/or executable files from which symbolic and other
-information not required for proper execution has been removed
-(stripped).
-.It Fl U Ar name
-Remove any initial definition of
-.Ar name .
-The
-.Fl U
-option may be specified more than once.
-.El
-.Pp
-An operand is either in the form of a pathname or the form
-.Fl l
-library. At least one operand of the pathname form needs to be
-specified. Supported operands are of the form:
-.Bl -tag -offset indent -width "-l library"
-.It Pa file Ns \&.c
-A C-language source file to be compiled and optionally linked. The
-operand must be of this form if the
-.Fl c
-option is used.
-.It Pa file Ns \&.a
-A library of object files, as produced by
-.Xr ar 1 ,
-passed directly to the link editor.
-.It Pa file Ns \&.o
-An object file produced by
-.Nm
-.Fl c ,
-and passed directly to the link editor.
-.It Fl l Pa library
-Search the library named
-.Dl lib Ns Em library Ns \&.a
-A library will be searched when its name is encountered, so the
-placement of a
-.Fl l
-operand is significant.
-.El
-.Sh SEE ALSO
-.Xr ar 1 ,
-.Xr cc 1
-.Sh STANDARDS
-The
-.Nm
-command is believed to comply with
-.St -p1003.2 .
diff --git a/usr.bin/c89/c89.sh b/usr.bin/c89/c89.sh
deleted file mode 100755
index a9ad3d0c35d0..000000000000
--- a/usr.bin/c89/c89.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 1997 Joerg Wunsch
-#
-# 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.
-#
-# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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: c89.sh,v 1.2 1997/09/18 20:55:50 joerg Exp $
-#
-# This is the Posix.2 mandated C compiler. Basically, a hook to the
-# cc(1) command.
-
-usage()
-{
- echo "usage: c89 [-c] [-D name[=value]] [...] [-E] [-g] [-I directory ...]
- [-L directory ...] [-o outfile] [-O] [-s] [-U name ...] operand ..." 1>&2
- exit 64
-}
-
-_PARAMS="$@"
-
-while getopts "cD:EgI:L:o:OsU:" opt
-do
- case $opt in
- [cDEgILoOsU])
- ;;
- *)
- usage
- ;;
- esac
-done
-
-shift $(($OPTIND - 1))
-
-if [ $# = "0" ]
-then
- echo "Missing operand" 1>&2
- usage
-fi
-
-while [ $# != "0" ]
-do
- case $1 in
- -l* | *.a | *.c | *.o)
- shift
- ;;
- *)
- echo "Invalid operand" 1>&2
- usage
- ;;
- esac
-done
-
-exec cc -ansi -pedantic -D_ANSI_SOURCE $_PARAMS
diff --git a/usr.bin/cksum/crc32.c b/usr.bin/cksum/crc32.c
deleted file mode 100644
index ffeacc1151c1..000000000000
--- a/usr.bin/cksum/crc32.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * This code implements the AUTODIN II polynomial used by Ethernet,
- * and can be used to calculate multicast address hash indices.
- * It assumes that the low order bits will be transmitted first,
- * and consequently the low byte should be sent first when
- * the crc computation is finished. The crc should be complemented
- * before transmission.
- * The variable corresponding to the macro argument "crc" should
- * be an unsigned long and should be preset to all ones for Ethernet
- * use. An error-free packet will leave 0xDEBB20E3 in the crc.
- * Spencer Garrett <srg@quick.com>
- */
-
-#define CRC(crc, ch) (crc = (crc >> 8) ^ crctab[(crc ^ (ch)) & 0xff])
-
-/* generated using the AUTODIN II polynomial
- * x^32 + x^26 + x^23 + x^22 + x^16 +
- * x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1
- */
-unsigned long crctab[256] = {
- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
- 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
- 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
- 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
- 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
- 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
- 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
- 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
- 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
- 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
- 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
- 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
- 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
- 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
- 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
- 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
- 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
- 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
- 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
- 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
- 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
- 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
- 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
- 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
- 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
- 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
- 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
- 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
- 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
- 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
- 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
- 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
- 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
- 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
- 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
- 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
- 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
- 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
- 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
- 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
- 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
- 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
- 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
- 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
- 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
- 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
- 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
- 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
- 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
- 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
- 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
- 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
- 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
- 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
- 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
- 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
- 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
- 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
- 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
- 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
-};
-
-#include <stdio.h>
-#include <sys/types.h>
-
-u_long crc32_total = 0 ;
-
-crc32(fd, cval, clen)
- register int fd;
- u_long *cval, *clen;
-{
- u_long crc = ~0;
- char buf[BUFSIZ], *p ;
- int len, nr ;
- FILE *in;
-
- len = 0 ;
- crc32_total = ~crc32_total ;
- while (nr = read(fd, buf, sizeof(buf)))
- for (len += nr, p = buf; nr--; ++p) {
- CRC(crc, *p) ;
- CRC(crc32_total, *p) ;
- }
- if (nr < 0)
- return 1 ;
-
- *clen = len ;
- *cval = ~crc ;
- crc32_total = ~crc32_total ;
- return 0 ;
-}
diff --git a/usr.bin/mklocale/data/ja_JP.SJIS.src b/usr.bin/mklocale/data/ja_JP.SJIS.src
deleted file mode 100644
index 2358c820de29..000000000000
--- a/usr.bin/mklocale/data/ja_JP.SJIS.src
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * ja_JP.SJIS locale table for BSD4.4/rune
- * version 1.0
- * (C) Sin'ichiro MIYATANI / Phase One, Inc
- * May 12, 1995
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Phase One, Inc.
- * 4. The name of Phase One, Inc. may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- */
-
-ENCODING "MSKanji"
-
-/*
- * ASCII byte code
- */
-ALPHA 'A'-'Z' 'a'-'z'
-CONTROL 0x00-0x1f 0x7f
-DIGIT '0'-'9'
-GRAPH 0x21-0x7e
-LOWER 'a'-'z'
-PUNCT 0x21-0x2f 0x3a-0x40 0x5b-0x60 0x7b-0x7e
-SPACE 0x09-0x0d 0x20
-UPPER 'A'-'Z'
-XDIGIT 'a'-'f' 'A'-'F'
-BLANK ' ' '\t'
-PRINT 0x20-0x7e
-/* SWIDTH1 0x20-0x7e */
-
-MAPLOWER <'A'-'Z':'a'><'a'-'z':'a'>
-MAPUPPER <'A'-'Z':'A'><'a'-'z':'A'>
-TODIGIT <'0'-'9':0>
-TODIGIT <'A'-'F':10><'a'-'f':10>
-
-/*
- * JIS X201
- */
-PUNCT 0xa1-0xa5
-SPACE 0xa0
-BLANK 0xa0
-PRINT 0xa0-0xdf
-SPECIAL 0xa1-0xdf
-PHONOGRAM 0xa6-0xdf
-/* SWIDTH1 0xa0-0xdf*/
-
-/*
- * JIS X208/SJIS
- */
-/* 100 */
-PUNCT 0x8141-0x8151 0x8159-0x815a 0x815c-0x817e 0x8180-0x819e
-SPACE 0x8140
-PHONOGRAM 0x8152-0x8158 0x815b
-
-/* 200 */
-PUNCT 0x819f-0x81ac 0x81b8-0x81bf 0x81c8-0x81ce 0x81da-0x81e8
-PUNCT 0x81f0-0x81f7 0x81fc
-
-/* 300 */
-DIGIT 0x824f-0x8258
-XDIGIT 0x8260-0x8265 0x8281-0x8286
-ALPHA 0x8260-0x8279 0x8281-0x829a
-UPPER 0x8260-0x8279
-LOWER 0x8281-0x829a
-
-MAPLOWER <0x8260-0x8279:0x8281>
-MAPLOWER <0x8281-0x829a:0x8281>
-MAPUPPER <0x8260-0x8279:0x8260>
-MAPUPPER <0x8281-0x829a:0x8260>
-TODIGIT <0x824f-0x8258:0>
-TODIGIT <0x8260-0x8265:10>
-TODIGIT <0x8281-0x8286:10>
-
-/* 400 */
-PHONOGRAM 0x829f-0x82f1
-
-/* 500 */
-PHONOGRAM 0x8340-0x837e
-PHONOGRAM 0x8380-0x8396
-
-/* 600 */
-UPPER 0x839f-0x83b6
-LOWER 0x83bf-0x83d6
-MAPLOWER <0x839f-0x83b6:0x83bf>
-MAPLOWER <0x83bf-0x83d6:0x83bf>
-MAPUPPER <0x839f-0x83b6:0x839f>
-MAPUPPER <0x83bf-0x83d6:0x839f>
-
-/* 700 */
-UPPER 0x8440-0x8460
-LOWER 0x8470-0x847e 0x8480-0x8491
-MAPLOWER <0x8440-0x844e:0x8470><0x844f-0x8460:0x8480>
-MAPLOWER <0x8470-0x847e:0x8470><0x8480-0x8491:0x8480>
-MAPUPPER <0x8440-0x8460:0x8440>
-MAPUPPER <0x8470-0x847e:0x8440><0x8480-0x8491:0x844f>
-
-/* 800 */
-SPECIAL 0x849f-0x84be
-
-/*SWIDTH2 0x8140-0x817e 0x8180-0x819e */ /* 100 */
-/*SWIDTH2 0x819f-0x81ac 0x81b8-0x81bf */ /* 200 */
-/*SWIDTH2 0x81c8-0x81ce 0x81da-0x81e8 */
-/*SWIDTH2 0x81f0-0x81f7 0x81fc */
-/*SWIDTH2 0x824f-0x8258 0x8260-0x8279 */ /* 300 */
-/*SWIDTH2 0x8281-0x829a */
-/*SWIDTH2 0x829f-0x82f1 */ /* 400 */
-/*SWIDTH2 0x8340-0x837e */ /* 500 */
-/*SWIDTH2 0x8380-0x8396 */
-/*SWIDTH2 0x839f-0x83b6 */ /* 600 */
-/*SWIDTH2 0x83bf-0x83d6 */
-/*SWIDTH2 0x8440-0x8460 */ /* 700 */
-/*SWIDTH2 0x8470-0x847e 0x8480-0x8491 */
-/*SWIDTH2 0x849f-0x84be */ /* 800 */
-
-/* 1600- */
-IDEOGRAM 0x889f-0x88fc /* 1600 */
-IDEOGRAM 0x8940-0x897e 0x8980-0x899e /* 1700 */
-IDEOGRAM 0x899f-0x89fc /* 1800 */
-IDEOGRAM 0x8a40-0x8a7e 0x8a80-0x8a9e /* 1900 */
-IDEOGRAM 0x8a9f-0x8afc /* 2000 */
-IDEOGRAM 0x8b40-0x8b7e 0x8b80-0x8b9e /* 2100 */
-IDEOGRAM 0x8b9f-0x8bfc /* 2200 */
-IDEOGRAM 0x8c40-0x8c7e 0x8c80-0x8c9e /* 2300 */
-IDEOGRAM 0x8c9f-0x8cfc /* 2400 */
-IDEOGRAM 0x8d40-0x8d7e 0x8d80-0x8d9e /* 2500 */
-IDEOGRAM 0x8d9f-0x8dfc /* 2600 */
-IDEOGRAM 0x8e40-0x8e7e 0x8e80-0x8e9e /* 2700 */
-IDEOGRAM 0x8e9f-0x8efc /* 2800 */
-IDEOGRAM 0x8f40-0x8f7e 0x8f80-0x8f9e /* 2900 */
-IDEOGRAM 0x8f9f-0x8ffc /* 3000 */
-IDEOGRAM 0x9040-0x907e 0x9080-0x909e /* 3100 */
-IDEOGRAM 0x909f-0x90fc /* 3200 */
-IDEOGRAM 0x9140-0x917e 0x9180-0x919e /* 3300 */
-IDEOGRAM 0x919f-0x91fc /* 3400 */
-IDEOGRAM 0x9240-0x927e 0x9280-0x929e /* 3500 */
-IDEOGRAM 0x929f-0x92fc /* 3600 */
-IDEOGRAM 0x9340-0x937e 0x9380-0x939e /* 3700 */
-IDEOGRAM 0x939f-0x93fc /* 3800 */
-IDEOGRAM 0x9440-0x947e 0x9480-0x949e /* 3900 */
-IDEOGRAM 0x949f-0x94fc /* 4000 */
-IDEOGRAM 0x9540-0x957e 0x9580-0x959e /* 4100 */
-IDEOGRAM 0x959f-0x95fc /* 4200 */
-IDEOGRAM 0x9640-0x967e 0x9680-0x969e /* 4300 */
-IDEOGRAM 0x969f-0x96fc /* 4400 */
-IDEOGRAM 0x9740-0x977e 0x9780-0x979e /* 4500 */
-IDEOGRAM 0x979f-0x97fc /* 4600 */
-IDEOGRAM 0x9840-0x987e 0x9880-0x989e /* 4700 */
-IDEOGRAM 0x989f-0x98fc /* 4800 */
-IDEOGRAM 0x9940-0x997e 0x9980-0x999e /* 4900 */
-IDEOGRAM 0x999f-0x99fc /* 5000 */
-IDEOGRAM 0x9a40-0x9a7e 0x9a80-0x9a9e /* 5100 */
-IDEOGRAM 0x9a9f-0x9afc /* 5200 */
-IDEOGRAM 0x9b40-0x9b7e 0x9b80-0x9b9e /* 5300 */
-IDEOGRAM 0x9b9f-0x9bfc /* 5400 */
-IDEOGRAM 0x9c40-0x9c7e 0x9c80-0x9c9e /* 5500 */
-IDEOGRAM 0x9c9f-0x9cfc /* 5600 */
-IDEOGRAM 0x9d40-0x9d7e 0x9d80-0x9d9e /* 5700 */
-IDEOGRAM 0x9d9f-0x9dfc /* 5800 */
-IDEOGRAM 0x9e40-0x9e7e 0x9e80-0x9e9e /* 5900 */
-IDEOGRAM 0x9e9f-0x9efc /* 6000 */
-IDEOGRAM 0x9f40-0x9f7e 0x9f80-0x9f9e /* 6100 */
-IDEOGRAM 0x9f9f-0x9ffc /* 6200 */
-IDEOGRAM 0xe040-0xe07e 0xe080-0xe09e /* 6300 */
-IDEOGRAM 0xe09f-0xe0fc /* 6400 */
-IDEOGRAM 0xe140-0xe17e 0xe180-0xe19e /* 6500 */
-IDEOGRAM 0xe19f-0xe1fc /* 6600 */
-IDEOGRAM 0xe240-0xe27e 0xe280-0xe29e /* 6700 */
-IDEOGRAM 0xe29f-0xe2fc /* 6800 */
-IDEOGRAM 0xe340-0xe37e 0xe380-0xe39e /* 6900 */
-IDEOGRAM 0xe39f-0xe3fc /* 7000 */
-IDEOGRAM 0xe440-0xe47e 0xe480-0xe49e /* 7100 */
-IDEOGRAM 0xe49f-0xe4fc /* 7200 */
-IDEOGRAM 0xe540-0xe57e 0xe580-0xe59e /* 7300 */
-IDEOGRAM 0xe59f-0xe5fc /* 7400 */
-IDEOGRAM 0xe640-0xe67e 0xe680-0xe69e /* 7500 */
-IDEOGRAM 0xe69f-0xe6fc /* 7600 */
-IDEOGRAM 0xe740-0xe77e 0xe780-0xe79e /* 7700 */
-IDEOGRAM 0xe79f-0xe7fc /* 7800 */
-IDEOGRAM 0xe840-0xe87e 0xe880-0xe89e /* 7900 */
-IDEOGRAM 0xe89f-0xe8fc /* 8000 */
-IDEOGRAM 0xe940-0xe97e 0xe980-0xe99e /* 8100 */
-IDEOGRAM 0xe99f-0xe9fc /* 8200 */
-IDEOGRAM 0xea40-0xea7e 0xea80-0xea9e /* 8300 */
-IDEOGRAM 0xea9f-0xeaa4 /* 8400 */
-
-/*SWIDTH2 0x889f-0x88fc */ /* 1600 */
-/*SWIDTH2 0x8940-0x897e 0x8980-0x899e */ /* 1700 */
-/*SWIDTH2 0x899f-0x89fc */ /* 1800 */
-/*SWIDTH2 0x8a40-0x8a7e 0x8a80-0x8a9e */ /* 1900 */
-/*SWIDTH2 0x8a9f-0x8afc */ /* 2000 */
-/*SWIDTH2 0x8b40-0x8b7e 0x8b80-0x8b9e */ /* 2100 */
-/*SWIDTH2 0x8b9f-0x8bfc */ /* 2200 */
-/*SWIDTH2 0x8c40-0x8c7e 0x8c80-0x8c9e */ /* 2300 */
-/*SWIDTH2 0x8c9f-0x8cfc */ /* 2400 */
-/*SWIDTH2 0x8d40-0x8d7e 0x8d80-0x8d9e */ /* 2500 */
-/*SWIDTH2 0x8d9f-0x8dfc */ /* 2600 */
-/*SWIDTH2 0x8e40-0x8e7e 0x8e80-0x8e9e */ /* 2700 */
-/*SWIDTH2 0x8e9f-0x8efc */ /* 2800 */
-/*SWIDTH2 0x8f40-0x8f7e 0x8f80-0x8f9e */ /* 2900 */
-/*SWIDTH2 0x8f9f-0x8ffc */ /* 3000 */
-/*SWIDTH2 0x9040-0x907e 0x9080-0x909e */ /* 3100 */
-/*SWIDTH2 0x909f-0x90fc */ /* 3200 */
-/*SWIDTH2 0x9140-0x917e 0x9180-0x919e */ /* 3300 */
-/*SWIDTH2 0x919f-0x91fc */ /* 3400 */
-/*SWIDTH2 0x9240-0x927e 0x9280-0x929e */ /* 3500 */
-/*SWIDTH2 0x929f-0x92fc */ /* 3600 */
-/*SWIDTH2 0x9340-0x937e 0x9380-0x939e */ /* 3700 */
-/*SWIDTH2 0x939f-0x93fc */ /* 3800 */
-/*SWIDTH2 0x9440-0x947e 0x9480-0x949e */ /* 3900 */
-/*SWIDTH2 0x949f-0x94fc */ /* 4000 */
-/*SWIDTH2 0x9540-0x957e 0x9580-0x959e */ /* 4100 */
-/*SWIDTH2 0x959f-0x95fc */ /* 4200 */
-/*SWIDTH2 0x9640-0x967e 0x9680-0x969e */ /* 4300 */
-/*SWIDTH2 0x969f-0x96fc */ /* 4400 */
-/*SWIDTH2 0x9740-0x977e 0x9780-0x979e */ /* 4500 */
-/*SWIDTH2 0x979f-0x97fc */ /* 4600 */
-/*SWIDTH2 0x9840-0x987e 0x9880-0x989e */ /* 4700 */
-/*SWIDTH2 0x989f-0x98fc */ /* 4800 */
-/*SWIDTH2 0x9940-0x997e 0x9980-0x999e */ /* 4900 */
-/*SWIDTH2 0x999f-0x99fc */ /* 5000 */
-/*SWIDTH2 0x9a40-0x9a7e 0x9a80-0x9a9e */ /* 5100 */
-/*SWIDTH2 0x9a9f-0x9afc */ /* 5200 */
-/*SWIDTH2 0x9b40-0x9b7e 0x9b80-0x9b9e */ /* 5300 */
-/*SWIDTH2 0x9b9f-0x9bfc */ /* 5400 */
-/*SWIDTH2 0x9c40-0x9c7e 0x9c80-0x9c9e */ /* 5500 */
-/*SWIDTH2 0x9c9f-0x9cfc */ /* 5600 */
-/*SWIDTH2 0x9d40-0x9d7e 0x9d80-0x9d9e */ /* 5700 */
-/*SWIDTH2 0x9d9f-0x9dfc */ /* 5800 */
-/*SWIDTH2 0x9e40-0x9e7e 0x9e80-0x9e9e */ /* 5900 */
-/*SWIDTH2 0x9e9f-0x9efc */ /* 6000 */
-/*SWIDTH2 0x9f40-0x9f7e 0x9f80-0x9f9e */ /* 6100 */
-/*SWIDTH2 0x9f9f-0x9ffc */ /* 6200 */
-/*SWIDTH2 0xe040-0xe07e 0xe080-0xe09e */ /* 6300 */
-/*SWIDTH2 0xe09f-0xe0fc */ /* 6400 */
-/*SWIDTH2 0xe140-0xe17e 0xe180-0xe19e */ /* 6500 */
-/*SWIDTH2 0xe19f-0xe1fc */ /* 6600 */
-/*SWIDTH2 0xe240-0xe27e 0xe280-0xe29e */ /* 6700 */
-/*SWIDTH2 0xe29f-0xe2fc */ /* 6800 */
-/*SWIDTH2 0xe340-0xe37e 0xe380-0xe39e */ /* 6900 */
-/*SWIDTH2 0xe39f-0xe3fc */ /* 7000 */
-/*SWIDTH2 0xe440-0xe47e 0xe480-0xe49e */ /* 7100 */
-/*SWIDTH2 0xe49f-0xe4fc */ /* 7200 */
-/*SWIDTH2 0xe540-0xe57e 0xe580-0xe59e */ /* 7300 */
-/*SWIDTH2 0xe59f-0xe5fc */ /* 7400 */
-/*SWIDTH2 0xe640-0xe67e 0xe680-0xe69e */ /* 7500 */
-/*SWIDTH2 0xe69f-0xe6fc */ /* 7600 */
-/*SWIDTH2 0xe740-0xe77e 0xe780-0xe79e */ /* 7700 */
-/*SWIDTH2 0xe79f-0xe7fc */ /* 7800 */
-/*SWIDTH2 0xe840-0xe87e 0xe880-0xe89e */ /* 7900 */
-/*SWIDTH2 0xe89f-0xe8fc */ /* 8000 */
-/*SWIDTH2 0xe940-0xe97e 0xe980-0xe99e */ /* 8100 */
-/*SWIDTH2 0xe99f-0xe9fc */ /* 8200 */
-/*SWIDTH2 0xea40-0xea7e 0xea80-0xea9e */ /* 8300 */
-/*SWIDTH2 0xea9f-0xeaa4 */ /* 8400 */
diff --git a/usr.bin/shar/shar.sh b/usr.bin/shar/shar.sh
index 08db22c97a0e..bf541c0d0c97 100644
--- a/usr.bin/shar/shar.sh
+++ b/usr.bin/shar/shar.sh
@@ -35,10 +35,18 @@
#
if [ $# -eq 0 ]; then
- echo 'usage: shar file ...'
- exit 1
+ echo 'usage: shar file ...' 1>&2
+ exit 64 # EX_USAGE
fi
+for i
+do
+ if [ ! \( -d $i -o -r $i \) ]; then
+ echo "$i inaccessible or not exist" 1>&2
+ exit 66 # EX_NOINPUT
+ fi
+done
+
cat << EOF
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
@@ -64,7 +72,7 @@ do
else
echo "echo x - $i"
echo "sed 's/^X//' >$i << 'END-of-$i'"
- sed 's/^/X/' $i
+ sed 's/^/X/' $i || exit
echo "END-of-$i"
fi
done
diff --git a/usr.bin/ypwhich/ypwhich.1 b/usr.bin/ypwhich/ypwhich.1
deleted file mode 100644
index 66886222ff92..000000000000
--- a/usr.bin/ypwhich/ypwhich.1
+++ /dev/null
@@ -1,100 +0,0 @@
-.\" $NetBSD: ypwhich.1,v 1.3 1996/05/13 02:43:46 thorpej Exp $
-.\"
-.\" Copyright (c) 1994 Christopher G. Demetriou
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Christopher G. Demetriou.
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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$
-.\"
-.Dd February 23, 1994
-.Dt YPWHICH 1
-.Os
-.Sh NAME
-.Nm ypwhich
-.Nd return hostname of YP server of map master
-.Sh SYNOPSIS
-.Nm ypwhich
-.Op Fl d Ar domain
-.Oo
-.Op Fl t
-.Fl m Op Ar mname
-|
-.Ar host
-.Oc
-.Nm ypwhich
-.Fl x
-.Sh DESCRIPTION
-.Nm Ypwhich
-tells which
-.Tn YP
-server supplies
-.Tn YP
-services to a client, or which is the master for a map.
-If invoked without arguments, it gives the
-.Tn YP
-server for the local machine.
-If
-.Ar host
-is specified, that machine is queried to find out
-which
-.Tn YP
-server it is using.
-.Pp
-The options are as follows:
-.Bl -tag -width indent
-.It Fl d Ar domain
-Specify a domain other than the default domain.
-.It Fl t
-Inhibit translation of map nicknames
-to their corresponding map names.
-.It Fl m Op Ar mname
-Find the master
-.Tn YP
-server for the named map. No
-.Ar host
-may be specified with the
-.Fl m
-option.
-.Ar Mname
-can be a map name or nickname. If
-.Ar mname
-is ommitted,
-.Nm ypwhich
-will produce a list of available maps.
-.It Fl x
-Display the map nickname table.
-.El
-.Sh SEE ALSO
-.Xr domainname 1 ,
-.Xr ypcat 1 ,
-.Xr ypmatch 1 ,
-.Xr yp 4 ,
-.Xr ypbind 8 ,
-.Xr yppoll 8 ,
-.Xr ypset 8
-.Sh AUTHOR
-Theo De Raadt
diff --git a/usr.sbin/pnpinfo/Makefile b/usr.sbin/pnpinfo/Makefile
deleted file mode 100644
index ca5083013370..000000000000
--- a/usr.sbin/pnpinfo/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
-PROG = pnpinfo
-
-SRCS = pnpinfo.c
-CFLAGS = -I${.CURDIR}/../../sys
-MAN8 = pnpinfo.8
-
-.PATH: ${.CURDIR}/../../contrib/pnpinfo
-
-.include <bsd.prog.mk>
diff --git a/usr.sbin/pppd/cbcp.c b/usr.sbin/pppd/cbcp.c
deleted file mode 100644
index db939baa6317..000000000000
--- a/usr.sbin/pppd/cbcp.c
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * cbcp - Call Back Configuration Protocol.
- *
- * Copyright (c) 1995 Pedro Roque Marques
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Pedro Roque Marques. The name of the author may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <syslog.h>
-
-#include "pppd.h"
-#include "cbcp.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "ipcp.h"
-
-/*
- * Protocol entry points.
- */
-static void cbcp_init __P((int unit));
-static void cbcp_open __P((int unit));
-static void cbcp_lowerup __P((int unit));
-static void cbcp_input __P((int unit, u_char *pkt, int len));
-static void cbcp_protrej __P((int unit));
-static int cbcp_printpkt __P((u_char *pkt, int len,
- void (*printer) __P((void *, char *, ...)),
- void *arg));
-
-struct protent cbcp_protent = {
- PPP_CBCP,
- cbcp_init,
- cbcp_input,
- cbcp_protrej,
- cbcp_lowerup,
- NULL,
- cbcp_open,
- NULL,
- cbcp_printpkt,
- NULL,
- 0,
- "CBCP",
- NULL,
- NULL,
- NULL
-};
-
-cbcp_state cbcp[NUM_PPP];
-
-/* internal prototypes */
-
-static void cbcp_recvreq __P((cbcp_state *us, char *pckt, int len));
-static void cbcp_resp __P((cbcp_state *us));
-static void cbcp_up __P((cbcp_state *us));
-static void cbcp_recvack __P((cbcp_state *us, char *pckt, int len));
-static void cbcp_send __P((cbcp_state *us, u_char code, u_char *buf, int len));
-
-/* init state */
-static void
-cbcp_init(iface)
- int iface;
-{
- cbcp_state *us;
-
- us = &cbcp[iface];
- memset(us, 0, sizeof(cbcp_state));
- us->us_unit = iface;
- us->us_type |= (1 << CB_CONF_NO);
-}
-
-/* lower layer is up */
-static void
-cbcp_lowerup(iface)
- int iface;
-{
- cbcp_state *us = &cbcp[iface];
-
- syslog(LOG_DEBUG, "cbcp_lowerup");
- syslog(LOG_DEBUG, "want: %d", us->us_type);
-
- if (us->us_type == CB_CONF_USER)
- syslog(LOG_DEBUG, "phone no: %s", us->us_number);
-}
-
-static void
-cbcp_open(unit)
- int unit;
-{
- syslog(LOG_DEBUG, "cbcp_open");
-}
-
-/* process an incomming packet */
-static void
-cbcp_input(unit, inpacket, pktlen)
- int unit;
- u_char *inpacket;
- int pktlen;
-{
- u_char *inp;
- u_char code, id;
- u_short len;
-
- cbcp_state *us = &cbcp[unit];
-
- inp = inpacket;
-
- if (pktlen < CBCP_MINLEN) {
- syslog(LOG_ERR, "CBCP packet is too small");
- return;
- }
-
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- GETSHORT(len, inp);
-
-#if 0
- if (len > pktlen) {
- syslog(LOG_ERR, "CBCP packet: invalid length");
- return;
- }
-#endif
-
- len -= CBCP_MINLEN;
-
- switch(code) {
- case CBCP_REQ:
- us->us_id = id;
- cbcp_recvreq(us, inp, len);
- break;
-
- case CBCP_RESP:
- syslog(LOG_DEBUG, "CBCP_RESP received");
- break;
-
- case CBCP_ACK:
- if (id != us->us_id)
- syslog(LOG_DEBUG, "id doesn't match: expected %d recv %d",
- us->us_id, id);
-
- cbcp_recvack(us, inp, len);
- break;
-
- default:
- break;
- }
-}
-
-/* protocol was rejected by foe */
-void cbcp_protrej(int iface)
-{
-}
-
-char *cbcp_codenames[] = {
- "Request", "Response", "Ack"
-};
-
-char *cbcp_optionnames[] = {
- "NoCallback",
- "UserDefined",
- "AdminDefined",
- "List"
-};
-
-/* pretty print a packet */
-static int
-cbcp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, opt, id, len, olen, delay;
- u_char *pstart;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(cbcp_codenames) / sizeof(char *))
- printer(arg, " %s", cbcp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
-
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
-
- switch (code) {
- case CBCP_REQ:
- case CBCP_RESP:
- case CBCP_ACK:
- while(len >= 2) {
- GETCHAR(opt, p);
- GETCHAR(olen, p);
-
- if (olen < 2 || olen > len) {
- break;
- }
-
- printer(arg, " <");
- len -= olen;
-
- if (opt >= 1 && opt <= sizeof(cbcp_optionnames) / sizeof(char *))
- printer(arg, " %s", cbcp_optionnames[opt-1]);
- else
- printer(arg, " option=0x%x", opt);
-
- if (olen > 2) {
- GETCHAR(delay, p);
- printer(arg, " delay = %d", delay);
- }
-
- if (olen > 3) {
- int addrt;
- char str[256];
-
- GETCHAR(addrt, p);
- memcpy(str, p, olen - 4);
- str[olen - 4] = 0;
- printer(arg, " number = %s", str);
- }
- printer(arg, ">");
- break;
- }
-
- default:
- break;
- }
-
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
-
- return p - pstart;
-}
-
-/* received CBCP request */
-static void
-cbcp_recvreq(us, pckt, pcktlen)
- cbcp_state *us;
- char *pckt;
- int pcktlen;
-{
- u_char type, opt_len, delay, addr_type;
- char address[256];
- int len = pcktlen;
-
- address[0] = 0;
-
- while (len) {
- syslog(LOG_DEBUG, "length: %d", len);
-
- GETCHAR(type, pckt);
- GETCHAR(opt_len, pckt);
-
- if (opt_len > 2)
- GETCHAR(delay, pckt);
-
- us->us_allowed |= (1 << type);
-
- switch(type) {
- case CB_CONF_NO:
- syslog(LOG_DEBUG, "no callback allowed");
- break;
-
- case CB_CONF_USER:
- syslog(LOG_DEBUG, "user callback allowed");
- if (opt_len > 4) {
- GETCHAR(addr_type, pckt);
- memcpy(address, pckt, opt_len - 4);
- address[opt_len - 4] = 0;
- if (address[0])
- syslog(LOG_DEBUG, "address: %s", address);
- }
- break;
-
- case CB_CONF_ADMIN:
- syslog(LOG_DEBUG, "user admin defined allowed");
- break;
-
- case CB_CONF_LIST:
- break;
- }
- len -= opt_len;
- }
-
- cbcp_resp(us);
-}
-
-static void
-cbcp_resp(us)
- cbcp_state *us;
-{
- u_char cb_type;
- u_char buf[256];
- u_char *bufp = buf;
- int len = 0;
-
- cb_type = us->us_allowed & us->us_type;
- syslog(LOG_DEBUG, "cbcp_resp cb_type=%d", cb_type);
-
-#if 0
- if (!cb_type)
- lcp_down(us->us_unit);
-#endif
-
- if (cb_type & ( 1 << CB_CONF_USER ) ) {
- syslog(LOG_DEBUG, "cbcp_resp CONF_USER");
- PUTCHAR(CB_CONF_USER, bufp);
- len = 3 + 1 + strlen(us->us_number) + 1;
- PUTCHAR(len , bufp);
- PUTCHAR(5, bufp); /* delay */
- PUTCHAR(1, bufp);
- BCOPY(us->us_number, bufp, strlen(us->us_number) + 1);
- cbcp_send(us, CBCP_RESP, buf, len);
- return;
- }
-
- if (cb_type & ( 1 << CB_CONF_ADMIN ) ) {
- syslog(LOG_DEBUG, "cbcp_resp CONF_ADMIN");
- PUTCHAR(CB_CONF_ADMIN, bufp);
- len = 3 + 1;
- PUTCHAR(len , bufp);
- PUTCHAR(5, bufp); /* delay */
- PUTCHAR(0, bufp);
- cbcp_send(us, CBCP_RESP, buf, len);
- return;
- }
-
- if (cb_type & ( 1 << CB_CONF_NO ) ) {
- syslog(LOG_DEBUG, "cbcp_resp CONF_NO");
- PUTCHAR(CB_CONF_NO, bufp);
- len = 3;
- PUTCHAR(len , bufp);
- PUTCHAR(0, bufp);
- cbcp_send(us, CBCP_RESP, buf, len);
- (*ipcp_protent.open)(us->us_unit);
- return;
- }
-}
-
-static void
-cbcp_send(us, code, buf, len)
- cbcp_state *us;
- u_char code;
- u_char *buf;
- int len;
-{
- u_char *outp;
- int outlen;
-
- outp = outpacket_buf;
-
- outlen = 4 + len;
-
- MAKEHEADER(outp, PPP_CBCP);
-
- PUTCHAR(code, outp);
- PUTCHAR(us->us_id, outp);
- PUTSHORT(outlen, outp);
-
- if (len)
- BCOPY(buf, outp, len);
-
- output(us->us_unit, outpacket_buf, outlen + PPP_HDRLEN);
-}
-
-static void
-cbcp_recvack(us, pckt, len)
- cbcp_state *us;
- char *pckt;
- int len;
-{
- u_char type, delay, addr_type;
- int opt_len;
- char address[256];
-
- if (len) {
- GETCHAR(type, pckt);
- GETCHAR(opt_len, pckt);
-
- if (opt_len > 2)
- GETCHAR(delay, pckt);
-
- if (opt_len > 4) {
- GETCHAR(addr_type, pckt);
- memcpy(address, pckt, opt_len - 4);
- address[opt_len - 4] = 0;
- if (address[0])
- syslog(LOG_DEBUG, "peer will call: %s", address);
- }
- }
-
- cbcp_up(us);
-}
-
-extern int persist;
-
-/* ok peer will do callback */
-static void
-cbcp_up(us)
- cbcp_state *us;
-{
- persist = 0;
- lcp_close(0, "Call me back, please");
-}
diff --git a/usr.sbin/pppd/cbcp.h b/usr.sbin/pppd/cbcp.h
deleted file mode 100644
index c2ab3f68991f..000000000000
--- a/usr.sbin/pppd/cbcp.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef CBCP_H
-#define CBCP_H
-
-typedef struct cbcp_state {
- int us_unit; /* Interface unit number */
- u_char us_id; /* Current id */
- u_char us_allowed;
- int us_type;
- char *us_number; /* Telefone Number */
-} cbcp_state;
-
-extern cbcp_state cbcp[];
-
-extern struct protent cbcp_protent;
-
-#define CBCP_MINLEN 4
-
-#define CBCP_REQ 1
-#define CBCP_RESP 2
-#define CBCP_ACK 3
-
-#define CB_CONF_NO 1
-#define CB_CONF_USER 2
-#define CB_CONF_ADMIN 3
-#define CB_CONF_LIST 4
-#endif
diff --git a/usr.sbin/pppd/ipxcp.h b/usr.sbin/pppd/ipxcp.h
deleted file mode 100644
index 139a7260b300..000000000000
--- a/usr.sbin/pppd/ipxcp.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * ipxcp.h - IPX Control Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Options.
- */
-#define IPX_NETWORK_NUMBER 1 /* IPX Network Number */
-#define IPX_NODE_NUMBER 2
-#define IPX_COMPRESSION_PROTOCOL 3
-#define IPX_ROUTER_PROTOCOL 4
-#define IPX_ROUTER_NAME 5
-#define IPX_COMPLETE 6
-
-/* Values for the router protocol */
-#define IPX_NONE 0
-#define RIP_SAP 2
-#define NLSP 4
-
-typedef struct ipxcp_options {
- int neg_node : 1; /* Negotiate IPX node number? */
- int req_node : 1; /* Ask peer to send IPX node number? */
-
- int neg_nn : 1; /* Negotiate IPX network number? */
- int req_nn : 1; /* Ask peer to send IPX network number */
-
- int neg_name : 1; /* Negotiate IPX router name */
- int neg_complete : 1; /* Negotiate completion */
- int neg_router : 1; /* Negotiate IPX router number */
-
- int accept_local : 1; /* accept peer's value for ournode */
- int accept_remote : 1; /* accept peer's value for hisnode */
- int accept_network : 1; /* accept network number */
-
- int tried_nlsp : 1; /* I have suggested NLSP already */
- int tried_rip : 1; /* I have suggested RIP/SAP already */
-
- u_int32_t his_network; /* base network number */
- u_int32_t our_network; /* our value for network number */
- u_int32_t network; /* the final network number */
-
- u_char his_node[6]; /* peer's node number */
- u_char our_node[6]; /* our node number */
- u_char name [48]; /* name of the router */
- int router; /* routing protocol */
-} ipxcp_options;
-
-extern fsm ipxcp_fsm[];
-extern ipxcp_options ipxcp_wantoptions[];
-extern ipxcp_options ipxcp_gotoptions[];
-extern ipxcp_options ipxcp_allowoptions[];
-extern ipxcp_options ipxcp_hisoptions[];
-
-extern struct protent ipxcp_protent;
diff --git a/usr.sbin/stallion/bootcode/stl.4 b/usr.sbin/stallion/bootcode/stl.4
deleted file mode 100644
index 871744997e6b..000000000000
--- a/usr.sbin/stallion/bootcode/stl.4
+++ /dev/null
@@ -1,324 +0,0 @@
-.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au).
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Greg Ungerer.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.Dd December 2, 1996
-.Os FreeBSD
-.Dt STL 4 i386
-.Sh NAME
-.Nm stl ,
-.Nm stli
-.Nd "drivers for Stallion Technologies multiport serial controllers"
-.Sh SYNOPSIS
-.Cd "stl0 at isa? port <addr> tty irq <irq> vector stlintr"
-.Cd "stli0 at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
-.Cd "stli0 at eisa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
-.Sh DESCRIPTION
-This is a kernel driver for Stallion Technologies multiport serial boards.
-There are two drivers, each supporting a different class of boards.
-The
-.Nm stl
-driver supports the EasyIO and EasyConnection 8/32
-boards, while the
-.Nm stli
-driver supports all other types, including
-ONboard, Brumby and EasyConnection 8/64.
-.Sh CONFIGURATION
-Each board installed in the system needs a configuration entry in the
-kernel configuration file.
-Slightly different options and parameters are required for each of the
-different board types.
-Depending on the type of board one of the
-.Nm stl
-or
-.Nm stli
-drivers will be used. The
-.Nm stl
-and
-.Nm stli
-drivers can support up to 8 boards.
-.Pp
-Configuration of the hardware - DIP switches, jumpers, etc - varies
-from board to board.
-Consult documentation supplied with the board for hardware
-configuration details.
-Alternatively the board documentation is available on Stallion
-Technologies WWW site at http://www.stallion.com.
-.Pp
-The EasyIO and EasyConnection 8/32 families of boards use the
-.Nm stl
-driver.
-ISA board configuration entries for the
-.Nm stl
-driver take the general form of:
-.Pp
-.Cd "stlX at isa? port <io-addr> tty irq <irq> vector stlintr"
-.Pp
-.Ar X
-is the unit number assigned to the board.
-Any unique value between 0 and 7 is valid.
-.Pp
-The I/O address used by the board is specified by
-.Ar <io-addr> .
-Each of the EasyIO and EasyConnection 8/32-AT boards can use
-an I/O address in the range from 0 to 0x400.
-.Pp
-All EasyIO and EasyConnection 8/32 boards require an interrupt,
-and this interrupt is specified by
-.Ar <irq> .
-Legal IRQ values for the ISA boards are 3, 4, 5, 7, 10, 11, 12 and 15.
-Interrupts are software programmed on all boards except the EasyIO-8M.
-.Pp
-The EasyConnection 8/32-AT board uses a secondary I/O address region,
-and this is fixed at address 0x280 in the driver code.
-All EasyConnection 8/32-AT boards may share the same secondary address
-region.
-.Pp
-EasyConnection 8/32 PCI boards are detected automatically by the
-system on boot up.
-No configuration information is required in advance for these
-board types.
-During boot up the
-.Nm stl
-driver will issue messages to indicate that a EasyConnection 8/32
-PCI board was found, and some information about it.
-.Pp
-Following are some examples of configuration entries for each of the ISA
-boards supported by the
-.Nm stl
-driver.
-Each example also describes some important details about each of the
-board types.
-.Pp
-Each EasyIO board requires 8 bytes of I/O address space and 1 IRQ line.
-A configuration entry for an EasyIO board would look like:
-.Pp
-.Cd "stl0 at isa? port 0x2a8 tty irq 15 vector stlintr"
-.Pp
-This entry specifies an EasyIO board at I/O address 0x2a8 using IRQ 15.
-The I/O and IRQ values can be modified as required.
-.Pp
-Each EasyConnection 8/32-AT board requires 2 sets of I/O addresses
-and 1 IRQ line.
-The primary I/O address range is 2 bytes in size, and must be unique
-to each EasyConnection 8/32-AT board in the system.
-The secondary I/O address range is 32 bytes in size, but can be shared
-by multiple EasyConnection 8/32-AT boards.
-This secondary I/O address is set at 0x280 in the driver code.
-A configuration entry would look like:
-.Pp
-.Cd "stl0 at isa? port 0x2a0 irq 10 tty vector stlintr"
-.Pp
-This specifies an EasyConnection 8/32-AT with primary I/O address 0x2a0,
-secondary I/O address of 0x280 and IRQ 10.
-.Pp
-The ONboard, Brumby and EasyConnection 8/64 families of boards use the
-.Nm stli
-driver. The
-.Nm stli
-driver supports the ISA and EISA members of these families.
-.Pp
-ISA board configuration entries for the
-.Nm stli
-driver take the general form of:
-.Pp
-.Cd "stliX at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>"
-.Pp
-.Ar X
-is the unit number assigned to the board.
-Any unique value between 0 and 7 is valid.
-.Pp
-The I/O address used by the board is specified by
-.Ar <io-addr> .
-Each of the different supported board types has restrictions on valid
-I/O addresses and also the amount of I/O space required varies between
-the boards.
-.Pp
-All boards using the
-.Nm stli
-driver require a shared memory region to operate.
-Depending on the board type the region required varies in size
-from 4 kbytes to 64 kbytes. The size of the board region is specified
-by field
-.Ar <size>
-of the configuration entry, and the address of the region is specified by
-.Ar <mem-addr> .
-.Pp
-The flags field specifies the particular board type that this entry
-applies to.
-Not all board types are distinguishable by the driver at runtime,
-so this field is required by the driver.
-Valid board types are:
-.Bd -literal -offset indent
-BOARD NAME TYPE I/O SIZE
-
-Brumby 2 0x4000
-ONboard 4 0x10000
-ONboard/E 7 0x10000
-EasyConnection 8/64-AT 23 0x1000
-EasyConnection 8/64-EISA 24 0x10000
-.Ed
-.Pp
-Following are some examples of configuration entries for each of the
-boards supported by the
-.Nm stli
-driver. Each example also describes some important details about
-each of the board types.
-.Pp
-The EasyConnection 8/64-AT board requires 4 bytes of I/O address space and
-4 kbytes of memory space.
-A configuration entry would look like:
-.Pp
-.Cd "stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23"
-.Pp
-The flags field of this entry specifies that this is an
-EasyConnection 8/64-AT board.
-It is set to I/O address 0x2a0 and memory address 0xcc000.
-The
-.Ar iosiz
-parameter specifies a memory region size
-of 4 kbytes.
-.Pp
-The EasyConnection 8/64-EISA board requires a 64 kbyte region of
-memory space.
-This region can be anywhere in the 32 bit memory address space.
-A configuration entry would be like:
-.Pp
-.Cd "stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24"
-.Pp
-The flags field is used to specify that this is an EasyConnection 8/64-EISA
-board.
-The I/O (port) address resource is derived from the EISA slot that
-the board is in.
-Each EISA slot is allocated a section of the I/O address space by the
-hardware of the system.
-That address being 0xX000 where X is the slot number.
-The example board is at memory address 0x80000000 which is 2 Gbyte.
-The
-.Ar iosiz
-parameter specifies the size of the memory region,
-in this case 64 kbytes.
-.Pp
-Each ONboard ISA board requires 16 bytes of I/O space and a 64 kbyte
-section of memory address space.
-Valid ONboard I/O addresses are in the range 0x200 to 0x300.
-A configuration entry for an ONboard ISA would look like:
-.Pp
-.Cd "stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4"
-.Pp
-This entry specifies an ONboard ISA by setting flags to 4.
-It uses I/O address 0x240 and a memory region of 64 kbytes at memory
-address 0xd0000.
-.Pp
-Each ONboard/E board requires a 64 kbyte memory region, and this
-can be anywhere in the 32 bit address space (that is from 0 to 4 Gbyte).
-A configuration entry would look like:
-.Pp
-.Cd "stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7"
-.Pp
-The specifies an ONboard/E in slot 3 using a shared memory address
-of 0xc0000000 (3 Gbyte).
-.Pp
-Each Brumby board requires 16 bytes of I/O address space and a 4 kbyte
-region of shared memory space.
-The valid Brumby I/O addresses are in the range 0x300 to 0x400.
-The shared memory region of the Brumby must be in the 0xc0000 to
-0xdc000 region of the memory address space.
-A configuration entry for a Brumby would be like:
-.Pp
-.Cd "stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2"
-.Pp
-This specifies a Brumby board at I/O address 0x360 using a shared memory
-region at address 0xc8000.
-.Sh NOTES
-When building the device nodes for the ports be sure to use the correct
-driver name,
-.Nm stl
-or
-.Nm stli.
-Each driver has a separate major number allocated,
-so even though the port device names are the same for each driver,
-the major number of the device node is different.
-Use the
-.Xr MAKEDEV 8
-script to create the devices.
-Use the ttyE and cue tag for the
-.Nm stl
-driver, and
-the ttyEi and cuei tags for the
-.Nm stli
-driver.
-.Pp
-The intelligent board types (ONboard, Brumby and EasyConnection 8/64)
-require a firmware download before the ports will be operational.
-This is achieved by using the
-.Nm stlload
-command.
-See its manual page for details on usage.
-.Sh FILES
-.Bl -tag -width "/dev/staliomem?" -compact
-.It Pa /dev/ttyE?
-standard callin devices
-.It Pa /dev/ttyiE?
-initial-state callin devices
-.It Pa /dev/ttylE?
-lock-state callin devices
-.It Pa /dev/cue?
-standard callout devices
-.It Pa /dev/cuie?
-initial-state callout devices
-.It Pa /dev/cule?
-lock-state callout devices
-.It Pa /dev/staliomem?
-board control device
-.El
-.sp
-Note that the port numbers start at 0 for port 0 of board 0.
-Each board has 64 port slots allocated for it.
-So the second boards ports start at 64 and go through 127.
-Use the
-.Xr MAKEDEV 8
-script to create the devices.
-Use the ttyE and cue tag for the
-.Nm stl
-driver, and
-the ttyEi and cuei tags for the
-.Nm stli
-driver.
-.Sh SEE ALSO
-.Xr stty 1 ,
-.Xr termios 4 ,
-.Xr tty 4 ,
-.Xr comcontrol 8 ,
-.Xr MAKEDEV 8 ,
-.Xr stlload 8 ,
-.Xr stlstats 8
-.Sh HISTORY
-This driver was originally developed by
-.An Greg Ungerer Aq gerg@stallion.com .
diff --git a/usr.sbin/stallion/stlload/stlload.8 b/usr.sbin/stallion/stlload/stlload.8
deleted file mode 100644
index 51e1197ee177..000000000000
--- a/usr.sbin/stallion/stlload/stlload.8
+++ /dev/null
@@ -1,124 +0,0 @@
-.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au).
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Greg Ungerer.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.Dd December 2, 1996
-.Os FreeBSD
-.Dt STLLOAD 8 i386
-.Sh NAME
-.Nm stlload
-.Nd "Stallion Technologies multiport serial board down loader"
-.Sh SYNOPSIS
-.Nm stlload
-.Op Fl vhVR
-.Op Fl i Ar image-file
-.Op Fl c Ar control-device
-.Op Fl r Ar rx-buf-size
-.Op Fl t Ar tx-buf-size
-.Op Fl B Ar boot-banner
-.Op Fl b Ar unit-number
-.Sh DESCRIPTION
-.Nm Stlload
-is used to download the firmware code to Stallion Technologies intelligent
-multiport serial boards.
-A firmware download is only required for those boards that use the Stallion
-.Nm stli
-driver.
-This includes the EasyConnection 8/64, ONboard and Brumby families of boards.
-.Pp
-Different board types require different firmware images.
-If the wrong firmware is loaded into a board it will fail to operate.
-.Pp
-The download process is achieved through the Stallion
-.Nm stli
-driver control device,
-.Pa /dev/staliomem? .
-This device implements a file type device that can read and write into the
-boards shared memory region.
-It also implements a number of special
-.Em ioctls
-that reset and restart the board.
-.Pp
-The options are:
-.Bl -tag -width indent
-.It Fl v
-Verbose output generation.
-Trace is generated at each phase of the download and startup process.
-.It Fl h
-Output usage information.
-.It Fl V
-Output version information.
-.It Fl R
-Reset the board only.
-Does not proceed to download firmware to the board.
-.It Fl i Ar image-file
-Specify the firmware image file to download.
-The default firmware image is
-.Pa /usr/libdata/stallion/cdk.sys .
-.It Fl c Ar control-device
-Specify the board control device through which to download the firmware
-and start up the board.
-The default is
-.Pa /dev/staliomem0 .
-.It Fl r Ar rx-buf-size
-Specify the size of the boards shared memory Receive Data buffer.
-By default the buffer is dynamically sized to use the maximum
-available shared memory.
-.It Fl t Ar tx-buf-size
-Specify the size of the boards shared memory Transmit Data buffer.
-By default the buffer is dynamically sized to use the maximum
-available shared memory.
-.It Fl B Ar boot-banner
-Enable the slave debug trace flag during download.
-This enables debug trace output from the firmware code.
-This trace is output on port 0 of the board,
-and the port is set to 9600 baud, 8 data bits, no parity and 1 stop bit.
-.It Fl b Ar unit-number
-Specify the unit (board) number to be downloaded. The default is to
-download board 0.
-.El
-.Pp
-.Nm Stlload
-would typically be run from
-.Pa /etc/rc.serial .
-.Sh FILES
-.Bl -tag -width /usr/libdata/stallion/2681.sys
-.It Pa /usr/libdata/stallion/cdk.sys
-firmware code to EasyConnection 8/64 class boards
-.It Pa /usr/libdata/stallion/2681.sys
-firmware code to ONboard and Brumby class boards
-.It Pa /dev/staliomem?
-driver board control device
-.Sh SEE ALSO
-.Xr stl 4 ,
-.Xr stli 4 ,
-.Xr stlstats 8
-.Sh HISTORY
-This program was originally developed by
-.An Greg Ungerer Aq gerg@stallion.com .
diff --git a/usr.sbin/stallion/stlstats/stlstats.8 b/usr.sbin/stallion/stlstats/stlstats.8
deleted file mode 100644
index 05dec3c3a0bf..000000000000
--- a/usr.sbin/stallion/stlstats/stlstats.8
+++ /dev/null
@@ -1,135 +0,0 @@
-.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au).
-.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Greg Ungerer.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.Dd December 2, 1996
-.Os FreeBSD
-.Dt STLSTATS 8 i386
-.Sh NAME
-.Nm stlstats
-.Nd "Stallion Technologies multiport serial statistics display"
-.Sh SYNOPSIS
-.Nm stlstats
-.Op Fl hVi
-.Op Fl c Ar control-device
-.Op Fl b Ar board-number
-.Op Fl p Ar port-number
-.Op Fl d Ar port-device
-.Sh DESCRIPTION
-.Nm Stlstats
-is used to display statistical information about the ports on Stallion
-Technologies multiport serial boards.
-.Pp
-.Nm Stlstats
-normally runs as a full screen menu driven application.
-A help line is displayed at the bottom of each screen with the valid
-input keys for this screen.
-.Pp
-Generally the digit keys ('0' through '9') specify the number of the
-device to display statistics for.
-Where digits alone are not enough to access all possible devices
-(for example on 16 port panels) then the first letters of the alphabet
-are used to access the remaining devices.
-The letters 'a' through 'f' are used to access devices 10 through 15.
-.Pp
-The 'q' key is always used to move back to the previous level screen.
-The escape key can also be used to move back to the previous screen.
-.Pp
-The first screen is a display of all ports on panel 0 of board 0.
-Values displayed on this screen are a summary of the information for
-each port. The statistics displayed are: driver and TTY state flags,
-termios flags (cflags, iflags, oflags, lflags), RS-232 signal values
-(as per TIOCM signal defines), total transmit and receive character
-counts.
-.Pp
-From this screen you can look at summary information
-about each panel and board installed in the system.
-Each board is accessed by the digit keys ('0' through '7'),
-while panels of each board can be cycled through using the 'n' key.
-.Pp
-The per port screen displays some detailed information about a
-particular port.
-This is accessed from the board screen using the 'p' key.
-The first port displayed will be port 0.
-To display other ports use the digit and alphabetic keys
-('0' through '9' and 'a' through 'f').
-This screen displays: driver and TTY state flags, hardware ID,
-termios flags (cflags, iflags, oflags, lflags),
-total transmitted and received character counts,
-current transmit and receive characters buffered,
-receiver error counts (overruns, parity, framing, lost),
-software flow control characters transmitted and received,
-hardware flow control actions taken,
-count of transmitted and received breaks,
-modem signal transitions and
-current RS-232 signal states.
-.Pp
-The options are:
-.Bl -tag -width indent
-.It Fl h
-Output usage information.
-.It Fl V
-Output version information.
-.It Fl i
-Output only the board type information.
-This output is useful for scripts or other programs that need to know
-a little bit about the board (for example an automated download script).
-.Nm Stlstats
-will not enter full screen interactive mode.
-.It Fl c Ar control-device
-Specify the board control device through which to gather port statistics.
-The default is
-.Pa /dev/staliomem0 .
-.It Fl b Ar board-number
-Specify the board number to display first.
-The default is to display board 0.
-.It Fl p Ar port-number
-Specify the port number to display first.
-.Nm Stlstats
-will go straight into the port display screen (bypassing board display)
-when this option is used.
-.It Fl d Ar port-device
-Specify the port special device file (the
-.Pa /dev/ttyXXX
-file) to
-display first.
-The board screen is bypassed and the port statistics screen is shown
-immediately on start up.
-.El
-.Sh FILES
-.Bl -tag -width /dev/staliomem0
-.It Pa /dev/staliomem0
-driver control device used for statistics collection
-.Sh SEE ALSO
-.Xr stl 4 ,
-.Xr stli 4 ,
-.Xr stlload 8
-.Sh HISTORY
-This program was originally developed by
-.An Greg Ungerer Aq gerg@stallion.com .
diff --git a/usr.sbin/vidcontrol/decode.h b/usr.sbin/vidcontrol/decode.h
deleted file mode 100644
index b939af4f369e..000000000000
--- a/usr.sbin/vidcontrol/decode.h
+++ /dev/null
@@ -1 +0,0 @@
-int decode(FILE *fd, char *buffer);